twx-linux/drivers/firmware
Murali Nalajala cdf7efe4b0 firmware: qcom: scm: Mark get_wq_ctx() as atomic call
commit 9960085a3a82c58d3323c1c20b991db6045063b0 upstream.

Currently get_wq_ctx() is wrongly configured as a standard call. When two
SMC calls are in sleep and one SMC wakes up, it calls get_wq_ctx() to
resume the corresponding sleeping thread. But if get_wq_ctx() is
interrupted, goes to sleep and another SMC call is waiting to be allocated
a waitq context, it leads to a deadlock.

To avoid this get_wq_ctx() must be an atomic call and can't be a standard
SMC call. Hence mark get_wq_ctx() as a fast call.

Fixes: 6bf325992236 ("firmware: qcom: scm: Add wait-queue handling logic")
Cc: stable@vger.kernel.org
Signed-off-by: Murali Nalajala <quic_mnalajal@quicinc.com>
Signed-off-by: Unnathi Chalicheemala <quic_uchalich@quicinc.com>
Reviewed-by: Elliot Berman <quic_eberman@quicinc.com>
Link: https://lore.kernel.org/r/20240814223244.40081-1-quic_uchalich@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-04 13:28:28 +02:00
..
arm_ffa firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging 2023-11-20 11:59:16 +01:00
arm_scmi firmware: arm_scmi: Make raw debugfs entries non-seekable 2024-04-17 11:19:27 +02:00
broadcom
cirrus firmware: cirrus: cs_dsp: Initialize debugfs_root to invalid 2024-08-29 17:33:38 +02:00
efi efi/libstub: Zero initialize heap allocated struct screen_info 2024-08-03 08:54:22 +02:00
google
imx firmware/imx-dsp: Fix use_after_free in imx_dsp_setup_channels() 2023-10-10 10:30:29 +08:00
meson
psci firmware: psci: Fix return value from psci_system_suspend() 2024-06-27 13:49:10 +02:00
smccc
tegra firmware: tegra: bpmp: Return directly after a failed kzalloc() in get_filename() 2024-04-13 13:07:31 +02:00
xilinx Pin control bulk changes for the v6.6 kernel cycle: 2023-08-30 19:36:19 -07:00
arm_scpi.c
arm_sdei.c
dmi_scan.c firmware: dmi: Stop decoding on broken entry 2024-07-11 12:49:06 +02:00
dmi-id.c firmware: dmi-id: add a release callback function 2024-06-12 11:12:15 +02:00
dmi-sysfs.c
edd.c
iscsi_ibft_find.c
iscsi_ibft.c
Kconfig video: Add helpers for decoding screen_info 2024-08-11 12:47:15 +02:00
Makefile
memmap.c
mtk-adsp-ipc.c firmware: Explicitly include correct DT includes 2023-08-12 10:31:01 +02:00
pcdp.c
pcdp.h
qcom_scm-legacy.c
qcom_scm-smc.c firmware: qcom: scm: Mark get_wq_ctx() as atomic call 2024-09-04 13:28:28 +02:00
qcom_scm.c firmware: qcom_scm: disable clocks if qcom_scm_bw_enable() fails 2024-06-21 14:38:21 +02:00
qcom_scm.h
qemu_fw_cfg.c
raspberrypi.c firmware: raspberrypi: Use correct device for DMA mappings 2024-06-12 11:11:31 +02:00
scpi_pm_domain.c firmware: Explicitly include correct DT includes 2023-08-12 10:31:01 +02:00
stratix10-rsu.c Char/Misc driver changes for 6.6-rc1 2023-09-01 09:53:54 -07:00
stratix10-svc.c
sysfb_simplefb.c
sysfb.c firmware/sysfb: Update screen_info for relocated EFI framebuffers 2024-08-11 12:47:16 +02:00
ti_sci.c firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create() 2024-01-25 15:35:20 -08:00
ti_sci.h
trusted_foundations.c
turris-mox-rwtm.c firmware: turris-mox-rwtm: Initialize completion before mailbox 2024-08-03 08:53:35 +02:00