Search Linux Wireless

Re: BUG: All network processes hang (brcmsmac/wpa_supplicant)

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

 



On 10/19/2011 04:55 PM, Nico Schottelius wrote:
> Hey Arend,
> 
> 
> Arend van Spriel [Wed, Oct 19, 2011 at 04:43:27PM +0200]:
>> I actually don't see the rtnl_lock or mutex_lock that was listed in your
>> original dmesg. There are a lot of warning traces from mac80211.c.

The warnings are probably a diversion. This is the warning in
ieee80211_rx():

			if (WARN_ON(status->rate_idx < 0 ||
				    status->rate_idx >= sband->n_bitrates))
				goto drop;
			rate = &sband->bitrates[status->rate_idx];

This means that the driver (brcmsmac) provides a data packet with an
out-of-range rate index. This reminded me of a fix I made about a month
ago. Could you apply the attached patch file. It is based on:

commit bee709ab1d390afe69e4407bc86bb706c6fb2965
Merge: ad1c761 1f2c7e9
Author: Nico Schottelius <nico@xxxxxxxxxx>
Date:   Tue Oct 18 00:04:05 2011 +0200

    Merge branch 'fix-edp-vdd-power' of ../keithp/linux

As it drops receive packets it may be your problem. Is your AP on 5GHz?

Gr. AvS
From 7d14bd6cbfbf26369c5958e56a468fd8429841d7 Mon Sep 17 00:00:00 2001
From: Arend van Spriel <arend@xxxxxxxxxxxx>
Date: Wed, 19 Oct 2011 18:42:45 +0200
Subject: [PATCH] staging: brcm80211: fix for rate index in receive status

Made a patch for Nico to try whether this resolves his issue.

Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
---
 drivers/staging/brcm80211/brcmsmac/main.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/main.c b/drivers/staging/brcm80211/brcmsmac/main.c
index 1763c45..49c8eb9 100644
--- a/drivers/staging/brcm80211/brcmsmac/main.c
+++ b/drivers/staging/brcm80211/brcmsmac/main.c
@@ -4608,6 +4608,10 @@ prep_mac80211_status(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
 			wiphy_err(wlc->wiphy, "%s: Unknown rate\n", __func__);
 		}
 
+		/* DEBUG: fix rate index in receive status */
+		if (rx_status->band == IEEE80211_BAND_5GHZ)
+			rx_status->rate_idx -= 4;
+
 		/* Determine short preamble and rate_idx */
 		preamble = 0;
 		if (IS_CCK(rspec)) {
-- 
1.7.4.1

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux