On Fri, 07 Jan 2005 22:27:21 +0100
Bart De Schuymer [off-list ref] wrote:
How about something like the patch below (untested but compiles)?
The current netfilter scheme adds one function call to the call chain
for each NF_HOOK and NF_HOOK_THRESH. This can be prevented by executing
the okfn in the calling function instead of in nf_hook_slow().
I didn't check if there's any code that actually uses the return value
from NF_HOOK. If so, this patch won't work well in its current form as -
EPERM is now also returned for NF_QUEUE and NF_STOLEN.
Another 2 calls of okfn can be postponed in br_netfilter.c by adding
NF_STOP, which would work like NF_STOLEN except that okfn is still
called. But I'd first like to get the IPv4/IPv6 fix for br_netfilter.c
accepted (see another thread on netdev).
I believe I put in your ipv4/ipv6 br_netfilter fix already.
This NF_HOOK() change looks interesting. Could we also do something like
running the deeper ->hard_start_xmit() via a triggered tasklet or something
similar?