| From 01eedc021fe36d9723fe7eb6dee730e2f0460af5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 8 Jun 2025 19:33:24 +0530 |
| Subject: wifi: mac80211: update radar_required in channel context after |
| channel switch |
| |
| From: Ramya Gnanasekar <ramya.gnanasekar@oss.qualcomm.com> |
| |
| [ Upstream commit 140c6a61d83cbd85adba769b5ef8d61acfa5b392 ] |
| |
| Currently, when a non-DFS channel is brought up and the bandwidth is |
| expanded from 80 MHz to 160 MHz, where the primary 80 MHz is non-DFS |
| and the secondary 80 MHz consists of DFS channels, radar detection |
| fails if radar occurs in the secondary 80 MHz. |
| |
| When the channel is switched from 80 MHz to 160 MHz, with the primary |
| 80 MHz being non-DFS and the secondary 80 MHz consisting of DFS |
| channels, the radar required flag in the channel switch parameters |
| is set to true. However, when using a reserved channel context, |
| it is not updated in sdata, which disables radar detection in the |
| secondary 80 MHz DFS channels. |
| |
| Update the radar required flag in sdata to fix this issue when using |
| a reserved channel context. |
| |
| Signed-off-by: Ramya Gnanasekar <ramya.gnanasekar@oss.qualcomm.com> |
| Signed-off-by: Ramasamy Kaliappan <ramasamy.kaliappan@oss.qualcomm.com> |
| Link: https://patch.msgid.link/20250608140324.1687117-1-ramasamy.kaliappan@oss.qualcomm.com |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/mac80211/chan.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c |
| index f07e34bed8f3..648af67b8ec8 100644 |
| --- a/net/mac80211/chan.c |
| +++ b/net/mac80211/chan.c |
| @@ -1308,6 +1308,7 @@ ieee80211_link_use_reserved_reassign(struct ieee80211_link_data *link) |
| goto out; |
| } |
| |
| + link->radar_required = link->reserved_radar_required; |
| list_move(&link->assigned_chanctx_list, &new_ctx->assigned_links); |
| rcu_assign_pointer(link_conf->chanctx_conf, &new_ctx->conf); |
| |
| -- |
| 2.39.5 |
| |