]> err.no Git - linux-2.6/commit
[IPV4]: Uninline netfilter okfns
authorPatrick McHardy <kaber@trash.net>
Mon, 15 Oct 2007 08:48:39 +0000 (01:48 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 15 Oct 2007 19:26:35 +0000 (12:26 -0700)
commit861d04860725dc85944bf9fa815af338d9e56b43
treeb05948c29127540ebace47c2f43e6d1744831735
parenta030847e9f0eed2a080f6114381c649a7aa43d25
[IPV4]: Uninline netfilter okfns

Now that we don't pass double skb pointers to nf_hook_slow anymore, gcc
can generate tail calls for some of the netfilter hook okfn invocations,
so there is no need to inline the functions anymore. This caused huge
code bloat since we ended up with one inlined version and one out-of-line
version since we pass the address to nf_hook_slow.

Before:
   text    data     bss     dec     hex filename
8997385 1016524  524652 10538561         a0ce41 vmlinux

After:
   text    data     bss     dec     hex filename
8994009 1016524  524652 10535185         a0c111 vmlinux
-------------------------------------------------------
  -3376

All cases have been verified to generate tail-calls with and without
netfilter. The okfns in ipmr and xfrm4_input still remain inline because
gcc can't generate tail-calls for them.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_forward.c
net/ipv4/ip_input.c
net/ipv4/ip_output.c