qla2xxx: Do not crash system for sp ref count zero
authorHiral Patel <hiral.patel@qlogic.com>
Tue, 4 Aug 2015 17:37:56 +0000 (13:37 -0400)
committerJames Bottomley <JBottomley@Odin.com>
Thu, 27 Aug 2015 00:44:45 +0000 (17:44 -0700)
Aovid crashing the system in the scenario where firmware
just completes the command and it can not find the command
during abort mailbox processing. This scenario can lead to
sp reference counter being zero. Instead of crashing the
system, use WARN_ON to print warning in log file.

Signed-off-by: Hiral Patel <hiral.patel@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/qla2xxx/qla_os.c

index 5a5166bd428795df75232866040e53a8cf2353b4..8763c12cb6c2713cf3b45bc037d3186b68bfe5b6 100644 (file)
@@ -656,7 +656,7 @@ qla2x00_sp_compl(void *data, void *ptr, int res)
                    "SP reference-count to ZERO -- sp=%p cmd=%p.\n",
                    sp, GET_CMD_SP(sp));
                if (ql2xextended_error_logging & ql_dbg_io)
-                       BUG();
+                       WARN_ON(atomic_read(&sp->ref_count) == 0);
                return;
        }
        if (!atomic_dec_and_test(&sp->ref_count))