android_kernel_xiaomi_sm8350/drivers/net/wireless/rt2x00
Ivo van Doorn 0e3de99846 rt2x00: Fix TX failure path
The callback function write_tx_data() can only fail
when our ENTRY_OWNER_DEVICE_DATA flag on a queue entry
failed to determine the entry was not available and
it is in fact still owned by the hardware.
This means that if that function fails the queue
must be stopped in mac80211.

When rt2x00queue_get_queue() returns NULL in the TX
path, it means mac80211 has passed us an invalid queue,
although this should be impossible, it shouldn't hurt
if we send mac80211 a signal to stop the queue either.

Both issues can simply be resolved by removing their
manual failure handler and making them use the failure path
provided in rt2x00mac_tx().

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-11-25 16:32:54 -05:00
..
Kconfig rt2x00: Fix build error when mac80211=M rt2x00=Y 2008-10-29 17:54:35 -04:00
Makefile
rt2x00.h rt2x00: Fix race condition when using inderect registers 2008-11-21 11:08:16 -05:00
rt2x00config.c rt2x00: Optimize get_duration / get_duration_res 2008-11-21 11:08:16 -05:00
rt2x00crypto.c mac80211: free up 2 bytes in skb->cb 2008-10-06 18:14:57 -04:00
rt2x00debug.c rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00
rt2x00debug.h rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00
rt2x00dev.c rt2x00: Fix race condition when using inderect registers 2008-11-21 11:08:16 -05:00
rt2x00dump.h
rt2x00firmware.c
rt2x00leds.c rt2x00: Fix LED state handling 2008-11-21 11:06:05 -05:00
rt2x00leds.h
rt2x00lib.h rt2x00: Cleanup TX/RX entry handling 2008-11-21 11:08:16 -05:00
rt2x00mac.c rt2x00: Fix TX failure path 2008-11-25 16:32:54 -05:00
rt2x00pci.c rt2x00: Cleanup indirect register access 2008-11-25 16:32:53 -05:00
rt2x00pci.h rt2x00: Cleanup indirect register access 2008-11-25 16:32:53 -05:00
rt2x00queue.c rt2x00: Fix TX failure path 2008-11-25 16:32:54 -05:00
rt2x00queue.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rt2x00reg.h
rt2x00rfkill.c
rt2x00usb.c rt2x00: Move rt73usb register access wrappers into rt2x00usb 2008-11-25 16:32:53 -05:00
rt2x00usb.h rt2x00: Move rt73usb register access wrappers into rt2x00usb 2008-11-25 16:32:53 -05:00
rt61pci.c rt2x00: Cleanup indirect register access 2008-11-25 16:32:53 -05:00
rt61pci.h rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00
rt73usb.c rt2x00: Move rt73usb register access wrappers into rt2x00usb 2008-11-25 16:32:53 -05:00
rt73usb.h rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00
rt2400pci.c rt2x00: Cleanup indirect register access 2008-11-25 16:32:53 -05:00
rt2400pci.h rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00
rt2500pci.c rt2x00: Cleanup indirect register access 2008-11-25 16:32:53 -05:00
rt2500pci.h rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00
rt2500usb.c rt2x00: Cleanup indirect register access 2008-11-25 16:32:53 -05:00
rt2500usb.h rt2x00: Remove debugfs CSR access wrappers 2008-11-10 15:17:35 -05:00