lkml.org 
[lkml]   [2008]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 2/8] [NET]: uninline skb_pull, de-bloats a lot
    Date
    -28162  354 funcs, 3005 +, 31167 -, diff: -28162 --- skb_pull

    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    ---
    include/linux/skbuff.h | 15 +--------------
    net/core/skbuff.c | 16 ++++++++++++++++
    2 files changed, 17 insertions(+), 14 deletions(-)

    diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
    index 5925435..a9f8f15 100644
    --- a/include/linux/skbuff.h
    +++ b/include/linux/skbuff.h
    @@ -930,20 +930,7 @@ static inline unsigned char *__skb_pull(struct sk_buff *skb, unsigned int len)
    return skb->data += len;
    }

    -/**
    - * skb_pull - remove data from the start of a buffer
    - * @skb: buffer to use
    - * @len: amount of data to remove
    - *
    - * This function removes data from the start of a buffer, returning
    - * the memory to the headroom. A pointer to the next data in the buffer
    - * is returned. Once the data has been pulled future pushes will overwrite
    - * the old data.
    - */
    -static inline unsigned char *skb_pull(struct sk_buff *skb, unsigned int len)
    -{
    - return unlikely(len > skb->len) ? NULL : __skb_pull(skb, len);
    -}
    +extern unsigned char *skb_pull(struct sk_buff *skb, unsigned int len);

    extern unsigned char *__pskb_pull_tail(struct sk_buff *skb, int delta);

    diff --git a/net/core/skbuff.c b/net/core/skbuff.c
    index 661d439..14f462b 100644
    --- a/net/core/skbuff.c
    +++ b/net/core/skbuff.c
    @@ -878,6 +878,22 @@ unsigned char *skb_put(struct sk_buff *skb, unsigned int len)
    }
    EXPORT_SYMBOL(skb_put);

    +/**
    + * skb_pull - remove data from the start of a buffer
    + * @skb: buffer to use
    + * @len: amount of data to remove
    + *
    + * This function removes data from the start of a buffer, returning
    + * the memory to the headroom. A pointer to the next data in the buffer
    + * is returned. Once the data has been pulled future pushes will overwrite
    + * the old data.
    + */
    +unsigned char *skb_pull(struct sk_buff *skb, unsigned int len)
    +{
    + return unlikely(len > skb->len) ? NULL : __skb_pull(skb, len);
    +}
    +EXPORT_SYMBOL(skb_pull);
    +
    /* Trims skb to length len. It can change skb pointers.
    */

    --
    1.5.2.2
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2008-02-20 14:51    [W:0.030 / U:29.796 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site