On Mon, 2014-03-10 at 08:03 +0100, Michal Kazior wrote: > On 7 March 2014 07:48, Luca Coelho <luca@xxxxxxxxx> wrote: > > On Wed, 2014-03-05 at 13:04 +0100, Michal Kazior wrote: > >> On 5 March 2014 12:11, Luca Coelho <luca@xxxxxxxxx> wrote: > >> > >> [...] > >> > >> > + /* unref our reservation before assigning */ > >> > + ctx->refcount--; > >> > + sdata->reserved_chanctx = NULL; > >> > + ret = ieee80211_assign_vif_chanctx(sdata, ctx); > >> > + if (ret) { > >> > + /* if assign fails refcount stays the same */ > >> > + if (ctx->refcount == 0) > >> > + ieee80211_free_chanctx(local, ctx); > >> > + goto out_wake; > >> > + } > >> > >> This actually won't work if there are AP VLANs (I noticed that yesterday). > >> > >> You can't call ieee80211_vif_copy_chanctx_to_vlans() here due to > >> current locking requirements. I have a patch for that though ;-) I'll > >> send it soon. > > > > How is this related to this patch? > > > > Anyway, good to know that you have fixed it. :) > > If you re-assign a chanctx of an AP that has VLANs you leave VLANs > with the old chanctx pointer. Those pointers should be updated or else > you'll end up dereferencing an invalid pointer. I see. So, I need to call ieee80211_vif_copy_chanctx_to_vlans() here, but to do that I need your patch that allows it to be called without the RTNL. So, now this series will depend on that patch, I'll talk to Johannes. -- Luca. -- 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