From ebbe21de674c0ba6089202c01ab208d52c50df72 Mon Sep 17 00:00:00 2001 From: Krishna Kumar Date: Tue, 17 Jul 2012 02:05:29 +0000 Subject: [PATCH] --- yaml --- r: 315476 b: refs/heads/master c: 02756ed4a79f15e4f265c1f6fbc634ce9966f153 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/skbuff.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index c5f781dcb8b0..f4c97129a203 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 42f59967a091d012b358a532766fe4d53c6d3ba3 +refs/heads/master: 02756ed4a79f15e4f265c1f6fbc634ce9966f153 diff --git a/trunk/net/core/skbuff.c b/trunk/net/core/skbuff.c index 8b6d38fdb443..c011d7fab62d 100644 --- a/trunk/net/core/skbuff.c +++ b/trunk/net/core/skbuff.c @@ -751,7 +751,7 @@ int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask) u8 *vaddr; skb_frag_t *f = &skb_shinfo(skb)->frags[i]; - page = alloc_page(GFP_ATOMIC); + page = alloc_page(gfp_mask); if (!page) { while (head) { struct page *next = (struct page *)head->private; @@ -769,15 +769,15 @@ int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask) } /* skb frags release userspace buffers */ - for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) + for (i = 0; i < num_frags; i++) skb_frag_unref(skb, i); uarg->callback(uarg); /* skb frags point to kernel buffers */ - for (i = skb_shinfo(skb)->nr_frags; i > 0; i--) { - __skb_fill_page_desc(skb, i-1, head, 0, - skb_shinfo(skb)->frags[i - 1].size); + for (i = num_frags - 1; i >= 0; i--) { + __skb_fill_page_desc(skb, i, head, 0, + skb_shinfo(skb)->frags[i].size); head = (struct page *)head->private; }