diff options
author | David S. Miller <davem@davemloft.net> | 2009-08-12 20:44:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-12 20:44:53 -0400 |
commit | aa11d958d1a6572eda08214d7c6a735804fe48a5 (patch) | |
tree | d025b05270ad1e010660d17eeadc6ac3c1abbd7d /net/wireless | |
parent | 07f6642ee9418e962e54cbc07471cfe2e559c568 (diff) | |
parent | 9799218ae36910af50f002a5db1802d576fffb43 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
arch/microblaze/include/asm/socket.h
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/reg.c | 9 | ||||
-rw-r--r-- | net/wireless/reg.h | 3 | ||||
-rw-r--r-- | net/wireless/scan.c | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index b3ac0aace0e5..0f61ae613f3b 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -1095,17 +1095,18 @@ static void handle_reg_beacon(struct wiphy *wiphy, | |||
1095 | 1095 | ||
1096 | chan->beacon_found = true; | 1096 | chan->beacon_found = true; |
1097 | 1097 | ||
1098 | if (wiphy->disable_beacon_hints) | ||
1099 | return; | ||
1100 | |||
1098 | chan_before.center_freq = chan->center_freq; | 1101 | chan_before.center_freq = chan->center_freq; |
1099 | chan_before.flags = chan->flags; | 1102 | chan_before.flags = chan->flags; |
1100 | 1103 | ||
1101 | if ((chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) && | 1104 | if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) { |
1102 | !(chan->orig_flags & IEEE80211_CHAN_PASSIVE_SCAN)) { | ||
1103 | chan->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; | 1105 | chan->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; |
1104 | channel_changed = true; | 1106 | channel_changed = true; |
1105 | } | 1107 | } |
1106 | 1108 | ||
1107 | if ((chan->flags & IEEE80211_CHAN_NO_IBSS) && | 1109 | if (chan->flags & IEEE80211_CHAN_NO_IBSS) { |
1108 | !(chan->orig_flags & IEEE80211_CHAN_NO_IBSS)) { | ||
1109 | chan->flags &= ~IEEE80211_CHAN_NO_IBSS; | 1110 | chan->flags &= ~IEEE80211_CHAN_NO_IBSS; |
1110 | channel_changed = true; | 1111 | channel_changed = true; |
1111 | } | 1112 | } |
diff --git a/net/wireless/reg.h b/net/wireless/reg.h index 662a9dad76d5..3362c7c069b2 100644 --- a/net/wireless/reg.h +++ b/net/wireless/reg.h | |||
@@ -30,7 +30,8 @@ int set_regdom(const struct ieee80211_regdomain *rd); | |||
30 | * non-radar 5 GHz channels. | 30 | * non-radar 5 GHz channels. |
31 | * | 31 | * |
32 | * Drivers do not need to call this, cfg80211 will do it for after a scan | 32 | * Drivers do not need to call this, cfg80211 will do it for after a scan |
33 | * on a newly found BSS. | 33 | * on a newly found BSS. If you cannot make use of this feature you can |
34 | * set the wiphy->disable_beacon_hints to true. | ||
34 | */ | 35 | */ |
35 | int regulatory_hint_found_beacon(struct wiphy *wiphy, | 36 | int regulatory_hint_found_beacon(struct wiphy *wiphy, |
36 | struct ieee80211_channel *beacon_chan, | 37 | struct ieee80211_channel *beacon_chan, |
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index 67714d7ed5b4..0ccf3a07dc02 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c | |||
@@ -141,7 +141,7 @@ static int cmp_ies(u8 num, u8 *ies1, size_t len1, u8 *ies2, size_t len2) | |||
141 | 141 | ||
142 | if (!ie1 && !ie2) | 142 | if (!ie1 && !ie2) |
143 | return 0; | 143 | return 0; |
144 | if (!ie1) | 144 | if (!ie1 || !ie2) |
145 | return -1; | 145 | return -1; |
146 | 146 | ||
147 | r = memcmp(ie1 + 2, ie2 + 2, min(ie1[1], ie2[1])); | 147 | r = memcmp(ie1 + 2, ie2 + 2, min(ie1[1], ie2[1])); |
@@ -194,6 +194,8 @@ static bool is_mesh(struct cfg80211_bss *a, | |||
194 | ie = find_ie(WLAN_EID_MESH_CONFIG, | 194 | ie = find_ie(WLAN_EID_MESH_CONFIG, |
195 | a->information_elements, | 195 | a->information_elements, |
196 | a->len_information_elements); | 196 | a->len_information_elements); |
197 | if (!ie) | ||
198 | return false; | ||
197 | if (ie[1] != IEEE80211_MESH_CONFIG_LEN) | 199 | if (ie[1] != IEEE80211_MESH_CONFIG_LEN) |
198 | return false; | 200 | return false; |
199 | 201 | ||