mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 03:47:43 +00:00
virtio_net: Clean up set_skb_frag()
Remove manual initialization in set_skb_frag, and instead use __skb_fill_page_desc() to do the same. Patch tested on net-next. Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a0bec1cd8f
commit
8a59a7b94f
@ -143,18 +143,15 @@ static void skb_xmit_done(struct virtqueue *svq)
|
|||||||
static void set_skb_frag(struct sk_buff *skb, struct page *page,
|
static void set_skb_frag(struct sk_buff *skb, struct page *page,
|
||||||
unsigned int offset, unsigned int *len)
|
unsigned int offset, unsigned int *len)
|
||||||
{
|
{
|
||||||
|
int size = min((unsigned)PAGE_SIZE - offset, *len);
|
||||||
int i = skb_shinfo(skb)->nr_frags;
|
int i = skb_shinfo(skb)->nr_frags;
|
||||||
skb_frag_t *f;
|
|
||||||
|
|
||||||
f = &skb_shinfo(skb)->frags[i];
|
__skb_fill_page_desc(skb, i, page, offset, size);
|
||||||
skb_frag_size_set(f, min((unsigned)PAGE_SIZE - offset, *len));
|
|
||||||
f->page_offset = offset;
|
|
||||||
__skb_frag_set_page(f, page);
|
|
||||||
|
|
||||||
skb->data_len += skb_frag_size(f);
|
skb->data_len += size;
|
||||||
skb->len += skb_frag_size(f);
|
skb->len += size;
|
||||||
skb_shinfo(skb)->nr_frags++;
|
skb_shinfo(skb)->nr_frags++;
|
||||||
*len -= skb_frag_size(f);
|
*len -= size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sk_buff *page_to_skb(struct virtnet_info *vi,
|
static struct sk_buff *page_to_skb(struct virtnet_info *vi,
|
||||||
|
Loading…
Reference in New Issue
Block a user