Re: [PATCH v5] nl80211: reset regdom when reloading regdb
From: Nathan Chancellor <nathan@kernel.org>
Date: 2021-11-30 18:32:21
Also in:
llvm
On Tue, Nov 30, 2021 at 05:50:58PM +0100, Finn Behrens wrote:
quoted
On 30. Nov 2021, at 17:02, Nathan Chancellor [off-list ref] wrote: On Sat, Nov 27, 2021 at 11:28:53AM +0100, Finn Behrens wrote:quoted
this reloads the regdom when the regulatory db is reloaded. Without this patch the user had to change the regulatoy domain to a different, and then reset it to the one the user is in, to have the new regulatory db take effect Signed-off-by: Finn Behrens <redacted>This patch as commit 1eda919126b4 ("nl80211: reset regdom when reloading regdb") in -next causes the following clang warning/error: net/wireless/reg.c:1137:23: error: implicit conversion from enumeration type 'enum nl80211_user_reg_hint_type' to different enumeration type 'enum nl80211_reg_initiator' [-Werror,-Wenum-conversion] request->initiator = NL80211_USER_REG_HINT_USER; ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. Should that be NL80211_REGDOM_SET_BY_CORE (same value, 0) or something different?I think It should have been NL80211_REGDOM_SET_BY_USER, as the reload flag check is currently implemented in the user hint function. But If I see it correctly right now. We could remove the reload flag, and NL80211_REGDOM_SET_BY_CORE should work as well. As the reg_query_database function is called unconditionally there.
If you tested the current version of your patch and it worked fine, then it seems like you should just revert the addition of the reload flag and change request->initiator = NL80211_USER_REG_HINT_USER; to request->initiator = NL80211_REGDOM_SET_BY_CORE; given that is what is happening right now. The warning is basically pointing out that reg_process_hint() is calling reg_process_hint_core() instead of reg_process_hint_user() because NL80211_USER_REG_HINT_USER = NL80211_REGDOM_SET_BY_CORE = 0. Hopefully that makes sense. Cheers, Nathan