Merge tag 'mac80211-for-davem-2018-02-22' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg says: ==================== Various fixes across the tree, the shortlog basically says it all: cfg80211: fix cfg80211_beacon_dup -> old bug in this code cfg80211: clear wep keys after disconnection -> certain ways of disconnecting left the keys mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4 -> alignment issues with using 14 bytes mac80211: Do not disconnect on invalid operating class -> if the AP has a bogus operating class, let it be mac80211: Fix sending ADDBA response for an ongoing session -> don't send the same frame twice cfg80211: use only 1Mbps for basic rates in mesh -> interop issue with old versions of our code mac80211_hwsim: don't use WQ_MEM_RECLAIM -> it causes splats because it flushes work on a non-reclaim WQ regulatory: add NUL to request alpha2 -> nla_put_string() issue from Kees mac80211: mesh: fix wrong mesh TTL offset calculation -> protocol issue mac80211: fix a possible leak of station stats -> error path might leak memory mac80211: fix calling sleeping function in atomic context -> percpu allocations need to be made with gfp flags ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -170,9 +170,28 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
|
||||
enum nl80211_bss_scan_width scan_width;
|
||||
struct ieee80211_supported_band *sband =
|
||||
rdev->wiphy.bands[setup->chandef.chan->band];
|
||||
scan_width = cfg80211_chandef_to_scan_width(&setup->chandef);
|
||||
setup->basic_rates = ieee80211_mandatory_rates(sband,
|
||||
scan_width);
|
||||
|
||||
if (setup->chandef.chan->band == NL80211_BAND_2GHZ) {
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Older versions selected the mandatory rates for
|
||||
* 2.4 GHz as well, but were broken in that only
|
||||
* 1 Mbps was regarded as a mandatory rate. Keep
|
||||
* using just 1 Mbps as the default basic rate for
|
||||
* mesh to be interoperable with older versions.
|
||||
*/
|
||||
for (i = 0; i < sband->n_bitrates; i++) {
|
||||
if (sband->bitrates[i].bitrate == 10) {
|
||||
setup->basic_rates = BIT(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
scan_width = cfg80211_chandef_to_scan_width(&setup->chandef);
|
||||
setup->basic_rates = ieee80211_mandatory_rates(sband,
|
||||
scan_width);
|
||||
}
|
||||
}
|
||||
|
||||
err = cfg80211_chandef_dfs_required(&rdev->wiphy,
|
||||
|
@@ -1032,6 +1032,8 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
|
||||
wdev->current_bss = NULL;
|
||||
wdev->ssid_len = 0;
|
||||
wdev->conn_owner_nlportid = 0;
|
||||
kzfree(wdev->connect_keys);
|
||||
wdev->connect_keys = NULL;
|
||||
|
||||
nl80211_send_disconnected(rdev, dev, reason, ie, ie_len, from_ap);
|
||||
|
||||
|
Reference in New Issue
Block a user