lkml.org 
[lkml]   [2011]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: BUG: All network processes hang (brcmsmac/wpa_supplicant)
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@kr.ethz.ch>
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@broadcom.com>
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@broadcom.com>
---
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
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2011-10-19 18:51    [W:0.740 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site