diff options
author | Mark Brown <broonie@kernel.org> | 2016-09-14 18:07:48 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-09-14 18:07:48 +0100 |
commit | 9fd1cd58356bcc1c4710a454796bff0cc997d5da (patch) | |
tree | 0b88d55b02c8969742ee31cf302fd5e284f2f430 /net/mac80211/mesh.c | |
parent | 62bb7104687c0ac1e85b1cf45a85a20b492b06a6 (diff) | |
parent | cfb89f2e7505c6823020a18bbdc5410284305234 (diff) | |
download | linux-9fd1cd58356bcc1c4710a454796bff0cc997d5da.tar.gz linux-9fd1cd58356bcc1c4710a454796bff0cc997d5da.tar.xz |
Merge tag 'asoc-fix-v4.8-rc4' into asoc-arizona
ASoC: Fixes for v4.8
A clutch of fixes for v4.8. These are mainly driver specific, the most
notable ones being those for OMAP which fix a series of issues that
broke boot on some platforms there when deferred probe kicked in.
There's also one core fix for an issue when unbinding a card which for
some reason had managed to not manifest until recently.
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r-- | net/mac80211/mesh.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c index c66411df9863..42120d965263 100644 --- a/net/mac80211/mesh.c +++ b/net/mac80211/mesh.c @@ -881,20 +881,22 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata) netif_carrier_off(sdata->dev); + /* flush STAs and mpaths on this iface */ + sta_info_flush(sdata); + mesh_path_flush_by_iface(sdata); + /* stop the beacon */ ifmsh->mesh_id_len = 0; sdata->vif.bss_conf.enable_beacon = false; clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state); ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED); + + /* remove beacon */ bcn = rcu_dereference_protected(ifmsh->beacon, lockdep_is_held(&sdata->wdev.mtx)); RCU_INIT_POINTER(ifmsh->beacon, NULL); kfree_rcu(bcn, rcu_head); - /* flush STAs and mpaths on this iface */ - sta_info_flush(sdata); - mesh_path_flush_by_iface(sdata); - /* free all potentially still buffered group-addressed frames */ local->total_ps_buffered -= skb_queue_len(&ifmsh->ps.bc_buf); skb_queue_purge(&ifmsh->ps.bc_buf); |