lkml.org 
[lkml]   [2021]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH][next] RDMA/irdma: Fix issues with u8 left shift operation
Date
> Subject: [PATCH][next] RDMA/irdma: Fix issues with u8 left shift operation
>
> From: Colin Ian King <colin.king@canonical.com>
>
> The shifting of the u8 integer info->map[i] the left will be promoted to a 32 bit
> signed int and then sign-extended to a u64. In the event that the top bit of the u8 is
> set then all then all the upper 32 bits of the u64 end up as also being set because
> of the sign-extension.
> Fix this by casting the u8 values to a u64 before the left shift. This
>
> Addresses-Coverity: ("Unitentional integer overflow / bad shift operation")
> Fixes: 3f49d6842569 ("RDMA/irdma: Implement HW Admin Queue OPs")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
> drivers/infiniband/hw/irdma/ctrl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/hw/irdma/ctrl.c b/drivers/infiniband/hw/irdma/ctrl.c
> index 5aa112067bce..8bd3aecadaf6 100644
> --- a/drivers/infiniband/hw/irdma/ctrl.c
> +++ b/drivers/infiniband/hw/irdma/ctrl.c
> @@ -2157,7 +2157,7 @@ static enum irdma_status_code
> irdma_sc_set_up_map(struct irdma_sc_cqp *cqp,
> return IRDMA_ERR_RING_FULL;
>
> for (i = 0; i < IRDMA_MAX_USER_PRIORITY; i++)
> - temp |= info->map[i] << (i * 8);
> + temp |= (u64)info->map[i] << (i * 8);
>

Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
\
 
 \ /
  Last update: 2021-06-07 16:55    [W:0.066 / U:0.184 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site