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. Michał -- 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