[PATCH v4 0/5] soc: qcom: ice: Fix race between qcom_ice_probe() and of_qcom_ice_get()

From: Manivannan Sadhasivam via B4 Relay

Date: Mon Mar 02 2026 - 08:06:09 EST


Hi,

This series fixes the race betwen qcom_ice_probe() and of_qcom_ice_get()
but synchronizing the two APIs and properly propagating the error codes to
clients.

Merge Strategy
==============

Due to dependency, all patches should go through Qcom SoC tree.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxxxxxxxx>
---
Changes in v4:
- For supporting multi-ice instances in a SoC, stored the err ptr in platform
drvdata instead of in a global pointer.
- Link to v3: https://lore.kernel.org/r/20260223-qcom-ice-fix-v3-0-6ca5846329f7@xxxxxxxxxxxxxxxx

Changes in v3:
- Dropped the platform driver removal patch and used the ice_handle to pass
error codes. This was done as I learned that we need to have the platform
driver design going forward and also removing it introduces other issues.
- Link to v2: https://lore.kernel.org/r/20260210-qcom-ice-fix-v2-0-9c1ab5d6502c@xxxxxxxxxxxxxxxx

Changes in v2:

- Added MODULE_* macros back
- Removed spurious platform_device_put()
- Added patches to remove NULL return

---
Manivannan Sadhasivam (5):
soc: qcom: ice: Fix race between qcom_ice_probe() and of_qcom_ice_get()
soc: qcom: ice: Return -ENODEV if the ICE platform device is not found
soc: qcom: ice: Return proper error codes from devm_of_qcom_ice_get() instead of NULL
mmc: sdhci-msm: Remove NULL check from devm_of_qcom_ice_get()
scsi: ufs: ufs-qcom: Remove NULL check from devm_of_qcom_ice_get()

drivers/mmc/host/sdhci-msm.c | 10 +++++-----
drivers/soc/qcom/ice.c | 33 ++++++++++++++++++++++-----------
drivers/ufs/host/ufs-qcom.c | 10 +++++-----
3 files changed, 32 insertions(+), 21 deletions(-)
---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260210-qcom-ice-fix-d2a3a045b32d

Best regards,
--
Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxxxxxxxx>