On Wed, Sep 30, 2009 at 10:16 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > I can't reproduce that oops, but we have a fix to the issue which I'll > send separately. Thanks for patches. However, I've investigated that oops and I don't really understand it. Problem seems to be in __sta_info_unlink where code checks if vif is a mesh. Since this is a vlan iface, sdata used actually belongs to ap iface due to previous if but that really shouldn't be a problem since ap's sdata should have vif->type as well, right? While testing I've found out that sdata_of_ap->vif points to funny addresses like 248 and such. So I've changed the code and that seems to have fixed oops. I think this is now the right behaviour, anyway. --- a/net/mac80211/sta_info.c 2009-10-01 16:27:31.000000000 +0200 +++ b/net/mac80211/sta_info.c 2009-10-01 16:24:34.000000000 +0200 @@ -498,7 +498,7 @@ static void __sta_info_unlink(struct sta &(*sta)->sta); } - if (ieee80211_vif_is_mesh(&(*sta)->sdata->vif)) { + if (ieee80211_vif_is_mesh(&sdata->vif)) { mesh_accept_plinks_update(sdata); #ifdef CONFIG_MAC80211_MESH del_timer(&(*sta)->plink_timer); -- 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