diff options
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/skbuff.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 4e2c84fcf27..7b7c6c44c2d 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -2045,9 +2045,7 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) | |||
2045 | if (copy > 0) { | 2045 | if (copy > 0) { |
2046 | if (copy > len) | 2046 | if (copy > len) |
2047 | copy = len; | 2047 | copy = len; |
2048 | sg_set_page(&sg[elt], virt_to_page(skb->data + offset)); | 2048 | sg_set_buf(sg, skb->data + offset, copy); |
2049 | sg[elt].offset = (unsigned long)(skb->data + offset) % PAGE_SIZE; | ||
2050 | sg[elt].length = copy; | ||
2051 | elt++; | 2049 | elt++; |
2052 | if ((len -= copy) == 0) | 2050 | if ((len -= copy) == 0) |
2053 | return elt; | 2051 | return elt; |
@@ -2065,9 +2063,8 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len) | |||
2065 | 2063 | ||
2066 | if (copy > len) | 2064 | if (copy > len) |
2067 | copy = len; | 2065 | copy = len; |
2068 | sg_set_page(&sg[elt], frag->page); | 2066 | sg_set_page(&sg[elt], frag->page, copy, |
2069 | sg[elt].offset = frag->page_offset+offset-start; | 2067 | frag->page_offset+offset-start); |
2070 | sg[elt].length = copy; | ||
2071 | elt++; | 2068 | elt++; |
2072 | if (!(len -= copy)) | 2069 | if (!(len -= copy)) |
2073 | return elt; | 2070 | return elt; |