Hi Kalle, On 27/07/22 18:30, Kalle Valo wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > <Ajay.Kathat@xxxxxxxxxxxxx> writes: > >> From: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> >> >> Sparse reported below warning >>>> drivers/net/wireless/microchip/wilc1000/cfg80211.c:361:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int key_mgmt_suite @@ got restricted __be32 [usertype] @@ >> 'key_mgmt_suite' value is expected in big-endian format. After receiving >> mgmt_suite value from wpa_s convert to cpu endianness because the same >> value is return back using cfg80211_external_auth_request(). Use >> be32_to_cpu() conversion API to avoid the sparse warning. >> >> Reported-by: kernel test robot <lkp@xxxxxxxxx> >> Fixes: c5b331d4f550fb78 ("wifi: wilc1000: add WPA3 SAE support") >> Signed-off-by: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> >> --- >> drivers/net/wireless/microchip/wilc1000/cfg80211.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/wireless/microchip/wilc1000/cfg80211.c b/drivers/net/wireless/microchip/wilc1000/cfg80211.c >> index 5c2c7f1dbffd..19862d932f1f 100644 >> --- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c >> +++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c >> @@ -359,7 +359,7 @@ static int connect(struct wiphy *wiphy, struct net_device *dev, >> memcpy(vif->auth.ssid.ssid, sme->ssid, sme->ssid_len); >> vif->auth.ssid.ssid_len = sme->ssid_len; >> } >> - vif->auth.key_mgmt_suite = cpu_to_be32(sme->crypto.akm_suites[0]); >> + vif->auth.key_mgmt_suite = be32_to_cpu((__force __be32)sme->crypto.akm_suites[0]); > No time to investigate in detail but the cast is just ugly. Isn't there > a better way to fix this? I think, there is an another way to handle this issue. 'key_mgmt_suite' element in 'cfg80211_external_auth_params' struct should be converted to '__be32' type(like below code snippet) because wpa_s expects the value in big-endian format . After this change, the type case can be avoided. Though I am not sure if these changes can have impact on other driver. diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index cc8a9880b9d6..92df70afe445 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -3509,7 +3509,7 @@ struct cfg80211_external_auth_params { enum nl80211_external_auth_action action; u8 bssid[ETH_ALEN] __aligned(2); struct cfg80211_ssid ssid; - unsigned int key_mgmt_suite; + __be32 key_mgmt_suite; u16 status; const u8 *pmkid; }; Regards, Ajay