[PATCH] tests: add a test for mesh gate forwarding
Bob Copeland
me at bobcopeland.com
Sat Mar 5 12:40:15 PST 2016
On Sat, Mar 05, 2016 at 03:29:13PM -0500, Bob Copeland wrote:
> On Sat, Mar 05, 2016 at 10:12:33PM +0200, Jouni Malinen wrote:
> > On Sat, Mar 05, 2016 at 10:05:05PM +0200, Jouni Malinen wrote:
> > > So something is corrupting memory there..
> >
> > Or well.. It's a call to a mesh function after vif type has changed:
> >
> > [ 8.195793] JKM:sdata->name='wlan2' vif.type=7
> > [ 11.370760] IPv6: ADDRCONF(NETDEV_UP): wlan2: link is not ready
> > [ 11.400032] JKM:mesh_path_send_to_gates:tbl= (null)
> > [ 11.403328] JKM:sdata->name='wlan2' vif.type=2
> >
> > Did something forgot to cancel mesh_path_timer() calls?
>
> Not sure, but, mesh_pathtbl_unregister() should probably be coming after
> del_timer_sync(&sdata->u.mesh.mesh_path_timer) instead of before it...
I.e., does this patch help at all?
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 1a2aaf461e98..890fcdb2cc9c 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -905,7 +905,6 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata)
/* flush STAs and mpaths on this iface */
sta_info_flush(sdata);
mesh_path_flush_by_iface(sdata);
- mesh_pathtbl_unregister(sdata);
/* free all potentially still buffered group-addressed frames */
local->total_ps_buffered -= skb_queue_len(&ifmsh->ps.bc_buf);
@@ -915,6 +914,8 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata)
del_timer_sync(&sdata->u.mesh.mesh_path_root_timer);
del_timer_sync(&sdata->u.mesh.mesh_path_timer);
+ mesh_pathtbl_unregister(sdata);
+
/* clear any mesh work (for next join) we may have accrued */
ifmsh->wrkq_flags = 0;
ifmsh->mbss_changed = 0;
--
Bob Copeland %% http://bobcopeland.com/
More information about the Hostap
mailing list