diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2010-07-24 13:32:25 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-07-26 15:32:43 -0400 |
commit | 06b3cda0c12986f5bba578b918b188d731c4e191 (patch) | |
tree | e9cad3385d622345f7858cfa5c0f5caed77aeaf2 /drivers/net/wireless | |
parent | d97349797fa76753c747ed8b888414fe78795439 (diff) |
rt2x00: Fix regression for rt2500pci
Since commit:
commit f1aa4c541e98afa8b770a75ccaa8504d0bff44a7
Author: Ivo van Doorn <ivdoorn@gmail.com>
Date: Tue Jun 29 21:38:55 2010 +0200
rt2x00: Write the BSSID to register when interface is added
mananged mode in rt2500pci was broken, due to intf->bssid containing
random data rather then the expected 00:00:00:00:00:00
This is corrected by sending the BSSID to rt2x00lib_config_intf
only in AP mode where the bssid is set to a valid value.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00mac.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index 4d8d2320c9fd..235e037e6509 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c | |||
@@ -273,17 +273,24 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw, | |||
273 | mutex_init(&intf->beacon_skb_mutex); | 273 | mutex_init(&intf->beacon_skb_mutex); |
274 | intf->beacon = entry; | 274 | intf->beacon = entry; |
275 | 275 | ||
276 | if (vif->type == NL80211_IFTYPE_AP) | ||
277 | memcpy(&intf->bssid, vif->addr, ETH_ALEN); | ||
278 | memcpy(&intf->mac, vif->addr, ETH_ALEN); | ||
279 | |||
280 | /* | 276 | /* |
281 | * The MAC adddress must be configured after the device | 277 | * The MAC adddress must be configured after the device |
282 | * has been initialized. Otherwise the device can reset | 278 | * has been initialized. Otherwise the device can reset |
283 | * the MAC registers. | 279 | * the MAC registers. |
280 | * The BSSID address must only be configured in AP mode, | ||
281 | * however we should not send an empty BSSID address for | ||
282 | * STA interfaces at this time, since this can cause | ||
283 | * invalid behavior in the device. | ||
284 | */ | 284 | */ |
285 | rt2x00lib_config_intf(rt2x00dev, intf, vif->type, | 285 | memcpy(&intf->mac, vif->addr, ETH_ALEN); |
286 | intf->mac, intf->bssid); | 286 | if (vif->type == NL80211_IFTYPE_AP) { |
287 | memcpy(&intf->bssid, vif->addr, ETH_ALEN); | ||
288 | rt2x00lib_config_intf(rt2x00dev, intf, vif->type, | ||
289 | intf->mac, intf->bssid); | ||
290 | } else { | ||
291 | rt2x00lib_config_intf(rt2x00dev, intf, vif->type, | ||
292 | intf->mac, NULL); | ||
293 | } | ||
287 | 294 | ||
288 | /* | 295 | /* |
289 | * Some filters depend on the current working mode. We can force | 296 | * Some filters depend on the current working mode. We can force |