Skip to content

Commit

Permalink
IB/srp: Fix memory leak on reconnect
Browse files Browse the repository at this point in the history
SRP reallocates the IU buffers for tx_ring and rx_ring without freeing
the old buffers when it reconnects to a target.  Fix this by keeping
the old IU buffers around.

Signed-off-by: Vu Pham <vu@mellanox.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
  • Loading branch information
Vu Pham authored and Roland Dreier committed Nov 29, 2006
1 parent 04699a1 commit d2fcea7
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/infiniband/ulp/srp/ib_srp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1176,9 +1176,11 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
break;
}

target->status = srp_alloc_iu_bufs(target);
if (target->status)
break;
if (!target->rx_ring[0]) {
target->status = srp_alloc_iu_bufs(target);
if (target->status)
break;
}

qp_attr = kmalloc(sizeof *qp_attr, GFP_KERNEL);
if (!qp_attr) {
Expand Down

0 comments on commit d2fcea7

Please sign in to comment.