Search Linux Wireless

Re: [BUG REPORT] brcmfmac: wrong logic in finding control/primary channel relative location

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/20/14 19:25, Rafał Miłecki wrote:
---
Hi guys,

Let me report something I think is a bug in this unusual-patch way ;)
---
  drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index 39b45c0..2c9e88b 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -313,11 +313,13 @@ static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf,
  	case NL80211_CHAN_WIDTH_80:
  		ch_inf.bw = BRCMU_CHAN_BW_80;
  		if (primary_offset<  0) {
+			/* FIXME: We compare frequencies offset with a value -2. Looks like a wrong logic. */
  			if (primary_offset<  -CH_10MHZ_APART)

You are right. The primary_offset is in MHz, but the logical expression is for channel spacing (1 channel == 5MHz). So here it should be -10 instead. Thanks for reporting this.

Regards,
Arend
  				ch_inf.sb = BRCMU_CHAN_SB_UU;
  			else
  				ch_inf.sb = BRCMU_CHAN_SB_UL;
  		} else {
+			/* FIXME: We compare frequencies offset with a value 2. Looks like a wrong logic. */
  			if (primary_offset>  CH_10MHZ_APART)
  				ch_inf.sb = BRCMU_CHAN_SB_LL;
  			else

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux