xfrm: remove output2 indirection from xfrm_mode
similar to previous patch: no external module dependencies, so we can avoid the indirection by placing this in the core. This change removes the last indirection from xfrm_mode and the xfrm4|6_mode_{beet,tunnel}.c modules contain (almost) no code anymore. Before: text data bss dec hex filename 3957 136 0 4093 ffd net/xfrm/xfrm_output.o 587 44 0 631 277 net/ipv4/xfrm4_mode_beet.o 649 32 0 681 2a9 net/ipv4/xfrm4_mode_tunnel.o 625 44 0 669 29d net/ipv6/xfrm6_mode_beet.o 599 32 0 631 277 net/ipv6/xfrm6_mode_tunnel.o After: text data bss dec hex filename 5359 184 0 5543 15a7 net/xfrm/xfrm_output.o 171 24 0 195 c3 net/ipv4/xfrm4_mode_beet.o 171 24 0 195 c3 net/ipv4/xfrm4_mode_tunnel.o 172 24 0 196 c4 net/ipv6/xfrm6_mode_beet.o 172 24 0 196 c4 net/ipv6/xfrm6_mode_tunnel.o v2: fold the *encap_add functions into xfrm*_prepare_output preserve (move) output2 comment (Sabrina) use x->outer_mode->encap, not inner fix a build breakage on ppc (kbuild robot) Signed-off-by: Florian Westphal <fw@strlen.de> Reviewed-by: Sabrina Dubroca <sd@queasysnail.net> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:

committed by
Steffen Klassert

parent
b3284df1c8
commit
1de7083006
@@ -423,19 +423,6 @@ int xfrm_register_type_offload(const struct xfrm_type_offload *type, unsigned sh
|
||||
int xfrm_unregister_type_offload(const struct xfrm_type_offload *type, unsigned short family);
|
||||
|
||||
struct xfrm_mode {
|
||||
/*
|
||||
* Add encapsulation header.
|
||||
*
|
||||
* On exit, the transport header will be set to the start of the
|
||||
* encapsulation header to be filled in by x->type->output and
|
||||
* the mac header will be set to the nextheader (protocol for
|
||||
* IPv4) field of the extension header directly preceding the
|
||||
* encapsulation header, or in its absence, that of the top IP
|
||||
* header. The value of the network header will always point
|
||||
* to the top IP header while skb->data will point to the payload.
|
||||
*/
|
||||
int (*output2)(struct xfrm_state *x,struct sk_buff *skb);
|
||||
|
||||
struct xfrm_state_afinfo *afinfo;
|
||||
struct module *owner;
|
||||
u8 encap;
|
||||
|
Reference in New Issue
Block a user