diff options
author | Wright Feng <wright.feng@cypress.com> | 2017-12-08 03:05:19 -0600 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:32:22 +0800 |
commit | 2e9aca286a5349914277d11d171c134a1fe95dbb (patch) | |
tree | a119bf71e356d50dba9e75cb1add58737bf1ecb7 /drivers/net/wireless/broadcom/brcm80211/brcmfmac | |
parent | 9d2d3409e63535521e7706ec7b2905f0aee4cf4e (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.c | 11 |
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++) { |