diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-10-27 13:38:11 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-11 19:22:33 -0500 |
commit | 7af670510df343db55752a2210dcf4fc09f59fbb (patch) | |
tree | 59baacb490afb7dcd955ad8daca734eae7d8cef8 /drivers/scsi/lpfc/lpfc_init.c | |
parent | 76bb24efdc5de8eead0ccc07ec7e3b59a4ca0f15 (diff) |
[SCSI] lpfc 8.2.3 : Temperature handling fix
Temperature handling fix - return proper error code indicator for applications
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index db96f7504a14..0615af41c7b5 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -246,6 +246,15 @@ lpfc_config_port_post(struct lpfc_hba *phba) | |||
246 | int i, j; | 246 | int i, j; |
247 | int rc; | 247 | int rc; |
248 | 248 | ||
249 | spin_lock_irq(&phba->hbalock); | ||
250 | /* | ||
251 | * If the Config port completed correctly the HBA is not | ||
252 | * over heated any more. | ||
253 | */ | ||
254 | if (phba->over_temp_state == HBA_OVER_TEMP) | ||
255 | phba->over_temp_state = HBA_NORMAL_TEMP; | ||
256 | spin_unlock_irq(&phba->hbalock); | ||
257 | |||
249 | pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); | 258 | pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); |
250 | if (!pmb) { | 259 | if (!pmb) { |
251 | phba->link_state = LPFC_HBA_ERROR; | 260 | phba->link_state = LPFC_HBA_ERROR; |
@@ -703,7 +712,10 @@ lpfc_handle_eratt(struct lpfc_hba *phba) | |||
703 | SCSI_NL_VID_TYPE_PCI | 712 | SCSI_NL_VID_TYPE_PCI |
704 | | PCI_VENDOR_ID_EMULEX); | 713 | | PCI_VENDOR_ID_EMULEX); |
705 | 714 | ||
715 | spin_lock_irq(&phba->hbalock); | ||
706 | psli->sli_flag &= ~LPFC_SLI2_ACTIVE; | 716 | psli->sli_flag &= ~LPFC_SLI2_ACTIVE; |
717 | phba->over_temp_state = HBA_OVER_TEMP; | ||
718 | spin_unlock_irq(&phba->hbalock); | ||
707 | lpfc_offline_prep(phba); | 719 | lpfc_offline_prep(phba); |
708 | lpfc_offline(phba); | 720 | lpfc_offline(phba); |
709 | lpfc_unblock_mgmt_io(phba); | 721 | lpfc_unblock_mgmt_io(phba); |