linux-brain/drivers
Miaoqing Pan 88a4ed85e8 ath9k: fix sleeping in atomic context
[ Upstream commit 7c48662b9d56666219f526a71ace8c15e6e12f1f ]

The problem is that gpio_free() can sleep and the cfg_soc() can be
called with spinlocks held. One problematic call tree is:

--> ath_reset_internal() takes &sc->sc_pcu_lock spin lock
   --> ath9k_hw_reset()
      --> ath9k_hw_gpio_request_in()
         --> ath9k_hw_gpio_request()
            --> ath9k_hw_gpio_cfg_soc()

Remove gpio_free(), use error message instead, so we should make sure
there is no GPIO conflict.

Also remove ath9k_hw_gpio_free() from ath9k_hw_apply_gpio_override(),
as gpio_mask will never be set for SOC chips.

Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1628481916-15030-1-git-send-email-miaoqing@codeaurora.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:26:36 +02:00
..
accessibility
acpi ACPI: NFIT: Fix support for virtual SPA ranges 2021-08-18 08:56:57 +02:00
amba amba: Fix resource leak for drivers without .remove 2021-03-04 10:26:32 +01:00
android
ata ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init() 2021-09-22 12:26:30 +02:00
atm atm: nicstar: register the interrupt handler in the right place 2021-07-19 08:53:12 +02:00
auxdisplay auxdisplay: ht16k33: Fix refresh rate handling 2021-03-04 10:26:30 +01:00
base regmap: fix the offset of register error log 2021-09-15 09:47:26 +02:00
bcma bcma: Fix memory leak for internally-handled cores 2021-09-15 09:47:37 +02:00
block Revert "block: nbd: add sanity check for first_minor" 2021-09-16 12:56:13 +02:00
bluetooth Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc. 2021-07-19 08:53:13 +02:00
bus bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act 2021-06-10 13:37:08 +02:00
cdrom cdrom: gdrom: initialize global variable at init time 2021-05-26 12:05:19 +02:00
char tpm_ftpm_tee: Free and unregister TEE shared memory during kexec 2021-08-12 13:21:01 +02:00
clk clk: at91: clk-generated: Limit the requested rate to our range 2021-09-22 12:26:25 +02:00
clocksource clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock source channel 2021-09-15 09:47:29 +02:00
connector
counter counter: 104-quad-8: Return error when invalid mode during ceiling_write 2021-09-15 09:47:34 +02:00
cpufreq cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant 2021-08-26 08:36:16 -04:00
cpuidle
crypto crypto: mxs-dcp - Use sg_mapping_iter to copy data 2021-09-22 12:26:26 +02:00
dax
dca
devfreq PM / devfreq: Use more accurate returned new_freq as resume_freq 2021-05-14 09:44:20 +02:00
dio
dma dmaengine: imx-sdma: remove duplicated sdma_load_context 2021-09-22 12:26:21 +02:00
dma-buf dma-buf/sync_file: Don't leak fences on merge failure 2021-07-25 14:35:15 +02:00
edac EDAC/i10nm: Fix NVDIMM detection 2021-09-15 09:47:30 +02:00
eisa
extcon extcon: intel-mrfld: Sync hardware and software state on init 2021-07-19 08:53:16 +02:00
firewire firewire: nosy: Fix a use-after-free bug in nosy_ioctl() 2021-04-07 14:47:43 +02:00
firmware firmware: arm_scmi: Add delayed response status check 2021-08-08 09:04:08 +02:00
fpga fpga: stratix10-soc: Add missing fpga_mgr_free() call 2021-07-19 08:53:15 +02:00
fsi fsi/sbefifo: Fix reset timeout 2021-07-14 16:53:42 +02:00
gnss
gpio gpio: tqmx86: really make IRQ optional 2021-08-12 13:20:57 +02:00
gpu drm/amdkfd: Account for SH/SE count when setting up cu masks. 2021-09-22 12:26:35 +02:00
greybus
hid HID: i2c-hid: Fix Elan touchpad regression 2021-09-22 12:26:25 +02:00
hsi HSI: core: fix resource leaks in hsi_add_client_from_dt() 2021-05-14 09:44:25 +02:00
hv hv_utils: Fix passing zero to 'PTR_ERR' warning 2021-07-14 16:53:16 +02:00
hwmon hwmon: (max31790) Fix fan speed reporting for fan7..12 2021-07-14 16:53:23 +02:00
hwspinlock
hwtracing intel_th: Wait until port is in reset before programming it 2021-07-20 16:10:46 +02:00
i2c i2c: mt65xx: fix IRQ check 2021-09-15 09:47:36 +02:00
i3c Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" 2021-05-14 09:44:15 +02:00
ide
idle
iio iio: dac: ad5624r: Fix incorrect handling of an optional regulator. 2021-09-22 12:26:27 +02:00
infiniband RDMA/efa: Remove double QP type assignment 2021-09-22 12:26:23 +02:00
input Input: hideep - fix the uninitialized use in hideep_nvm_unlock() 2021-07-20 16:10:45 +02:00
interconnect interconnect: core: fix error return code of icc_link_destroy() 2021-04-16 11:46:37 +02:00
iommu iommu: Check if group is NULL before remove device 2021-08-26 08:36:15 -04:00
ipack ipack: tpci200: fix memory leak in the tpci200_register 2021-08-26 08:36:21 -04:00
irqchip irqchip/gic-v3: Fix OF_BAD_ADDR error handling 2021-05-14 09:44:20 +02:00
isdn mISDN: fix possible use-after-free in HFC_cleanup() 2021-07-19 08:53:08 +02:00
leds leds: trigger: audio: Add an activate callback to ensure the initial brightness is set 2021-09-15 09:47:33 +02:00
lightnvm lightnvm: fix memory leak when submit fails 2021-01-27 11:47:53 +01:00
macintosh
mailbox
mcb
md dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc() 2021-09-22 12:26:21 +02:00
media media: tegra-cec: Handle errors of clk_prepare_enable() 2021-09-22 12:26:31 +02:00
memory memory: fsl_ifc: fix leak of private memory on probe failure 2021-07-20 16:10:52 +02:00
memstick memstick: rtsx_usb_ms: fix UAF 2021-07-14 16:53:13 +02:00
message
mfd mfd: cpcap: Fix cpcap dmamask not set warnings 2021-07-20 16:10:43 +02:00
misc VMCI: fix NULL pointer dereference when unmapping queue pair 2021-09-22 12:26:21 +02:00
mmc mmc: core: Return correct emmc response in case of ioctl error 2021-09-22 12:26:35 +02:00
mtd mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards 2021-08-26 08:36:12 -04:00
mux
net ath9k: fix sleeping in atomic context 2021-09-22 12:26:36 +02:00
nfc nfc: nfcsim: fix use after free during module unload 2021-08-04 12:27:38 +02:00
ntb
nubus
nvdimm libnvdimm/region: Fix label activation vs errors 2021-08-18 08:56:57 +02:00
nvme nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data 2021-09-22 12:26:33 +02:00
nvmem nvmem: core: add a missing of_node_put 2021-07-19 08:53:16 +02:00
of of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS 2021-09-22 12:26:34 +02:00
opp opp: Don't print an error if required-opps is missing 2021-09-22 12:26:33 +02:00
oprofile
parisc
parport parport: remove non-zero check on count 2021-09-22 12:26:36 +02:00
pci PCI: Use pci_update_current_state() in pci_enable_device_flags() 2021-09-22 12:26:26 +02:00
pcmcia pcmcia: i82092: fix a null pointer dereference bug 2021-08-12 13:21:03 +02:00
perf drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe() 2021-07-14 16:53:14 +02:00
phy phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe() 2021-07-14 16:53:46 +02:00
pinctrl pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry() 2021-09-22 12:26:24 +02:00
platform platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call 2021-09-22 12:26:25 +02:00
pnp
power power: supply: max17042: handle fails of reading status register 2021-09-22 12:26:21 +02:00
powercap
pps
ps3
ptp ptp_pch: Restore dependency on PCI 2021-08-26 08:36:17 -04:00
pwm pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped 2021-07-28 13:30:53 +02:00
rapidio rapidio: handle create_workqueue() failure 2021-05-26 12:05:17 +02:00
ras RAS/CEC: Correct ce_add_elem()'s returned values 2021-04-14 08:24:18 +02:00
regulator regulator: vctrl: Avoid lockdep warning in enable/disable ops 2021-09-15 09:47:29 +02:00
remoteproc
reset reset: reset-zynqmp: Fixed the argument data type 2021-09-12 08:56:39 +02:00
rpmsg rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data() 2021-05-19 10:08:25 +02:00
rtc rtc: tps65910: Correct driver module alias 2021-09-22 12:26:19 +02:00
s390 s390/cio: add dev_busid sysfs entry for each subchannel 2021-09-15 09:47:27 +02:00
sbus
scsi scsi: qedf: Fix error codes in qedf_alloc_global_queues() 2021-09-22 12:26:24 +02:00
sfi
sh
siox
slimbus slimbus: ngd: reset dma setup during runtime pm 2021-08-26 08:36:21 -04:00
soc soc: aspeed: p2a-ctrl: Fix boundary check for mmap 2021-09-22 12:26:20 +02:00
soundwire soundwire: stream: Fix test for DP prepare complete 2021-07-14 16:53:45 +02:00
spi spi: spi-zynq-qspi: use wait_for_completion_timeout to make zynq_qspi_exec_mem_op not interruptible 2021-09-15 09:47:30 +02:00
spmi spmi: spmi-pmic-arb: Fix hw_irq overflow 2021-03-04 10:26:49 +01:00
ssb ssb: Fix error return code in ssb_bus_scan() 2021-07-14 16:53:29 +02:00
staging staging: rts5208: Fix get_ms_information() heap buffer size 2021-09-22 12:26:33 +02:00
target scsi: target: avoid per-loop XCOPY buffer allocations 2021-09-22 12:26:25 +02:00
tc
tee tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag 2021-08-15 13:08:02 +02:00
thermal thermal/core: Correct function name thermal_zone_device_unregister() 2021-07-25 14:35:12 +02:00
thunderbolt thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue 2021-06-03 08:59:03 +02:00
tty serial: sh-sci: fix break handling for sysrq 2021-09-22 12:26:33 +02:00
uio uio_hv_generic: Fix a memory leak in error handling paths 2021-05-26 12:05:17 +02:00
usb usbip:vhci_hcd USB port can get stuck in the disabled state 2021-09-22 12:26:35 +02:00
vfio vfio: Use config not menuconfig for VFIO_NOIOMMU 2021-09-22 12:26:23 +02:00
vhost vringh: Use wiov->used to check for read/write desc order 2021-09-03 10:08:15 +02:00
video video: fbdev: riva: Error out if 'pixclock' equals zero 2021-09-22 12:26:29 +02:00
virt virt: vbox: Do not use wait_event_interruptible when called from kernel context 2021-03-04 10:26:10 +01:00
virtio virtio_pci: Support surprise removal of virtio pci device 2021-09-03 10:08:15 +02:00
visorbus visorbus: fix error return code in visorchipset_init() 2021-07-14 16:53:42 +02:00
vlynq
vme
w1 w1: ds2438: fixing bug that would always get page0 2021-07-20 16:10:41 +02:00
watchdog Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout" 2021-08-08 09:04:08 +02:00
xen xen/events: Fix race in set_evtchn_to_irq 2021-08-18 08:57:01 +02:00
zorro
Kconfig
Makefile