linux_dsm_epyc7002/drivers/net/wireless/rt2x00
Gertjan van Wingerde 77a861c405 rt2x00: Serialize TX operations on a queue.
The rt2x00 driver gets frequent occurrences of the following error message
when operating under load:
phy0 -> rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the
non-full queue 2.

This is caused by simultaneous attempts from mac80211 to send a frame via
rt2x00, which are not properly serialized inside rt2x00queue_write_tx_frame,
causing the second frame to fail sending with the above mentioned error
message.

Fix this by introducing a per-queue spinlock to serialize the TX operations
on that queue.

Reported-by: Andreas Hartmann <andihartmann@01019freenet.de>
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-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>
2011-07-07 13:20:57 -04:00
..
Kconfig rt2x00: Enabled rt35xx device support by default. 2011-06-01 15:10:59 -04:00
Makefile rt2x00: Merge rt2x00ht.c contents in other files. 2011-04-19 15:39:56 -04:00
rt2x00.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-05 13:32:35 -04:00
rt2x00config.c rt2x00: fix rmmod crash 2011-06-06 15:24:18 -04:00
rt2x00crypto.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-04-25 14:34:25 -04:00
rt2x00debug.c rt2x00: Split rt2x00dev->flags 2011-04-19 15:39:11 -04:00
rt2x00debug.h
rt2x00dev.c rt2x00: fix possible memory corruption in case of invalid rxdesc.size 2011-06-22 16:09:44 -04:00
rt2x00dump.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rt2x00firmware.c rt2x00: Split rt2x00dev->flags 2011-04-19 15:39:11 -04:00
rt2x00leds.c
rt2x00leds.h
rt2x00lib.h rt2x00: Merge rt2x00ht.c contents in other files. 2011-04-19 15:39:56 -04:00
rt2x00link.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-04-25 14:34:25 -04:00
rt2x00mac.c rt2x00: Implement get_antenna and set_antenna callback functions 2011-04-19 15:40:07 -04:00
rt2x00pci.c rt2x00: Allow dynamic addition of PCI/USB IDs. 2011-04-19 15:39:45 -04:00
rt2x00pci.h rt2x00: Allow dynamic addition of PCI/USB IDs. 2011-04-19 15:39:45 -04:00
rt2x00queue.c rt2x00: Serialize TX operations on a queue. 2011-07-07 13:20:57 -04:00
rt2x00queue.h rt2x00: Serialize TX operations on a queue. 2011-07-07 13:20:57 -04:00
rt2x00reg.h
rt2x00soc.c
rt2x00soc.h
rt2x00usb.c rt2x00: reset usb devices at probe 2011-06-22 16:09:44 -04:00
rt2x00usb.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-05 13:32:35 -04:00
rt61pci.c rt2x00: Implement get_antenna and set_antenna callback functions 2011-04-19 15:40:07 -04:00
rt61pci.h
rt73usb.c rt2x00: Add autowake support for USB hardware 2011-05-02 14:49:19 -04:00
rt73usb.h
rt2400pci.c rt2x00: Implement get_antenna and set_antenna callback functions 2011-04-19 15:40:07 -04:00
rt2400pci.h
rt2500pci.c rt2x00: Implement get_antenna and set_antenna callback functions 2011-04-19 15:40:07 -04:00
rt2500pci.h
rt2500usb.c rt2x00: Add autowake support for USB hardware 2011-05-02 14:49:19 -04:00
rt2500usb.h
rt2800.h rt2x00: Add support for RT3572/RT3592/RT3592+Bluetooth combo card 2011-06-01 15:10:59 -04:00
rt2800lib.c rt2x00: Move rt2800_txdone and rt2800_txdone_entry_check to rt2800usb. 2011-06-01 15:10:59 -04:00
rt2800lib.h rt2x00: Move rt2800_txdone and rt2800_txdone_entry_check to rt2800usb. 2011-06-01 15:10:59 -04:00
rt2800pci.c rt2x00: Add support for RT3572/RT3592/RT3592+Bluetooth combo card 2011-06-01 15:10:59 -04:00
rt2800pci.h
rt2800usb.c rt2x00: Move rt2800_txdone and rt2800_txdone_entry_check to rt2800usb. 2011-06-01 15:10:59 -04:00
rt2800usb.h