From: Roland Dreier Free all unclaimed MAD receive buffers when userspace closes our file so we don't leak memory. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton --- drivers/infiniband/core/user_mad.c | 4 ++++ 1 files changed, 4 insertions(+) diff -puN drivers/infiniband/core/user_mad.c~ib-fix-potential-ib_umad-leak drivers/infiniband/core/user_mad.c --- 25/drivers/infiniband/core/user_mad.c~ib-fix-potential-ib_umad-leak 2005-05-25 12:30:23.000000000 -0700 +++ 25-akpm/drivers/infiniband/core/user_mad.c 2005-05-25 12:30:23.000000000 -0700 @@ -499,6 +499,7 @@ static int ib_umad_open(struct inode *in static int ib_umad_close(struct inode *inode, struct file *filp) { struct ib_umad_file *file = filp->private_data; + struct ib_umad_packet *packet, *tmp; int i; for (i = 0; i < IB_UMAD_MAX_AGENTS; ++i) @@ -507,6 +508,9 @@ static int ib_umad_close(struct inode *i ib_unregister_mad_agent(file->agent[i]); } + list_for_each_entry_safe(packet, tmp, &file->recv_list, list) + kfree(packet); + kfree(file); return 0; _