aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_sli.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c12
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 /*