|
@@ -674,6 +674,9 @@ lpfc_do_offline(struct lpfc_hba *phba, uint32_t type)
|
|
|
int i;
|
|
|
int rc;
|
|
|
|
|
|
+ if (phba->pport->fc_flag & FC_OFFLINE_MODE)
|
|
|
+ return 0;
|
|
|
+
|
|
|
init_completion(&online_compl);
|
|
|
rc = lpfc_workq_post_event(phba, &status, &online_compl,
|
|
|
LPFC_EVT_OFFLINE_PREP);
|
|
@@ -741,7 +744,8 @@ lpfc_selective_reset(struct lpfc_hba *phba)
|
|
|
int status = 0;
|
|
|
int rc;
|
|
|
|
|
|
- if (!phba->cfg_enable_hba_reset)
|
|
|
+ if ((!phba->cfg_enable_hba_reset) ||
|
|
|
+ (phba->pport->fc_flag & FC_OFFLINE_MODE))
|
|
|
return -EACCES;
|
|
|
|
|
|
status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
|
|
@@ -895,6 +899,7 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
|
|
|
pci_disable_sriov(pdev);
|
|
|
phba->cfg_sriov_nr_virtfn = 0;
|
|
|
}
|
|
|
+
|
|
|
status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
|
|
|
|
|
|
if (status != 0)
|