Message ID | 20190830222402.23688-4-hmadhani@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | qla2xxx: Bug fixes for the driver | expand |
On Fri, 2019-08-30 at 15:23 -0700, Himanshu Madhani wrote: > HINT_MBX_INT_PENDING is not guaranteed to be cleared by > firmware. Remove check that prevent driver load with ISP82XX. > > Signed-off-by: Quinn Tran <qutran@marvell.com> > Signed-off-by: Himanshu Madhani <hmadhani@marvell.com> > --- > drivers/scsi/qla2xxx/qla_mbx.c | 16 ++-------------- > drivers/scsi/qla2xxx/qla_nx.c | 3 ++- > 2 files changed, 4 insertions(+), 15 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c > index a82b6db2fa9d..4c858e2d0ea8 100644 > --- a/drivers/scsi/qla2xxx/qla_mbx.c > +++ b/drivers/scsi/qla2xxx/qla_mbx.c > @@ -253,21 +253,9 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp) > if ((!abort_active && io_lock_on) || IS_NOPOLLING_TYPE(ha)) { > set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); > > - if (IS_P3P_TYPE(ha)) { > - if (RD_REG_DWORD(®->isp82.hint) & > - HINT_MBX_INT_PENDING) { > - ha->flags.mbox_busy = 0; > - spin_unlock_irqrestore(&ha->hardware_lock, > - flags); > - > - atomic_dec(&ha->num_pend_mbx_stage2); > - ql_dbg(ql_dbg_mbx, vha, 0x1010, > - "Pending mailbox timeout, exiting.\n"); > - rval = QLA_FUNCTION_TIMEOUT; > - goto premature_exit; > - } > + if (IS_P3P_TYPE(ha)) > WRT_REG_DWORD(®->isp82.hint, HINT_MBX_INT_PENDING); > - } else if (IS_FWI2_CAPABLE(ha)) > + else if (IS_FWI2_CAPABLE(ha)) > WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT); > else > WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); > diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c > index a79f8da38abe..2b2028f2383e 100644 > --- a/drivers/scsi/qla2xxx/qla_nx.c > +++ b/drivers/scsi/qla2xxx/qla_nx.c > @@ -2287,7 +2287,8 @@ qla82xx_disable_intrs(struct qla_hw_data *ha) > { > scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); > > - qla82xx_mbx_intr_disable(vha); > + if (ha->interrupts_on) > + qla82xx_mbx_intr_disable(vha); > > spin_lock_irq(&ha->hardware_lock); > if (IS_QLA8044(ha)) Reviewed-by: Ewan D. Milne <emilne@redhat.com>
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index a82b6db2fa9d..4c858e2d0ea8 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -253,21 +253,9 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp) if ((!abort_active && io_lock_on) || IS_NOPOLLING_TYPE(ha)) { set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); - if (IS_P3P_TYPE(ha)) { - if (RD_REG_DWORD(®->isp82.hint) & - HINT_MBX_INT_PENDING) { - ha->flags.mbox_busy = 0; - spin_unlock_irqrestore(&ha->hardware_lock, - flags); - - atomic_dec(&ha->num_pend_mbx_stage2); - ql_dbg(ql_dbg_mbx, vha, 0x1010, - "Pending mailbox timeout, exiting.\n"); - rval = QLA_FUNCTION_TIMEOUT; - goto premature_exit; - } + if (IS_P3P_TYPE(ha)) WRT_REG_DWORD(®->isp82.hint, HINT_MBX_INT_PENDING); - } else if (IS_FWI2_CAPABLE(ha)) + else if (IS_FWI2_CAPABLE(ha)) WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT); else WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c index a79f8da38abe..2b2028f2383e 100644 --- a/drivers/scsi/qla2xxx/qla_nx.c +++ b/drivers/scsi/qla2xxx/qla_nx.c @@ -2287,7 +2287,8 @@ qla82xx_disable_intrs(struct qla_hw_data *ha) { scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); - qla82xx_mbx_intr_disable(vha); + if (ha->interrupts_on) + qla82xx_mbx_intr_disable(vha); spin_lock_irq(&ha->hardware_lock); if (IS_QLA8044(ha))