On September 7, 2020 5:29:14 PM Kalle Valo <kvalo@xxxxxxxxxxxxxx> wrote:
Wright Feng <Wright.Feng@xxxxxxxxxxx> writes:
+brcmf_cfg80211_change_bss(struct wiphy *wiphy, struct net_device *dev,
+ struct bss_parameters *params)
+{
+ struct brcmf_if *ifp;
+ int ret = 0;
+ u32 ap_isolate;
+
+ brcmf_dbg(TRACE, "Enter\n");
+ ifp = netdev_priv(dev);
+ if (params->ap_isolate >= 0) {
+ ap_isolate = (u32)params->ap_isolate;
+ ret = brcmf_fil_iovar_int_set(ifp, "ap_isolate", ap_isolate);
Is the cast to u32 really necessary? Please avoid casts as much as
possible.
It seems to me. struct bss_parameters::ap_isolate is typed as int. It
is passed to brcmf_fil_iovar_int_set() which requires a u32 (maybe
function name is causing the confusion).
What extra value does this explicit type casting bring here? I don't see
it. Implicit type casting would work the same, no?
The value will be -1, 0 or 1.
I will submit v2 patch that ignores doing iovar if getting
params->ap_isolate -1 and removes explicit type casting. Thanks for the
comment.
Oh, I didn't realise ap_isolate can be -1 as struct bss_parameters
didn't document that. Can someone submit a patch to fix that?
* @ap_isolate: do not forward packets between connected stations
Me too. I assumed it was a boolean reading that description.
Regards,
Arend