[SCSI] bnx2i: fix the bit manipulation when setting the error mask
authorTomas Henzl <thenzl@redhat.com>
Tue, 3 Jul 2012 08:08:41 +0000 (10:08 +0200)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 29 Jan 2013 03:15:34 +0000 (14:15 +1100)
The intention in bnx2i_send_fw_iscsi_init_msg was to zero out
only the lower 32bits, but instead the whole mask64 is zeroed.
This patch fixes it.

Signed-off-by: Tomas Henzl <thenzl@redhat.com>
Acked-by: Eddie Wai <eddie.wai@broadcom.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/bnx2i/bnx2i_hwi.c

index 91eec60252ee1c973198ae5c230762af37607073..a28b03e5a5f6bd7b2a30325526fb7e20806fd257 100644 (file)
@@ -1317,7 +1317,7 @@ int bnx2i_send_fw_iscsi_init_msg(struct bnx2i_hba *hba)
                (1ULL << ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_LUN));
        if (error_mask1) {
                iscsi_init2.error_bit_map[0] = error_mask1;
-               mask64 &= (u32)(~mask64);
+               mask64 ^= (u32)(mask64);
                mask64 |= error_mask1;
        } else
                iscsi_init2.error_bit_map[0] = (u32) mask64;