diff options
author | David S. Miller <davem@davemloft.net> | 2010-10-26 11:32:28 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-26 11:32:28 -0700 |
commit | 78fd9c4491a9c4cf8b401f1c5a516d3d28d3b42b (patch) | |
tree | aa65a89a09cd28f7b305c4f27a47903996b5b365 /net | |
parent | b9958a951ed4f8adff9ce02c2b1cb4ede8e2aa0e (diff) | |
parent | 822395b591db32ad3cf8a5b57b0fe30fb8d12c37 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/ibss.c | 1 | ||||
-rw-r--r-- | net/mac80211/main.c | 8 | ||||
-rw-r--r-- | net/mac80211/rate.c | 3 | ||||
-rw-r--r-- | net/wireless/reg.c | 2 |
4 files changed, 6 insertions, 8 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index ff60c022f51..239c4836a94 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c @@ -456,6 +456,7 @@ struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, if (!sta) return NULL; + sta->last_rx = jiffies; set_sta_flags(sta, WLAN_STA_AUTHORIZED); /* make sure mandatory rates are always added */ diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 22bc42b1899..6b322fa681f 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -748,7 +748,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) hw->queues = IEEE80211_MAX_QUEUES; local->workqueue = - create_singlethread_workqueue(wiphy_name(local->hw.wiphy)); + alloc_ordered_workqueue(wiphy_name(local->hw.wiphy), 0); if (!local->workqueue) { result = -ENOMEM; goto fail_workqueue; @@ -962,12 +962,6 @@ static void __exit ieee80211_exit(void) rc80211_minstrel_ht_exit(); rc80211_minstrel_exit(); - /* - * For key todo, it'll be empty by now but the work - * might still be scheduled. - */ - flush_scheduled_work(); - if (mesh_allocated) ieee80211s_stop(); diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c index 809cf230d25..33f76993da0 100644 --- a/net/mac80211/rate.c +++ b/net/mac80211/rate.c @@ -329,6 +329,9 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata, * if needed. */ for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { + /* Skip invalid rates */ + if (info->control.rates[i].idx < 0) + break; /* Rate masking supports only legacy rates for now */ if (info->control.rates[i].flags & IEEE80211_TX_RC_MCS) continue; diff --git a/net/wireless/reg.c b/net/wireless/reg.c index d14bbf960c1..4b9f8912526 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -1167,7 +1167,7 @@ static int ignore_request(struct wiphy *wiphy, return 0; return -EALREADY; } - return REG_INTERSECT; + return 0; case NL80211_REGDOM_SET_BY_DRIVER: if (last_request->initiator == NL80211_REGDOM_SET_BY_CORE) { if (regdom_changes(pending_request->alpha2)) |