[PATCH] bcm43xx: fix DMA TX skb freeing in case of fragmented packets.
authorPete Zaitcev <zaitcev@redhat.com>
Tue, 7 Mar 2006 00:37:51 +0000 (01:37 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 27 Mar 2006 16:19:33 +0000 (11:19 -0500)
commit512a80916b8d04529c0915534c63529144f74e10
tree34531295df7a1aa990e268bf6b29bf0f16c507ef
parent367f899ac3b52cf4611cd291ec2bfbf774b15bc7
[PATCH] bcm43xx: fix DMA TX skb freeing in case of fragmented packets.

It seems to me that the today's wireless-2.6 git contains bcm43xx which
does not free txb's correctly, if I understand it right.

Consider a situation where a txb with two skb's is sent down.
The dma_tx_fragment will save the pointer to meta->txb of the first
fragment. If fragments are freed in order, ieee80211_txb_free frees both
skb's when the first fragment is processed. This may result in reuse
of the second skb's memory.

This danger is rather remote, but it seems to me that the patch
below not only fixes the problem, but also makes the code simpler,
which is good, right?

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/bcm43xx/bcm43xx_dma.c
drivers/net/wireless/bcm43xx/bcm43xx_dma.h