OSDN Git Service

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 5a5166b..8763c12 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))