diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-05-13 05:48:31 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-05-13 05:48:31 +0200 |
commit | f5184d267c1aedb9b7a8cc44e08ff6b8d382c3b5 (patch) | |
tree | 5ccce7558f9e1e53e5b189d6e2fe62a667988ac8 /net/xfrm/xfrm_output.c | |
parent | net: Set LL_MAX_HEADER properly for wireless. (diff) | |
download | linux-f5184d267c1aedb9b7a8cc44e08ff6b8d382c3b5.tar.xz linux-f5184d267c1aedb9b7a8cc44e08ff6b8d382c3b5.zip |
net: Allow netdevices to specify needed head/tailroom
This patch adds needed_headroom/needed_tailroom members to struct
net_device and updates many places that allocate sbks to use them. Not
all of them can be converted though, and I'm sure I missed some (I
mostly grepped for LL_RESERVED_SPACE)
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_output.c')
-rw-r--r-- | net/xfrm/xfrm_output.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index 09cd9c0c2d80..3f964db908a7 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -25,11 +25,11 @@ static int xfrm_state_check_space(struct xfrm_state *x, struct sk_buff *skb) struct dst_entry *dst = skb->dst; int nhead = dst->header_len + LL_RESERVED_SPACE(dst->dev) - skb_headroom(skb); + int ntail = dst->dev->needed_tailroom - skb_tailroom(skb); - if (nhead > 0) - return pskb_expand_head(skb, nhead, 0, GFP_ATOMIC); + if (nhead > 0 || ntail > 0) + return pskb_expand_head(skb, nhead, ntail, GFP_ATOMIC); - /* Check tail too... */ return 0; } |