[PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing

Miaoqian Lin posted 1 patch 3 years, 10 months ago
drivers/misc/cxl/pci.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing
Posted by Miaoqian Lin 3 years, 10 months ago
of_get_next_parent() returns a node pointer with refcount incremented,
we should use of_node_put() on it when not need anymore.
This function only calls of_node_put() in normal path,
missing it in the error path.
Add missing of_node_put() to avoid refcount leak.

Fixes: f24be42aab37 ("cxl: Add psl9 specific code")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 drivers/misc/cxl/pci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/misc/cxl/pci.c b/drivers/misc/cxl/pci.c
index 3de0aea62ade..62385a529d86 100644
--- a/drivers/misc/cxl/pci.c
+++ b/drivers/misc/cxl/pci.c
@@ -387,6 +387,7 @@ int cxl_calc_capp_routing(struct pci_dev *dev, u64 *chipid,
 	rc = get_phb_index(np, phb_index);
 	if (rc) {
 		pr_err("cxl: invalid phb index\n");
+		of_node_put(np);
 		return rc;
 	}
 
-- 
2.25.1
Re: [PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing
Posted by Michael Ellerman 3 years, 5 months ago
On Sun, 5 Jun 2022 10:00:38 +0400, Miaoqian Lin wrote:
> of_get_next_parent() returns a node pointer with refcount incremented,
> we should use of_node_put() on it when not need anymore.
> This function only calls of_node_put() in normal path,
> missing it in the error path.
> Add missing of_node_put() to avoid refcount leak.
> 
> 
> [...]

Applied to powerpc/next.

[1/1] cxl: Fix refcount leak in cxl_calc_capp_routing
      https://git.kernel.org/powerpc/c/1d09697ff22908ae487fc8c4fbde1811732be523

cheers
Re: [PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing
Posted by Andrew Donnellan 3 years, 10 months ago
On Sun, 2022-06-05 at 10:00 +0400, Miaoqian Lin wrote:
> of_get_next_parent() returns a node pointer with refcount
> incremented,
> we should use of_node_put() on it when not need anymore.
> This function only calls of_node_put() in normal path,
> missing it in the error path.
> Add missing of_node_put() to avoid refcount leak.
> 
> Fixes: f24be42aab37 ("cxl: Add psl9 specific code")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>

Thanks!

Acked-by: Andrew Donnellan <ajd@linux.ibm.com>

> ---
>  drivers/misc/cxl/pci.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/misc/cxl/pci.c b/drivers/misc/cxl/pci.c
> index 3de0aea62ade..62385a529d86 100644
> --- a/drivers/misc/cxl/pci.c
> +++ b/drivers/misc/cxl/pci.c
> @@ -387,6 +387,7 @@ int cxl_calc_capp_routing(struct pci_dev *dev,
> u64 *chipid,
>         rc = get_phb_index(np, phb_index);
>         if (rc) {
>                 pr_err("cxl: invalid phb index\n");
> +               of_node_put(np);
>                 return rc;
>         }
>  


Re: [PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing
Posted by Christophe Leroy 3 years, 5 months ago
Should this be applied by Bjorn as most recent changes to that file ?


Le 14/06/2022 à 12:12, Andrew Donnellan a écrit :
> On Sun, 2022-06-05 at 10:00 +0400, Miaoqian Lin wrote:
>> of_get_next_parent() returns a node pointer with refcount
>> incremented,
>> we should use of_node_put() on it when not need anymore.
>> This function only calls of_node_put() in normal path,
>> missing it in the error path.
>> Add missing of_node_put() to avoid refcount leak.
>>
>> Fixes: f24be42aab37 ("cxl: Add psl9 specific code")
>> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> 
> Thanks!
> 
> Acked-by: Andrew Donnellan <ajd@linux.ibm.com>
> 
>> ---
>>   drivers/misc/cxl/pci.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/misc/cxl/pci.c b/drivers/misc/cxl/pci.c
>> index 3de0aea62ade..62385a529d86 100644
>> --- a/drivers/misc/cxl/pci.c
>> +++ b/drivers/misc/cxl/pci.c
>> @@ -387,6 +387,7 @@ int cxl_calc_capp_routing(struct pci_dev *dev,
>> u64 *chipid,
>>          rc = get_phb_index(np, phb_index);
>>          if (rc) {
>>                  pr_err("cxl: invalid phb index\n");
>> +               of_node_put(np);
>>                  return rc;
>>          }
>>   
> 
> 
Re: [PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing
Posted by Andrew Donnellan 3 years, 5 months ago
On Mon, 2022-11-14 at 12:42 +0000, Christophe Leroy wrote:
> Should this be applied by Bjorn as most recent changes to that file ?

We usually take cxl patches through powerpc, though sometimes Greg
picks them up through char-misc.

-- 
Andrew Donnellan    OzLabs, ADL Canberra
ajd@linux.ibm.com   IBM Australia Limited
Re: [PATCH] cxl: Fix refcount leak in cxl_calc_capp_routing
Posted by Frederic Barrat 3 years, 10 months ago

On 05/06/2022 08:00, Miaoqian Lin wrote:
> of_get_next_parent() returns a node pointer with refcount incremented,
> we should use of_node_put() on it when not need anymore.
> This function only calls of_node_put() in normal path,
> missing it in the error path.
> Add missing of_node_put() to avoid refcount leak.
> 
> Fixes: f24be42aab37 ("cxl: Add psl9 specific code")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>


Indeed. Thanks!
Acked-by: Frederic Barrat <fbarrat@linux.ibm.com>

   Fred


> ---
>   drivers/misc/cxl/pci.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/misc/cxl/pci.c b/drivers/misc/cxl/pci.c
> index 3de0aea62ade..62385a529d86 100644
> --- a/drivers/misc/cxl/pci.c
> +++ b/drivers/misc/cxl/pci.c
> @@ -387,6 +387,7 @@ int cxl_calc_capp_routing(struct pci_dev *dev, u64 *chipid,
>   	rc = get_phb_index(np, phb_index);
>   	if (rc) {
>   		pr_err("cxl: invalid phb index\n");
> +		of_node_put(np);
>   		return rc;
>   	}
>