lpfc 8.3.39: Fixed not returning FAILED status when SCSI invoking host reset handler failed
Subsystems (2)
PATCH 15/22 lpfc 8.3.39: Fixed not returning FAILED status when SCSI invoking host reset handler failed
Fixed not returning FAILED status when SCSI invoking host reset handler failed
Signed-off-by James Smart <[email protected]>
---
lpfc_crtn.h | 1 + lpfc_init.c | 2 +- lpfc_scsi.c | 14 +++++++++++--- 3 files changed, 13 insertions(+), 4 deletions(-)
drivers/scsi/lpfc/lpfc_crtn.h +1 -0
@@ -470,3 +470,4 @@ int lpfc_sli4_xri_sgl_update(struct lpfcvoid lpfc_free_sgl_list (struct lpfc_hba *,struct list_head *);uint32_t lpfc_sli_port_speed_get (struct lpfc_hba *);int lpfc_sli4_request_firmware_update (struct lpfc_hba *,uint8_t ); +void lpfc_sli4_offline_eratt (struct lpfc_hba *);
drivers/scsi/lpfc/lpfc_init.c +1 -1
@@ -1202,7 +1202,7 @@ lpfc_offline_eratt(struct lpfc_hba *phba* This routine is called to bring a SLI4 HBA offline when HBA hardware error * other than Port Error 6 has been detected. **/ -static void +void lpfc_sli4_offline_eratt (struct lpfc_hba *phba) {lpfc_offline_prep (phba,LPFC_MBX_NO_WAIT );
drivers/scsi/lpfc/lpfc_scsi.c +11 -3
@@ -5376,16 +5376,24 @@ lpfc_host_reset_handler(struct scsi_cmndstruct lpfc_hba *phba = vport->phba;int rc, ret =SUCCESS ; +lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP , +"3172 SCSI layer issued Host Reset Data:\n" ); +lpfc_offline_prep (phba,LPFC_MBX_WAIT );lpfc_offline (phba); rc =lpfc_sli_brdrestart (phba);if (rc) ret =FAILED ; -lpfc_online (phba); + rc =lpfc_online (phba); +if (rc) + ret =FAILED ;lpfc_unblock_mgmt_io (phba); -lpfc_printf_log (phba,KERN_ERR ,LOG_FCP , -"3172 SCSI layer issued Host Reset Data: x%x\n" , ret); +if (ret ==FAILED ) { +lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP , +"3323 Failed host reset, bring it offline\n" ); +lpfc_sli4_offline_eratt (phba); + }return ret; }