diff options
author | John W. Linville <linville@tuxdriver.com> | 2009-12-30 15:25:08 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-30 15:25:08 -0500 |
commit | 891dc5e73783eeabd2a704a9425e2a199b39c9f9 (patch) | |
tree | 9b4478941c486d47a71bfce455b896c5dda7e811 /net/mac80211 | |
parent | e1781ed33a8809c58ad6c3b6d432d656446efa43 (diff) | |
parent | 55afc80b2ab100618c17af77915f75307b6bd5d1 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Conflicts:
drivers/net/wireless/libertas/scan.c
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/ibss.c | 4 | ||||
-rw-r--r-- | net/mac80211/tx.c | 4 | ||||
-rw-r--r-- | net/mac80211/util.c | 12 |
3 files changed, 20 insertions, 0 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 621a54c0573a..5bcde4c3fba1 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
@@ -387,6 +387,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | |||
387 | struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, | 387 | struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, |
388 | u8 *bssid,u8 *addr, u32 supp_rates) | 388 | u8 *bssid,u8 *addr, u32 supp_rates) |
389 | { | 389 | { |
390 | struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; | ||
390 | struct ieee80211_local *local = sdata->local; | 391 | struct ieee80211_local *local = sdata->local; |
391 | struct sta_info *sta; | 392 | struct sta_info *sta; |
392 | int band = local->hw.conf.channel->band; | 393 | int band = local->hw.conf.channel->band; |
@@ -402,6 +403,9 @@ struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, | |||
402 | return NULL; | 403 | return NULL; |
403 | } | 404 | } |
404 | 405 | ||
406 | if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) | ||
407 | return NULL; | ||
408 | |||
405 | if (compare_ether_addr(bssid, sdata->u.ibss.bssid)) | 409 | if (compare_ether_addr(bssid, sdata->u.ibss.bssid)) |
406 | return NULL; | 410 | return NULL; |
407 | 411 | ||
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 1593a2ffd67a..7bba49d2b6ca 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -1418,6 +1418,10 @@ static bool need_dynamic_ps(struct ieee80211_local *local) | |||
1418 | if (!local->ps_sdata) | 1418 | if (!local->ps_sdata) |
1419 | return false; | 1419 | return false; |
1420 | 1420 | ||
1421 | /* No point if we're going to suspend */ | ||
1422 | if (local->quiescing) | ||
1423 | return false; | ||
1424 | |||
1421 | return true; | 1425 | return true; |
1422 | } | 1426 | } |
1423 | 1427 | ||
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 4b930308b1fb..7e38858a9280 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -1084,7 +1084,19 @@ int ieee80211_reconfig(struct ieee80211_local *local) | |||
1084 | 1084 | ||
1085 | /* restart hardware */ | 1085 | /* restart hardware */ |
1086 | if (local->open_count) { | 1086 | if (local->open_count) { |
1087 | /* | ||
1088 | * Upon resume hardware can sometimes be goofy due to | ||
1089 | * various platform / driver / bus issues, so restarting | ||
1090 | * the device may at times not work immediately. Propagate | ||
1091 | * the error. | ||
1092 | */ | ||
1087 | res = drv_start(local); | 1093 | res = drv_start(local); |
1094 | if (res) { | ||
1095 | WARN(local->suspended, "Harware became unavailable " | ||
1096 | "upon resume. This is could be a software issue" | ||
1097 | "prior to suspend or a harware issue\n"); | ||
1098 | return res; | ||
1099 | } | ||
1088 | 1100 | ||
1089 | ieee80211_led_radio(local, true); | 1101 | ieee80211_led_radio(local, true); |
1090 | } | 1102 | } |