summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/broadcom/brcm80211/brcmfmac
diff options
context:
space:
mode:
authorWright Feng <wright.feng@cypress.com>2017-12-08 03:05:19 -0600
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:32:22 +0800
commit2e9aca286a5349914277d11d171c134a1fe95dbb (patch)
treea119bf71e356d50dba9e75cb1add58737bf1ecb7 /drivers/net/wireless/broadcom/brcm80211/brcmfmac
parent9d2d3409e63535521e7706ec7b2905f0aee4cf4e (diff)
MLK-18675-09 brcmfmac: enlarge buffer size of caps to 512 bytes
The buffer size of return of cap iovar is greater than 256 bytes in some firmares. For instance, the return size of cap iovar is 271 bytes in 4373 13.10.246.79 firmare. It makes caps buffer is default value and cause the feature capability parsing failed. Because of that, we enlarge caps buffer size to 512 bytes and add the error print for cap iovar error. Signed-off-by: Wright Feng <wright.feng@cypress.com> Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Diffstat (limited to 'drivers/net/wireless/broadcom/brcm80211/brcmfmac')
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
index 53ae30259989..c7c3563f9a53 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
@@ -132,11 +132,16 @@ static void brcmf_feat_iovar_data_set(struct brcmf_if *ifp,
static void brcmf_feat_firmware_capabilities(struct brcmf_if *ifp)
{
- char caps[256];
+ char caps[512];
enum brcmf_feat_id id;
- int i;
+ int i, err;
+
+ err = brcmf_fil_iovar_data_get(ifp, "cap", caps, sizeof(caps));
+ if (err) {
+ brcmf_err("could not get firmware cap (%d)\n", err);
+ return;
+ }
- brcmf_fil_iovar_data_get(ifp, "cap", caps, sizeof(caps));
brcmf_dbg(INFO, "[ %s]\n", caps);
for (i = 0; i < ARRAY_SIZE(brcmf_fwcap_map); i++) {