diff mbox

[v4,1/2] b43: fix the wrong assignment of status.freq in b43_rx()

Message ID d4d1340a176aee1e58ffe80e83ddc3394f2829e3.1389975095.git.gamerh2o@gmail.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Gang ZHAO Jan. 17, 2014, 4:17 p.m. UTC
Use the right function to update frequency value.

If rx skb is probe response or beacon, the wrong frequency value can
cause problem that bss info can't be updated when it should be.

Cc: <stable@vger.kernel.org>
Fixes: 8318d78a44d4 ("cfg80211 API for channels/bitrates, mac80211
and driver conversion")
Signed-off-by: ZHAO Gang <gamerh2o@gmail.com>
---
v4: change commit message
    suggested by Johannes Berg

 drivers/net/wireless/b43/xmit.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Larry Finger Jan. 17, 2014, 10:18 p.m. UTC | #1
On 01/17/2014 10:17 AM, ZHAO Gang wrote:
> Use the right function to update frequency value.
>
> If rx skb is probe response or beacon, the wrong frequency value can
> cause problem that bss info can't be updated when it should be.
>
> Cc: <stable@vger.kernel.org>
> Fixes: 8318d78a44d4 ("cfg80211 API for channels/bitrates, mac80211
> and driver conversion")
> Signed-off-by: ZHAO Gang <gamerh2o@gmail.com>
> ---

This patch seems to fix a problem that caused scanning under NetworkManager to 
fail. The symptom was that no available networks were seen in the NM applet 
after a connection was made. Now the available AP list remains populated.

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

Larry


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafał Miłecki Jan. 26, 2014, 2:35 p.m. UTC | #2
2014/1/17 ZHAO Gang <gamerh2o@gmail.com>:
> Use the right function to update frequency value.
>
> If rx skb is probe response or beacon, the wrong frequency value can
> cause problem that bss info can't be updated when it should be.

Zhao: this fix is great. My development machine was running some
ancient distro with kernel 2.6.22, so I couldn't test it earlier.

For a long time I got problem with finding AP on channel 13. I reported it in:
cfg80211: use DS or HT operation IEs to determine BSS channel"

I did 10 tests *without* your patch. wpa_supplicant had to scan 43,
33, 7, 2, 46, 12, 7, 32, 6, 6 times to find my AP on channel 13.
With your patch wpa_supplicant finds it in scanning results after the first try!

Thanks a lot for finding and fixing it!

[0] http://lists.infradead.org/pipermail/b43-dev/2013-March/003003.html
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/wireless/b43/xmit.c b/drivers/net/wireless/b43/xmit.c
index 4ae63f4..50e5ddb 100644
--- a/drivers/net/wireless/b43/xmit.c
+++ b/drivers/net/wireless/b43/xmit.c
@@ -821,10 +821,10 @@  void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)
 		 * channel number in b43. */
 		if (chanstat & B43_RX_CHAN_5GHZ) {
 			status.band = IEEE80211_BAND_5GHZ;
-			status.freq = b43_freq_to_channel_5ghz(chanid);
+			status.freq = b43_channel_to_freq_5ghz(chanid);
 		} else {
 			status.band = IEEE80211_BAND_2GHZ;
-			status.freq = b43_freq_to_channel_2ghz(chanid);
+			status.freq = b43_channel_to_freq_2ghz(chanid);
 		}
 		break;
 	default: