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;
|
int i;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
struct ieee80211_tx_info *info;
|
|
||||||
|
|
||||||
/* TX failure */
|
/* TX failure */
|
||||||
/* control->flags = 0; FIXME */
|
/* control->flags = 0; FIXME */
|
||||||
|
|
||||||
while ((skb = skb_dequeue(&wl->tx_queue))) {
|
while ((skb = skb_dequeue(&wl->tx_queue))) {
|
||||||
info = IEEE80211_SKB_CB(skb);
|
|
||||||
|
|
||||||
wl1271_debug(DEBUG_TX, "flushing skb 0x%p", 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);
|
ieee80211_tx_status(wl->hw, skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
|
for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
|
||||||
if (wl->tx_frames[i] != NULL) {
|
if (wl->tx_frames[i] != NULL) {
|
||||||
skb = wl->tx_frames[i];
|
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;
|
wl->tx_frames[i] = NULL;
|
||||||
|
ieee80211_tx_status(wl->hw, skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче