From nobody Thu Apr 9 12:06:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 564583D6CD2; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; cv=none; b=AZHarL0nGE/4bH0gqdAeupDhrRg3ht7HAj0rNqwbUMiGy79gKj2gSmRgwSOM4O+lCxSQwPAZxxKf36zPd6YoaQA1xZfErQSxpW02ACmZUphbRgkgcI7JTCECHP+ZKAg4cv40vRYsPwITvvDZ808nt65N7Z9/+QGUHvg6lG046wI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; c=relaxed/simple; bh=GjYJ0sv55slG3sVEqFeYGczFX9MBpOsZQCWJvgRMcfo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gRscewgr3c7eTWAjOaYylwteYQa68pP3WVKR8PJ3MWVHbuToEQHlpmjwuPtCrpecGvaY/dkoQ+xyV1sMN0LpovGU4NjnykZMUKjdh3PaVqo4KZIY5kS5ixEzC7U0dAjia/GVGELgmLLaqfWtiH9/Cte7I09Cq2rgdPSVNtO40Kc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HxcJXzEO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HxcJXzEO" Received: by smtp.kernel.org (Postfix) with ESMTPS id 188E3C2BC86; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772456437; bh=GjYJ0sv55slG3sVEqFeYGczFX9MBpOsZQCWJvgRMcfo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=HxcJXzEO0+ISCCYu4dQzrYWs2uvev9BVT6b9o34QBrEUKLCWuEFbtgaGz/tkpHesa gCJoFgzP3gh2b7MKB8RhsdUbO2emWqY89YdOP7zjbbm33ub1M6S8JHYVSIzbfChIkA IRR5WvdOOvZrBOa+5RV+Ik7mUL+ClpN6u2/Q9avrXWeEJZSW8PxB709yKV4YrF6Qvw f6ZVA2ynNaU2o4UdG6KQSBdLMUkjyd8FRhgwCLKA5HlDrQ83DK3VZX6JHRtq2INO1g Qc44FsYPN2J09PV3bgMjvK9kRpJ9tY87jrTR46YabI/LbrufUPOsuFZVn/CJp/ETPX 7US8GvN2EtDzw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1580E9B377; Mon, 2 Mar 2026 13:00:36 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 02 Mar 2026 18:30:18 +0530 Subject: [PATCH v4 1/5] soc: qcom: ice: Fix race between qcom_ice_probe() and of_qcom_ice_get() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260302-qcom-ice-fix-v4-1-0e65740a5dcc@oss.qualcomm.com> References: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> In-Reply-To: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Abel Vesa , Abel Vesa Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Sumit Garg , mani@kernel.org, Neeraj Soni , Manivannan Sadhasivam , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3469; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=PxxI5HrtkjPrewqydVjynd/KfkIqbLW5DMY9IbWY+NA=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBppYnyYy1MQoGSXd/MDRFIrOfC/xxPjbIcsmm6f lyIwDa27+KJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaaWJ8gAKCRBVnxHm/pHO 9fXMB/4kmYdO/8QSldFwnY9RlPzmF3wDrJqZfUBmCjSLXpzobrai5e3qPCC8OC5IfHmiKBSiJzK d34+Ra8ERcgshcviBGZXHljmwY5mGaTdhFzhkbt4sSoIq6IxQCNLp7oswrCjHJ07P504km+h46w vMO7T676t4oQTLOAinGa9weFEIcpy8va4XWuMuenNyA4SYtpVb6xabm64cIYHZ5666Nc0KKNDKF aDCJqSkzTgWM/g+aymzYHPtun8gLP91xJWvDEqLWFixvSVoqcI/+WrxL8sEWiYe+BY5JF65elxK iSmvaF/YbWxoBseeCvO+DBVHs1chMmaVHyQXwVegRb4JCn2X X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Endpoint-Received: by B4 Relay for manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461 X-Original-From: Manivannan Sadhasivam Reply-To: manivannan.sadhasivam@oss.qualcomm.com From: Manivannan Sadhasivam The current platform driver design causes probe ordering races with consumers (UFS, eMMC) due to ICE's dependency on SCM firmware calls. If ICE probe fails (missing ICE SCM or DT registers), devm_of_qcom_ice_get() loops with -EPROBE_DEFER, leaving consumers non-functional even when ICE should be gracefully disabled. devm_of_qcom_ice_get() doesn't know if the ICE driver probe has failed due to above reasons or it is waiting for the SCM driver. Moreover, there is no devlink dependency between ICE and consumer drivers as 'qcom,ice' is not considered as a DT 'supplier'. So the consumer drivers have no idea of when the ICE driver is going to probe. To address these issues, store the error pointer in the platform drvdata during probe in addition to the valid ice pointer and synchronize both qcom_ice_probe() and of_qcom_ice_get() using a mutex. If the platform drvdata is NULL, then it implies that the driver is not probed yet, so return -EPROBE_DEFER. If it has any error pointer, return that error pointer directly. Note that this change only fixes the standalone ICE DT node bindings and not the ones with 'ice' range embedded in the consumer nodes, where there is no issue. Cc: # 6.4 Fixes: 2afbf43a4aec ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated= driver") Reported-by: Sumit Garg Signed-off-by: Manivannan Sadhasivam --- drivers/soc/qcom/ice.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index b203bc685cad..a7e7e2251015 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -113,6 +113,8 @@ struct qcom_ice { u8 hwkm_version; }; =20 +static DEFINE_MUTEX(ice_mutex); + static bool qcom_ice_check_supported(struct qcom_ice *ice) { u32 regval =3D qcom_ice_readl(ice, QCOM_ICE_REG_VERSION); @@ -631,6 +633,8 @@ static struct qcom_ice *of_qcom_ice_get(struct device *= dev) return qcom_ice_create(&pdev->dev, base); } =20 + guard(mutex)(&ice_mutex); + /* * If the consumer node does not provider an 'ice' reg range * (legacy DT binding), then it must at least provide a phandle @@ -648,11 +652,12 @@ static struct qcom_ice *of_qcom_ice_get(struct device= *dev) } =20 ice =3D platform_get_drvdata(pdev); - if (!ice) { - dev_err(dev, "Cannot get ice instance from %s\n", - dev_name(&pdev->dev)); + if (IS_ERR_OR_NULL(ice)) { platform_device_put(pdev); - return ERR_PTR(-EPROBE_DEFER); + if (!ice) + return ERR_PTR(-EPROBE_DEFER); + else + return ice; } =20 link =3D device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER); @@ -719,15 +724,22 @@ static int qcom_ice_probe(struct platform_device *pde= v) struct qcom_ice *engine; void __iomem *base; =20 + guard(mutex)(&ice_mutex); + base =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(base)) { dev_warn(&pdev->dev, "ICE registers not found\n"); + /* Store the error pointer for devm_of_qcom_ice_get() */ + platform_set_drvdata(pdev, base); return PTR_ERR(base); } =20 engine =3D qcom_ice_create(&pdev->dev, base); - if (IS_ERR(engine)) + if (IS_ERR(engine)) { + /* Store the error pointer for devm_of_qcom_ice_get() */ + platform_set_drvdata(pdev, engine); return PTR_ERR(engine); + } =20 platform_set_drvdata(pdev, engine); =20 --=20 2.51.0 From nobody Thu Apr 9 12:06:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 564D23D7D65; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; cv=none; b=KL8YS+zfPoVar6LdXjM6qBKh7Qj3t0jM+YaxAP3x6lhAfLZZNu3fIRW5wknj7jdcUqbf+c2VyQ4+U3XYL8VW3a0Cl8IbEJz+65DvO248ukCJ5ayCBo7cU8bD5ZsnvPkKRamy+t6b/tSQ5kJ/PTY8lyfzHZUSjaas68nS6CzmYh0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; c=relaxed/simple; bh=qO4gAh5r2fusW9ypkr6oNMNi4yq4VGtpzUInmjnoFyQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dI2dr2Yk/mLWoX3/kaNeiTDGyH+qf78iYMhkXJ+6woPTw+nbtsmZKBuB5F8rVyYbQS/SikHoTmWS+gjKnleHzGVTNntZcJnmF7MHszNpQGdN7sjJrtVibqprGHYKf4wmvtQ+ojqp7/TeZcj3bM8yGOq3SHd4Os+R0q0lM3RxGJI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uQuUbMcS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uQuUbMcS" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2269DC2BC87; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772456437; bh=qO4gAh5r2fusW9ypkr6oNMNi4yq4VGtpzUInmjnoFyQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=uQuUbMcSkbMKv4N8q4+Q+RBKg+RwPEU5nWjHUl+QS8mXtaWj3b775FRwv/7Vck6xE M6UqFMxFYR6Nrzi8flXSgB/TMlDEhy35VIYKCZuOs1V+KHDgWmGj/1+ktDLt6CmVc1 CC7W4iEkxSyiqsii5HGu3+3jttCCg6s2/KaVTk6Fv6uMiE7oUAL47bdAR7Yb1FBIVA P0yryg2X7DvEnfyT4+fOpPLw0PSVsInHCET4UoGMY9q0UesHxdNgw9eoujk1AFcw14 RrXo20M/KL+engfd1cwFiW3PY8PY/8/J7I6WJas4bzCqd3phr5KfGQPmlx2sdbsIoM Y7iuehIyAvTbQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1253FE9B37E; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 02 Mar 2026 18:30:19 +0530 Subject: [PATCH v4 2/5] soc: qcom: ice: Return -ENODEV if the ICE platform device is not found Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260302-qcom-ice-fix-v4-2-0e65740a5dcc@oss.qualcomm.com> References: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> In-Reply-To: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Abel Vesa , Abel Vesa Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Sumit Garg , mani@kernel.org, Neeraj Soni , Manivannan Sadhasivam X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=996; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=hWaJRsxgdbS7JVoxpAQk12JWCRBY4hl4BLCSB0VZJ0A=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBppYnyXuyAZt76shPgZ/Z1m/PiwiuWVO+lZKar1 SOTIGaSwTSJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaaWJ8gAKCRBVnxHm/pHO 9dhtCACbsYqlJo9tr8oriZGomZUpdGso3Nn3PFjCdJ9rxibm2kOvnnu45TYiBf2DTj6AdoDwxi8 c21IC5SVSQXQ6aN1fTCwzKHsI7GuQmgTCtXyUTI8s16dkKhF90o5VfzEgisMjYn5fLORUUIYKt4 sxXwgRc4Lyi2AV7s1wNM/2ecfsvKh5Wgf+3vOEQzYz6ZjHqF9AcrIiHx7dNv3yc8VVwnenelLrM LRtHzF9AnZqZiff0HyF7JM6XxJmm1mSFuepg5BGtu3ddpGuBPEaGCK2U4w4qfTBslrTe9KRapyz eJROIDaZR6y2zJHW6B6T5rmlvFsRa3bCUCi3wS19N41M2ehT X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Endpoint-Received: by B4 Relay for manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461 X-Original-From: Manivannan Sadhasivam Reply-To: manivannan.sadhasivam@oss.qualcomm.com From: Manivannan Sadhasivam By the time the consumer driver calls devm_of_qcom_ice_get(), all the platform devices for ICE nodes would've been created by of_platform_default_populate(). So for the absence of any platform device, -ENODEV should not returned, not -EPROBE_DEFER. Fixes: 2afbf43a4aec ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated= driver") Signed-off-by: Manivannan Sadhasivam --- drivers/soc/qcom/ice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index a7e7e2251015..833d23dc7b06 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -648,7 +648,7 @@ static struct qcom_ice *of_qcom_ice_get(struct device *= dev) pdev =3D of_find_device_by_node(node); if (!pdev) { dev_err(dev, "Cannot find device node %s\n", node->name); - return ERR_PTR(-EPROBE_DEFER); + return ERR_PTR(-ENODEV); } =20 ice =3D platform_get_drvdata(pdev); --=20 2.51.0 From nobody Thu Apr 9 12:06:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 791C33D7D77; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; cv=none; b=AiutG4gWSTga/h6z37UTznViXy4zm5Qhrkn9bVCGKkyVrq12c0ANQqQdNAGj81zBnF+smtyLFwVmtLSrcxBzYYNkTk58xXB1QtoQgGMQkMh/zE4sYtzqSucHMd9LaAMcWC2fLNxQycMMPRqFhzfBjCgoQmWxOy48VKO3maUB6qc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; c=relaxed/simple; bh=O7fDlZSKDKmZb20Rrkk6M869ZkmAo81YEPBE2YJr6xA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aGAHlqLwAjc0Fzi/ulp2HscQc5zMiBjCISHlTiqVJDM1JDSBLvvDG95Q2X/081KwkJLvXOgGUjdnAojZWDNERDywIGYXkOGv+xgA1h6yUSuZLCctN6ekQVS6jwAqJA1V26egEduV8i4NBjF6FVbS2vuO2kKQqzdfq27m414TtHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XbNdJNdi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XbNdJNdi" Received: by smtp.kernel.org (Postfix) with ESMTPS id 3AD1DC2BCAF; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772456437; bh=O7fDlZSKDKmZb20Rrkk6M869ZkmAo81YEPBE2YJr6xA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=XbNdJNdiUMo68MZebpHakqZfotmSoPPRT+XHTfhfuPI9VN/gsYLOexvmegHACcpiy 3DueMtvco+plrFO5BGUV1NwtDIFRQ50Tz554NgaypyZsbAZguquJpOqbP1G2l1YGGQ fTPYhzRdRO7Q9A2JMVIeHELare60a7Q2U84fl8h6lDapY0Pfz1IE7imhTBfXLNr2ob 68Bm7GpURYCNkeU+bwLV4PwovAjEyAIYgh5YqhcHlVC2nq5VPECw2A9bbAfA4sn5Vo nteYWIg7EsMy8fTQ8vRcqfizABYX9+4YFtr/TVHmXzTGi5MOtO3RS6R3axZ5XpTXiU uIHGUOS5ddL4w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26F46E9B36F; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 02 Mar 2026 18:30:20 +0530 Subject: [PATCH v4 3/5] soc: qcom: ice: Return proper error codes from devm_of_qcom_ice_get() instead of NULL Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260302-qcom-ice-fix-v4-3-0e65740a5dcc@oss.qualcomm.com> References: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> In-Reply-To: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Abel Vesa , Abel Vesa Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Sumit Garg , mani@kernel.org, Neeraj Soni , Manivannan Sadhasivam , Konrad Dybcio X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2044; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=wcyxYq4Tgpup9Do39u+XA9vsCKJN7lfFY2ui7J75Wis=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBppYny/cFuqyJR2X+PHP0XenRX/H7FOEDHMKcei WKpc2z4bluJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaaWJ8gAKCRBVnxHm/pHO 9bM4CACpLJaBbWBLKf0lPk54F/UMS42G1MXslRbhONAQBNIv5Lyi3chLoO05X+k4Vb1FQQ4leFi shEZ4cPIsg4C2t/3iMUgtOsDSvHXZ3X6Z/F26wp9n59naoctuDJbeJfEqeWuouwbRHCKev78KmT Gf8HC+wE2HkrWzUlObWxJf5orlfbtaOoQgaNGkRxeQ+JLz613896OsmGvALchCW1yKBR/8TiD1c Q3sP40A1O4jlf2LqEZKFmWlrSdHCw3PQ4RCM3uwH6f01JLE14GVEQlGr2MlW9QtBQC7DLlPTXdL WIbmXl+RpXtvsjOSgbXKkHB2P2sOiZNWgOPjORNBmjBC4fav X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Endpoint-Received: by B4 Relay for manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461 X-Original-From: Manivannan Sadhasivam Reply-To: manivannan.sadhasivam@oss.qualcomm.com From: Manivannan Sadhasivam devm_of_qcom_ice_get() currently returns NULL if ICE SCM is not available or "qcom,ice" property is not found in DT. But this confuses the clients since NULL doesn't convey the reason for failure. So return proper error codes instead of NULL. Reported-by: Sumit Garg Reviewed-by: Konrad Dybcio Signed-off-by: Manivannan Sadhasivam --- drivers/soc/qcom/ice.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index 833d23dc7b06..d1efc676b63c 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -561,7 +561,7 @@ static struct qcom_ice *qcom_ice_create(struct device *= dev, =20 if (!qcom_scm_ice_available()) { dev_warn(dev, "ICE SCM interface not found\n"); - return NULL; + return ERR_PTR(-EOPNOTSUPP); } =20 engine =3D devm_kzalloc(dev, sizeof(*engine), GFP_KERNEL); @@ -643,7 +643,7 @@ static struct qcom_ice *of_qcom_ice_get(struct device *= dev) struct device_node *node __free(device_node) =3D of_parse_phandle(dev->of= _node, "qcom,ice", 0); if (!node) - return NULL; + return ERR_PTR(-ENODEV); =20 pdev =3D of_find_device_by_node(node); if (!pdev) { @@ -696,8 +696,7 @@ static void devm_of_qcom_ice_put(struct device *dev, vo= id *res) * phandle via 'qcom,ice' property to an ICE DT, the ICE instance will alr= eady * be created and so this function will return that instead. * - * Return: ICE pointer on success, NULL if there is no ICE data provided b= y the - * consumer or ERR_PTR() on error. + * Return: ICE pointer on success, ERR_PTR() on error. */ struct qcom_ice *devm_of_qcom_ice_get(struct device *dev) { @@ -708,7 +707,7 @@ struct qcom_ice *devm_of_qcom_ice_get(struct device *de= v) return ERR_PTR(-ENOMEM); =20 ice =3D of_qcom_ice_get(dev); - if (!IS_ERR_OR_NULL(ice)) { + if (!IS_ERR(ice)) { *dr =3D ice; devres_add(dev, dr); } else { --=20 2.51.0 From nobody Thu Apr 9 12:06:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 790BA3D6CDB; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; cv=none; b=gA3zXO9gHQfgOAbbfP5tJicUUwh25pWMG0oxtO5xbsE3o/MfOjdbPYjRCbNC4NJvhtMEB5h7KTJ6lHrkAZPz5KAonSNHU45xIR3C9CjQP3bRFCRc0kkK9XYB/3Etcp8fOsTkBWdmcYQn/wE8UJRV//vm9arK5U4wmU6LSMTeVcY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; c=relaxed/simple; bh=fIjVtLv2PApm9p7zByR7Rq2/I5Linm9JuIiBx8Q7GZw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OMTxlTMUJdiE5/TQmSPEvIxAphV/7TYiHPEJUPQu3vleeXgjFTNW7b3+evm2FX4uD/2RYSYt68JbJ3r6UZM81dfU+QNmteJWQh36E0esrOCV+UQJNgfDsVD658ZxW8dNp0Tx2WqBMp1nCJNvt7/FV/coui1mCkF9jZAWMeWcKso= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BtmGnuJP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BtmGnuJP" Received: by smtp.kernel.org (Postfix) with ESMTPS id 49E04C2BCB5; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772456437; bh=fIjVtLv2PApm9p7zByR7Rq2/I5Linm9JuIiBx8Q7GZw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=BtmGnuJPvKsoT8Dc+8XEAR0CTAEdfFZVaXWeCCzX0lNJWH7aQcW8tGUao1VbuNDj+ iaTZgx2+sVSM0yoBixg1lBoPIIdR0X0EMEOHyl5YR446rrL/3mxij7mEG9wkxAECYY M+iAGz4hM8qicLUQdS+sgh2yayzAlliDstv0m0xpk4Yd78oUIa7h4kjfSTdZMe4w7H MFn5zWk2BV9ooScijBvwVuxL8UPI0TOmhOPmZxuIu99WoYyL2N8zuptnFt3YokiZmp X5XdQZYNJ3isnz2N2U+O50ZTRSWzUBUii9kGmPwjKJW1SLIiiKX0BDFeq/DOTrHFHr P7UqbyFpZIs2g== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3EC1CE9B37D; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 02 Mar 2026 18:30:21 +0530 Subject: [PATCH v4 4/5] mmc: sdhci-msm: Remove NULL check from devm_of_qcom_ice_get() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260302-qcom-ice-fix-v4-4-0e65740a5dcc@oss.qualcomm.com> References: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> In-Reply-To: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Abel Vesa , Abel Vesa Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Sumit Garg , mani@kernel.org, Neeraj Soni , Manivannan Sadhasivam , Konrad Dybcio X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1276; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=+5SkLtRpHTnkAQ9yZWBecUdG7TMHCu1aRwm2dHYl1LQ=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBppYnyWLul+OebZhtQfx06bRZ+zl5We93nLK/wf CvwAmhqp/aJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaaWJ8gAKCRBVnxHm/pHO 9UysB/9XzWaOstq7nKp4SviAymNA1oyyZG0PjZpqiPysLvHKxjwtoi53UURPldidL4YeeWItQpr RS5kv3omZGPnQvApDm0Vr12fjRqpWcse+qAJgcJYW32wgy1+PUWfkTh6goc1Sh+bU/uDcjK4jZ2 OfglS8qZH4YGMdVwKZ/XMtsH/eqGPDmPM7cpJ/qOktQYAK5ZxVdrUrJiimQ2Vq5XEzLTz4piFaL t8Z9L/dydg5DZM6qaB3fv8imuaqR4Pet23cbTqzRzSl92vXznsFfUr9KeX8LEYkaNIRyc/xvpJi omLW2y1pxnjfs97jO5weM0K+yxd7RbYxheFesIKXBxvGExjc X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Endpoint-Received: by B4 Relay for manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461 X-Original-From: Manivannan Sadhasivam Reply-To: manivannan.sadhasivam@oss.qualcomm.com From: Manivannan Sadhasivam Now since the devm_of_qcom_ice_get() API never returns NULL, remove the NULL check and also simplify the error handling. Reviewed-by: Konrad Dybcio Acked-by: Ulf Hansson Acked-by: Adrian Hunter Signed-off-by: Manivannan Sadhasivam --- drivers/mmc/host/sdhci-msm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c index 3b85233131b3..8d862079cf17 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -1906,14 +1906,14 @@ static int sdhci_msm_ice_init(struct sdhci_msm_host= *msm_host, return 0; =20 ice =3D devm_of_qcom_ice_get(dev); - if (ice =3D=3D ERR_PTR(-EOPNOTSUPP)) { + if (IS_ERR(ice)) { + if (ice !=3D ERR_PTR(-EOPNOTSUPP)) + return PTR_ERR(ice); + dev_warn(dev, "Disabling inline encryption support\n"); - ice =3D NULL; + return 0; } =20 - if (IS_ERR_OR_NULL(ice)) - return PTR_ERR_OR_ZERO(ice); - if (qcom_ice_get_supported_key_type(ice) !=3D BLK_CRYPTO_KEY_TYPE_RAW) { dev_warn(dev, "Wrapped keys not supported. Disabling inline encryption s= upport.\n"); return 0; --=20 2.51.0 From nobody Thu Apr 9 12:06:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 902B536C5A2; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; cv=none; b=M3Nh4tWj7FZCvWdhUO71sQG+jn3xiZAwvd5cFn3zmsLQeKdKtknGUm29NbI5zQ5Ej+7jL4JAgvINZ3UT51wHjRpxFJWELBa31/hzeicJBAMbsaU+5ZCG4YA9yvamy78Wh3kQQssnWaVtaiMCPrjoQkEUgRB5Ql1RRcMKYLykdl0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772456437; c=relaxed/simple; bh=1eHoa0JSRx58JXoaHKKDpiP/1IcF5/5fTgcvM3Fey2g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ut/8YGzzrSD6UCPlfwqvnndJp0Qhw4PI4vI2kSQMUAtaz7KYzotndRQqur7+NmSPGKtn/xBdTWzX0YC8gUGs2tMolLpM4Z0O/Cb1r0rpzCGn+v5mg3vUTCapCHIp0EvmV49PhGaRZgovg4ass7S1i7f8y5giwuwMR/gcEXfsBk4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UnJzWIkM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UnJzWIkM" Received: by smtp.kernel.org (Postfix) with ESMTPS id 62FF4C4AF0E; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772456437; bh=1eHoa0JSRx58JXoaHKKDpiP/1IcF5/5fTgcvM3Fey2g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=UnJzWIkMZtl5K0/JPCVvxb75xeKJ1/SHDvNnzF5upvd2EhPie1clghCAjB+EPIlM4 qm+fl0I0gh90/T32LALcYf5aKN1mK7Qj8MKyKhF1PJT7rEeeT8nu1IzD2N3IzzxQMi u+QYLusqlyYjZQ4/iNGDZTNF97mn41NhImL78Va2GzyJ7avgjof9ftPOIy+RPwQc6i zZsttzFgtFHNwLotLqFNnWgOLEWlKe3E7GaEL1kY3E7L99tBLp/XxO68Ciq888YNRZ GD7C6FDodmR18QT8VMlnsRxv4A8QXtLQzpWzPxl6EsoZTDAOPKOoBdCBVoOXB+go2M mtyOOuNAbUb2w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54D88E9B37F; Mon, 2 Mar 2026 13:00:37 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 02 Mar 2026 18:30:22 +0530 Subject: [PATCH v4 5/5] scsi: ufs: ufs-qcom: Remove NULL check from devm_of_qcom_ice_get() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260302-qcom-ice-fix-v4-5-0e65740a5dcc@oss.qualcomm.com> References: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> In-Reply-To: <20260302-qcom-ice-fix-v4-0-0e65740a5dcc@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Abel Vesa , Abel Vesa Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Sumit Garg , mani@kernel.org, Neeraj Soni , Manivannan Sadhasivam , Konrad Dybcio X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1114; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=TzqKhDLr9WN8kubHG4egYv7EvzBCe1kNbA4zOiRN8WE=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBppYny3mM/pjsxxe74LpHcBCBuM6O78WcNJbaJ0 muUFmU9g2qJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaaWJ8gAKCRBVnxHm/pHO 9aQcB/9b0jJ9AdO0vPQV04cG04qKpN+0ub02IqFskXFTaZbgMqRzF0sPxdZY+vzVFMfSBlXUhmB cR/mkQvxxxXmnIIQ4hqQyMuW8N61rWMCm/rllIFs/pQ5E9m7z65k3uy317FHTWO+AmNKe1DKOZJ H+h9/hKrM3npOcf/Q8R3wVw/t1Q3LKUJT5KQzz0A+GDGAyH1/bYROuvSAD5Eye1iyilHVeAYodU yvbSV5tGXNBzS7ZAwtprvt2rzTLcTMiR2/y089tcM96/el2kF++jEwtdlQ3khvtnmxhFjxofcr4 7vVbUMOtwgxRLodw9hHFGa3mPrFE6HauMAhBJvc/yLkGNwFk X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Endpoint-Received: by B4 Relay for manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461 X-Original-From: Manivannan Sadhasivam Reply-To: manivannan.sadhasivam@oss.qualcomm.com From: Manivannan Sadhasivam Now since the devm_of_qcom_ice_get() API never returns NULL, remove the NULL check and also simplify the error handling. Reviewed-by: Konrad Dybcio Acked-by: Martin K. Petersen # UFS Signed-off-by: Manivannan Sadhasivam --- drivers/ufs/host/ufs-qcom.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 375fd24ba458..72c24ed65fe1 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -177,14 +177,14 @@ static int ufs_qcom_ice_init(struct ufs_qcom_host *ho= st) int i; =20 ice =3D devm_of_qcom_ice_get(dev); - if (ice =3D=3D ERR_PTR(-EOPNOTSUPP)) { + if (IS_ERR(ice)) { + if (ice !=3D ERR_PTR(-EOPNOTSUPP)) + return PTR_ERR(ice); + dev_warn(dev, "Disabling inline encryption support\n"); - ice =3D NULL; + return 0; } =20 - if (IS_ERR_OR_NULL(ice)) - return PTR_ERR_OR_ZERO(ice); - host->ice =3D ice; =20 /* Initialize the blk_crypto_profile */ --=20 2.51.0