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 a2328d3eee0367e9a5101b18171ea6c07aa6e042..2ba165330038eadb19cea05847e257c0d15a4ad9 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) {