Message ID | 1621958739-5557-1-git-send-email-loic.poulain@linaro.org |
---|---|
State | New |
Headers | show |
Series | net: wireless: wcn36xx: Handle scan initialization error | expand |
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) { ... } -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches _______________________________________________ wcn36xx mailing list wcn36xx@lists.infradead.org http://lists.infradead.org/mailman/listinfo/wcn36xx
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);
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(-) -- 2.7.4