ath9k: fix stale pointers potentially causing access to free'd skbs
authorFelix Fietkau <nbd@openwrt.org>
Thu, 25 Oct 2012 22:31:11 +0000 (00:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Nov 2012 21:18:28 +0000 (13:18 -0800)
commitcd585fb70b89fb57f8dffb03a2a72c30f81f5da6
treeaa9e0f21bb90482e6cce15e0f5c3d30c93a0ec4c
parente097213a658d3eda65f8cf1a6851eb4e4b6a10b9
ath9k: fix stale pointers potentially causing access to free'd skbs

commit 8c6e30936a7893a85f6222084f0f26aceb81137a upstream.

bf->bf_next is only while buffers are chained as part of an A-MPDU
in the tx queue. When a tid queue is flushed (e.g. on tearing down
an aggregation session), frames can be enqueued again as normal
transmission, without bf_next being cleared. This can lead to the
old pointer being dereferenced again later.

This patch might fix crashes and "Failed to stop TX DMA!" messages.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/ath/ath9k/xmit.c