qla2xxx: Add support to handle Loop Init error Asynchronus event.
authorJoe Carnuccio <joe.carnuccio@qlogic.com>
Wed, 6 Jul 2016 15:14:29 +0000 (11:14 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 15 Jul 2016 19:35:49 +0000 (15:35 -0400)
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_dbg.c
drivers/scsi/qla2xxx/qla_isr.c

index eebd1a585cdd7c6ab0212d9e2c8c821332640ab8..288338d5932752a2e5d6a18827226c94c2fd7eb4 100644 (file)
@@ -30,7 +30,7 @@
  * |                             |                    | 0x5047         |
  * |                              |                    | 0x5084,0x5075 |
  * |                              |                    | 0x503d,0x5044  |
- * |                              |                    | 0x507b,0x505f |
+ * |                              |                    | 0x505f                |
  * | Timer Routines               |       0x6012       |                |
  * | User Space Interactions      |       0x70e3       | 0x7018,0x702e  |
  * |                             |                    | 0x7020,0x7024  |
index 6b5f97e8c07b457e14847193109c67556545c4f0..6be2ab4f19a64511c7b70be680441ddb9a628685 100644 (file)
@@ -710,16 +710,23 @@ skip_rio:
 
        case MBA_RSP_TRANSFER_ERR:      /* Response Transfer Error */
                ql_log(ql_log_warn, vha, 0x5007,
-                   "ISP Response Transfer Error.\n");
+                   "ISP Response Transfer Error (%x).\n", mb[1]);
 
                set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
                break;
 
        case MBA_WAKEUP_THRES:          /* Request Queue Wake-up */
                ql_dbg(ql_dbg_async, vha, 0x5008,
-                   "Asynchronous WAKEUP_THRES.\n");
+                   "Asynchronous WAKEUP_THRES (%x).\n", mb[1]);
+               break;
 
+       case MBA_LOOP_INIT_ERR:
+               ql_log(ql_log_warn, vha, 0x507b,
+                   "LOOP INIT ERROR (%x).\n", mb[1]);
+               ha->isp_ops->fw_dump(vha, 1);
+               set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
                break;
+
        case MBA_LIP_OCCURRED:          /* Loop Initialization Procedure */
                ql_dbg(ql_dbg_async, vha, 0x5009,
                    "LIP occurred (%x).\n", mb[1]);