aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/chan.c5
-rw-r--r--net/mac80211/ieee80211_i.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
index fcb2cd8ffd07..4ed229c0966a 100644
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -742,7 +742,8 @@ int ieee80211_vif_unreserve_chanctx(struct ieee80211_sub_if_data *sdata)
742 742
743int ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata, 743int ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata,
744 const struct cfg80211_chan_def *chandef, 744 const struct cfg80211_chan_def *chandef,
745 enum ieee80211_chanctx_mode mode) 745 enum ieee80211_chanctx_mode mode,
746 bool radar_required)
746{ 747{
747 struct ieee80211_local *local = sdata->local; 748 struct ieee80211_local *local = sdata->local;
748 struct ieee80211_chanctx_conf *conf; 749 struct ieee80211_chanctx_conf *conf;
@@ -786,6 +787,7 @@ int ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata,
786 new_ctx->refcount++; 787 new_ctx->refcount++;
787 sdata->reserved_chanctx = new_ctx; 788 sdata->reserved_chanctx = new_ctx;
788 sdata->reserved_chandef = *chandef; 789 sdata->reserved_chandef = *chandef;
790 sdata->reserved_radar_required = radar_required;
789out: 791out:
790 mutex_unlock(&local->chanctx_mtx); 792 mutex_unlock(&local->chanctx_mtx);
791 return ret; 793 return ret;
@@ -830,6 +832,7 @@ int ieee80211_vif_use_reserved_context(struct ieee80211_sub_if_data *sdata,
830 /* unref our reservation */ 832 /* unref our reservation */
831 ctx->refcount--; 833 ctx->refcount--;
832 sdata->reserved_chanctx = NULL; 834 sdata->reserved_chanctx = NULL;
835 sdata->radar_required = sdata->reserved_radar_required;
833 836
834 if (old_ctx == ctx) { 837 if (old_ctx == ctx) {
835 /* This is our own context, just change it */ 838 /* This is our own context, just change it */
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index bfc3ca506fbd..4018ba13c028 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -759,6 +759,7 @@ struct ieee80211_sub_if_data {
759 /* context reservation -- protected with chanctx_mtx */ 759 /* context reservation -- protected with chanctx_mtx */
760 struct ieee80211_chanctx *reserved_chanctx; 760 struct ieee80211_chanctx *reserved_chanctx;
761 struct cfg80211_chan_def reserved_chandef; 761 struct cfg80211_chan_def reserved_chandef;
762 bool reserved_radar_required;
762 763
763 /* used to reconfigure hardware SM PS */ 764 /* used to reconfigure hardware SM PS */
764 struct work_struct recalc_smps; 765 struct work_struct recalc_smps;
@@ -1777,7 +1778,8 @@ ieee80211_vif_use_channel(struct ieee80211_sub_if_data *sdata,
1777int __must_check 1778int __must_check
1778ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata, 1779ieee80211_vif_reserve_chanctx(struct ieee80211_sub_if_data *sdata,
1779 const struct cfg80211_chan_def *chandef, 1780 const struct cfg80211_chan_def *chandef,
1780 enum ieee80211_chanctx_mode mode); 1781 enum ieee80211_chanctx_mode mode,
1782 bool radar_required);
1781int __must_check 1783int __must_check
1782ieee80211_vif_use_reserved_context(struct ieee80211_sub_if_data *sdata, 1784ieee80211_vif_use_reserved_context(struct ieee80211_sub_if_data *sdata,
1783 u32 *changed); 1785 u32 *changed);