On Mon, 2009-07-27 at 18:02 +0200, Johannes Berg wrote: > Actually, you're using ath5k, right? So we can see what > info->control.vif points to after ath5k has used the skb, because > apparently it's a valid pointer at least, just not a real vif pointer > any more. I'm using ath9k. Here's something interesting I have found. sdata->dev is valid if info->flags is 0x14091 and not valid if it's 0x12091. 0x4000 is IEEE80211_TX_INTFL_NEED_TXPROCESSING and 0x2000 is IEEE80211_TX_INTFL_RCALGO. This patch prevents any panics. Moreover, I get a connection with the correct PSK. diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 75604cd..dd1fa8b 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1889,6 +1889,9 @@ void ieee80211_tx_pending(unsigned long data) struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_sub_if_data *sdata; + if (!(info->flags & IEEE80211_TX_INTFL_NEED_TXPROCESSING)) + continue; + if (WARN_ON(!info->control.vif)) { kfree_skb(skb); continue; -- Regards, Pavel Roskin -- 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