-----Original Message-----
From: <linux-scsi-ow...@vger.kernel.org> on behalf of Colin King
<colin.k...@canonical.com>
Date: Saturday, 4 May 2019 at 10:18 PM
To: "qlogic-storage-upstr...@qlogic.com"
<qlogic-storage-upstr...@qlogic.com>, "James E . J . Bottomley"
<j...@linux.ibm.com>, "Martin K . Petersen" <martin.peter...@oracle.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Cc: "kernel-janit...@vger.kernel.org" <kernel-janit...@vger.kernel.org>,
"linux-ker...@vger.kernel.org" <linux-ker...@vger.kernel.org>
Subject: [PATCH] scsi: bnx2fc: fix incorrect cast to u64 on shift operation

>From: Colin Ian King <colin.k...@canonical.com>
>
>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 <colin.k...@canonical.com>
>---
> 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 <skash...@marvell.com>

>

Reply via email to