diff options
author | James Smart <James.Smart@Emulex.Com> | 2008-08-24 21:50:11 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-10-13 09:28:54 -0400 |
commit | a8e497d51e6adb2dd6ef307ae76f3433a4dbe895 (patch) | |
tree | 35c1a66bcd2fc8903cc7f25cfbafb919f5cd7b9a /drivers/scsi/lpfc/lpfc_init.c | |
parent | 84774a4d0a4dba8a5767da6c58ea5a8c5b0cfe25 (diff) |
[SCSI] lpfc 8.2.8 : Add support for PCI-EEH permanent disabling
Add support for PCI-EEH permanent-disabling a device via lpfc_pci_remove_one()
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 41a8c13e6950..333166b17908 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -2661,8 +2661,15 @@ static pci_ers_result_t lpfc_io_error_detected(struct pci_dev *pdev, | |||
2661 | struct lpfc_sli *psli = &phba->sli; | 2661 | struct lpfc_sli *psli = &phba->sli; |
2662 | struct lpfc_sli_ring *pring; | 2662 | struct lpfc_sli_ring *pring; |
2663 | 2663 | ||
2664 | if (state == pci_channel_io_perm_failure) | 2664 | if (state == pci_channel_io_perm_failure) { |
2665 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, | ||
2666 | "0472 PCI channel I/O permanent failure\n"); | ||
2667 | /* Block all SCSI devices' I/Os on the host */ | ||
2668 | lpfc_scsi_dev_block(phba); | ||
2669 | /* Clean up all driver's outstanding SCSI I/Os */ | ||
2670 | lpfc_sli_flush_fcp_rings(phba); | ||
2665 | return PCI_ERS_RESULT_DISCONNECT; | 2671 | return PCI_ERS_RESULT_DISCONNECT; |
2672 | } | ||
2666 | 2673 | ||
2667 | pci_disable_device(pdev); | 2674 | pci_disable_device(pdev); |
2668 | /* | 2675 | /* |