>From cbf01c4f3f1810f0ba98238aa7900a523a044e66 Mon Sep 17 00:00:00 2001 From: Ivo van Doorn <IvDoorn@xxxxxxxxx> Date: Sat, 18 Aug 2007 17:43:23 +0200 Subject: [PATCH 28/30] rt2x00: Always check if mac80211 requested TX status update During txdone always check for the IEEE80211_TXCTL_REQ_TX_STATUS flag to determine if ieee80211_tx_status_irqsafe should be called or not. When the flag is not set, just cleanup the skb and don't bother mac80211 with it. Signed-off-by: Ivo van Doorn <IvDoorn@xxxxxxxxx> --- drivers/net/wireless/rt2x00/rt2x00dev.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 14968ef..75888ea 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -333,10 +333,14 @@ void rt2x00lib_txdone(struct data_entry *entry, } /* - * Send the tx_status to mac80211, - * that method also cleans up the skb structure. + * Check if mac80211 wants to be updated or not, + * if it wants the update it will cleanup the skb structure, + * else then we should cleanup the skb structure. */ - ieee80211_tx_status_irqsafe(rt2x00dev->hw, entry->skb, tx_status); + if (tx_status->control.flags & IEEE80211_TXCTL_REQ_TX_STATUS) + ieee80211_tx_status_irqsafe(rt2x00dev->hw, entry->skb, tx_status); + else + dev_kfree_skb_any(entry->skb); entry->skb = NULL; } -- 1.5.3.rc5 - 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