linux/drivers/firmware/qcom
Krzysztof Kozlowski 390d3baeba firmware: qcom: scm: Cleanup global '__scm' on probe failures
[ Upstream commit 1e76b546e6 ]

If SCM driver fails the probe, it should not leave global '__scm'
variable assigned, because external users of this driver will assume the
probe finished successfully.  For example TZMEM parts ('__scm->mempool')
are initialized later in the probe, but users of it (__scm_smc_call())
rely on the '__scm' variable.

This fixes theoretical NULL pointer exception, triggered via introducing
probe deferral in SCM driver with call trace:

  qcom_tzmem_alloc+0x70/0x1ac (P)
  qcom_tzmem_alloc+0x64/0x1ac (L)
  qcom_scm_assign_mem+0x78/0x194
  qcom_rmtfs_mem_probe+0x2d4/0x38c
  platform_probe+0x68/0xc8

Fixes: 40289e35ca ("firmware: qcom: scm: enable the TZ mem allocator")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20241209-qcom-scm-missing-barriers-and-all-sort-of-srap-v2-4-9061013c8d92@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-02-08 09:57:48 +01:00
..
Kconfig firmware: qcom: scm: Refactor code to support multiple dload mode 2024-08-14 22:14:42 -05:00
Makefile firmware: qcom: add a dedicated TrustZone buffer allocator 2024-06-23 16:08:04 -05:00
qcom_qseecom.c firmware: qcom: move Qualcomm code into its own directory 2023-10-22 09:14:54 -07:00
qcom_qseecom_uefisecapp.c firmware: qcom: uefisecapp: Fix deadlock in qcuefi_acquire() 2024-08-30 22:17:50 -05:00
qcom_scm-legacy.c firmware: qcom: move Qualcomm code into its own directory 2023-10-22 09:14:54 -07:00
qcom_scm-smc.c firmware: qcom: scm: Mark get_wq_ctx() as atomic call 2024-08-14 22:08:28 -05:00
qcom_scm.c firmware: qcom: scm: Cleanup global '__scm' on probe failures 2025-02-08 09:57:48 +01:00
qcom_scm.h firmware: qcom: scm: add support for SHM bridge operations 2024-06-23 16:08:20 -05:00
qcom_tzmem.c firmware: qcom: tzmem: disable sdm670 platform 2024-08-21 08:37:37 -05:00
qcom_tzmem.h firmware: qcom: add a dedicated TrustZone buffer allocator 2024-06-23 16:08:04 -05:00