aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 8c30f5707f95..65cd3fe62200 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -906,7 +906,7 @@ lpfc_hb_timeout_handler(struct lpfc_hba *phba)
906 "taking this port offline.\n"); 906 "taking this port offline.\n");
907 907
908 spin_lock_irq(&phba->hbalock); 908 spin_lock_irq(&phba->hbalock);
909 psli->sli_flag &= ~LPFC_SLI2_ACTIVE; 909 psli->sli_flag &= ~LPFC_SLI_ACTIVE;
910 spin_unlock_irq(&phba->hbalock); 910 spin_unlock_irq(&phba->hbalock);
911 911
912 lpfc_offline_prep(phba); 912 lpfc_offline_prep(phba);
@@ -931,13 +931,15 @@ lpfc_offline_eratt(struct lpfc_hba *phba)
931 struct lpfc_sli *psli = &phba->sli; 931 struct lpfc_sli *psli = &phba->sli;
932 932
933 spin_lock_irq(&phba->hbalock); 933 spin_lock_irq(&phba->hbalock);
934 psli->sli_flag &= ~LPFC_SLI2_ACTIVE; 934 psli->sli_flag &= ~LPFC_SLI_ACTIVE;
935 spin_unlock_irq(&phba->hbalock); 935 spin_unlock_irq(&phba->hbalock);
936 lpfc_offline_prep(phba); 936 lpfc_offline_prep(phba);
937 937
938 lpfc_offline(phba); 938 lpfc_offline(phba);
939 lpfc_reset_barrier(phba); 939 lpfc_reset_barrier(phba);
940 spin_lock_irq(&phba->hbalock);
940 lpfc_sli_brdreset(phba); 941 lpfc_sli_brdreset(phba);
942 spin_unlock_irq(&phba->hbalock);
941 lpfc_hba_down_post(phba); 943 lpfc_hba_down_post(phba);
942 lpfc_sli_brdready(phba, HS_MBRDY); 944 lpfc_sli_brdready(phba, HS_MBRDY);
943 lpfc_unblock_mgmt_io(phba); 945 lpfc_unblock_mgmt_io(phba);
@@ -980,6 +982,16 @@ lpfc_handle_deferred_eratt(struct lpfc_hba *phba)
980 struct lpfc_sli_ring *pring; 982 struct lpfc_sli_ring *pring;
981 struct lpfc_sli *psli = &phba->sli; 983 struct lpfc_sli *psli = &phba->sli;
982 984
985 /* If the pci channel is offline, ignore possible errors,
986 * since we cannot communicate with the pci card anyway.
987 */
988 if (pci_channel_offline(phba->pcidev)) {
989 spin_lock_irq(&phba->hbalock);
990 phba->hba_flag &= ~DEFER_ERATT;
991 spin_unlock_irq(&phba->hbalock);
992 return;
993 }
994
983 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 995 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
984 "0479 Deferred Adapter Hardware Error " 996 "0479 Deferred Adapter Hardware Error "
985 "Data: x%x x%x x%x\n", 997 "Data: x%x x%x x%x\n",
@@ -987,7 +999,7 @@ lpfc_handle_deferred_eratt(struct lpfc_hba *phba)
987 phba->work_status[0], phba->work_status[1]); 999 phba->work_status[0], phba->work_status[1]);
988 1000
989 spin_lock_irq(&phba->hbalock); 1001 spin_lock_irq(&phba->hbalock);
990 psli->sli_flag &= ~LPFC_SLI2_ACTIVE; 1002 psli->sli_flag &= ~LPFC_SLI_ACTIVE;
991 spin_unlock_irq(&phba->hbalock); 1003 spin_unlock_irq(&phba->hbalock);
992 1004
993 1005
@@ -1097,7 +1109,7 @@ lpfc_handle_eratt_s3(struct lpfc_hba *phba)
1097 phba->work_status[0], phba->work_status[1]); 1109 phba->work_status[0], phba->work_status[1]);
1098 1110
1099 spin_lock_irq(&phba->hbalock); 1111 spin_lock_irq(&phba->hbalock);
1100 psli->sli_flag &= ~LPFC_SLI2_ACTIVE; 1112 psli->sli_flag &= ~LPFC_SLI_ACTIVE;
1101 spin_unlock_irq(&phba->hbalock); 1113 spin_unlock_irq(&phba->hbalock);
1102 1114
1103 /* 1115 /*