From 0b07abf42717da6d0dbb9aee902a6d057a0c3a40 Mon Sep 17 00:00:00 2001 From: Amir Vadai Date: Sun, 16 Aug 2009 16:07:28 +0300 Subject: [PATCH] sdp: fix memory leak in bzcopy Signed-off-by: Amir Vadai --- drivers/infiniband/ulp/sdp/sdp_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 0acf0298c203..577d5693a753 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -1382,7 +1382,7 @@ static inline struct bzcopy_state *sdp_bz_cleanup(struct bzcopy_state *bz) } if (bz->pages) { - for (i = 0; i < bz->cur_page; i++) { + for (i = 0; i < bz->page_cnt; i++) { put_page(bz->pages[i]); } @@ -1578,6 +1578,7 @@ static inline int sdp_bzcopy_get(struct sock *sk, struct sk_buff *skb, if (!sk_wmem_schedule(sk, copy)) return SDP_DO_WAIT_MEM; + /* put_page in skb_release_data() (called by __kfree_skb) */ get_page(bz->pages[bz->cur_page]); skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags, bz->pages[bz->cur_page], bz->cur_offset, -- 2.50.1