2022-12-29 07:43:31

by Miaoqian Lin

[permalink] [raw]
Subject: [PATCH] platform/x86/amd: Fix refcount leak in amd_pmc_probe

pci_get_domain_bus_and_slot() takes reference, the caller should release
the reference by calling pci_dev_put() after use. Call pci_dev_put() in
the error path to fix this.

Fixes: 3d7d407dfb05 ("platform/x86: amd-pmc: Add support for AMD Spill to DRAM STB feature")
Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/platform/x86/amd/pmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/amd/pmc.c b/drivers/platform/x86/amd/pmc.c
index 439d282aafd1..8d924986381b 100644
--- a/drivers/platform/x86/amd/pmc.c
+++ b/drivers/platform/x86/amd/pmc.c
@@ -932,7 +932,7 @@ static int amd_pmc_probe(struct platform_device *pdev)
if (enable_stb && (dev->cpu_id == AMD_CPU_ID_YC || dev->cpu_id == AMD_CPU_ID_CB)) {
err = amd_pmc_s2d_init(dev);
if (err)
- return err;
+ goto err_pci_dev_put;
}

platform_set_drvdata(pdev, dev);
--
2.25.1


2023-01-03 02:17:23

by Mario Limonciello

[permalink] [raw]
Subject: RE: [PATCH] platform/x86/amd: Fix refcount leak in amd_pmc_probe

[Public]

> -----Original Message-----
> From: Miaoqian Lin <[email protected]>
> Sent: Thursday, December 29, 2022 01:26
> To: S-k, Shyam-sundar <[email protected]>; Hans de Goede
> <[email protected]>; Mark Gross <[email protected]>; Goswami,
> Sanket <[email protected]>; Limonciello, Mario
> <[email protected]>; [email protected]; linux-
> [email protected]
> Cc: [email protected]
> Subject: [PATCH] platform/x86/amd: Fix refcount leak in amd_pmc_probe
>
> pci_get_domain_bus_and_slot() takes reference, the caller should release
> the reference by calling pci_dev_put() after use. Call pci_dev_put() in
> the error path to fix this.
>
> Fixes: 3d7d407dfb05 ("platform/x86: amd-pmc: Add support for AMD Spill to
> DRAM STB feature")
> Signed-off-by: Miaoqian Lin <[email protected]>

Makes sense to me, thanks!

Reviewed-by: Mario Limonciello <[email protected]>

> ---
> drivers/platform/x86/amd/pmc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/amd/pmc.c
> b/drivers/platform/x86/amd/pmc.c
> index 439d282aafd1..8d924986381b 100644
> --- a/drivers/platform/x86/amd/pmc.c
> +++ b/drivers/platform/x86/amd/pmc.c
> @@ -932,7 +932,7 @@ static int amd_pmc_probe(struct platform_device
> *pdev)
> if (enable_stb && (dev->cpu_id == AMD_CPU_ID_YC || dev->cpu_id
> == AMD_CPU_ID_CB)) {
> err = amd_pmc_s2d_init(dev);
> if (err)
> - return err;
> + goto err_pci_dev_put;
> }
>
> platform_set_drvdata(pdev, dev);
> --
> 2.25.1

2023-01-12 19:26:34

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] platform/x86/amd: Fix refcount leak in amd_pmc_probe

Hi,

On 12/29/22 08:25, Miaoqian Lin wrote:
> pci_get_domain_bus_and_slot() takes reference, the caller should release
> the reference by calling pci_dev_put() after use. Call pci_dev_put() in
> the error path to fix this.
>
> Fixes: 3d7d407dfb05 ("platform/x86: amd-pmc: Add support for AMD Spill to DRAM STB feature")
> Signed-off-by: Miaoqian Lin <[email protected]>

Thank you for your patch, I've applied this patch to my fixes
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

Note it will show up in my fixes branch once I've pushed my
local branch there, which might take a while.

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans


> ---
> drivers/platform/x86/amd/pmc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/amd/pmc.c b/drivers/platform/x86/amd/pmc.c
> index 439d282aafd1..8d924986381b 100644
> --- a/drivers/platform/x86/amd/pmc.c
> +++ b/drivers/platform/x86/amd/pmc.c
> @@ -932,7 +932,7 @@ static int amd_pmc_probe(struct platform_device *pdev)
> if (enable_stb && (dev->cpu_id == AMD_CPU_ID_YC || dev->cpu_id == AMD_CPU_ID_CB)) {
> err = amd_pmc_s2d_init(dev);
> if (err)
> - return err;
> + goto err_pci_dev_put;
> }
>
> platform_set_drvdata(pdev, dev);