aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-10-08 20:25:08 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:54:54 -0400
commit83815dea47cf3e98ccbb6aecda08cba1ba91208f (patch)
tree6d728f3b26dc02685ec6c8eb5c08605adf9d2688 /net
parent406ef77c893ebd882209be4e393d64b01fe72054 (diff)
[IPSEC]: Move xfrm_state_check into xfrm_output.c
The functions xfrm_state_check and xfrm_state_check_space are only used by the output code in xfrm_output.c so we can move them over. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/xfrm/xfrm_output.c22
-rw-r--r--net/xfrm/xfrm_state.c23
2 files changed, 22 insertions, 23 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 75f289b488a7..5b1c978a323c 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -18,6 +18,28 @@
18#include <net/dst.h> 18#include <net/dst.h>
19#include <net/xfrm.h> 19#include <net/xfrm.h>
20 20
21static int xfrm_state_check_space(struct xfrm_state *x, struct sk_buff *skb)
22{
23 int nhead = x->props.header_len + LL_RESERVED_SPACE(skb->dst->dev)
24 - skb_headroom(skb);
25
26 if (nhead > 0)
27 return pskb_expand_head(skb, nhead, 0, GFP_ATOMIC);
28
29 /* Check tail too... */
30 return 0;
31}
32
33static int xfrm_state_check(struct xfrm_state *x, struct sk_buff *skb)
34{
35 int err = xfrm_state_check_expire(x);
36 if (err < 0)
37 goto err;
38 err = xfrm_state_check_space(x, skb);
39err:
40 return err;
41}
42
21int xfrm_output(struct sk_buff *skb) 43int xfrm_output(struct sk_buff *skb)
22{ 44{
23 struct dst_entry *dst = skb->dst; 45 struct dst_entry *dst = skb->dst;
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 15734adc9367..0ecec34d265a 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1152,29 +1152,6 @@ int xfrm_state_check_expire(struct xfrm_state *x)
1152} 1152}
1153EXPORT_SYMBOL(xfrm_state_check_expire); 1153EXPORT_SYMBOL(xfrm_state_check_expire);
1154 1154
1155static int xfrm_state_check_space(struct xfrm_state *x, struct sk_buff *skb)
1156{
1157 int nhead = x->props.header_len + LL_RESERVED_SPACE(skb->dst->dev)
1158 - skb_headroom(skb);
1159
1160 if (nhead > 0)
1161 return pskb_expand_head(skb, nhead, 0, GFP_ATOMIC);
1162
1163 /* Check tail too... */
1164 return 0;
1165}
1166
1167int xfrm_state_check(struct xfrm_state *x, struct sk_buff *skb)
1168{
1169 int err = xfrm_state_check_expire(x);
1170 if (err < 0)
1171 goto err;
1172 err = xfrm_state_check_space(x, skb);
1173err:
1174 return err;
1175}
1176EXPORT_SYMBOL(xfrm_state_check);
1177
1178struct xfrm_state * 1155struct xfrm_state *
1179xfrm_state_lookup(xfrm_address_t *daddr, __be32 spi, u8 proto, 1156xfrm_state_lookup(xfrm_address_t *daddr, __be32 spi, u8 proto,
1180 unsigned short family) 1157 unsigned short family)