OpenCloudOS-Kernel/drivers/net/wireless/ath/ath6kl
Johannes Berg a05829a722 cfg80211: avoid holding the RTNL when calling the driver
Currently, _everything_ in cfg80211 holds the RTNL, and if you
have a slow USB device (or a few) you can get some bad lock
contention on that.

Fix that by re-adding a mutex to each wiphy/rdev as we had at
some point, so we have locking for the wireless_dev lists and
all the other things in there, and also so that drivers still
don't have to worry too much about it (they still won't get
parallel calls for a single device).

Then, we can restrict the RTNL to a few cases where we add or
remove interfaces and really need the added protection. Some
of the global list management still also uses the RTNL, since
we need to have it anyway for netdev management, but we only
hold the RTNL for very short periods of time here.

Link: https://lore.kernel.org/r/20210122161942.81df9f5e047a.I4a8e1a60b18863ea8c5e6d3a0faeafb2d45b2f40@changeid
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> [marvell driver issues]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-01-26 11:55:50 +01:00
..
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile
bmi.c ath6kl: replace GFP_ATOMIC with GFP_KERNEL in ath6kl_bmi_init() 2018-07-31 10:48:45 +03:00
bmi.h
cfg80211.c cfg80211: change netdev registration/unregistration semantics 2021-01-22 16:28:39 +01:00
cfg80211.h
common.h ath6kl: add ath6kl_ prefix to crypto_type 2018-12-13 09:58:52 +01:00
core.c cfg80211: avoid holding the RTNL when calling the driver 2021-01-26 11:55:50 +01:00
core.h ath6kl: Replace zero-length array with flexible-array 2020-05-06 09:21:30 +03:00
debug.c ath6kl: Replace zero-length array with flexible-array 2020-05-06 09:21:30 +03:00
debug.h
hif-ops.h
hif.c
hif.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
htc-ops.h
htc.h
htc_mbox.c ath6kl: Fix a possible null-pointer dereference in ath6kl_htc_mbox_create() 2019-09-04 09:21:19 +03:00
htc_pipe.c ath6kl: remove redundant check of status != 0 2019-04-29 17:50:10 +03:00
init.c cfg80211: avoid holding the RTNL when calling the driver 2021-01-26 11:55:50 +01:00
main.c ath6kl: prevent potential array overflow in ath6kl_add_new_sta() 2020-08-17 13:22:08 +03:00
recovery.c timer: Remove init_timer_deferrable() in favor of timer_setup() 2017-10-05 15:01:18 +02:00
sdio.c mmc: sdio: Move SDIO IDs from ath6kl driver to common include file 2020-05-29 12:37:59 +02:00
target.h
testmode.c wireless: remove unneeded break 2020-11-07 13:34:22 +02:00
testmode.h
trace.c
trace.h ath: fix SPDX tags 2019-06-26 18:11:06 +03:00
txrx.c ath6kl: remove redundant variables netlen, orig_buf, orig_len, dropped and stats 2018-07-30 20:57:05 +03:00
usb.c wireless: Fix trivial spelling 2020-07-15 19:48:14 +03:00
wmi.c ath6kl: fix enum-conversion warning 2020-11-07 10:08:33 +02:00
wmi.h ath6kl: add ath6kl_ prefix to crypto_type 2018-12-13 09:58:52 +01:00