wl1271: Fix memory leak in firmware crash scenario
The driver tx-queue flush operation leaks broadcast-frames. This leak occurs if the driver is shut down while there are frames in TX buffers (such as in a firmware crash scenario.) Fix the leak. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@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:
committed by
John W. Linville
parent
64e29e447e
commit
cbf7f3058e
@@ -426,8 +426,10 @@ void wl1271_tx_flush(struct wl1271 *wl)
|
|||||||
|
|
||||||
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))
|
if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)) {
|
||||||
continue;
|
kfree_skb(skb);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
ieee80211_tx_status(wl->hw, skb);
|
ieee80211_tx_status(wl->hw, skb);
|
||||||
}
|
}
|
||||||
@@ -437,8 +439,10 @@ void wl1271_tx_flush(struct wl1271 *wl)
|
|||||||
skb = wl->tx_frames[i];
|
skb = wl->tx_frames[i];
|
||||||
info = IEEE80211_SKB_CB(skb);
|
info = IEEE80211_SKB_CB(skb);
|
||||||
|
|
||||||
if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS))
|
if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)) {
|
||||||
|
kfree_skb(skb);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
ieee80211_tx_status(wl->hw, skb);
|
ieee80211_tx_status(wl->hw, skb);
|
||||||
wl->tx_frames[i] = NULL;
|
wl->tx_frames[i] = NULL;
|
||||||
|
Reference in New Issue
Block a user