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:
Tatyana Nikolova 2011-12-05 11:39:12 -06:00 коммит произвёл Roland Dreier
Родитель b0fda90f2a
Коммит 196f40c846
2 изменённых файлов: 1 добавлений и 4 удалений

Просмотреть файл

@ -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;