lkml.org 
[lkml]   [2021]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 425/530] net: thunderx: Fix unintentional sign extension issue
    Date
    From: Colin Ian King <colin.king@canonical.com>

    [ Upstream commit e701a25840360706fe4cf5de0015913ca19c274b ]

    The shifting of the u8 integers rq->caching by 26 bits to
    the left will be promoted to a 32 bit signed int and then
    sign-extended to a u64. In the event that rq->caching is
    greater than 0x1f then all then all the upper 32 bits of
    the u64 end up as also being set because of the int
    sign-extension. Fix this by casting the u8 values to a
    u64 before the 26 bit left shift.

    Addresses-Coverity: ("Unintended sign extension")
    Fixes: 4863dea3fab0 ("net: Adding support for Cavium ThunderX network controller")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
    index 7a141ce32e86..0ccd5b40ef5c 100644
    --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
    +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
    @@ -776,7 +776,7 @@ static void nicvf_rcv_queue_config(struct nicvf *nic, struct queue_set *qs,
    mbx.rq.msg = NIC_MBOX_MSG_RQ_CFG;
    mbx.rq.qs_num = qs->vnic_id;
    mbx.rq.rq_num = qidx;
    - mbx.rq.cfg = (rq->caching << 26) | (rq->cq_qs << 19) |
    + mbx.rq.cfg = ((u64)rq->caching << 26) | (rq->cq_qs << 19) |
    (rq->cq_idx << 16) | (rq->cont_rbdr_qs << 9) |
    (rq->cont_qs_rbdr_idx << 8) |
    (rq->start_rbdr_qs << 1) | (rq->start_qs_rbdr_idx);
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-12 19:01    [W:3.355 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site