hi Larry, On Tue, May 1, 2012 at 10:58 PM, Larry Finger <Larry.Finger@xxxxxxxxxxxx> wrote: > After upgrading to 3.4-rc5 from wireless-testing, one of my boxes fails to > scan and gets a "Network down" message for all wireless devices. The code in > 3.4-rc4 was OK, thus I bisected to find the offending commit. The one that > broke my wireless is commit 3a25a8c entitled "mac80211: add improved HW > queue control". > > On my main laptop, this patch causes no problems. On a 3rd box, a BCM4312 > (b43) is OK, but an RTL8187L (rtl8187) also fails in the same manner. > > The problem is not in the configuration as I copied the one from the box > that works to the one that fails, and it still fails. The only difference is > that the working system has 2 CPUs and the ones that fail are uni-processor; > however, if I boot with maxcpus=1, my main machine still works. > > Any suggestions of things to try will be appreciated. > i'm not sure this is related to the problem you're facing, but the commit above seems to have some bug in which a packet might get enqueued on invalid queue (0xff) - please try this patch (compile tested only): diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 3557354..ee815a9 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -2106,7 +2106,8 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct net_device *dev, IEEE80211_SKB_CB(skb)->flags = flags; - if (flags & IEEE80211_TX_CTL_TX_OFFCHAN) + if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL && + flags & IEEE80211_TX_CTL_TX_OFFCHAN) IEEE80211_SKB_CB(skb)->hw_queue = local->hw.offchannel_tx_hw_queue; @@ -2151,8 +2152,9 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct net_device *dev, /* modify cookie to prevent API mismatches */ *cookie ^= 2; IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_CTL_TX_OFFCHAN; - IEEE80211_SKB_CB(skb)->hw_queue = - local->hw.offchannel_tx_hw_queue; + if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL) + IEEE80211_SKB_CB(skb)->hw_queue = + local->hw.offchannel_tx_hw_queue; local->hw_roc_skb = skb; local->hw_roc_skb_for_status = skb; mutex_unlock(&local->mtx); Eliad. -- 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