-----Original Message-----
From: <[email protected]> on behalf of Colin King
<[email protected]>
Date: Saturday, 4 May 2019 at 10:18 PM
To: "[email protected]"
<[email protected]>, "James E . J . Bottomley"
<[email protected]>, "Martin K . Petersen" <[email protected]>,
"[email protected]" <[email protected]>
Cc: "[email protected]" <[email protected]>,
"[email protected]" <[email protected]>
Subject: [PATCH] scsi: bnx2fc: fix incorrect cast to u64 on shift operation
>From: Colin Ian King <[email protected]>
>
>Currently an int is being shifted and the result is being cast to a u64
>which leads to undefined behaviour if the shift is more than 31 bits. Fix
>this by casting the integer value 1 to u64 before the shift operation.
>
>Addresses-Coverity: ("Bad shift operation")
>Fixes: 7b594769120b ("[SCSI] bnx2fc: Handle REC_TOV error code from
>firmware")
>Signed-off-by: Colin Ian King <[email protected]>
>---
> drivers/scsi/bnx2fc/bnx2fc_hwi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/scsi/bnx2fc/bnx2fc_hwi.c
>b/drivers/scsi/bnx2fc/bnx2fc_hwi.c
>index 19734ec7f42e..747f019fb393 100644
>--- a/drivers/scsi/bnx2fc/bnx2fc_hwi.c
>+++ b/drivers/scsi/bnx2fc/bnx2fc_hwi.c
>@@ -830,7 +830,7 @@ static void bnx2fc_process_unsol_compl(struct
>bnx2fc_rport *tgt, u16 wqe)
> ((u64)err_entry->data.err_warn_bitmap_hi << 32) |
> (u64)err_entry->data.err_warn_bitmap_lo;
> for (i = 0; i < BNX2FC_NUM_ERR_BITS; i++) {
>- if (err_warn_bit_map & (u64) (1 << i)) {
>+ if (err_warn_bit_map & ((u64)1 << i)) {
> err_warn = i;
> break;
> }
>--
>2.20.1
Thanks for the Patch.
Acked-by: Saurav Kashyap <[email protected]>
>