Thanks again for all your comments!
On 11/30/2012 04:09 AM, Johannes Berg wrote:
On Fri, 2012-11-23 at 12:18 -0800, Marco Porsch wrote:
+++ b/net/mac80211/mesh.c
@@ -657,10 +657,16 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata)
ifmsh->mesh_id_len = 0;
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED);
+ /* 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);
+
/* flush STAs and mpaths on this iface */
sta_info_flush(sdata->local, sdata);
mesh_path_flush_by_iface(sdata);
the queue purge would seem to be in the wrong spot
Where would you recommend to put it then?
My idea was that after the (DTIM) beacon is disabled these buffered
broadcasts are stuck either way, so they can be purged.
+#ifdef CONFIG_MAC80211_MESH
+ } else if (sta->sdata->vif.type == NL80211_IFTYPE_MESH_POINT) {
maybe use vif_is_mesh anyway for consistency?
johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html