scsi: qla2xxx: Fix driver reload for ISP82xx
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> Reviewed-by: Ewan D. Milne <emilne@redhat.com> Link: https://lore.kernel.org/r/20190830222402.23688-4-hmadhani@marvell.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
cb92cb1657
commit
32a13df216
@ -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)) {
|
if ((!abort_active && io_lock_on) || IS_NOPOLLING_TYPE(ha)) {
|
||||||
set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
|
set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
|
||||||
|
|
||||||
if (IS_P3P_TYPE(ha)) {
|
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;
|
|
||||||
}
|
|
||||||
WRT_REG_DWORD(®->isp82.hint, HINT_MBX_INT_PENDING);
|
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);
|
WRT_REG_DWORD(®->isp24.hccr, HCCRX_SET_HOST_INT);
|
||||||
else
|
else
|
||||||
WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT);
|
WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT);
|
||||||
|
@ -2287,7 +2287,8 @@ qla82xx_disable_intrs(struct qla_hw_data *ha)
|
|||||||
{
|
{
|
||||||
scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
|
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);
|
spin_lock_irq(&ha->hardware_lock);
|
||||||
if (IS_QLA8044(ha))
|
if (IS_QLA8044(ha))
|
||||||
|
Loading…
Reference in New Issue
Block a user