mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 03:47:43 +00:00
skbuff: add an api to orphan frags
Many places do if ((skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY)) skb_copy_ubufs(skb, gfp_mask); to copy and invoke frag destructors if necessary. Add an inline helper for this. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d47e12d63e
commit
a353e0ce0f
@ -1666,6 +1666,22 @@ static inline void skb_orphan(struct sk_buff *skb)
|
||||
skb->sk = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* skb_orphan_frags - orphan the frags contained in a buffer
|
||||
* @skb: buffer to orphan frags from
|
||||
* @gfp_mask: allocation mask for replacement pages
|
||||
*
|
||||
* For each frag in the SKB which needs a destructor (i.e. has an
|
||||
* owner) create a copy of that frag and release the original
|
||||
* page by calling the destructor.
|
||||
*/
|
||||
static inline int skb_orphan_frags(struct sk_buff *skb, gfp_t gfp_mask)
|
||||
{
|
||||
if (likely(!(skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY)))
|
||||
return 0;
|
||||
return skb_copy_ubufs(skb, gfp_mask);
|
||||
}
|
||||
|
||||
/**
|
||||
* __skb_queue_purge - empty a list
|
||||
* @list: list to empty
|
||||
|
Loading…
Reference in New Issue
Block a user