linux-uconsole/drivers/soc/qcom
Daniel Thompson 2042c6fbfb soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
[ Upstream commit 8030cb9a55 ]

Quoting the header comments, IRQF_ONESHOT is "Used by threaded interrupts
which need to keep the irq line disabled until the threaded handler has
been run.". When applied to an interrupt that doesn't request a threaded
irq then IRQF_ONESHOT has a lesser known (undocumented?) side effect,
which it to disable the forced threading of the irq. For "normal" kernels
(without forced threading) then, if there is no thread_fn, then
IRQF_ONESHOT is a nop.

In this case disabling forced threading is not appropriate for this driver
because it calls wake_up_all() and this API cannot be called from
no-thread interrupt handlers on PREEMPT_RT systems (deadlock risk, triggers
sleeping-while-atomic warnings).

Fix this by removing IRQF_ONESHOT.

Fixes: 2209481409 ("soc: qcom: Add AOSS QMP driver")
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
[bjorn: Added Fixes tag]
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220127173554.158111-1-daniel.thompson@linaro.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-08 14:40:06 +02:00
..
apr.c soc: qcom: apr: Add of_node_put() before return 2021-11-18 14:04:20 +01:00
cmd-db.c
cpr.c PM: AVS: qcom-cpr: Use div64_ul instead of do_div 2022-01-27 10:54:17 +01:00
Kconfig
kryo-l2-accessors.c
llcc-qcom.c
Makefile
mdt_loader.c soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment 2021-10-13 10:04:25 +02:00
ocmem.c soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem 2022-04-08 14:40:06 +02:00
pdr_interface.c
pdr_internal.h
qcom-geni-se.c
qcom_aoss.c soc: qcom: aoss: remove spurious IRQF_ONESHOT flags 2022-04-08 14:40:06 +02:00
qcom_gsbi.c
qmi_encdec.c
qmi_interface.c
rmtfs_mem.c
rpmh-internal.h
rpmh-rsc.c
rpmh.c
rpmhpd.c soc: qcom: rpmhpd: Make power_on actually enable the domain 2021-11-18 14:04:19 +01:00
rpmpd.c soc: qcom: rpmpd: Check for null return of devm_kcalloc 2022-04-08 14:40:06 +02:00
smd-rpm.c
smem.c
smem_state.c
smp2p.c
smsm.c soc: qcom: smsm: Fix missed interrupts if state changes while masked 2021-09-15 09:50:37 +02:00
socinfo.c soc: qcom: socinfo: Fixed argument passed to platform_set_data() 2021-10-13 10:04:25 +02:00
trace-rpmh.h
wcnss_ctrl.c