linux-kernel-test/drivers/net/wireless/rt2x00
Helmut Schaa 95192339c2 rt2x00: Fix race between dma mapping and clearing rx entries in rt2800pci
During rx, rt2x00lib calls rt2800pci_fill_rxdone to read the RX
descriptor. At that time the skb is already dma unmapped but no new skb
was dma mapped for this entry again. However, rt2800pci_fill_rxdone also
moves the hw rx queue index, marking this entry to be available for
reuse. Since no new skb was dma mapped and also the previous skb was
unmapped this might lead to strange hw behavior.

To fix this issue move the hw rx queue index increment to
rt2800pci_clear_entry where a new skb was already dma mapped and can be
safely used by the hw.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-10-05 13:35:27 -04:00
..
Kconfig
Makefile
rt2x00.h rt2x00: Implement HT protection for rt2800 2010-10-05 13:35:26 -04:00
rt2x00config.c rt2x00: Implement HT protection for rt2800 2010-10-05 13:35:26 -04:00
rt2x00crypto.c
rt2x00debug.c rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00debug.h
rt2x00dev.c rt2x00: rework tx status handling in rt2800pci 2010-10-05 13:35:26 -04:00
rt2x00dump.h
rt2x00firmware.c
rt2x00ht.c rt2x00: Fix SM PS check 2010-10-05 13:35:26 -04:00
rt2x00leds.c
rt2x00leds.h
rt2x00lib.h rt2x00: Check for specific changed flags when updating the erp config 2010-09-14 16:03:43 -04:00
rt2x00link.c rt2x00: Antenna diversity does not work in 2.6.35 2010-09-14 16:03:43 -04:00
rt2x00mac.c rt2x00: Implement HT protection for rt2800 2010-10-05 13:35:26 -04:00
rt2x00pci.c
rt2x00pci.h
rt2x00queue.c rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00queue.h rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00reg.h
rt2x00soc.c
rt2x00soc.h
rt2x00usb.c rt2x00: Cleanup rt2x00usb_watchdog_reset_tx 2010-08-31 14:22:25 -04:00
rt2x00usb.h
rt61pci.c rt2x00: fix oops in rt2x00lib_txdone with rt61pci 2010-09-14 16:03:44 -04:00
rt61pci.h
rt73usb.c rt2x00: Check for specific changed flags when updating the erp config 2010-09-14 16:03:43 -04:00
rt73usb.h
rt2400pci.c rt2x00: Check for specific changed flags when updating the erp config 2010-09-14 16:03:43 -04:00
rt2400pci.h
rt2500pci.c rt2x00: Check for specific changed flags when updating the erp config 2010-09-14 16:03:43 -04:00
rt2500pci.h
rt2500usb.c rt2x00: Check for specific changed flags when updating the erp config 2010-09-14 16:03:43 -04:00
rt2500usb.h
rt2800.h rt2x00: Don't overwrite beacon buffers in pairwise key setup 2010-10-05 13:35:25 -04:00
rt2800lib.c rt2x00: Don't initialize MM40 HT protection to RTS/CTS on PCI devices 2010-10-05 13:35:26 -04:00
rt2800lib.h rt2x00: Split out parts of the rt2800_txdone function for easier reuse 2010-10-05 13:35:26 -04:00
rt2800pci.c rt2x00: Fix race between dma mapping and clearing rx entries in rt2800pci 2010-10-05 13:35:27 -04:00
rt2800pci.h
rt2800usb.c rt2x00: Correctly kill beacon queue 2010-08-31 14:22:24 -04:00
rt2800usb.h