diff options
| author | 2015-06-15 09:57:30 -0700 | |
|---|---|---|
| committer | 2015-06-15 20:19:20 +0200 | |
| commit | 711bdde6a884354ddae8da2fcb495b2a9364cc90 (patch) | |
| tree | 3d1053945cd05a3fdcc45fa74c73b226dcf80bb3 /include/linux/netfilter | |
| parent | Merge branch 'master' of git://blackhole.kfki.hu/nf-next (diff) | |
| download | linux-dev-711bdde6a884354ddae8da2fcb495b2a9364cc90.tar.xz linux-dev-711bdde6a884354ddae8da2fcb495b2a9364cc90.zip | |
netfilter: x_tables: remove XT_TABLE_INFO_SZ and a dereference.
After Florian patches, there is no need for XT_TABLE_INFO_SZ anymore :
Only one copy of table is kept, instead of one copy per cpu.
We also can avoid a dereference if we put table data right after
xt_table_info. It reduces register pressure and helps compiler.
Then, we attempt a kmalloc() if total size is under order-3 allocation,
to reduce TLB pressure, as in many cases, rules fit in 32 KB.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/linux/netfilter')
| -rw-r--r-- | include/linux/netfilter/x_tables.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index 9969d79dcde1..95693c4cebdd 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h @@ -225,12 +225,9 @@ struct xt_table_info { unsigned int __percpu *stackptr; void ***jumpstack; - /* Note : this field MUST be the last one, see XT_TABLE_INFO_SZ */ - void *entries; + unsigned char entries[0] __aligned(8); }; -#define XT_TABLE_INFO_SZ (offsetof(struct xt_table_info, entries) \ - + nr_cpu_ids * sizeof(char *)) int xt_register_target(struct xt_target *target); void xt_unregister_target(struct xt_target *target); int xt_register_targets(struct xt_target *target, unsigned int n); |
