diff options
| author | David S. Miller <davem@davemloft.net> | 2008-04-14 05:30:23 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-04-14 05:30:23 -0400 |
| commit | df39e8ba56a788733d369068c7319e04b1da3cd5 (patch) | |
| tree | 1e9be853bdb455e341cdbf957656f342cfa2eb9e /net/netfilter | |
| parent | f5572855ec492334d8c3ec0e0e86c31865d5cf07 (diff) | |
| parent | 159d83363b629c91d020734207c1bc788b96af5a (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/ehea/ehea_main.c
drivers/net/wireless/iwlwifi/Kconfig
drivers/net/wireless/rt2x00/rt61pci.c
net/ipv4/inet_timewait_sock.c
net/ipv6/raw.c
net/mac80211/ieee80211_sta.c
Diffstat (limited to 'net/netfilter')
| -rw-r--r-- | net/netfilter/xt_hashlimit.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c index dc29007c52cd..40d344b21453 100644 --- a/net/netfilter/xt_hashlimit.c +++ b/net/netfilter/xt_hashlimit.c | |||
| @@ -466,38 +466,25 @@ static inline void rateinfo_recalc(struct dsthash_ent *dh, unsigned long now) | |||
| 466 | 466 | ||
| 467 | static inline __be32 maskl(__be32 a, unsigned int l) | 467 | static inline __be32 maskl(__be32 a, unsigned int l) |
| 468 | { | 468 | { |
| 469 | return htonl(ntohl(a) & ~(~(u_int32_t)0 >> l)); | 469 | return l ? htonl(ntohl(a) & ~0 << (32 - l)) : 0; |
| 470 | } | 470 | } |
| 471 | 471 | ||
| 472 | #if defined(CONFIG_IP6_NF_IPTABLES) || defined(CONFIG_IP6_NF_IPTABLES_MODULE) | 472 | #if defined(CONFIG_IP6_NF_IPTABLES) || defined(CONFIG_IP6_NF_IPTABLES_MODULE) |
| 473 | static void hashlimit_ipv6_mask(__be32 *i, unsigned int p) | 473 | static void hashlimit_ipv6_mask(__be32 *i, unsigned int p) |
| 474 | { | 474 | { |
| 475 | switch (p) { | 475 | switch (p) { |
| 476 | case 0: | 476 | case 0 ... 31: |
| 477 | i[0] = i[1] = 0; | ||
| 478 | i[2] = i[3] = 0; | ||
| 479 | break; | ||
| 480 | case 1 ... 31: | ||
| 481 | i[0] = maskl(i[0], p); | 477 | i[0] = maskl(i[0], p); |
| 482 | i[1] = i[2] = i[3] = 0; | 478 | i[1] = i[2] = i[3] = 0; |
| 483 | break; | 479 | break; |
| 484 | case 32: | 480 | case 32 ... 63: |
| 485 | i[1] = i[2] = i[3] = 0; | ||
| 486 | break; | ||
| 487 | case 33 ... 63: | ||
| 488 | i[1] = maskl(i[1], p - 32); | 481 | i[1] = maskl(i[1], p - 32); |
| 489 | i[2] = i[3] = 0; | 482 | i[2] = i[3] = 0; |
| 490 | break; | 483 | break; |
| 491 | case 64: | 484 | case 64 ... 95: |
| 492 | i[2] = i[3] = 0; | ||
| 493 | break; | ||
| 494 | case 65 ... 95: | ||
| 495 | i[2] = maskl(i[2], p - 64); | 485 | i[2] = maskl(i[2], p - 64); |
| 496 | i[3] = 0; | 486 | i[3] = 0; |
| 497 | case 96: | 487 | case 96 ... 127: |
| 498 | i[3] = 0; | ||
| 499 | break; | ||
| 500 | case 97 ... 127: | ||
| 501 | i[3] = maskl(i[3], p - 96); | 488 | i[3] = maskl(i[3], p - 96); |
| 502 | break; | 489 | break; |
| 503 | case 128: | 490 | case 128: |
