diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2008-10-28 16:24:06 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-10-28 16:24:06 -0400 |
commit | def8b4faff5ca349beafbbfeb2c51f3602a6ef3a (patch) | |
tree | a90fbb0b6ae2a49c507465801f31df77bc5ebf9d /include | |
parent | b057efd4d226fcc3a92b0dc6d8ea8e8185ecb260 (diff) |
net: reduce structures when XFRM=n
ifdef out
* struct sk_buff::sp (pointer)
* struct dst_entry::xfrm (pointer)
* struct sock::sk_policy (2 pointers)
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/skbuff.h | 15 | ||||
-rw-r--r-- | include/net/dst.h | 3 | ||||
-rw-r--r-- | include/net/sock.h | 2 | ||||
-rw-r--r-- | include/net/xfrm.h | 4 |
4 files changed, 22 insertions, 2 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 2725f4e5a9bf..487e34507b41 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -269,8 +269,9 @@ struct sk_buff { | |||
269 | struct dst_entry *dst; | 269 | struct dst_entry *dst; |
270 | struct rtable *rtable; | 270 | struct rtable *rtable; |
271 | }; | 271 | }; |
272 | #ifdef CONFIG_XFRM | ||
272 | struct sec_path *sp; | 273 | struct sec_path *sp; |
273 | 274 | #endif | |
274 | /* | 275 | /* |
275 | * This is the control buffer. It is free to use for every | 276 | * This is the control buffer. It is free to use for every |
276 | * layer. Please put your private variables there. If you | 277 | * layer. Please put your private variables there. If you |
@@ -1864,6 +1865,18 @@ static inline void skb_copy_queue_mapping(struct sk_buff *to, const struct sk_bu | |||
1864 | to->queue_mapping = from->queue_mapping; | 1865 | to->queue_mapping = from->queue_mapping; |
1865 | } | 1866 | } |
1866 | 1867 | ||
1868 | #ifdef CONFIG_XFRM | ||
1869 | static inline struct sec_path *skb_sec_path(struct sk_buff *skb) | ||
1870 | { | ||
1871 | return skb->sp; | ||
1872 | } | ||
1873 | #else | ||
1874 | static inline struct sec_path *skb_sec_path(struct sk_buff *skb) | ||
1875 | { | ||
1876 | return NULL; | ||
1877 | } | ||
1878 | #endif | ||
1879 | |||
1867 | static inline int skb_is_gso(const struct sk_buff *skb) | 1880 | static inline int skb_is_gso(const struct sk_buff *skb) |
1868 | { | 1881 | { |
1869 | return skb_shinfo(skb)->gso_size; | 1882 | return skb_shinfo(skb)->gso_size; |
diff --git a/include/net/dst.h b/include/net/dst.h index 8a8b71e5f3f1..f96c4ba4dd32 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -59,8 +59,9 @@ struct dst_entry | |||
59 | 59 | ||
60 | struct neighbour *neighbour; | 60 | struct neighbour *neighbour; |
61 | struct hh_cache *hh; | 61 | struct hh_cache *hh; |
62 | #ifdef CONFIG_XFRM | ||
62 | struct xfrm_state *xfrm; | 63 | struct xfrm_state *xfrm; |
63 | 64 | #endif | |
64 | int (*input)(struct sk_buff*); | 65 | int (*input)(struct sk_buff*); |
65 | int (*output)(struct sk_buff*); | 66 | int (*output)(struct sk_buff*); |
66 | 67 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index ada50c04d09f..d6b750a25078 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -229,7 +229,9 @@ struct sock { | |||
229 | } sk_backlog; | 229 | } sk_backlog; |
230 | wait_queue_head_t *sk_sleep; | 230 | wait_queue_head_t *sk_sleep; |
231 | struct dst_entry *sk_dst_cache; | 231 | struct dst_entry *sk_dst_cache; |
232 | #ifdef CONFIG_XFRM | ||
232 | struct xfrm_policy *sk_policy[2]; | 233 | struct xfrm_policy *sk_policy[2]; |
234 | #endif | ||
233 | rwlock_t sk_dst_lock; | 235 | rwlock_t sk_dst_lock; |
234 | atomic_t sk_rmem_alloc; | 236 | atomic_t sk_rmem_alloc; |
235 | atomic_t sk_wmem_alloc; | 237 | atomic_t sk_wmem_alloc; |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 11c890ad8ebb..f2c5ba28a428 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -882,6 +882,7 @@ struct xfrm_dst | |||
882 | u32 path_cookie; | 882 | u32 path_cookie; |
883 | }; | 883 | }; |
884 | 884 | ||
885 | #ifdef CONFIG_XFRM | ||
885 | static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) | 886 | static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) |
886 | { | 887 | { |
887 | dst_release(xdst->route); | 888 | dst_release(xdst->route); |
@@ -894,6 +895,7 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) | |||
894 | xdst->partner = NULL; | 895 | xdst->partner = NULL; |
895 | #endif | 896 | #endif |
896 | } | 897 | } |
898 | #endif | ||
897 | 899 | ||
898 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); | 900 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); |
899 | 901 | ||
@@ -1536,9 +1538,11 @@ static inline void xfrm_states_delete(struct xfrm_state **states, int n) | |||
1536 | } | 1538 | } |
1537 | #endif | 1539 | #endif |
1538 | 1540 | ||
1541 | #ifdef CONFIG_XFRM | ||
1539 | static inline struct xfrm_state *xfrm_input_state(struct sk_buff *skb) | 1542 | static inline struct xfrm_state *xfrm_input_state(struct sk_buff *skb) |
1540 | { | 1543 | { |
1541 | return skb->sp->xvec[skb->sp->len - 1]; | 1544 | return skb->sp->xvec[skb->sp->len - 1]; |
1542 | } | 1545 | } |
1546 | #endif | ||
1543 | 1547 | ||
1544 | #endif /* _NET_XFRM_H */ | 1548 | #endif /* _NET_XFRM_H */ |