diff options
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch')
-rw-r--r-- | recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch new file mode 100644 index 00000000..d0487ca2 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From 1e7878587d7c034882253717322d431cb32b20f3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Nicolas Cavallari <Nicolas.Cavallari@lri.fr> | ||
3 | Date: Thu, 23 Feb 2012 16:53:34 +0100 | ||
4 | Subject: [PATCH 79/95] carl9170: Fix memory accounting when sta is in | ||
5 | power-save mode. | ||
6 | |||
7 | commit 992d52529d7840236d3059b51c15d5eb9e81a869 upstream. | ||
8 | |||
9 | On Access Point mode, when transmitting a packet, if the destination | ||
10 | station is in powersave mode, we abort transmitting the packet to the | ||
11 | device queue, but we do not reclaim the allocated memory. Given enough | ||
12 | packets, we can go in a state where there is no packet on the device | ||
13 | queue, but we think the device has no memory left, so no packet gets | ||
14 | transmitted, connections breaks and the AP stops working. | ||
15 | |||
16 | This undo the allocation done in the TX path when the station is in | ||
17 | power-save mode. | ||
18 | |||
19 | Signed-off-by: Nicolas Cavallari <cavallar@lri.fr> | ||
20 | Acked-by: Christian Lamparter <chunkeey@googlemail.com> | ||
21 | Signed-off-by: John W. Linville <linville@tuxdriver.com> | ||
22 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
23 | --- | ||
24 | drivers/net/wireless/ath/carl9170/tx.c | 1 + | ||
25 | 1 file changed, 1 insertion(+) | ||
26 | |||
27 | diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c | ||
28 | index 59472e1..3e9f0f6 100644 | ||
29 | --- a/drivers/net/wireless/ath/carl9170/tx.c | ||
30 | +++ b/drivers/net/wireless/ath/carl9170/tx.c | ||
31 | @@ -1251,6 +1251,7 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) | ||
32 | atomic_dec(&ar->tx_ampdu_upload); | ||
33 | |||
34 | tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; | ||
35 | + carl9170_release_dev_space(ar, skb); | ||
36 | carl9170_tx_status(ar, skb, false); | ||
37 | return true; | ||
38 | } | ||
39 | -- | ||
40 | 1.7.9.4 | ||
41 | |||