diff options
author | Changli Gao <xiaosuo@gmail.com> | 2010-11-12 17:34:17 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-11-12 17:34:17 +0100 |
commit | ca36181050a523f6c0af3ef7cb509bbbc4ede276 (patch) | |
tree | 4016b9c676c10a25e1891240c63cc910b33e6db6 /net/netfilter/xt_NFQUEUE.c | |
parent | e5fc9e7a666e5964b60e05903b90aa832354b68c (diff) | |
download | op-kernel-dev-ca36181050a523f6c0af3ef7cb509bbbc4ede276.zip op-kernel-dev-ca36181050a523f6c0af3ef7cb509bbbc4ede276.tar.gz |
netfilter: xt_NFQUEUE: remove modulo operations
Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/netfilter/xt_NFQUEUE.c')
-rw-r--r-- | net/netfilter/xt_NFQUEUE.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/netfilter/xt_NFQUEUE.c b/net/netfilter/xt_NFQUEUE.c index 039cce1..3962770 100644 --- a/net/netfilter/xt_NFQUEUE.c +++ b/net/netfilter/xt_NFQUEUE.c @@ -72,10 +72,12 @@ nfqueue_tg_v1(struct sk_buff *skb, const struct xt_action_param *par) if (info->queues_total > 1) { if (par->family == NFPROTO_IPV4) - queue = hash_v4(skb) % info->queues_total + queue; + queue = (((u64) hash_v4(skb) * info->queues_total) >> + 32) + queue; #if defined(CONFIG_IP6_NF_IPTABLES) || defined(CONFIG_IP6_NF_IPTABLES_MODULE) else if (par->family == NFPROTO_IPV6) - queue = hash_v6(skb) % info->queues_total + queue; + queue = (((u64) hash_v6(skb) * info->queues_total) >> + 32) + queue; #endif } return NF_QUEUE_NR(queue); |