aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Kim <dekim@broadcom.com>2014-05-27 06:56:26 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-05-29 13:10:26 -0400
commit7dd3abc14f94bc1226aaa5075c73928d6b1d544c (patch)
tree318fb51831b596a459b47d4aed5208707ea13902
parent6833965c461194eddce581dd8cfa7eedf744a019 (diff)
brcmfmac: Increase max buffer size for receiving control message from dongle
The max buffer size for receiving control message from dongle needs to be increased considering possible block padding. Otherwise some big control message can't be received due to buffer overrun check. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Daniel Kim <dekim@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
index 506ef0d4a52b..8fa0dbbbda72 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
@@ -4086,8 +4086,13 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
4086 goto fail; 4086 goto fail;
4087 } 4087 }
4088 4088
4089 /* Query the F2 block size, set roundup accordingly */
4090 bus->blocksize = bus->sdiodev->func[2]->cur_blksize;
4091 bus->roundup = min(max_roundup, bus->blocksize);
4092
4089 /* Allocate buffers */ 4093 /* Allocate buffers */
4090 if (bus->sdiodev->bus_if->maxctl) { 4094 if (bus->sdiodev->bus_if->maxctl) {
4095 bus->sdiodev->bus_if->maxctl += bus->roundup;
4091 bus->rxblen = 4096 bus->rxblen =
4092 roundup((bus->sdiodev->bus_if->maxctl + SDPCM_HDRLEN), 4097 roundup((bus->sdiodev->bus_if->maxctl + SDPCM_HDRLEN),
4093 ALIGNMENT) + bus->head_align; 4098 ALIGNMENT) + bus->head_align;
@@ -4115,10 +4120,6 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
4115 bus->idletime = BRCMF_IDLE_INTERVAL; 4120 bus->idletime = BRCMF_IDLE_INTERVAL;
4116 bus->idleclock = BRCMF_IDLE_ACTIVE; 4121 bus->idleclock = BRCMF_IDLE_ACTIVE;
4117 4122
4118 /* Query the F2 block size, set roundup accordingly */
4119 bus->blocksize = bus->sdiodev->func[2]->cur_blksize;
4120 bus->roundup = min(max_roundup, bus->blocksize);
4121
4122 /* SR state */ 4123 /* SR state */
4123 bus->sleeping = false; 4124 bus->sleeping = false;
4124 bus->sr_enabled = false; 4125 bus->sr_enabled = false;