aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
diff options
context:
space:
mode:
authorPete Zaitcev <zaitcev@redhat.com>2006-03-06 19:37:51 -0500
committerJohn W. Linville <linville@tuxdriver.com>2006-03-27 11:19:33 -0500
commit512a80916b8d04529c0915534c63529144f74e10 (patch)
tree34531295df7a1aa990e268bf6b29bf0f16c507ef /drivers/net/wireless/bcm43xx/bcm43xx_dma.h
parent367f899ac3b52cf4611cd291ec2bfbf774b15bc7 (diff)
[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>
Diffstat (limited to 'drivers/net/wireless/bcm43xx/bcm43xx_dma.h')
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_dma.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_dma.h b/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
index 88ad34dff2f2..cab8e2ba4c7e 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
@@ -119,10 +119,6 @@ struct bcm43xx_dmadesc_meta {
119 struct sk_buff *skb; 119 struct sk_buff *skb;
120 /* DMA base bus-address of the descriptor buffer. */ 120 /* DMA base bus-address of the descriptor buffer. */
121 dma_addr_t dmaaddr; 121 dma_addr_t dmaaddr;
122 /* Pointer to our txb (can be NULL).
123 * This should be freed in completion IRQ.
124 */
125 struct ieee80211_txb *txb;
126}; 122};
127 123
128struct bcm43xx_dmaring { 124struct bcm43xx_dmaring {