diff mbox

mwifiex: check for mfg_mode in add_virtual_intf

Message ID 1504118818-1749-1-git-send-email-gbhat@marvell.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show

Commit Message

Ganapathi Bhat Aug. 30, 2017, 6:46 p.m. UTC
If driver is loaded with 'mfg_mode' enabled, then the sending
commands are not allowed. So, when mwifiex_send_cmd fails in
mwifiex_add_virtual_intf, driver must check for 'mfg_mode' before
returning error.

Fixes: 7311ea850079 ("mwifiex: fix AP start problem for newly added interface")
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
---
 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Brian Norris Aug. 31, 2017, 8:21 p.m. UTC | #1
On Thu, Aug 31, 2017 at 12:16:58AM +0530, Ganapathi Bhat wrote:
> If driver is loaded with 'mfg_mode' enabled, then the sending
> commands are not allowed. So, when mwifiex_send_cmd fails in
> mwifiex_add_virtual_intf, driver must check for 'mfg_mode' before
> returning error.
> 
> Fixes: 7311ea850079 ("mwifiex: fix AP start problem for newly added interface")
> Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
> ---
>  drivers/net/wireless/marvell/mwifiex/cfg80211.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> index ffada17..1856205 100644
> --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> @@ -2967,11 +2967,11 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
>  
>  	ret = mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE,
>  			       HostCmd_ACT_GEN_SET, 0, NULL, true);
> -	if (ret)
> +	if (ret && !adapter->mfg_mode)

It doesn't feel like ignoring errors is the best approach here,
especially when it's only a single command that we could easily just
skip.

So, why don't you just skip it, like this?

	if (!adapter->mfg_mode) {
		ret = mwifiex_send_cmd(...);
		if (ret)
			goto err_set_bss_mode;
	}

>  		goto err_set_bss_mode;
>  
>  	ret = mwifiex_sta_init_cmd(priv, false, false);
> -	if (ret)
> +	if (ret && !adapter->mfg_mode)
>  		goto err_sta_init;

Same here; I think it's safe to just completely skip
mwifiex_sta_init_cmd(), no?

Brian

>  
>  	mwifiex_setup_ht_caps(&wiphy->bands[NL80211_BAND_2GHZ]->ht_cap, priv);
> -- 
> 1.9.1
>
Ganapathi Bhat Sept. 7, 2017, 8:41 p.m. UTC | #2
Hi Brian,

> 
> ----------------------------------------------------------------------
> On Thu, Aug 31, 2017 at 12:16:58AM +0530, Ganapathi Bhat wrote:
> > If driver is loaded with 'mfg_mode' enabled, then the sending
> commands
> > are not allowed. So, when mwifiex_send_cmd fails in
> > mwifiex_add_virtual_intf, driver must check for 'mfg_mode' before
> > returning error.
> >
> > Fixes: 7311ea850079 ("mwifiex: fix AP start problem for newly added
> > interface")
> > Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
> > ---
> >  drivers/net/wireless/marvell/mwifiex/cfg80211.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> > b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> > index ffada17..1856205 100644
> > --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> > +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> > @@ -2967,11 +2967,11 @@ struct wireless_dev
> > *mwifiex_add_virtual_intf(struct wiphy *wiphy,
> >
> >  	ret = mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE,
> >  			       HostCmd_ACT_GEN_SET, 0, NULL, true);
> > -	if (ret)
> > +	if (ret && !adapter->mfg_mode)
> 
> It doesn't feel like ignoring errors is the best approach here,
> especially when it's only a single command that we could easily just
> skip.
Got it.
> 
> So, why don't you just skip it, like this?
> 
> 	if (!adapter->mfg_mode) {
Yes. This is better.
> 		ret = mwifiex_send_cmd(...);
> 		if (ret)
> 			goto err_set_bss_mode;
> 	}
> 
> >  		goto err_set_bss_mode;
> >
> >  	ret = mwifiex_sta_init_cmd(priv, false, false);
> > -	if (ret)
> > +	if (ret && !adapter->mfg_mode)
> >  		goto err_sta_init;
> 
> Same here; I think it's safe to just completely skip
> mwifiex_sta_init_cmd(), no?
Yes. I have sent v2 of these changes.
> 
> Brian
> 
> >
> >  	mwifiex_setup_ht_caps(&wiphy->bands[NL80211_BAND_2GHZ]->ht_cap,
> > priv);
> > --
> > 1.9.1
> >

Thanks,
Ganapathi
diff mbox

Patch

diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index ffada17..1856205 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -2967,11 +2967,11 @@  struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
 
 	ret = mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE,
 			       HostCmd_ACT_GEN_SET, 0, NULL, true);
-	if (ret)
+	if (ret && !adapter->mfg_mode)
 		goto err_set_bss_mode;
 
 	ret = mwifiex_sta_init_cmd(priv, false, false);
-	if (ret)
+	if (ret && !adapter->mfg_mode)
 		goto err_sta_init;
 
 	mwifiex_setup_ht_caps(&wiphy->bands[NL80211_BAND_2GHZ]->ht_cap, priv);