Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bddd2d65 authored by Lalit Chandivade's avatar Lalit Chandivade Committed by James Bottomley
Browse files

[SCSI] qla2xxx: Update to AER support, do early abort commands.



Currently the IOs are returned back in slot reset, this
could be late and can cause error handler to invoke.
If error handler invokes, eh_abort fails and escalate to
device/bus/host resets causing issues.
The commands need to be returned back to upper layer in
io_error_detected.

Signed-off-by: default avatarGiridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 77e334d2
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -3835,6 +3835,7 @@ qla2x00_abort_isp_cleanup(scsi_qla_host_t *vha)
			    LOOP_DOWN_TIME);
	}

	if (!ha->flags.eeh_busy) {
		/* Make sure for ISP 82XX IO DMA is complete */
		if (IS_QLA82XX(ha)) {
			if (qla2x00_eh_wait_for_pending_commands(vha, 0, 0,
@@ -3847,6 +3848,7 @@ qla2x00_abort_isp_cleanup(scsi_qla_host_t *vha)
		/* Requeue all commands in outstanding command list. */
		qla2x00_abort_all_cmds(vha, DID_RESET << 16);
	}
}

/*
*  qla2x00_abort_isp
+2 −0
Original line number Diff line number Diff line
@@ -3773,6 +3773,8 @@ qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
		}
		qla2x00_free_irqs(vha);
		pci_disable_device(pdev);
		/* Return back all IOs */
		qla2x00_abort_all_cmds(vha, DID_RESET << 16);
		return PCI_ERS_RESULT_NEED_RESET;
	case pci_channel_io_perm_failure:
		ha->flags.pci_channel_io_perm_failure = 1;