aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/qla2xxx/qla_mbx.c
diff options
context:
space:
mode:
authorSeokmann Ju <seokmann.ju@qlogic.com>2009-03-24 09:08:18 -0700
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-04-03 09:22:53 -0500
commitb9b12f73dff15915914f51bbff7620f5dd49b3de (patch)
tree870f134a8d3c2bfe35dc112be6f1d43b2e32d8e6 /drivers/scsi/qla2xxx/qla_mbx.c
parent6749ce362d38b47bd4669ccc0cafcc0014bff6e9 (diff)
[SCSI] qla2xxx: Correct several PCI-EEH issues.
In addition to checking for potentially unnecessary iomem readX()/writeX() operations, a pci_channel_io_perm_failure should not trigger a full internal removal. Found during additional testing with pSeries blade systems. Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 951537e3029..e67c1660bf4 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -45,6 +45,9 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
struct qla_hw_data *ha = vha->hw;
scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
+ if (ha->pdev->error_state > pci_channel_io_frozen)
+ return QLA_FUNCTION_TIMEOUT;
+
reg = ha->iobase;
io_lock_on = base_vha->flags.init_done;