| From 992d52529d7840236d3059b51c15d5eb9e81a869 Mon Sep 17 00:00:00 2001 |
| From: Nicolas Cavallari <Nicolas.Cavallari@lri.fr> |
| Date: Thu, 23 Feb 2012 16:53:34 +0100 |
| Subject: carl9170: Fix memory accounting when sta is in power-save mode. |
| |
| From: Nicolas Cavallari <Nicolas.Cavallari@lri.fr> |
| |
| commit 992d52529d7840236d3059b51c15d5eb9e81a869 upstream. |
| |
| On Access Point mode, when transmitting a packet, if the destination |
| station is in powersave mode, we abort transmitting the packet to the |
| device queue, but we do not reclaim the allocated memory. Given enough |
| packets, we can go in a state where there is no packet on the device |
| queue, but we think the device has no memory left, so no packet gets |
| transmitted, connections breaks and the AP stops working. |
| |
| This undo the allocation done in the TX path when the station is in |
| power-save mode. |
| |
| Signed-off-by: Nicolas Cavallari <cavallar@lri.fr> |
| Acked-by: Christian Lamparter <chunkeey@googlemail.com> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/ath/carl9170/tx.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/net/wireless/ath/carl9170/tx.c |
| +++ b/drivers/net/wireless/ath/carl9170/tx.c |
| @@ -1251,6 +1251,7 @@ static bool carl9170_tx_ps_drop(struct a |
| atomic_dec(&ar->tx_ampdu_upload); |
| |
| tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; |
| + carl9170_release_dev_space(ar, skb); |
| carl9170_tx_status(ar, skb, false); |
| return true; |
| } |