diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_scsi.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_scsi.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index 44995de74a62..959067c71060 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c | |||
@@ -5376,16 +5376,24 @@ lpfc_host_reset_handler(struct scsi_cmnd *cmnd) | |||
5376 | struct lpfc_hba *phba = vport->phba; | 5376 | struct lpfc_hba *phba = vport->phba; |
5377 | int rc, ret = SUCCESS; | 5377 | int rc, ret = SUCCESS; |
5378 | 5378 | ||
5379 | lpfc_printf_vlog(vport, KERN_ERR, LOG_FCP, | ||
5380 | "3172 SCSI layer issued Host Reset Data:\n"); | ||
5381 | |||
5379 | lpfc_offline_prep(phba, LPFC_MBX_WAIT); | 5382 | lpfc_offline_prep(phba, LPFC_MBX_WAIT); |
5380 | lpfc_offline(phba); | 5383 | lpfc_offline(phba); |
5381 | rc = lpfc_sli_brdrestart(phba); | 5384 | rc = lpfc_sli_brdrestart(phba); |
5382 | if (rc) | 5385 | if (rc) |
5383 | ret = FAILED; | 5386 | ret = FAILED; |
5384 | lpfc_online(phba); | 5387 | rc = lpfc_online(phba); |
5388 | if (rc) | ||
5389 | ret = FAILED; | ||
5385 | lpfc_unblock_mgmt_io(phba); | 5390 | lpfc_unblock_mgmt_io(phba); |
5386 | 5391 | ||
5387 | lpfc_printf_log(phba, KERN_ERR, LOG_FCP, | 5392 | if (ret == FAILED) { |
5388 | "3172 SCSI layer issued Host Reset Data: x%x\n", ret); | 5393 | lpfc_printf_vlog(vport, KERN_ERR, LOG_FCP, |
5394 | "3323 Failed host reset, bring it offline\n"); | ||
5395 | lpfc_sli4_offline_eratt(phba); | ||
5396 | } | ||
5389 | return ret; | 5397 | return ret; |
5390 | } | 5398 | } |
5391 | 5399 | ||