lkml.org 
[lkml]   [2014]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 123/125] skbuff: add an api to orphan frags
    3.2.61-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: "Michael S. Tsirkin" <mst@redhat.com>

    commit a353e0ce0fd42d8859260666d1e9b10f2abd4698 upstream.

    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>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    include/linux/skbuff.h | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    --- a/include/linux/skbuff.h
    +++ b/include/linux/skbuff.h
    @@ -1633,6 +1633,22 @@ static inline void skb_orphan(struct sk_
    }

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


    \
     
     \ /
      Last update: 2014-07-09 04:41    [W:4.049 / U:0.444 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site