diff mbox series

cxl: Fix refcount leak in cxl_calc_capp_routing

Message ID 20220605060038.62217-1-linmq006@gmail.com (mailing list archive)
State Accepted
Commit 1d09697ff22908ae487fc8c4fbde1811732be523
Headers show
Series cxl: Fix refcount leak in cxl_calc_capp_routing | expand

Checks

Context Check Description
snowpatch_ozlabs/github-powerpc_sparse success Successfully ran 4 jobs.
snowpatch_ozlabs/github-powerpc_clang success Successfully ran 7 jobs.
snowpatch_ozlabs/github-powerpc_kernel_qemu success Successfully ran 23 jobs.

Commit Message

Miaoqian Lin June 5, 2022, 6 a.m. UTC
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(+)

Comments

Frederic Barrat June 7, 2022, 9:05 a.m. UTC | #1
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;
>   	}
>
Andrew Donnellan June 14, 2022, 10:12 a.m. UTC | #2
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;
>         }
>
Christophe Leroy Nov. 14, 2022, 12:42 p.m. UTC | #3
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;
>>          }
>>   
> 
>
Andrew Donnellan Nov. 22, 2022, 5:39 a.m. UTC | #4
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.
Michael Ellerman Nov. 30, 2022, 9:23 a.m. UTC | #5
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
diff mbox series

Patch

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;
 	}