On 12/19/2024 2:31 PM, Johannes Berg wrote:
On Thu, 2024-12-19 at 11:35 +0530, Kavita Kavita wrote:
The for_each_subchan() macro will not work for this. When sub channel is
null, it will terminate the loop, but in this case, we should continue
checking other sub channels.
Wait, I'm confused by what you're saying here. The for_each_subchan()
macro should iterate over all enabled (not punctured) subchannels, so
why would it not be applicable here?
So, In the following regulatory checks: cfg80211_get_chans_dfs_required,
cfg80211_get_chans_dfs_usable, cfg80211_get_chans_dfs_available, and so on.
When iterating over primary or secondary bandwidth, if we encounter any
null subchannel, the loop will terminate, and we will not check the
remaining subchannels. I handled this null subchannel case within the
macro itself, so when this situation occurs, the loop terminates and
does not check further subchannels.
However, for cfg80211_set_chans_dfs_state, we should iterate over all
channels, even if any subchannel is null.
The for_each_subchan() macro is designed to iterate over all enabled
(not punctured) subchannels.
However, I implemented this macro specifically for the above regulatory
checks.
I will fix this in the updated patch to make it applicable for all.
Thanks
johannes