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: Vu Pham <vu@mellanox.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
04699a1f86
commit
d2fcea7d68
1 changed files with 5 additions and 3 deletions
|
@ -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) {
|
||||
|
|
Reference in a new issue