diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index a4128e19338a..9fb6960a8ada 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -2104,6 +2104,10 @@ lpfc_sli_issue_mbox(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmbox, uint32_t flag) | |||
2104 | volatile uint32_t word0, ldata; | 2104 | volatile uint32_t word0, ldata; |
2105 | void __iomem *to_slim; | 2105 | void __iomem *to_slim; |
2106 | 2106 | ||
2107 | /* If the PCI channel is in offline state, do not post mbox. */ | ||
2108 | if (unlikely(pci_channel_offline(phba->pcidev))) | ||
2109 | return MBX_NOT_FINISHED; | ||
2110 | |||
2107 | psli = &phba->sli; | 2111 | psli = &phba->sli; |
2108 | 2112 | ||
2109 | spin_lock_irqsave(phba->host->host_lock, drvr_flag); | 2113 | spin_lock_irqsave(phba->host->host_lock, drvr_flag); |
@@ -2407,6 +2411,10 @@ lpfc_sli_issue_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, | |||
2407 | struct lpfc_iocbq *nextiocb; | 2411 | struct lpfc_iocbq *nextiocb; |
2408 | IOCB_t *iocb; | 2412 | IOCB_t *iocb; |
2409 | 2413 | ||
2414 | /* If the PCI channel is in offline state, do not post iocbs. */ | ||
2415 | if (unlikely(pci_channel_offline(phba->pcidev))) | ||
2416 | return IOCB_ERROR; | ||
2417 | |||
2410 | /* | 2418 | /* |
2411 | * We should never get an IOCB if we are in a < LINK_DOWN state | 2419 | * We should never get an IOCB if we are in a < LINK_DOWN state |
2412 | */ | 2420 | */ |
@@ -3154,6 +3162,10 @@ lpfc_intr_handler(int irq, void *dev_id) | |||
3154 | if (unlikely(!phba)) | 3162 | if (unlikely(!phba)) |
3155 | return IRQ_NONE; | 3163 | return IRQ_NONE; |
3156 | 3164 | ||
3165 | /* If the pci channel is offline, ignore all the interrupts. */ | ||
3166 | if (unlikely(pci_channel_offline(phba->pcidev))) | ||
3167 | return IRQ_NONE; | ||
3168 | |||
3157 | phba->sli.slistat.sli_intr++; | 3169 | phba->sli.slistat.sli_intr++; |
3158 | 3170 | ||
3159 | /* | 3171 | /* |