forked from Minki/linux
[NET]: uninline skb_push, de-bloats a lot
Allyesconfig (v2.6.24-mm1): -21593 356 funcs, 2418 +, 24011 -, diff: -21593 --- skb_push Without many debug related CONFIGs (v2.6.25-rc2-mm1): -13890 341 funcs, 189 +, 14079 -, diff: -13890 --- skb_push skb_push | +46 Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f58518e678
commit
c2aa270ad7
@ -902,6 +902,7 @@ static inline unsigned char *__skb_put(struct sk_buff *skb, unsigned int len)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
extern unsigned char *skb_push(struct sk_buff *skb, unsigned int len);
|
||||
static inline unsigned char *__skb_push(struct sk_buff *skb, unsigned int len)
|
||||
{
|
||||
skb->data -= len;
|
||||
@ -909,24 +910,6 @@ static inline unsigned char *__skb_push(struct sk_buff *skb, unsigned int len)
|
||||
return skb->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* skb_push - add data to the start of a buffer
|
||||
* @skb: buffer to use
|
||||
* @len: amount of data to add
|
||||
*
|
||||
* This function extends the used data area of the buffer at the buffer
|
||||
* start. If this would exceed the total buffer headroom the kernel will
|
||||
* panic. A pointer to the first byte of the extra data is returned.
|
||||
*/
|
||||
static inline unsigned char *skb_push(struct sk_buff *skb, unsigned int len)
|
||||
{
|
||||
skb->data -= len;
|
||||
skb->len += len;
|
||||
if (unlikely(skb->data<skb->head))
|
||||
skb_under_panic(skb, len, current_text_addr());
|
||||
return skb->data;
|
||||
}
|
||||
|
||||
extern unsigned char *skb_pull(struct sk_buff *skb, unsigned int len);
|
||||
static inline unsigned char *__skb_pull(struct sk_buff *skb, unsigned int len)
|
||||
{
|
||||
|
@ -896,6 +896,25 @@ unsigned char *skb_put(struct sk_buff *skb, unsigned int len)
|
||||
}
|
||||
EXPORT_SYMBOL(skb_put);
|
||||
|
||||
/**
|
||||
* skb_push - add data to the start of a buffer
|
||||
* @skb: buffer to use
|
||||
* @len: amount of data to add
|
||||
*
|
||||
* This function extends the used data area of the buffer at the buffer
|
||||
* start. If this would exceed the total buffer headroom the kernel will
|
||||
* panic. A pointer to the first byte of the extra data is returned.
|
||||
*/
|
||||
unsigned char *skb_push(struct sk_buff *skb, unsigned int len)
|
||||
{
|
||||
skb->data -= len;
|
||||
skb->len += len;
|
||||
if (unlikely(skb->data<skb->head))
|
||||
skb_under_panic(skb, len, __builtin_return_address(0));
|
||||
return skb->data;
|
||||
}
|
||||
EXPORT_SYMBOL(skb_push);
|
||||
|
||||
/**
|
||||
* skb_pull - remove data from the start of a buffer
|
||||
* @skb: buffer to use
|
||||
|
Loading…
Reference in New Issue
Block a user