Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

brcmutil: assure unused bits are cleared in 11n chanspec

The firmware channel specification is a bitfield using a
16-bit integer, but only 14 lsb are used. Upon encoding
this value assure all 16 bits are cleared.

Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by

Arend van Spriel and committed by
John W. Linville
6833965c 71ded72a

+1 -1
+1 -1
drivers/net/wireless/brcm80211/brcmutil/d11.c
··· 54 54 if (ch->bw == BRCMU_CHAN_BW_20) 55 55 ch->sb = BRCMU_CHAN_SB_NONE; 56 56 57 + ch->chspec = 0; 57 58 brcmu_maskset16(&ch->chspec, BRCMU_CHSPEC_CH_MASK, 58 59 BRCMU_CHSPEC_CH_SHIFT, ch->chnum); 59 60 brcmu_maskset16(&ch->chspec, BRCMU_CHSPEC_D11N_SB_MASK, ··· 62 61 brcmu_maskset16(&ch->chspec, BRCMU_CHSPEC_D11N_BW_MASK, 63 62 0, d11n_bw(ch->bw)); 64 63 65 - ch->chspec &= ~BRCMU_CHSPEC_D11N_BND_MASK; 66 64 if (ch->chnum <= CH_MAX_2G_CHANNEL) 67 65 ch->chspec |= BRCMU_CHSPEC_D11N_BND_2G; 68 66 else