[SCSI] bnx2i: Fixed the override of the error_mask module param
[cascardo/linux.git] / drivers / scsi / bnx2i / bnx2i_hwi.c
index 1ad0b82..f9d6f41 100644 (file)
@@ -1312,14 +1312,18 @@ int bnx2i_send_fw_iscsi_init_msg(struct bnx2i_hba *hba)
                  ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_EXP_DATASN) |
                /* EMC */
                (1ULL << ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_LUN));
-       if (error_mask1)
+       if (error_mask1) {
                iscsi_init2.error_bit_map[0] = error_mask1;
-       else
+               mask64 &= (u32)(~mask64);
+               mask64 |= error_mask1;
+       } else
                iscsi_init2.error_bit_map[0] = (u32) mask64;
 
-       if (error_mask2)
+       if (error_mask2) {
                iscsi_init2.error_bit_map[1] = error_mask2;
-       else
+               mask64 &= 0xffffffff;
+               mask64 |= ((u64)error_mask2 << 32);
+       } else
                iscsi_init2.error_bit_map[1] = (u32) (mask64 >> 32);
 
        iscsi_error_mask = mask64;