Message ID | 20250604091629.3943-5-ian.lin@infineon.com |
---|---|
State | New |
Headers | show |
Series | wifi: brcmfmac: apmode related fix | expand |
On 6/4/2025 11:16 AM, Ian Lin wrote: > From: Ian Lin <ian.lin-ee@infineon.com> > > Wpa_supplicant will firstly call scan before start apmode. > In mbss case, controller will be disabled during stop apmode > so next time it reports fail in starting apmpde. > Fix by removing the disable operation. The function brcmf_cfg80211_stop_ap() is a bit tricky. The flag ifp->vif->mbss is set to true only when there are multiple AP interface and only for subsequent AP interface. For the first AP interface being created the flag is false. Now looking at the function I suspect there is an assumption that each AP interface will be stopped. So for a subsequent AP interfaces is will do a BRCMF_C_DOWN and for the first interface it will do other stuff below the if statement follwed by BRCMF_C_UP. Clearly you are solving another scenario here so could you elaborate on that? Regards, Arend > Signed-off-by: Ian Lin <ian.lin-ee@infineon.com> > --- > drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c > index e23cd6fc0f56..b4078e74f135 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c > @@ -5392,11 +5392,6 @@ static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev, > profile->use_fwauth = BIT(BRCMF_PROFILE_FWAUTH_NONE); > } > > - if (ifp->vif->mbss) { > - err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); > - return err; > - } > - > /* First BSS doesn't get a full reset */ > if (ifp->bsscfgidx == 0) > brcmf_fil_iovar_int_set(ifp, "closednet", 0);
On 6/4/2025 6:25 PM, Arend van Spriel wrote: > Caution: This e-mail originated outside Infineon Technologies. Please > be cautious when sharing information or opening attachments especially > from unknown senders. Refer to our intranet > guide<https://intranet-content.infineon.com/explore/aboutinfineon/rules/informationsecurity/ug/SocialEngineering/Pages/SocialEngineeringElements_en.aspx> > to help you identify Phishing email. > > > > On 6/4/2025 11:16 AM, Ian Lin wrote: >> From: Ian Lin <ian.lin-ee@infineon.com> >> >> Wpa_supplicant will firstly call scan before start apmode. >> In mbss case, controller will be disabled during stop apmode >> so next time it reports fail in starting apmpde. >> Fix by removing the disable operation. > > The function brcmf_cfg80211_stop_ap() is a bit tricky. The flag > ifp->vif->mbss is set to true only when there are multiple AP interface > and only for subsequent AP interface. For the first AP interface being > created the flag is false. > > Now looking at the function I suspect there is an assumption that each > AP interface will be stopped. So for a subsequent AP interfaces is will > do a BRCMF_C_DOWN and for the first interface it will do other stuff > below the if statement follwed by BRCMF_C_UP. > > Clearly you are solving another scenario here so could you elaborate on > that? > The patch is applied to solve problem in multiple AP scenario. But I found it may be better to include other patches together for the scenario. Let me collect the information and submit another new patch series. > Regards, > Arend > >> Signed-off-by: Ian Lin <ian.lin-ee@infineon.com> >> --- >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 ----- >> 1 file changed, 5 deletions(-) >> >> diff --git >> a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >> index e23cd6fc0f56..b4078e74f135 100644 >> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >> @@ -5392,11 +5392,6 @@ static int brcmf_cfg80211_stop_ap(struct wiphy >> *wiphy, struct net_device *ndev, >> profile->use_fwauth = >> BIT(BRCMF_PROFILE_FWAUTH_NONE); >> } >> >> - if (ifp->vif->mbss) { >> - err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); >> - return err; >> - } >> - >> /* First BSS doesn't get a full reset */ >> if (ifp->bsscfgidx == 0) >> brcmf_fil_iovar_int_set(ifp, "closednet", 0); > Regards, Ian
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index e23cd6fc0f56..b4078e74f135 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5392,11 +5392,6 @@ static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev, profile->use_fwauth = BIT(BRCMF_PROFILE_FWAUTH_NONE); } - if (ifp->vif->mbss) { - err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); - return err; - } - /* First BSS doesn't get a full reset */ if (ifp->bsscfgidx == 0) brcmf_fil_iovar_int_set(ifp, "closednet", 0);