stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).