diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-04-25 09:51:30 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-05-06 10:33:12 -0400 |
commit | 1dcb58e5680b6673bf984696d3d8b9033b6e41bf (patch) | |
tree | 7421ad398ef2ee04d2c7b22bb975219593885f01 /drivers/scsi/lpfc/lpfc_els.c | |
parent | e555db930f7512491485cfc43df4306192835373 (diff) |
[SCSI] lpfc 8.1.12 : Misc bug fixes and code cleanup
Misc bug fixes and code cleanup:
- Fix system hang while running on systems with IOMMU
- Fix use after free issues with rports
- Don't free mailbox structure if it's still on the mboxq list
- Decrement txq_cnt rather than txcmplq_cnt when parsing the txq list
- Use msleep for long delays to prevent soft lockup bug check
- Don't remove node during dev_loss_tmo if discovery is active
- Fix memory leaks in get/reset statistics and link attention paths
- Fixed lpfc_ns_rsp to handle entire GID_FT response.
- mbox interface should use MAILBOX_CMD_SIZE rather than sizeof(MAILBOX_t)
- Fixed bug check in add_timer.
- Fixup messages 0116, 0117, and 0128 to report ELS I/O tag.
- Remove unused parameter to lpfc_cleanup.
- Change mailbox timeout handling.
- Remove unused buflist. Code cleanup.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_els.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index a5f33a0dd4e7..e1c61dbb3d0f 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -222,16 +222,16 @@ lpfc_prep_els_iocb(struct lpfc_hba * phba, uint8_t expectRsp, | |||
222 | /* Xmit ELS command <elsCmd> to remote NPORT <did> */ | 222 | /* Xmit ELS command <elsCmd> to remote NPORT <did> */ |
223 | lpfc_printf_log(phba, KERN_INFO, LOG_ELS, | 223 | lpfc_printf_log(phba, KERN_INFO, LOG_ELS, |
224 | "%d:0116 Xmit ELS command x%x to remote " | 224 | "%d:0116 Xmit ELS command x%x to remote " |
225 | "NPORT x%x Data: x%x x%x\n", | 225 | "NPORT x%x I/O tag: x%x, HBA state: x%x\n", |
226 | phba->brd_no, elscmd, | 226 | phba->brd_no, elscmd, |
227 | did, icmd->ulpIoTag, phba->hba_state); | 227 | did, elsiocb->iotag, phba->hba_state); |
228 | } else { | 228 | } else { |
229 | /* Xmit ELS response <elsCmd> to remote NPORT <did> */ | 229 | /* Xmit ELS response <elsCmd> to remote NPORT <did> */ |
230 | lpfc_printf_log(phba, KERN_INFO, LOG_ELS, | 230 | lpfc_printf_log(phba, KERN_INFO, LOG_ELS, |
231 | "%d:0117 Xmit ELS response x%x to remote " | 231 | "%d:0117 Xmit ELS response x%x to remote " |
232 | "NPORT x%x Data: x%x x%x\n", | 232 | "NPORT x%x I/O tag: x%x, size: x%x\n", |
233 | phba->brd_no, elscmd, | 233 | phba->brd_no, elscmd, |
234 | ndlp->nlp_DID, icmd->ulpIoTag, cmdSize); | 234 | ndlp->nlp_DID, elsiocb->iotag, cmdSize); |
235 | } | 235 | } |
236 | 236 | ||
237 | return elsiocb; | 237 | return elsiocb; |
@@ -2017,10 +2017,9 @@ lpfc_els_rsp_acc(struct lpfc_hba * phba, uint32_t flag, | |||
2017 | 2017 | ||
2018 | /* Xmit ELS ACC response tag <ulpIoTag> */ | 2018 | /* Xmit ELS ACC response tag <ulpIoTag> */ |
2019 | lpfc_printf_log(phba, KERN_INFO, LOG_ELS, | 2019 | lpfc_printf_log(phba, KERN_INFO, LOG_ELS, |
2020 | "%d:0128 Xmit ELS ACC response tag x%x " | 2020 | "%d:0128 Xmit ELS ACC response tag x%x, XRI: x%x, " |
2021 | "Data: x%x x%x x%x x%x x%x\n", | 2021 | "DID: x%x, nlp_flag: x%x nlp_state: x%x RPI: x%x\n", |
2022 | phba->brd_no, | 2022 | phba->brd_no, elsiocb->iotag, |
2023 | elsiocb->iocb.ulpIoTag, | ||
2024 | elsiocb->iocb.ulpContext, ndlp->nlp_DID, | 2023 | elsiocb->iocb.ulpContext, ndlp->nlp_DID, |
2025 | ndlp->nlp_flag, ndlp->nlp_state, ndlp->nlp_rpi); | 2024 | ndlp->nlp_flag, ndlp->nlp_state, ndlp->nlp_rpi); |
2026 | 2025 | ||
@@ -3363,7 +3362,7 @@ lpfc_els_flush_cmd(struct lpfc_hba * phba) | |||
3363 | els_command = *elscmd; | 3362 | els_command = *elscmd; |
3364 | 3363 | ||
3365 | list_del(&piocb->list); | 3364 | list_del(&piocb->list); |
3366 | pring->txcmplq_cnt--; | 3365 | pring->txq_cnt--; |
3367 | 3366 | ||
3368 | cmd->ulpStatus = IOSTAT_LOCAL_REJECT; | 3367 | cmd->ulpStatus = IOSTAT_LOCAL_REJECT; |
3369 | cmd->un.ulpWord[4] = IOERR_SLI_ABORTED; | 3368 | cmd->un.ulpWord[4] = IOERR_SLI_ABORTED; |