linux/drivers/net/wireless/ralink/rt2x00
Stanislaw Gruszka bfa62a52ca rt2x00usb: mark device removed when get ENOENT usb error
ENOENT usb error mean "specified interface or endpoint does not exist or
is not enabled". Mark device not present when we encounter this error
similar like we do with ENODEV error.

Otherwise we can have infinite loop in rt2x00usb_work_rxdone(), because
we remove and put again RX entries to the queue infinitely.

We can have similar situation when submit urb will fail all the time
with other error, so we need consider to limit number of entries
processed by rxdone work. But for now, since the patch fixes
reproducible soft lockup issue on single processor systems
and taken ENOENT error meaning, let apply this fix.

Patch adds additional ENOENT check not only in rx kick routine, but
also on other places where we check for ENODEV error.

Reported-by: Richard Genoud <richard.genoud@gmail.com>
Debugged-by: Richard Genoud <richard.genoud@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Tested-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2017-11-10 04:32:07 +02:00
..
Kconfig rt2x00: add support for MT7620 2017-03-22 11:04:52 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rt2x00.h rt2x00: convert rt2x00_eeprom_read return type 2017-05-24 16:45:36 +03:00
rt2x00config.c rt2x00: save conf settings before reset tuner 2017-01-17 13:58:36 +02:00
rt2x00crypto.c
rt2x00debug.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
rt2x00debug.h rt2x00: change function pointers for register accessors 2017-05-24 16:45:32 +03:00
rt2x00dev.c mac80211: separate encoding/bandwidth from flags 2017-04-28 10:41:45 +02:00
rt2x00dump.h
rt2x00firmware.c
rt2x00leds.c
rt2x00leds.h
rt2x00lib.h rt2x00: merge agc and vco works with link tuner 2016-12-30 13:34:20 +02:00
rt2x00link.c rt2x00: add mutex to synchronize config and link tuner 2016-12-30 14:03:41 +02:00
rt2x00mac.c rt2x00: do not flush empty queue 2017-01-17 13:58:38 +02:00
rt2x00mmio.c rt2x00: convert rt2x00mmio_register_read return type 2017-05-24 16:45:33 +03:00
rt2x00mmio.h rt2x00: convert rt2x00mmio_register_read return type 2017-05-24 16:45:33 +03:00
rt2x00pci.c rt2x00pci: Disable memory-write-invalidate when the driver exits 2016-01-07 11:22:46 +02:00
rt2x00pci.h
rt2x00queue.c rt2800: use TXOP_BACKOFF for probe frames 2017-03-08 17:05:53 +02:00
rt2x00queue.h rt2x00: convert rt2x00_desc_read return type 2017-05-24 16:45:37 +03:00
rt2x00reg.h
rt2x00soc.c rt2x00: fix clk_get call 2017-01-31 09:08:52 +02:00
rt2x00soc.h
rt2x00usb.c rt2x00usb: mark device removed when get ENOENT usb error 2017-11-10 04:32:07 +02:00
rt2x00usb.h rt2x00: convert rt2x00usb_register_read return type 2017-05-24 16:45:34 +03:00
rt61pci.c rt2x00: convert rt2x00_desc_read return type 2017-05-24 16:45:37 +03:00
rt61pci.h net: wireless: rt2x00: Fixed Spacing issues 2016-02-07 09:10:05 +02:00
rt73usb.c rt73usb: constify usb_device_id 2017-08-10 11:56:02 +03:00
rt73usb.h
rt2400pci.c rt2x00: convert rt2x00_desc_read return type 2017-05-24 16:45:37 +03:00
rt2400pci.h
rt2500pci.c rt2x00: convert rt2x00_desc_read return type 2017-05-24 16:45:37 +03:00
rt2500pci.h
rt2500usb.c rt2500usb: constify usb_device_id 2017-08-10 11:56:01 +03:00
rt2500usb.h
rt2800.h rt2x00: add support for MT7620 2017-03-22 11:04:52 +02:00
rt2800lib.c rt2800: fix TX_PIN_CFG setting for non MT7620 chips 2017-08-30 19:50:09 +03:00
rt2800lib.h rt2x00: convert rt2800_register_read return type 2017-05-24 16:45:35 +03:00
rt2800mmio.c rt2x00: Fix MMIC Countermeasures 2017-08-08 14:53:36 +03:00
rt2800mmio.h
rt2800pci.c rt2x00: convert rt2x00mmio_register_read return type 2017-05-24 16:45:33 +03:00
rt2800pci.h
rt2800soc.c rt2x00: convert rt2x00mmio_register_read return type 2017-05-24 16:45:33 +03:00
rt2800usb.c rt2800usb: constify usb_device_id 2017-08-10 11:56:01 +03:00
rt2800usb.h