summaryrefslogtreecommitdiff
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2010-01-05 18:00:58 +0100
committerJohn W. Linville <linville@tuxdriver.com>2010-01-05 16:21:40 -0500
commitcf0277e714a0db302a8f80e1b85fd61c32cf00b3 (patch)
treeb81c34eabc2560b804cfd59497ca2902f0d47a80 /drivers/net/wireless
parent301a8234ea81938f0f083ae4e274d9c9296f3c86 (diff)
mac80211: fix skb buffering issue
Since I removed the master netdev, we've been keeping internal queues only, and even before that we never told the networking stack above the virtual interfaces about congestion. This means that packets are queued in mac80211 and the upper layers never know, possibly leading to memory exhaustion and other problems. This patch makes all interfaces multiqueue and uses ndo_select_queue to put the packets into queues per AC. Additionally, when the driver stops a queue, we now stop all corresponding queues for the virtual interfaces as well. The injection case will use VO by default for non-data frames, and BE for data frames, but downgrade any data frames according to ACM. It needs to be fleshed out in the future to allow chosing the queue/AC in radiotap. Reported-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Cc: stable@kernel.org [2.6.32] Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
0 files changed, 0 insertions, 0 deletions