mac80211: adjust reserved chan_ctx when assigned to vif
When a vif starts using a reserved channel context (during CSA, for example) the required chandef was recalculated, however it was never applied. This could result in using chanctx with narrower width than actually required. Fix this by calling ieee80211_change_chanctx with the recalculated chandef. This both changes the chanctx's width and recalcs min_def. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

父節點
bbbe8c8c59
當前提交
bf45a24243
@@ -1010,6 +1010,8 @@ ieee80211_vif_use_reserved_reassign(struct ieee80211_sub_if_data *sdata)
|
||||
if (WARN_ON(!chandef))
|
||||
return -EINVAL;
|
||||
|
||||
ieee80211_change_chanctx(local, new_ctx, chandef);
|
||||
|
||||
vif_chsw[0].vif = &sdata->vif;
|
||||
vif_chsw[0].old_ctx = &old_ctx->conf;
|
||||
vif_chsw[0].new_ctx = &new_ctx->conf;
|
||||
@@ -1083,6 +1085,8 @@ ieee80211_vif_use_reserved_assign(struct ieee80211_sub_if_data *sdata)
|
||||
if (WARN_ON(!chandef))
|
||||
return -EINVAL;
|
||||
|
||||
ieee80211_change_chanctx(local, new_ctx, chandef);
|
||||
|
||||
list_del(&sdata->reserved_chanctx_list);
|
||||
sdata->reserved_chanctx = NULL;
|
||||
|
||||
|
Reference in New Issue
Block a user