brcmfmac: fix the incorrect return value in brcmf_inform_single_bss().
authorRaveendran Somu <raveendran.somu@cypress.com>
Wed, 25 Mar 2020 08:20:26 +0000 (03:20 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 26 Mar 2020 09:44:01 +0000 (11:44 +0200)
The function brcmf_inform_single_bss returns the value as success,
even when the length exceeds the maximum value.
The fix is to send appropriate code on this error.
This issue is observed when Cypress test group reported random fmac
crashes when running their tests and the path was identified from the
crash logs. With this fix the random failure issue in Cypress test group
was resolved.

Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Raveendran Somu <raveendran.somu@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1585124429-97371-4-git-send-email-chi-hsien.lin@cypress.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index a2328d3..2ba1653 100644 (file)
@@ -2953,7 +2953,7 @@ static s32 brcmf_inform_single_bss(struct brcmf_cfg80211_info *cfg,
 
        if (le32_to_cpu(bi->length) > WL_BSS_INFO_MAX) {
                bphy_err(drvr, "Bss info is larger than buffer. Discarding\n");
-               return 0;
+               return -EINVAL;
        }
 
        if (!bi->ctl_ch) {