From nobody Mon May 25 05:12:54 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 61159371045; Mon, 18 May 2026 13:52:30 +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=1779112350; cv=none; b=axlOFXxPkvtDZuMQIMgaQAN7ANXtbjD8nqL5wMBZEcmCgaHoUD9DHK3HeOLa3CUGFIYmoFTidON+k+2kdQquWZ88DXGZmInFX2LpPJy0bhdUQ4f06rjoU3BtyNXwqNUECCY0v7XgdJtuiTgwaEQTPiPjb1TqIBSOZ2uyaunKqf0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779112350; c=relaxed/simple; bh=07PLMfOB75UjnaWAr0NIiSHUaK1aZsDayIXB2GQZSuM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bu0iTrn3KNvgvjL7RIdDa3Gt96Lb6tCSBcOxUQHI2ef0JFGedx86YLIztW2fiREUqjn8FjZEdCt0FqTsxoywuXIimKy2XcGnnnyhuD8DFcVg8Cl8dQxdsf+5oi/lC18lN4eJ0LNbOR9oLjzQlaIoeHiwF9iQPixR4UEUfSdD0Lc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RyMQ3Xpb; 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="RyMQ3Xpb" Received: by smtp.kernel.org (Postfix) with ESMTPS id 1EA5FC2BCC7; Mon, 18 May 2026 13:52:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779112350; bh=07PLMfOB75UjnaWAr0NIiSHUaK1aZsDayIXB2GQZSuM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=RyMQ3XpbqSwba+d+/RQaumfR4MO6FdDq+P21ymLBvaSo7CVQgobmRtrCzYBsa/vko B8dX5prq3P5fuFAEQADAQ+Q71hVEKitpL2KLij6vTcGLm/E8ZgKzopwFYVGXXhDT7n nmFyid2RcwBY5xdjiR8yG1bepzWFOujlpLsD6VbhEj8Vk0Icoq8Jq3eLfRD1ySgue2 R7LT636kNTgde6u1SzsuAdWCILycLLFNZ5UIIUbU5vtTmtZ5M3XzEWAskYIV3JkCTk XEUoZaHssfZPiueWvk7kCE+G9yoPPTijjOyiE94kFKoZyz+l3udX870SBHjed6eRj+ dAt2zsjgRy/Og== 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 06685CD4F4A; Mon, 18 May 2026 13:52:30 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 18 May 2026 19:22:17 +0530 Subject: [PATCH v7 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: <20260518-qcom-ice-fix-v7-1-2a595382185b@oss.qualcomm.com> References: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> In-Reply-To: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Abel Vesa , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Manivannan Sadhasivam , Sumit Garg , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5039; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=TOuPsTKwS69xCvw+bR6CsvRuXrrDoK9uazQUAc0R+fY=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBqCxmZCIfritK4cd/YLCe1gVQtYrw7DOmOk5Ee1 1hQp4cW6F2JATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCagsZmQAKCRBVnxHm/pHO 9emgB/4tz6GqENoBNXwIZPk2aXSXSTTKyiQf+OJpltkNvJN13yE6pP3dtU9rGy4X9TFEoA8Z5nA KzpVFWqfFsBGZgcRDXDLdNok0hbs8DMuZuT7F2TFsYZSLcU5PpK9kStIHruu47oz7Ka84x0KiRs PyrV8fKlhzC379R8ack6EMMwRawjQpYpyn5rvzv4xHQNSXINlUt0nk6QMVx1V3fcJcS02E9U9xe 359Bng6ZIjI3wqQcN3iMxgn7QvlJwDLeoistRyEkbweZV8LRNc9wqYgQOMWACNH9kTZQVKvsRr2 vcCMS0V/+rsKAu/VgdrWzRzFrRpPPPbeQvs0dz27rY1Q8O2Q 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 a global xarray with ice node phandle as a key 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 xarray entry 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. Otherwise, add the devlink as usual and return the valid pointer to the consumer. Xarray is used instead of platform drvdata, since driver core frees the drvdata during probe failure. So it cannot be used to pass the error pointer to the consumers. 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. Fixes: 2afbf43a4aec ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated= driver") Reported-by: Sumit Garg Tested-by: Sumit Garg # OP-TEE as TZ Acked-by: Sumit Garg Cc: stable@vger.kernel.org # 6.4 Signed-off-by: Manivannan Sadhasivam --- drivers/soc/qcom/ice.c | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index b203bc685cad..91991864b4a3 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -16,6 +16,7 @@ #include #include #include +#include =20 #include =20 @@ -113,6 +114,9 @@ struct qcom_ice { u8 hwkm_version; }; =20 +static DEFINE_XARRAY(ice_handles); +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 +635,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 @@ -647,12 +653,13 @@ static struct qcom_ice *of_qcom_ice_get(struct device= *dev) return ERR_PTR(-EPROBE_DEFER); } =20 - ice =3D platform_get_drvdata(pdev); - if (!ice) { - dev_err(dev, "Cannot get ice instance from %s\n", - dev_name(&pdev->dev)); + ice =3D xa_load(&ice_handles, pdev->dev.of_node->phandle); + 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); @@ -716,24 +723,40 @@ EXPORT_SYMBOL_GPL(devm_of_qcom_ice_get); =20 static int qcom_ice_probe(struct platform_device *pdev) { + unsigned long phandle =3D pdev->dev.of_node->phandle; 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() */ + xa_store(&ice_handles, phandle, (__force void *)base, GFP_KERNEL); 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() */ + xa_store(&ice_handles, phandle, engine, GFP_KERNEL); return PTR_ERR(engine); + } =20 - platform_set_drvdata(pdev, engine); + xa_store(&ice_handles, phandle, engine, GFP_KERNEL); =20 return 0; } =20 +static void qcom_ice_remove(struct platform_device *pdev) +{ + unsigned long phandle =3D pdev->dev.of_node->phandle; + + guard(mutex)(&ice_mutex); + xa_store(&ice_handles, phandle, NULL, GFP_KERNEL); +} + static const struct of_device_id qcom_ice_of_match_table[] =3D { { .compatible =3D "qcom,inline-crypto-engine" }, { }, @@ -742,6 +765,7 @@ MODULE_DEVICE_TABLE(of, qcom_ice_of_match_table); =20 static struct platform_driver qcom_ice_driver =3D { .probe =3D qcom_ice_probe, + .remove =3D qcom_ice_remove, .driver =3D { .name =3D "qcom-ice", .of_match_table =3D qcom_ice_of_match_table, --=20 2.48.1 From nobody Mon May 25 05:12:54 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 611F140584E; Mon, 18 May 2026 13:52:30 +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=1779112350; cv=none; b=GgZStIi3YSiNKNgSl5mRzHdFctNr+PYC7Qkv9k1h83NnLkrDx8XtR5GeNr0BgXYWEfNPALIeL22OksjC0VpOFsxjWrrDLf1fdvppTXv94VTLWBytv6OrcqpRaLrmzdt97XIm/vvaCnHnspcuCcQyFunbvhvLIEW9Ny86guwyW0Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779112350; c=relaxed/simple; bh=gvlokpn/TIGlt70y5qlx+ktPw+si3rlEvogvLIf0ls0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZYYycfGX2j5Tn3MKLYQOG0RDub0KvxSZCsld9mtNnjT2w1jaHPsackFYe4SMIGmt6USb99pzIiXHhxrpOGLGCDFG0e6mA9oo11j4x7rwUwWN8LIu16tkTCqfB+7FQkIAcaBQbaz5/tvVOiR2W0y4GLRIELGIQ5cZubLNh9RXwFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rhbhU521; 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="rhbhU521" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2BB52C4AF09; Mon, 18 May 2026 13:52:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779112350; bh=gvlokpn/TIGlt70y5qlx+ktPw+si3rlEvogvLIf0ls0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rhbhU521t4OhDzM3Ku6PiDsynQB7UcKtyTeqqDiWNnO0PzYZHg9CZxJYJ44Zpy/2i iB1+kaAJUgyFMc8RkdYub+q5fYEygeNCnSKf/zHM2Pd4ueXCPaWuRTeoxDfRm+23q4 KqBvTSNjE0nWhVwrkSXuPcdtE9Zqsi5+P5Tc0MG10Jf6oLgTnOQlL1/19DfHzogWuS DPi+QavQw6dY66+mwPNtd2GRuBdbTBEIIU1BZ/XlCbPxvodCUKnuDjgGJwg1HZjuRs PqTUpkj/elXFStlkK0eVJ70riZFivpQoNboaIs6EEnfN9Pg0voY0k9tKefp9LvaNY9 MTeztAn/hYYew== 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 19A36CD4F3C; Mon, 18 May 2026 13:52:30 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 18 May 2026 19:22:18 +0530 Subject: [PATCH v7 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: <20260518-qcom-ice-fix-v7-2-2a595382185b@oss.qualcomm.com> References: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> In-Reply-To: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Abel Vesa , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Manivannan Sadhasivam , Sumit Garg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1139; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=MoJs8ZMibzA5m5D/IfOutYFXC9uF1xpkR8OtPhgJEPI=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBqCxmaUeMfbh+4b+/jA4mgHzfcv0MpzPFd4C19j LUUpb2u6R+JATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCagsZmgAKCRBVnxHm/pHO 9WY5B/9DQCO+hzl7uYIQqMEMJAhFdb8kHdkGqMH88YuqGXbOKoVVQHopxAd+VwqGmIlvoVN+2Mi mN7/gqXZgdW0YdPCQgIAC9vYG1ZwqJ+b7rvDcWv+qrZu6CYL5gM7FGRfuX58Tlq7t7jeOBp2E/1 nn7cUdf3RgsvBT8xKJUTDmkfNOV+yYNPqkfKUiFAqkhPSVqeDoz0IYH066x78Exdhe6BGqvYv/A JfeB/zlEpRD9yzqMsY24+TnPh3VVnAzlkAu7Fy6IBDiFcWzfQvHm1mx8vQzy1KveF71sgiqG4La DE7p6W7jQwqsydGUPfkpyUaRaIO/ezQ6+E1l+DmFeDNuG4zD 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") Tested-by: Sumit Garg # OP-TEE as TZ Acked-by: Sumit Garg 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 91991864b4a3..85deb9ea4a68 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -650,7 +650,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 xa_load(&ice_handles, pdev->dev.of_node->phandle); --=20 2.48.1 From nobody Mon May 25 05:12:54 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 76E96480DDF; Mon, 18 May 2026 13:52:30 +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=1779112350; cv=none; b=m31/nw7Z+z/A0ipPH8vqJcuSs1lKl1oX6kHANbgo0TJo6zcMoh4rSU/ZP2WkYyLApVqT2/N2GAjixeQdFI+TNlDCg7W7Sh4ugKw1dPepAgwLtL/M59rW4g9cYRRnrJellL6y0NrkRPOZEFL3UhcpzylJtR+id3kQFCWjXMW67FQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779112350; c=relaxed/simple; bh=9qXOPABVN2c7n9TZ5dpBGQo/RMWfurFgnVCjdPLBspA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SGDrpU7qswTBwJTK6cfna7IzCcdV10i0b25026zltnk3Zm6v0K7zHoJNmjtyEMMy77n6A4LR2+ATLW7UIAC5PgN8cUpzAm5p04wVWxgDYx6ocMCsgsop1W5Byne13+QcoxelN6RH+0+EHt6Wr+Ggzz9lRL13p3gkRUoSVKABugI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BkQwNk5i; 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="BkQwNk5i" Received: by smtp.kernel.org (Postfix) with ESMTPS id 3C6B1C2BCFD; Mon, 18 May 2026 13:52:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779112350; bh=9qXOPABVN2c7n9TZ5dpBGQo/RMWfurFgnVCjdPLBspA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=BkQwNk5iIRIL5jzxwL+PucNKuX7dfN8ssyBjlgBD7RwpCrBB2ZgtkC+CuguE+saTe vNmMh8hU226qpbCao+bx+03k81p62hj1EOyJ5gtcuVnB6+4udQ4iGkQYOVFJH2HSVc t5ifFY+8CUkM/cbQtVOWDpEnC0oyrcA8hNOxGMq+Up8MfaFWXgBn1Y/6G+cf3Cmx1b HCG6O2TovD6KZIh37zhxE3BfqVkH1e4uvSSohUWZa4h7o57FfmqHI25qc6IbKUZBbl rTPI3+Q1Z0dIWhPIby1JB8Zjta2vOMslhnK9AugfOM/6je8dTl4AyuaEu6N1EcSC5f ne2C+h00DwXAw== 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 2C851CD4F49; Mon, 18 May 2026 13:52:30 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 18 May 2026 19:22:19 +0530 Subject: [PATCH v7 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: <20260518-qcom-ice-fix-v7-3-2a595382185b@oss.qualcomm.com> References: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> In-Reply-To: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Abel Vesa , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Manivannan Sadhasivam , Sumit Garg , Konrad Dybcio X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2164; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=zyGMoxK7AI1IRPc+etIM4UZGk/SADTv+9T9KAHweBVw=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBqCxmahrJ+jerq1LRrZ6VYZmvgG5UhnEKv/cXI2 yZosNGSuiaJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCagsZmgAKCRBVnxHm/pHO 9Z0tB/9plQvFEspGFOSg6Irs68JKzkrKJarNsxOt7OfJEuJZdma3kKqbKgAJpoT0/tgiYGPmvfv R6SBenoiC7quwaWVHJtXl7RlPabgRSicuKjzNhX1xprtVU9bnE4u2+/tXfo/6r6KckfOYPbK3Qn F/Hf94gisRXwAOeuXUV4ZidhoXWKeIfxTd2PhrLdxGp3DXvRro3gvWgKht2nfvfbxrI8cYiM12y 0eKvv+vEbsj6h0nzq0nHEFlqQ+Yhx3m+Xsglh99H8OYxuEzb6tKCqUu6Uo79n5OsuyabKQgouFb uLtUGyaMVWGb+ScY7q+RuAIbV/N1+Ls7oYUDQZrP9+L23oYm 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 Tested-by: Sumit Garg # OP-TEE as TZ Acked-by: Sumit Garg 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 85deb9ea4a68..2b592aa42941 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -563,7 +563,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); @@ -645,7 +645,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) { @@ -698,8 +698,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) { @@ -710,7 +709,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.48.1 From nobody Mon May 25 05:12:54 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 8142F481226; Mon, 18 May 2026 13:52:30 +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=1779112350; cv=none; b=PxS5rmKmM7T2JNhGk0WaFv5+X2rZqRfU8BykKMpONZSI/1szq39+Ga0ot5//MXGQXSqzAaHS1O7+aN6gTrtr+Qa5Z6q1QQEOZ8HBoaTtIJ7a1/eWV8yZR6RqxwUzG8vw5GViSoTCEENxLySwE9kapb1U+RX1D4cIKvl1ZmAsnxY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779112350; c=relaxed/simple; bh=lWNhLTv5FXzvs3eQd3TLE6Gh2cJpi4D0nd4hOnr2tFA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pFxM2uQ7cxbZM+EhOQd+XMCJwJW/3xOLP9BnsV/8jRBgjAsb0DzrQUsfMS8+u1kJqWIKliA3KyKRX7AwMbWEQogp9/DBsDHUK4R/v37EyAcqLJ1C5maCsk4aJKeRjOQ72kVEI2Dvq3z0OXbScjfvf7Axt9aaSZGcsR5l6EjvQOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PdU3kSc0; 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="PdU3kSc0" Received: by smtp.kernel.org (Postfix) with ESMTPS id 4C237C2BD05; Mon, 18 May 2026 13:52:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779112350; bh=lWNhLTv5FXzvs3eQd3TLE6Gh2cJpi4D0nd4hOnr2tFA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=PdU3kSc00Mo0lVjAfiur8q4xeXuLppbXvOc0Chi2jlRQf2tPRG1SWXw1njBEWWfJm KlQO/mEgzt9AGpjNzOe7E3fxDpl9v5gkjwRt9simMyx3gsNln5w9EwIFd+4+PJ8CKs MnmayHjCiHYMI9NN+6R8X1TASbN1YLAa5chNbbQ6Dcnpv8ilqMZ5O14GItPE7y4+s6 BDhvwlHE3axfftwDEXg0C0JAOIYtz/NurROjJ3V6JYps0rE4VZDuhHGv9t7XlcUXKZ PK4Tvp5TvFD73MOtPDba73OzUyz8XciQQ2Sv/oSKzxOVIa5+GO3moaCjUYEMYPl5VU eKaRB9sTEwNLQ== 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 41C92CD4F4A; Mon, 18 May 2026 13:52:30 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 18 May 2026 19:22:20 +0530 Subject: [PATCH v7 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: <20260518-qcom-ice-fix-v7-4-2a595382185b@oss.qualcomm.com> References: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> In-Reply-To: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Abel Vesa , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Manivannan Sadhasivam , Konrad Dybcio , Sumit Garg , Ulf Hansson X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1289; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=2TEgOkyvd4r+l0mpS0t2N7pBLvSeAP7e2d285TUvAGA=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBqCxmbFl8JMCvWeUZA1bBL9JGP6YVKVE51lNsQa GrjY5i58+mJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCagsZmwAKCRBVnxHm/pHO 9bYBB/9xnakQ59nUEsBic128rGADmZ+LrKM3pZgMf6CzAY6cRrFIwHtekZF9BC2bLPqGq8bFQe7 n9/ts8THbKKmZYuNlp/P+6+T47WnvgwvXAQyUw52jKAxb5VhdVSkQ7eUPhGMR7ZgrINp8xUe0OH m9FJwCWV8g2iSYKcRF9a3XCPiny/AMo2zBL1UKSMT34ikC6XsAxhyE6WY2nEErte+QoK8rtWDBc 1ygGoRDiJonOv/td7yJ5h7H9PPJkrpUPMVS86r+idNJGRAfqzmgXH5nr8xzMUpsWvUIh7FxL00i X/ekjsKCSK2hzuu6lwgUn5xzhwlt6TNFW5ZzNxmOn76K6wYn 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 Tested-by: Sumit Garg # OP-TEE as TZ Acked-by: Sumit Garg 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 633462c0be5f..0882ce74e0c9 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -1918,14 +1918,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); - msm_host->ice =3D ice; =20 /* Initialize the blk_crypto_profile */ --=20 2.48.1 From nobody Mon May 25 05:12:54 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 8C84048165A; Mon, 18 May 2026 13:52:30 +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=1779112350; cv=none; b=Z2JjUDO3el3BkcAxovM+p7240gPY6u+nr1Aqam+7sxO5rvlTMh4ics3hyJrg5/Yc+t/OPcV8Iw56GjUto2ZeHDpJtKTaMAdaN41uq8IOHXP6o1yBRzfr/dSnThn3WN9FxLVe1Z9QLBlMrVuhHySwUCBN+w0iiFGIwsRt/g7CivQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779112350; c=relaxed/simple; bh=oHTE1zYWukKSlsBoWerN08uSJEDcX8ooTqW72KVewf0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KauqMYA8RhUoSfr9flm66WtW/a4+K9u8MT7BbJKBOxfrVZWM6OWq1Rju5hJhdzpgliB7M+ZU6jregv362zVcYbcK8cRkXq99plvK4cHe/dJ5ijwAZRLUgQxSpYweOib17Z32Op3+2PquT8jWo/s4g9ReZU8lIgkEvdehxiaJS3M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AjpfTpX1; 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="AjpfTpX1" Received: by smtp.kernel.org (Postfix) with ESMTPS id 63DA5C2BCFF; Mon, 18 May 2026 13:52:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779112350; bh=oHTE1zYWukKSlsBoWerN08uSJEDcX8ooTqW72KVewf0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=AjpfTpX1+mWo5HunV9LBA9IGF0p8xvR/qJ2kAfm3LNCtbMaezCvZrSp8aPNo7CxBP Lu+bwHBcRY7an4eegMJkTOFMY9aSjYKF+LD+gFxJhWIbPwVMI/gD9dgBAWsVBuJCDQ /199OOhk8y/l/u6I/nN1Wk59aZwJ9WKyC8v+tQlmIfZkqZJ6FXBqybFRqpJSQ++Oi4 6nHJGoMXIcgPr5sLjS9qeXfQZ7L7Og6lnHc1lMYxyJp6LxpzP4Ca2LocThVPRf6gf6 MlQ8X38uVBCj/Lum3W+1rpmQQsgrAE0yMkuY41+mc39RuH+FWwC4pmAffGEdz1khPN Votvby46G3AwQ== 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 54F1ACD4F52; Mon, 18 May 2026 13:52:30 +0000 (UTC) From: Manivannan Sadhasivam via B4 Relay Date: Mon, 18 May 2026 19:22:21 +0530 Subject: [PATCH v7 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: <20260518-qcom-ice-fix-v7-5-2a595382185b@oss.qualcomm.com> References: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> In-Reply-To: <20260518-qcom-ice-fix-v7-0-2a595382185b@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Abel Vesa , Adrian Hunter , Ulf Hansson , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, Manivannan Sadhasivam , Konrad Dybcio , Sumit Garg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1234; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=YkgKjBGLY+AYBAXrlJJJX873KFHUcGeHTh2LU3886Ks=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBqCxmbBwMerdItRgmMSGTdMSgoh6ch3aPCMD1UW NgEs/LaDX+JATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCagsZmwAKCRBVnxHm/pHO 9WhSCACrc2TOBJjWpreJbyISJrxaAolOeb62QdYZY+jB30PwkpbACvHGQt89SEn4TByqU2uEnsv YBqs6nc3kewVPRXrXKvv1tbLrj6QgGXeHu9vNCCMJhyMhDaetDQ0Tg1KKFYGr8rr6DrNo+BHE/O e703grIeGKhTYfKR+xGDa+YOpTmr6VP4ixZ+Bn+Wny6l7k95PX6y4Q8KJIY6QTAs/XJe3hknAow PGr3lqqOGDQD5aIzEr37CJmbcRlzG7MSJhHuQaQxTMFLDlNa7p3rfxEQuocp+iVlwsSQC+fjyjc v3k/0xJ0j5Sr1+/MQLITuoUONYxvHk+lABfubhmMOrD6vJ8C 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 Tested-by: Sumit Garg # OP-TEE as TZ Acked-by: Sumit Garg 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 bc037db46624..9c0973a7ffc3 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.48.1