diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_nportdisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_nportdisc.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index 9b35eaac781d..507a6af56f42 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c | |||
@@ -187,10 +187,8 @@ lpfc_els_abort(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, | |||
187 | spin_unlock_irq(phba->host->host_lock); | 187 | spin_unlock_irq(phba->host->host_lock); |
188 | (iocb->iocb_cmpl) (phba, iocb, iocb); | 188 | (iocb->iocb_cmpl) (phba, iocb, iocb); |
189 | spin_lock_irq(phba->host->host_lock); | 189 | spin_lock_irq(phba->host->host_lock); |
190 | } else { | 190 | } else |
191 | list_add_tail(&iocb->list, | 191 | lpfc_sli_release_iocbq(phba, iocb); |
192 | &phba->lpfc_iocb_list); | ||
193 | } | ||
194 | break; | 192 | break; |
195 | } | 193 | } |
196 | } | 194 | } |
@@ -232,10 +230,8 @@ lpfc_els_abort(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, | |||
232 | spin_unlock_irq(phba->host->host_lock); | 230 | spin_unlock_irq(phba->host->host_lock); |
233 | (iocb->iocb_cmpl) (phba, iocb, iocb); | 231 | (iocb->iocb_cmpl) (phba, iocb, iocb); |
234 | spin_lock_irq(phba->host->host_lock); | 232 | spin_lock_irq(phba->host->host_lock); |
235 | } else { | 233 | } else |
236 | list_add_tail(&iocb->list, | 234 | lpfc_sli_release_iocbq(phba, iocb); |
237 | &phba->lpfc_iocb_list); | ||
238 | } | ||
239 | break; | 235 | break; |
240 | } | 236 | } |
241 | } | 237 | } |
@@ -1086,11 +1082,7 @@ lpfc_cmpl_reglogin_reglogin_issue(struct lpfc_hba * phba, | |||
1086 | return (ndlp->nlp_state); | 1082 | return (ndlp->nlp_state); |
1087 | } | 1083 | } |
1088 | 1084 | ||
1089 | if (ndlp->nlp_rpi != 0) | ||
1090 | lpfc_findnode_remove_rpi(phba, ndlp->nlp_rpi); | ||
1091 | |||
1092 | ndlp->nlp_rpi = mb->un.varWords[0]; | 1085 | ndlp->nlp_rpi = mb->un.varWords[0]; |
1093 | lpfc_addnode_rpi(phba, ndlp, ndlp->nlp_rpi); | ||
1094 | 1086 | ||
1095 | /* Only if we are not a fabric nport do we issue PRLI */ | 1087 | /* Only if we are not a fabric nport do we issue PRLI */ |
1096 | if (!(ndlp->nlp_type & NLP_FABRIC)) { | 1088 | if (!(ndlp->nlp_type & NLP_FABRIC)) { |
@@ -1593,12 +1585,7 @@ lpfc_cmpl_reglogin_npr_node(struct lpfc_hba * phba, | |||
1593 | pmb = (LPFC_MBOXQ_t *) arg; | 1585 | pmb = (LPFC_MBOXQ_t *) arg; |
1594 | mb = &pmb->mb; | 1586 | mb = &pmb->mb; |
1595 | 1587 | ||
1596 | /* save rpi */ | ||
1597 | if (ndlp->nlp_rpi != 0) | ||
1598 | lpfc_findnode_remove_rpi(phba, ndlp->nlp_rpi); | ||
1599 | |||
1600 | ndlp->nlp_rpi = mb->un.varWords[0]; | 1588 | ndlp->nlp_rpi = mb->un.varWords[0]; |
1601 | lpfc_addnode_rpi(phba, ndlp, ndlp->nlp_rpi); | ||
1602 | 1589 | ||
1603 | return (ndlp->nlp_state); | 1590 | return (ndlp->nlp_state); |
1604 | } | 1591 | } |