diff mbox series

net: wireless: wcn36xx: Handle scan initialization error

Message ID 1621958739-5557-1-git-send-email-loic.poulain@linaro.org (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series net: wireless: wcn36xx: Handle scan initialization error | expand

Commit Message

Loic Poulain May 25, 2021, 4:05 p.m. UTC
In case firmware is not able to initialize scanning, return
an error to skip scanning on the channel. Scan initialization
can fail, if e.g. the firmware is not able to submit the null
function packet with PS bit set.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/main.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Kalle Valo June 12, 2021, 10:55 a.m. UTC | #1
Loic Poulain <loic.poulain@linaro.org> writes:

> In case firmware is not able to initialize scanning, return
> an error to skip scanning on the channel. Scan initialization
> can fail, if e.g. the firmware is not able to submit the null
> function packet with PS bit set.
>
> Signed-off-by: Loic Poulain <loic.poulain@linaro.org>

No "net: wireless:" in the title, please.

> --- a/drivers/net/wireless/ath/wcn36xx/main.c
> +++ b/drivers/net/wireless/ath/wcn36xx/main.c
> @@ -433,8 +433,11 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
>  			/* A scan is ongoing, do not change the operating
>  			 * channel, but start a scan session on the channel.
>  			 */
> -			wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
> -					      wcn->sw_scan_vif);
> +			if (wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
> +						  wcn->sw_scan_vif)) {
> +				mutex_unlock(&wcn->conf_mutex);
> +				return -EIO;
> +			}

Why are you rewriting the error code from wcn36xx_smd_init_scan()?

Also I think this style is more readable (which does not rewrite the
error code either):

ret = foo();
if (ret) {
    ...
}
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index eaa38d3..c99c670 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -433,8 +433,11 @@  static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
 			/* A scan is ongoing, do not change the operating
 			 * channel, but start a scan session on the channel.
 			 */
-			wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
-					      wcn->sw_scan_vif);
+			if (wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
+						  wcn->sw_scan_vif)) {
+				mutex_unlock(&wcn->conf_mutex);
+				return -EIO;
+			}
 			wcn36xx_smd_start_scan(wcn, ch);
 		} else {
 			wcn36xx_change_opchannel(wcn, ch);