All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] mac80211: mesh: flush stations before beacons are stopped
@ 2016-07-13 11:44 Yaniv Machani
  2016-08-01  9:39 ` Johannes Berg
  2016-08-02  8:45 ` Johannes Berg
  0 siblings, 2 replies; 3+ messages in thread
From: Yaniv Machani @ 2016-07-13 11:44 UTC (permalink / raw)
  To: linux-kernel
  Cc: Maital Hahn, Yaniv Machani, Johannes Berg, David S. Miller,
	linux-wireless, netdev

From: Maital Hahn <maitalm@ti.com>

Some drivers (e.g. wl18xx) expect that the last stage in the
de-initialization process will be stopping the beacons, similar to AP flow.
Update ieee80211_stop_mesh() flow accordingly.
As peers can be removed dynamically, this would not impact other drivers.

Tested also on Ralink RT3572 chipset.

Signed-off-by: Maital Hahn <maitalm@ti.com>
Signed-off-by: Yaniv Machani <yanivma@ti.com>
---
V2- updated comment, patch was tested with RT3572

 net/mac80211/mesh.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 21b1fdf..9214bc1 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -896,20 +896,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);
-- 
2.9.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 1/3] mac80211: mesh: flush stations before beacons are stopped
  2016-07-13 11:44 [PATCH v2 1/3] mac80211: mesh: flush stations before beacons are stopped Yaniv Machani
@ 2016-08-01  9:39 ` Johannes Berg
  2016-08-02  8:45 ` Johannes Berg
  1 sibling, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2016-08-01  9:39 UTC (permalink / raw)
  To: Yaniv Machani, linux-kernel
  Cc: Maital Hahn, David S. Miller, linux-wireless, netdev

On Wed, 2016-07-13 at 14:44 +0300, Yaniv Machani wrote:
> From: Maital Hahn <maitalm@ti.com>
> 
> Some drivers (e.g. wl18xx) expect that the last stage in the
> de-initialization process will be stopping the beacons, similar to AP
> flow.
> Update ieee80211_stop_mesh() flow accordingly.
> As peers can be removed dynamically, this would not impact other
> drivers.
> 
Ah, I see now that you did :)

johannes

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 1/3] mac80211: mesh: flush stations before beacons are stopped
  2016-07-13 11:44 [PATCH v2 1/3] mac80211: mesh: flush stations before beacons are stopped Yaniv Machani
  2016-08-01  9:39 ` Johannes Berg
@ 2016-08-02  8:45 ` Johannes Berg
  1 sibling, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2016-08-02  8:45 UTC (permalink / raw)
  To: Yaniv Machani, linux-kernel
  Cc: Maital Hahn, David S. Miller, linux-wireless, netdev

On Wed, 2016-07-13 at 14:44 +0300, Yaniv Machani wrote:
> From: Maital Hahn <maitalm@ti.com>
> 
> Some drivers (e.g. wl18xx) expect that the last stage in the
> de-initialization process will be stopping the beacons, similar to AP
> flow.
> Update ieee80211_stop_mesh() flow accordingly.
> As peers can be removed dynamically, this would not impact other
> drivers.
> 
Applied.

johannes

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-08-02  8:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-13 11:44 [PATCH v2 1/3] mac80211: mesh: flush stations before beacons are stopped Yaniv Machani
2016-08-01  9:39 ` Johannes Berg
2016-08-02  8:45 ` Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.