* [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get
@ 2025-01-17 14:18 Tudor Ambarus
2025-01-17 14:18 ` [PATCH v2 2/4] mmc: sdhci-msm: " Tudor Ambarus
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Tudor Ambarus @ 2025-01-17 14:18 UTC (permalink / raw)
To: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Abel Vesa, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers
Cc: linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, Tudor Ambarus, stable,
Krzysztof Kozlowski
Hi!
Recently I've been pointed to this driver for an example on how consumers
can get a pointer to the supplier's driver data and I noticed a leak.
Callers of of_qcom_ice_get() leak the device reference taken by
of_find_device_by_node(). Introduce devm_of_qcom_ice_get().
Exporting qcom_ice_put() is not done intentionally as the consumers need
the ICE intance for the entire life of their device. Update the consumers
to use the devm variant and make of_qcom_ice_get() static afterwards.
This set touches mmc and scsi subsystems. Since the fix is trivial for
them, I'd suggest taking everything through the SoC tree with Acked-by
tags if people consider this fine. Note that the mmc and scsi patches
depend on the first patch that introduces devm_of_qcom_ice_get().
Thanks!
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
---
Changes in v2:
- add kernel doc for newly introduced devm_of_qcom_ice_get().
- update cover letter and commit message of first patch.
- collect R-b and A-b tags.
- Link to v1: https://lore.kernel.org/r/20250116-qcom-ice-fix-dev-leak-v1-0-84d937683790@linaro.org
---
Tudor Ambarus (4):
soc: qcom: ice: introduce devm_of_qcom_ice_get
mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
soc: qcom: ice: make of_qcom_ice_get() static
drivers/mmc/host/sdhci-msm.c | 2 +-
drivers/soc/qcom/ice.c | 51 ++++++++++++++++++++++++++++++++++++++++++--
drivers/ufs/host/ufs-qcom.c | 2 +-
include/soc/qcom/ice.h | 3 ++-
4 files changed, 53 insertions(+), 5 deletions(-)
---
base-commit: b323d8e7bc03d27dec646bfdccb7d1a92411f189
change-id: 20250110-qcom-ice-fix-dev-leak-bbff59a964fb
Best regards,
--
Tudor Ambarus <tudor.ambarus@linaro.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 2/4] mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get Tudor Ambarus
@ 2025-01-17 14:18 ` Tudor Ambarus
2025-01-19 16:59 ` Abel Vesa
2025-01-17 14:18 ` [PATCH v2 3/4] scsi: ufs: qcom: " Tudor Ambarus
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Tudor Ambarus @ 2025-01-17 14:18 UTC (permalink / raw)
To: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Abel Vesa, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers
Cc: linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, Tudor Ambarus, stable,
Krzysztof Kozlowski
The driver leaks the device reference taken with
of_find_device_by_node(). Fix the leak by using devm_of_qcom_ice_get().
Fixes: c7eed31e235c ("mmc: sdhci-msm: Switch to the new ICE API")
Cc: stable@vger.kernel.org
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
---
drivers/mmc/host/sdhci-msm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 4610f067faca..559ea5af27f2 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -1824,7 +1824,7 @@ static int sdhci_msm_ice_init(struct sdhci_msm_host *msm_host,
if (!(cqhci_readl(cq_host, CQHCI_CAP) & CQHCI_CAP_CS))
return 0;
- ice = of_qcom_ice_get(dev);
+ ice = devm_of_qcom_ice_get(dev);
if (ice == ERR_PTR(-EOPNOTSUPP)) {
dev_warn(dev, "Disabling inline encryption support\n");
ice = NULL;
--
2.48.0.rc2.279.g1de40edade-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/4] scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get Tudor Ambarus
2025-01-17 14:18 ` [PATCH v2 2/4] mmc: sdhci-msm: " Tudor Ambarus
@ 2025-01-17 14:18 ` Tudor Ambarus
2025-01-19 16:59 ` Abel Vesa
2025-02-03 21:43 ` Martin K. Petersen
2025-01-24 7:38 ` [PATCH v2 0/4] soc: qcom: ice: " Manivannan Sadhasivam
2025-02-14 22:38 ` Bjorn Andersson
3 siblings, 2 replies; 8+ messages in thread
From: Tudor Ambarus @ 2025-01-17 14:18 UTC (permalink / raw)
To: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Abel Vesa, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers
Cc: linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, Tudor Ambarus, stable,
Krzysztof Kozlowski
The driver leaks the device reference taken with
of_find_device_by_node(). Fix the leak by using devm_of_qcom_ice_get().
Fixes: 56541c7c4468 ("scsi: ufs: ufs-qcom: Switch to the new ICE API")
Cc: stable@vger.kernel.org
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
drivers/ufs/host/ufs-qcom.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 23b9f6efa047..a455a95f65fc 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -125,7 +125,7 @@ static int ufs_qcom_ice_init(struct ufs_qcom_host *host)
int err;
int i;
- ice = of_qcom_ice_get(dev);
+ ice = devm_of_qcom_ice_get(dev);
if (ice == ERR_PTR(-EOPNOTSUPP)) {
dev_warn(dev, "Disabling inline encryption support\n");
ice = NULL;
--
2.48.0.rc2.279.g1de40edade-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/4] scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 ` [PATCH v2 3/4] scsi: ufs: qcom: " Tudor Ambarus
@ 2025-01-19 16:59 ` Abel Vesa
2025-02-03 21:43 ` Martin K. Petersen
1 sibling, 0 replies; 8+ messages in thread
From: Abel Vesa @ 2025-01-19 16:59 UTC (permalink / raw)
To: Tudor Ambarus
Cc: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers,
linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, stable,
Krzysztof Kozlowski
On 25-01-17 14:18:52, Tudor Ambarus wrote:
> The driver leaks the device reference taken with
> of_find_device_by_node(). Fix the leak by using devm_of_qcom_ice_get().
>
> Fixes: 56541c7c4468 ("scsi: ufs: ufs-qcom: Switch to the new ICE API")
> Cc: stable@vger.kernel.org
> Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> drivers/ufs/host/ufs-qcom.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
> index 23b9f6efa047..a455a95f65fc 100644
> --- a/drivers/ufs/host/ufs-qcom.c
> +++ b/drivers/ufs/host/ufs-qcom.c
> @@ -125,7 +125,7 @@ static int ufs_qcom_ice_init(struct ufs_qcom_host *host)
> int err;
> int i;
>
> - ice = of_qcom_ice_get(dev);
> + ice = devm_of_qcom_ice_get(dev);
> if (ice == ERR_PTR(-EOPNOTSUPP)) {
> dev_warn(dev, "Disabling inline encryption support\n");
> ice = NULL;
>
> --
> 2.48.0.rc2.279.g1de40edade-goog
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/4] mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 ` [PATCH v2 2/4] mmc: sdhci-msm: " Tudor Ambarus
@ 2025-01-19 16:59 ` Abel Vesa
0 siblings, 0 replies; 8+ messages in thread
From: Abel Vesa @ 2025-01-19 16:59 UTC (permalink / raw)
To: Tudor Ambarus
Cc: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers,
linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, stable,
Krzysztof Kozlowski
On 25-01-17 14:18:51, Tudor Ambarus wrote:
> The driver leaks the device reference taken with
> of_find_device_by_node(). Fix the leak by using devm_of_qcom_ice_get().
>
> Fixes: c7eed31e235c ("mmc: sdhci-msm: Switch to the new ICE API")
> Cc: stable@vger.kernel.org
> Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> drivers/mmc/host/sdhci-msm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index 4610f067faca..559ea5af27f2 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -1824,7 +1824,7 @@ static int sdhci_msm_ice_init(struct sdhci_msm_host *msm_host,
> if (!(cqhci_readl(cq_host, CQHCI_CAP) & CQHCI_CAP_CS))
> return 0;
>
> - ice = of_qcom_ice_get(dev);
> + ice = devm_of_qcom_ice_get(dev);
> if (ice == ERR_PTR(-EOPNOTSUPP)) {
> dev_warn(dev, "Disabling inline encryption support\n");
> ice = NULL;
>
> --
> 2.48.0.rc2.279.g1de40edade-goog
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get Tudor Ambarus
2025-01-17 14:18 ` [PATCH v2 2/4] mmc: sdhci-msm: " Tudor Ambarus
2025-01-17 14:18 ` [PATCH v2 3/4] scsi: ufs: qcom: " Tudor Ambarus
@ 2025-01-24 7:38 ` Manivannan Sadhasivam
2025-02-14 22:38 ` Bjorn Andersson
3 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2025-01-24 7:38 UTC (permalink / raw)
To: Tudor Ambarus
Cc: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Abel Vesa, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers,
linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, stable,
Krzysztof Kozlowski
On Fri, Jan 17, 2025 at 02:18:49PM +0000, Tudor Ambarus wrote:
> Hi!
>
> Recently I've been pointed to this driver for an example on how consumers
> can get a pointer to the supplier's driver data and I noticed a leak.
>
> Callers of of_qcom_ice_get() leak the device reference taken by
> of_find_device_by_node(). Introduce devm_of_qcom_ice_get().
> Exporting qcom_ice_put() is not done intentionally as the consumers need
> the ICE intance for the entire life of their device. Update the consumers
> to use the devm variant and make of_qcom_ice_get() static afterwards.
>
> This set touches mmc and scsi subsystems. Since the fix is trivial for
> them, I'd suggest taking everything through the SoC tree with Acked-by
> tags if people consider this fine. Note that the mmc and scsi patches
> depend on the first patch that introduces devm_of_qcom_ice_get().
>
> Thanks!
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
- Mani
> ---
> Changes in v2:
> - add kernel doc for newly introduced devm_of_qcom_ice_get().
> - update cover letter and commit message of first patch.
> - collect R-b and A-b tags.
> - Link to v1: https://lore.kernel.org/r/20250116-qcom-ice-fix-dev-leak-v1-0-84d937683790@linaro.org
>
> ---
> Tudor Ambarus (4):
> soc: qcom: ice: introduce devm_of_qcom_ice_get
> mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
> scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
> soc: qcom: ice: make of_qcom_ice_get() static
>
> drivers/mmc/host/sdhci-msm.c | 2 +-
> drivers/soc/qcom/ice.c | 51 ++++++++++++++++++++++++++++++++++++++++++--
> drivers/ufs/host/ufs-qcom.c | 2 +-
> include/soc/qcom/ice.h | 3 ++-
> 4 files changed, 53 insertions(+), 5 deletions(-)
> ---
> base-commit: b323d8e7bc03d27dec646bfdccb7d1a92411f189
> change-id: 20250110-qcom-ice-fix-dev-leak-bbff59a964fb
>
> Best regards,
> --
> Tudor Ambarus <tudor.ambarus@linaro.org>
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/4] scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 ` [PATCH v2 3/4] scsi: ufs: qcom: " Tudor Ambarus
2025-01-19 16:59 ` Abel Vesa
@ 2025-02-03 21:43 ` Martin K. Petersen
1 sibling, 0 replies; 8+ messages in thread
From: Martin K. Petersen @ 2025-02-03 21:43 UTC (permalink / raw)
To: Tudor Ambarus
Cc: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio,
Adrian Hunter, Ulf Hansson, Abel Vesa, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Eric Biggers,
linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, stable,
Krzysztof Kozlowski
Tudor,
> The driver leaks the device reference taken with
> of_find_device_by_node(). Fix the leak by using devm_of_qcom_ice_get().
Acked-by: Martin K. Petersen <martin.petersen@oracle.com> # SCSI
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get
2025-01-17 14:18 [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get Tudor Ambarus
` (2 preceding siblings ...)
2025-01-24 7:38 ` [PATCH v2 0/4] soc: qcom: ice: " Manivannan Sadhasivam
@ 2025-02-14 22:38 ` Bjorn Andersson
3 siblings, 0 replies; 8+ messages in thread
From: Bjorn Andersson @ 2025-02-14 22:38 UTC (permalink / raw)
To: Krzysztof Kozlowski, Konrad Dybcio, Adrian Hunter, Ulf Hansson,
Abel Vesa, Manivannan Sadhasivam, James E.J. Bottomley,
Martin K. Petersen, Eric Biggers, Tudor Ambarus
Cc: linux-arm-msm, linux-kernel, linux-mmc, linux-scsi, andre.draszik,
peter.griffin, willmcvicker, kernel-team, stable,
Krzysztof Kozlowski
On Fri, 17 Jan 2025 14:18:49 +0000, Tudor Ambarus wrote:
> Recently I've been pointed to this driver for an example on how consumers
> can get a pointer to the supplier's driver data and I noticed a leak.
>
> Callers of of_qcom_ice_get() leak the device reference taken by
> of_find_device_by_node(). Introduce devm_of_qcom_ice_get().
> Exporting qcom_ice_put() is not done intentionally as the consumers need
> the ICE intance for the entire life of their device. Update the consumers
> to use the devm variant and make of_qcom_ice_get() static afterwards.
>
> [...]
Applied, thanks!
[1/4] soc: qcom: ice: introduce devm_of_qcom_ice_get
commit: 1c13d6060d612601a61423f2e8fbf9e48126acca
[2/4] mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
commit: cbef7442fba510b7eb229dcc9f39d3dde4a159a4
[3/4] scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
commit: ded40f32b55f7f2f4ed9627dd3c37a1fe89ed8c6
[4/4] soc: qcom: ice: make of_qcom_ice_get() static
commit: 1e9e40fc6fb06d80fd9d834fab5eb5475f64787a
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-02-14 22:38 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-17 14:18 [PATCH v2 0/4] soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get Tudor Ambarus
2025-01-17 14:18 ` [PATCH v2 2/4] mmc: sdhci-msm: " Tudor Ambarus
2025-01-19 16:59 ` Abel Vesa
2025-01-17 14:18 ` [PATCH v2 3/4] scsi: ufs: qcom: " Tudor Ambarus
2025-01-19 16:59 ` Abel Vesa
2025-02-03 21:43 ` Martin K. Petersen
2025-01-24 7:38 ` [PATCH v2 0/4] soc: qcom: ice: " Manivannan Sadhasivam
2025-02-14 22:38 ` Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).