lkml.org 
[lkml]   [2012]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCHv3 1/6] 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>
    ---
    include/linux/skbuff.h | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
    index 642cb73..d205c4b 100644
    --- a/include/linux/skbuff.h
    +++ b/include/linux/skbuff.h
    @@ -1667,6 +1667,22 @@ static inline void skb_orphan(struct sk_buff *skb)
    }

    /**
    + * 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
    *
    --
    MST


    \
     
     \ /
      Last update: 2012-07-20 22:01    [W:0.022 / U:31.244 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site