diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-04-25 09:51:38 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-05-06 10:33:13 -0400 |
commit | 07951076aefa4194e1dbf1d8c89eaff040c45155 (patch) | |
tree | 636052abb3f9f2a1bdc0d9adfec130b224a02289 /drivers/scsi/lpfc/lpfc_crtn.h | |
parent | 1dcb58e5680b6673bf984696d3d8b9033b6e41bf (diff) |
[SCSI] lpfc 8.1.12 : Modify ELS abort handling to prevent double completion
Modify ELS abort handling to prevent double completion
Rework portions of ELS abort handling to prevent double completion
- Rework ELS iotags and correct abort routine
- Move the (badly wrong) ELS completion logic from the initial ELS
abort request function to the ELS completion function.
- Fixup the iocb completion handling to account for the ELS abort
completions.
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_crtn.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_crtn.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h index 1251788ce2a3..4132a2dfac54 100644 --- a/drivers/scsi/lpfc/lpfc_crtn.h +++ b/drivers/scsi/lpfc/lpfc_crtn.h | |||
@@ -66,8 +66,7 @@ int lpfc_disc_state_machine(struct lpfc_hba *, struct lpfc_nodelist *, void *, | |||
66 | 66 | ||
67 | int lpfc_check_sparm(struct lpfc_hba *, struct lpfc_nodelist *, | 67 | int lpfc_check_sparm(struct lpfc_hba *, struct lpfc_nodelist *, |
68 | struct serv_parm *, uint32_t); | 68 | struct serv_parm *, uint32_t); |
69 | int lpfc_els_abort(struct lpfc_hba *, struct lpfc_nodelist * ndlp, | 69 | int lpfc_els_abort(struct lpfc_hba *, struct lpfc_nodelist * ndlp); |
70 | int); | ||
71 | int lpfc_els_abort_flogi(struct lpfc_hba *); | 70 | int lpfc_els_abort_flogi(struct lpfc_hba *); |
72 | int lpfc_initial_flogi(struct lpfc_hba *); | 71 | int lpfc_initial_flogi(struct lpfc_hba *); |
73 | int lpfc_issue_els_plogi(struct lpfc_hba *, uint32_t, uint8_t); | 72 | int lpfc_issue_els_plogi(struct lpfc_hba *, uint32_t, uint8_t); |
@@ -162,8 +161,8 @@ int lpfc_sli_ringpostbuf_put(struct lpfc_hba *, struct lpfc_sli_ring *, | |||
162 | struct lpfc_dmabuf *lpfc_sli_ringpostbuf_get(struct lpfc_hba *, | 161 | struct lpfc_dmabuf *lpfc_sli_ringpostbuf_get(struct lpfc_hba *, |
163 | struct lpfc_sli_ring *, | 162 | struct lpfc_sli_ring *, |
164 | dma_addr_t); | 163 | dma_addr_t); |
165 | int lpfc_sli_issue_abort_iotag32(struct lpfc_hba *, struct lpfc_sli_ring *, | 164 | int lpfc_sli_issue_abort_iotag(struct lpfc_hba *, struct lpfc_sli_ring *, |
166 | struct lpfc_iocbq *); | 165 | struct lpfc_iocbq *); |
167 | int lpfc_sli_sum_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, | 166 | int lpfc_sli_sum_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, |
168 | uint64_t, lpfc_ctx_cmd); | 167 | uint64_t, lpfc_ctx_cmd); |
169 | int lpfc_sli_abort_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, | 168 | int lpfc_sli_abort_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, |