diff options
author | Florian Westphal <fw@strlen.de> | 2010-01-27 16:38:32 +0300 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2010-02-16 19:27:20 +0300 |
commit | 314ddca3b172fdb9c23a25c545505dbde557602e (patch) | |
tree | 3b1d737beece06ff9191b9767ae05d603c963f2c | |
parent | 90b89af7e15143c8ea22f5c8818f5a2eec9e75c1 (diff) | |
download | linux-314ddca3b172fdb9c23a25c545505dbde557602e.tar.xz |
netfilter: ebt_limit: add CONFIG_COMPAT support
ebt_limit structure is larger on 64 bit systems due
to "long" type used in the (kernel-only) data section.
Setting .compatsize is enough in this case, these values
have no meaning in userspace.
Signed-off-by: Florian Westphal <fwestphal@astaro.com>
-rw-r--r-- | net/bridge/netfilter/ebt_limit.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/net/bridge/netfilter/ebt_limit.c b/net/bridge/netfilter/ebt_limit.c index 9dd16e6b10e7..7a8182710eb3 100644 --- a/net/bridge/netfilter/ebt_limit.c +++ b/net/bridge/netfilter/ebt_limit.c @@ -84,6 +84,19 @@ static bool ebt_limit_mt_check(const struct xt_mtchk_param *par) return true; } + +#ifdef CONFIG_COMPAT +/* + * no conversion function needed -- + * only avg/burst have meaningful values in userspace. + */ +struct ebt_compat_limit_info { + compat_uint_t avg, burst; + compat_ulong_t prev; + compat_uint_t credit, credit_cap, cost; +}; +#endif + static struct xt_match ebt_limit_mt_reg __read_mostly = { .name = "limit", .revision = 0, @@ -91,6 +104,9 @@ static struct xt_match ebt_limit_mt_reg __read_mostly = { .match = ebt_limit_mt, .checkentry = ebt_limit_mt_check, .matchsize = sizeof(struct ebt_limit_info), +#ifdef CONFIG_COMPAT + .compatsize = sizeof(struct ebt_compat_limit_info), +#endif .me = THIS_MODULE, }; |