wl1271: Fix tx queue flushing
This patch modifies tx-queue flushing to correspond with tx-path - i.e. also frames for which no ack was requested are forwarded to the mac80211 for disposal. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
1a186a515a
Коммит
6bbe89de24
|
@ -416,35 +416,19 @@ void wl1271_tx_flush(struct wl1271 *wl)
|
|||
{
|
||||
int i;
|
||||
struct sk_buff *skb;
|
||||
struct ieee80211_tx_info *info;
|
||||
|
||||
/* TX failure */
|
||||
/* control->flags = 0; FIXME */
|
||||
|
||||
while ((skb = skb_dequeue(&wl->tx_queue))) {
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
|
||||
wl1271_debug(DEBUG_TX, "flushing skb 0x%p", skb);
|
||||
|
||||
if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)) {
|
||||
kfree_skb(skb);
|
||||
continue;
|
||||
}
|
||||
|
||||
ieee80211_tx_status(wl->hw, skb);
|
||||
}
|
||||
|
||||
for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
|
||||
if (wl->tx_frames[i] != NULL) {
|
||||
skb = wl->tx_frames[i];
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
|
||||
if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)) {
|
||||
kfree_skb(skb);
|
||||
continue;
|
||||
}
|
||||
|
||||
ieee80211_tx_status(wl->hw, skb);
|
||||
wl->tx_frames[i] = NULL;
|
||||
ieee80211_tx_status(wl->hw, skb);
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче