linux/drivers/firmware/qcom
Mukesh Ojha 9941fe8a04 firmware: qcom: scm: Fix tzmem state on probe retry
qcom_tzmem_enable() returns -EBUSY if called a second time, but this
causes probe retries to fail permanently if a later step in
qcom_scm_probe() defers after qcom_tzmem_enable() has already succeeded.

Use DO_ONCE() to ensure qcom_tzmem_init() runs exactly once across all
calls in a thread-safe manner. qcom_tzmem_dev is set on every call since
probe retries use the same device pointer. The result of the first
initialisation is cached and returned to every subsequent caller.

Fixes: 40289e35ca ("firmware: qcom: scm: enable the TZ mem allocator")
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260724094939.613844-4-mukesh.ojha@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-07-30 16:31:34 -05:00
..
Kconfig firmware: qcom: Add a PAS TEE service 2026-07-09 14:12:58 -05:00
Makefile firmware: qcom: scm: instrument SMC call path with tracepoints 2026-07-11 11:31:11 -05:00
qcom_pas_tee.c firmware: qcom: Add a PAS TEE service 2026-07-09 14:12:58 -05:00
qcom_pas.c firmware: qcom: Add a generic PAS service 2026-07-09 14:12:58 -05:00
qcom_pas.h firmware: qcom: Add a generic PAS service 2026-07-09 14:12:58 -05:00
qcom_qseecom_uefisecapp.c firmware: qcom: uefisecapp: Annotate acquiring locks for context tracking 2026-03-18 07:20:21 -05:00
qcom_qseecom.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qcom_scm_trace.h firmware: qcom: scm: add trace events for the SMC call interface 2026-07-11 11:31:11 -05:00
qcom_scm-legacy.c
qcom_scm-smc.c firmware: qcom: scm: Fix NULL dereference in IRQ handler before __scm is published 2026-07-30 16:31:33 -05:00
qcom_scm.c firmware: qcom: scm: Fix reserved memory cleanup on probe failure 2026-07-30 16:31:34 -05:00
qcom_scm.h firmware: qcom: scm: Fix NULL dereference in IRQ handler before __scm is published 2026-07-30 16:31:33 -05:00
qcom_tzmem.c firmware: qcom: scm: Fix tzmem state on probe retry 2026-07-30 16:31:34 -05:00
qcom_tzmem.h firmware: qcom: add a dedicated TrustZone buffer allocator 2024-06-23 16:08:04 -05:00