From eb9ff64b99ec289b6d413000db89da9735bc1083 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Wed, 20 Feb 2008 11:47:45 +0100 Subject: [PATCH] --- yaml --- r: 86473 b: refs/heads/master c: 5b0acc64a3750f8f017b973f1059bb25b791c2a3 h: refs/heads/master i: 86471: 49e76fd9f03d1e0e5e0cfe522fc23e08400fb5d2 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/rndis_wlan.c | 14 +++++++------- trunk/include/linux/netfilter.h | 2 +- trunk/net/ipv4/ip_gre.c | 14 +++++--------- trunk/net/ipv4/ipip.c | 14 +++++--------- trunk/net/ipv6/ip6_tunnel.c | 15 ++++----------- trunk/net/ipv6/sit.c | 13 ++++--------- trunk/net/ipv6/sysctl_net_ipv6.c | 3 +++ trunk/net/netfilter/nf_conntrack_core.c | 15 +++------------ trunk/net/netfilter/xt_conntrack.c | 4 ++-- 10 files changed, 35 insertions(+), 61 deletions(-) diff --git a/[refs] b/[refs] index 77d9a4aa4e36..84b8f1c86313 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fbabbed8284d1526ed01754ecd4fabdb941a1ff2 +refs/heads/master: 5b0acc64a3750f8f017b973f1059bb25b791c2a3 diff --git a/trunk/drivers/net/wireless/rndis_wlan.c b/trunk/drivers/net/wireless/rndis_wlan.c index 8ce2ddf8024f..d9460aed1f22 100644 --- a/trunk/drivers/net/wireless/rndis_wlan.c +++ b/trunk/drivers/net/wireless/rndis_wlan.c @@ -228,9 +228,9 @@ struct NDIS_WLAN_BSSID_EX { struct NDIS_802_11_SSID Ssid; __le32 Privacy; __le32 Rssi; - enum NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; + __le32 NetworkTypeInUse; struct NDIS_802_11_CONFIGURATION Configuration; - enum NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; + __le32 InfrastructureMode; u8 SupportedRates[NDIS_802_11_LENGTH_RATES_EX]; __le32 IELength; u8 IEs[0]; @@ -279,11 +279,11 @@ struct RNDIS_CONFIG_PARAMETER_INFOBUFFER { } __attribute__((packed)); /* these have to match what is in wpa_supplicant */ -enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg; -enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, CIPHER_WEP104 } - wpa_cipher; -enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE, KEY_MGMT_802_1X_NO_WPA, - KEY_MGMT_WPA_NONE } wpa_key_mgmt; +enum wpa_alg { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP }; +enum wpa_cipher { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, + CIPHER_WEP104 }; +enum wpa_key_mgmt { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE, + KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE }; /* * private data diff --git a/trunk/include/linux/netfilter.h b/trunk/include/linux/netfilter.h index f0680c2bee73..b74b615492e8 100644 --- a/trunk/include/linux/netfilter.h +++ b/trunk/include/linux/netfilter.h @@ -31,7 +31,7 @@ #define NF_VERDICT_QMASK 0xffff0000 #define NF_VERDICT_QBITS 16 -#define NF_QUEUE_NR(x) ((((x) << NF_VERDICT_BITS) & NF_VERDICT_QMASK) | NF_QUEUE) +#define NF_QUEUE_NR(x) (((x << NF_VERDICT_QBITS) & NF_VERDICT_QMASK) | NF_QUEUE) /* only for userspace compatibility */ #ifndef __KERNEL__ diff --git a/trunk/net/ipv4/ip_gre.c b/trunk/net/ipv4/ip_gre.c index e7821ba7a9a0..906cb1ada4c3 100644 --- a/trunk/net/ipv4/ip_gre.c +++ b/trunk/net/ipv4/ip_gre.c @@ -266,24 +266,20 @@ static struct ip_tunnel * ipgre_tunnel_locate(struct ip_tunnel_parm *parms, int if (!dev) return NULL; - if (strchr(name, '%')) { - if (dev_alloc_name(dev, name) < 0) - goto failed_free; - } - dev->init = ipgre_tunnel_init; nt = netdev_priv(dev); nt->parms = *parms; - if (register_netdevice(dev) < 0) - goto failed_free; + if (register_netdevice(dev) < 0) { + free_netdev(dev); + goto failed; + } dev_hold(dev); ipgre_tunnel_link(nt); return nt; -failed_free: - free_netdev(dev); +failed: return NULL; } diff --git a/trunk/net/ipv4/ipip.c b/trunk/net/ipv4/ipip.c index dbaed69de06a..e77e3b855834 100644 --- a/trunk/net/ipv4/ipip.c +++ b/trunk/net/ipv4/ipip.c @@ -228,24 +228,20 @@ static struct ip_tunnel * ipip_tunnel_locate(struct ip_tunnel_parm *parms, int c if (dev == NULL) return NULL; - if (strchr(name, '%')) { - if (dev_alloc_name(dev, name) < 0) - goto failed_free; - } - nt = netdev_priv(dev); dev->init = ipip_tunnel_init; nt->parms = *parms; - if (register_netdevice(dev) < 0) - goto failed_free; + if (register_netdevice(dev) < 0) { + free_netdev(dev); + goto failed; + } dev_hold(dev); ipip_tunnel_link(nt); return nt; -failed_free: - free_netdev(dev); +failed: return NULL; } diff --git a/trunk/net/ipv6/ip6_tunnel.c b/trunk/net/ipv6/ip6_tunnel.c index 78f438880923..2a124e9a1b2d 100644 --- a/trunk/net/ipv6/ip6_tunnel.c +++ b/trunk/net/ipv6/ip6_tunnel.c @@ -238,24 +238,17 @@ static struct ip6_tnl *ip6_tnl_create(struct ip6_tnl_parm *p) if (dev == NULL) goto failed; - if (strchr(name, '%')) { - if (dev_alloc_name(dev, name) < 0) - goto failed_free; - } - t = netdev_priv(dev); dev->init = ip6_tnl_dev_init; t->parms = *p; - if ((err = register_netdevice(dev)) < 0) - goto failed_free; - + if ((err = register_netdevice(dev)) < 0) { + free_netdev(dev); + goto failed; + } dev_hold(dev); ip6_tnl_link(t); return t; - -failed_free: - free_netdev(dev); failed: return NULL; } diff --git a/trunk/net/ipv6/sit.c b/trunk/net/ipv6/sit.c index 1656c003b989..dde7801abeff 100644 --- a/trunk/net/ipv6/sit.c +++ b/trunk/net/ipv6/sit.c @@ -171,11 +171,6 @@ static struct ip_tunnel * ipip6_tunnel_locate(struct ip_tunnel_parm *parms, int if (dev == NULL) return NULL; - if (strchr(name, '%')) { - if (dev_alloc_name(dev, name) < 0) - goto failed_free; - } - nt = netdev_priv(dev); dev->init = ipip6_tunnel_init; nt->parms = *parms; @@ -183,16 +178,16 @@ static struct ip_tunnel * ipip6_tunnel_locate(struct ip_tunnel_parm *parms, int if (parms->i_flags & SIT_ISATAP) dev->priv_flags |= IFF_ISATAP; - if (register_netdevice(dev) < 0) - goto failed_free; + if (register_netdevice(dev) < 0) { + free_netdev(dev); + goto failed; + } dev_hold(dev); ipip6_tunnel_link(nt); return nt; -failed_free: - free_netdev(dev); failed: return NULL; } diff --git a/trunk/net/ipv6/sysctl_net_ipv6.c b/trunk/net/ipv6/sysctl_net_ipv6.c index d6d3e68086f8..408691b777c2 100644 --- a/trunk/net/ipv6/sysctl_net_ipv6.c +++ b/trunk/net/ipv6/sysctl_net_ipv6.c @@ -101,6 +101,9 @@ static int ipv6_sysctl_net_init(struct net *net) net->ipv6.sysctl.table = register_net_sysctl_table(net, net_ipv6_ctl_path, ipv6_table); + if (!net->ipv6.sysctl.table) + return -ENOMEM; + if (!net->ipv6.sysctl.table) goto out_ipv6_icmp_table; diff --git a/trunk/net/netfilter/nf_conntrack_core.c b/trunk/net/netfilter/nf_conntrack_core.c index b77eb56a87e3..327e847d2702 100644 --- a/trunk/net/netfilter/nf_conntrack_core.c +++ b/trunk/net/netfilter/nf_conntrack_core.c @@ -256,19 +256,13 @@ __nf_conntrack_find(const struct nf_conntrack_tuple *tuple) struct hlist_node *n; unsigned int hash = hash_conntrack(tuple); - /* Disable BHs the entire time since we normally need to disable them - * at least once for the stats anyway. - */ - local_bh_disable(); hlist_for_each_entry_rcu(h, n, &nf_conntrack_hash[hash], hnode) { if (nf_ct_tuple_equal(tuple, &h->tuple)) { NF_CT_STAT_INC(found); - local_bh_enable(); return h; } NF_CT_STAT_INC(searched); } - local_bh_enable(); return NULL; } @@ -406,20 +400,17 @@ nf_conntrack_tuple_taken(const struct nf_conntrack_tuple *tuple, struct hlist_node *n; unsigned int hash = hash_conntrack(tuple); - /* Disable BHs the entire time since we need to disable them at - * least once for the stats anyway. - */ - rcu_read_lock_bh(); + rcu_read_lock(); hlist_for_each_entry_rcu(h, n, &nf_conntrack_hash[hash], hnode) { if (nf_ct_tuplehash_to_ctrack(h) != ignored_conntrack && nf_ct_tuple_equal(tuple, &h->tuple)) { NF_CT_STAT_INC(found); - rcu_read_unlock_bh(); + rcu_read_unlock(); return 1; } NF_CT_STAT_INC(searched); } - rcu_read_unlock_bh(); + rcu_read_unlock(); return 0; } diff --git a/trunk/net/netfilter/xt_conntrack.c b/trunk/net/netfilter/xt_conntrack.c index 0c50b2894055..85330856a29c 100644 --- a/trunk/net/netfilter/xt_conntrack.c +++ b/trunk/net/netfilter/xt_conntrack.c @@ -122,7 +122,7 @@ conntrack_addrcmp(const union nf_inet_addr *kaddr, const union nf_inet_addr *umask, unsigned int l3proto) { if (l3proto == AF_INET) - return ((kaddr->ip ^ uaddr->ip) & umask->ip) == 0; + return (kaddr->ip & umask->ip) == uaddr->ip; else if (l3proto == AF_INET6) return ipv6_masked_addr_cmp(&kaddr->in6, &umask->in6, &uaddr->in6) == 0; @@ -231,7 +231,7 @@ conntrack_mt(const struct sk_buff *skb, const struct net_device *in, if (test_bit(IPS_DST_NAT_BIT, &ct->status)) statebit |= XT_CONNTRACK_STATE_DNAT; } - if (!!(info->state_mask & statebit) ^ + if ((info->state_mask & statebit) ^ !(info->invert_flags & XT_CONNTRACK_STATE)) return false; }