RDMA/nes: Fix terminate during AE
Fix for reset which happens right after sending a terminate message. Terminate timer is not deleted when the connection is closed. Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com> Signed-off-by: Faisal Latif <Faisal.Latif@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
Родитель
b0fda90f2a
Коммит
196f40c846
|
@ -2838,6 +2838,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
|
||||||
issue_disconn = 1;
|
issue_disconn = 1;
|
||||||
issue_close = 1;
|
issue_close = 1;
|
||||||
nesqp->cm_id = NULL;
|
nesqp->cm_id = NULL;
|
||||||
|
del_timer(&nesqp->terminate_timer);
|
||||||
if (nesqp->flush_issued == 0) {
|
if (nesqp->flush_issued == 0) {
|
||||||
nesqp->flush_issued = 1;
|
nesqp->flush_issued = 1;
|
||||||
issue_flush = 1;
|
issue_flush = 1;
|
||||||
|
|
|
@ -3619,10 +3619,6 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NES_AEQE_AEID_LLP_CLOSE_COMPLETE:
|
case NES_AEQE_AEID_LLP_CLOSE_COMPLETE:
|
||||||
if (nesqp->term_flags) {
|
|
||||||
nes_terminate_done(nesqp, 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
spin_lock_irqsave(&nesqp->lock, flags);
|
spin_lock_irqsave(&nesqp->lock, flags);
|
||||||
nesqp->hw_iwarp_state = iwarp_state;
|
nesqp->hw_iwarp_state = iwarp_state;
|
||||||
nesqp->hw_tcp_state = tcp_state;
|
nesqp->hw_tcp_state = tcp_state;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче