On Sat, May 23, 2009 at 03:34:52PM -0700, Rob van Rijen wrote: > Hi Luis > > I managed to get the output you asked for. > > System EEE PC 1000H with AR9280 > Linux OpenSuse 11.1, using KNetworkmanager / KDE4 > Kernel 2.6.30-rc6-git3-25-default > Ath9k compat-wireless-2009-05-23 > > The system freeze occurs within a few seconds after I connect to a WPA2 > wireless N router (Linksys WAG160N). > With versions < compat-wireless-2009-05-17 I never could connect > (disassociating by local choice (reason=3)) > > Regards > Rob > > ============================================================================ > ========= > [ 132.542465] console [netcon0] enabled > [ 132.542527] netconsole: network logging started > [ 357.092325] wlan0: authenticate with AP 00:21:29:79:c0:84 > [ 357.109905] wlan0: authenticated > [ 357.109962] wlan0: associate with AP 00:21:29:79:c0:84 > [ 357.114820] wlan0: RX AssocResp from 00:21:29:79:c0:84 (capab=0x431 > status=0 aid=1) > [ 357.114893] wlan0: associated > [ 358.311927] padlock: VIA PadLock not detected. > [ 412.422746] ------------[ cut here ]------------ > [ 412.422809] kernel BUG at > /home/robvr/Downloads/compat-wireless-2009-05-23/drivers/net/wireless/ath/at > h9k/rc.c:747! Thanks, yes, I have seen this as well, please try this patch, it splits out the ASSERT into 3 pieces and also downgrades it to a WARN_ON. diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c index ba06e78..a372e35 100644 --- a/drivers/net/wireless/ath/ath9k/rc.c +++ b/drivers/net/wireless/ath/ath9k/rc.c @@ -741,10 +741,27 @@ static u8 ath_rc_ratefind_ht(struct ath_softc *sc, if (rate > (ath_rc_priv->rate_table_size - 1)) rate = ath_rc_priv->rate_table_size - 1; - ASSERT((rate_table->info[rate].valid && - (ath_rc_priv->ht_cap & WLAN_RC_DS_FLAG)) || - (rate_table->info[rate].valid_single_stream && + /* + * Getting any of these warnings would indicate an incorrect assumption + * is currently being made with our rate control code. It would + * indicate, most likely, that the incorrect rate table is being used. + */ + + /* We shouldn't be passing up invalid rates */ + WARN_ON(!rate_table->info[rate].valid && + !rate_table->info[rate].valid_single_stream); + /* + * We warn if the rate is deemed to be valid and yet + * not suitable for dual stream. + */ + WARN_ON((rate_table->info[rate].valid && !(ath_rc_priv->ht_cap & WLAN_RC_DS_FLAG))); + /* + * We also warn if the rate has been marked valid for single + * stream but also dual stream... + */ + WARN_ON((rate_table->info[rate].valid_single_stream && + (ath_rc_priv->ht_cap & WLAN_RC_DS_FLAG))); return rate; } -- 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