lkml.org 
[lkml]   [2010]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH v7 09/19] Ignore room skb_reserve() when device is using external buffer.
    Date
    From: Xin Xiaohui <xiaohui.xin@intel.com>

    Make the skb->data and skb->head from external buffer
    to be consistent, we ignore the room reserved by driver
    for kernel skb.

    Signed-off-by: Xin Xiaohui <xiaohui.xin@intel.com>
    Signed-off-by: Zhao Yu <yzhao81new@gmail.com>
    Reviewed-by: Jeff Dike <jdike@linux.intel.com>
    ---
    include/linux/skbuff.h | 9 +++++++++
    1 files changed, 9 insertions(+), 0 deletions(-)

    diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
    index 5ff8c27..193b259 100644
    --- a/include/linux/skbuff.h
    +++ b/include/linux/skbuff.h
    @@ -1200,6 +1200,15 @@ static inline int skb_tailroom(const struct sk_buff *skb)
    */
    static inline void skb_reserve(struct sk_buff *skb, int len)
    {
    + /* Since skb_reserve() is only for an empty buffer,
    + * and when the skb is getting external buffer, we cannot
    + * retain the external buffer has the same reserved space
    + * in the header which kernel allocatd skb has, so have to
    + * ignore this. And we have recorded the external buffer
    + * info in the destructor_arg field, so use it as indicator.
    + */
    + if (skb_shinfo(skb)->destructor_arg)
    + return;
    skb->data += len;
    skb->tail += len;
    }
    --
    1.5.4.4


    \
     
     \ /
      Last update: 2010-06-05 12:15    [W:0.020 / U:0.052 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site