Commit d2fcea7d authored by Vu Pham's avatar Vu Pham Committed by Roland Dreier

IB/srp: Fix memory leak on reconnect

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: default avatarVu Pham <vu@mellanox.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 04699a1f
...@@ -1176,9 +1176,11 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event) ...@@ -1176,9 +1176,11 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
break; break;
} }
target->status = srp_alloc_iu_bufs(target); if (!target->rx_ring[0]) {
if (target->status) target->status = srp_alloc_iu_bufs(target);
break; if (target->status)
break;
}
qp_attr = kmalloc(sizeof *qp_attr, GFP_KERNEL); qp_attr = kmalloc(sizeof *qp_attr, GFP_KERNEL);
if (!qp_attr) { if (!qp_attr) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment