diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_cm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c index 114b802771ad..fe08eb57c99f 100644 --- a/drivers/infiniband/hw/nes/nes_cm.c +++ b/drivers/infiniband/hw/nes/nes_cm.c | |||
@@ -2456,6 +2456,7 @@ int nes_cm_disconn(struct nes_qp *nesqp) | |||
2456 | if (nesqp->disconn_pending == 0) { | 2456 | if (nesqp->disconn_pending == 0) { |
2457 | nesqp->disconn_pending++; | 2457 | nesqp->disconn_pending++; |
2458 | spin_unlock_irqrestore(&nesqp->lock, flags); | 2458 | spin_unlock_irqrestore(&nesqp->lock, flags); |
2459 | nes_add_ref(&nesqp->ibqp); | ||
2459 | /* init our disconnect work element, to */ | 2460 | /* init our disconnect work element, to */ |
2460 | INIT_WORK(&nesqp->disconn_work, nes_disconnect_worker); | 2461 | INIT_WORK(&nesqp->disconn_work, nes_disconnect_worker); |
2461 | 2462 | ||
@@ -2477,6 +2478,7 @@ static void nes_disconnect_worker(struct work_struct *work) | |||
2477 | nes_debug(NES_DBG_CM, "processing AEQE id 0x%04X for QP%u.\n", | 2478 | nes_debug(NES_DBG_CM, "processing AEQE id 0x%04X for QP%u.\n", |
2478 | nesqp->last_aeq, nesqp->hwqp.qp_id); | 2479 | nesqp->last_aeq, nesqp->hwqp.qp_id); |
2479 | nes_cm_disconn_true(nesqp); | 2480 | nes_cm_disconn_true(nesqp); |
2481 | nes_rem_ref(&nesqp->ibqp); | ||
2480 | } | 2482 | } |
2481 | 2483 | ||
2482 | 2484 | ||