scsi: qla2xxx: Fix NPIV host enable after chip reset
authorQuinn Tran <quinn.tran@qlogic.com>
Wed, 23 Aug 2017 22:05:03 +0000 (15:05 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 25 Aug 2017 02:29:21 +0000 (22:29 -0400)
For NPIV ports, call configure_hba() so that NPIV ports can proceed to
loop initialization.

Signed-off-by: Quinn Tran <quinn.tran@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_dbg.c
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_mbx.c
drivers/scsi/qla2xxx/qla_mid.c

index 7b74973..7e7cd79 100644 (file)
@@ -41,7 +41,7 @@
  * |                              |                    | 0x70ad-0x70ae  |
  * |                              |                    | 0x70d0-0x70d6 |
  * |                              |                    | 0x70d7-0x70db  |
- * | Task Management              |       0x8042       | 0x8000,0x800b  |
+ * | Task Management              |       0x8042       | 0x8000         |
  * |                              |                    | 0x8019         |
  * |                              |                    | 0x8025,0x8026  |
  * |                              |                    | 0x8031,0x8032  |
index 988fb5d..8f84ced 100644 (file)
@@ -5913,7 +5913,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
 
        if (!status) {
                ql_dbg(ql_dbg_taskm, vha, 0x8022, "%s succeeded.\n", __func__);
-
+               qla2x00_configure_hba(vha);
                spin_lock_irqsave(&ha->vport_slock, flags);
                list_for_each_entry(vp, &ha->vp_list, list) {
                        if (vp->vp_idx) {
index 6164a2c..f101aaa 100644 (file)
@@ -55,6 +55,8 @@ static struct rom_cmd {
        { MBC_GET_RETRY_COUNT },
        { MBC_TRACE_CONTROL },
        { MBC_INITIALIZE_MULTIQ },
+       { MBC_IOCB_COMMAND_A64 },
+       { MBC_GET_ADAPTER_LOOP_ID },
 };
 
 static int is_rom_cmd(uint16_t cmd)
index 608d1ae..c0f8f6c 100644 (file)
@@ -187,6 +187,11 @@ qla24xx_enable_vp(scsi_qla_host_t *vha)
                !(ha->current_topology & ISP_CFG_F)) {
                vha->vp_err_state =  VP_ERR_PORTDWN;
                fc_vport_set_state(vha->fc_vport, FC_VPORT_LINKDOWN);
+               ql_dbg(ql_dbg_taskm, vha, 0x800b,
+                   "%s skip enable. loop_state %x topo %x\n",
+                   __func__, base_vha->loop_state.counter,
+                   ha->current_topology);
+
                goto enable_failed;
        }