mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Frank Rowand <frowand.list@gmail.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
	Rob Herring <robh+dt@kernel.org>,
	Pantelis Antoniou <pantelis.antoniou@konsulko.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>, Alan Tull <atull@kernel.org>,
	Moritz Fischer <mdf@kernel.org>
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	devicetree@vger.kernel.org, linux-fpga@vger.kernel.org
Subject: Re: [PATCH v6 03/18] of: overlay: add missing of_node_get() in __of_attach_node_sysfs
Date: Wed, 7 Nov 2018 06:57:43 -0800	[thread overview]
Message-ID: <2b742254-3b54-d862-5126-95ae7d5056f9@gmail.com> (raw)
In-Reply-To: <87pnvhqe3k.fsf@concordia.ellerman.id.au>

On 11/7/18 4:14 AM, Michael Ellerman wrote:
> frowand.list@gmail.com writes:
> 
>> From: Frank Rowand <frank.rowand@sony.com>
>>
>> There is a matching of_node_put() in __of_detach_node_sysfs()
>>
>> Remove misleading comment from function header comment for
>> of_detach_node().
>>
>> This patch may result in memory leaks from code that directly calls
>> the dynamic node add and delete functions directly instead of
>> using changesets.
>>
>> Tested-by: Alan Tull <atull@kernel.org>
>> Signed-off-by: Frank Rowand <frank.rowand@sony.com>
> 
> This seems sensible to me. I guess we could argue about whether the
> sysfs code needs its own reference, but it certainly doesn't hurt that
> it does, as long as it's handled symmetrically - which it is now.
> 
> Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
> 
>> ---
>>
>> This patch should result in powerpc systems that dynamically
>> allocate a node, then later deallocate the node to have a
>> memory leak when the node is deallocated.
>>
>> The next patch in the series will fix the leak.
> 
> I think this should go in the changelog, it's useful information that we
> don't want to lose track of once this is applied.

Will do.

-Frank

> 
> Either that or we actually squash the two patches together when applying
> to avoid the bisection break.
> 
> cheers
> 
>>  drivers/of/dynamic.c | 3 ---
>>  drivers/of/kobj.c    | 4 +++-
>>  2 files changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
>> index 12c3f9a15e94..146681540487 100644
>> --- a/drivers/of/dynamic.c
>> +++ b/drivers/of/dynamic.c
>> @@ -272,9 +272,6 @@ void __of_detach_node(struct device_node *np)
>>  
>>  /**
>>   * of_detach_node() - "Unplug" a node from the device tree.
>> - *
>> - * The caller must hold a reference to the node.  The memory associated with
>> - * the node is not freed until its refcount goes to zero.
>>   */
>>  int of_detach_node(struct device_node *np)
>>  {
>> diff --git a/drivers/of/kobj.c b/drivers/of/kobj.c
>> index 7a0a18980b98..c72eef988041 100644
>> --- a/drivers/of/kobj.c
>> +++ b/drivers/of/kobj.c
>> @@ -133,6 +133,9 @@ int __of_attach_node_sysfs(struct device_node *np)
>>  	}
>>  	if (!name)
>>  		return -ENOMEM;
>> +
>> +	of_node_get(np);
>> +
>>  	rc = kobject_add(&np->kobj, parent, "%s", name);
>>  	kfree(name);
>>  	if (rc)
>> @@ -159,6 +162,5 @@ void __of_detach_node_sysfs(struct device_node *np)
>>  		kobject_del(&np->kobj);
>>  	}
>>  
>> -	/* finally remove the kobj_init ref */
>>  	of_node_put(np);
>>  }
>> -- 
>> Frank Rowand <frank.rowand@sony.com>
> 


  reply	other threads:[~2018-11-07 14:57 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-05 15:24 [PATCH v6 00/18] of: overlay: validation checks, subsequent fixes frowand.list
2018-11-05 15:24 ` [PATCH v6 01/18] of: overlay: add tests to validate kfrees from overlay removal frowand.list
2018-11-05 15:24 ` [PATCH v6 02/18] of: overlay: add missing of_node_put() after add new node to changeset frowand.list
2018-11-05 15:25 ` [PATCH v6 03/18] of: overlay: add missing of_node_get() in __of_attach_node_sysfs frowand.list
2018-11-07 12:14   ` Michael Ellerman
2018-11-07 14:57     ` Frank Rowand [this message]
2018-11-05 15:25 ` [PATCH v6 04/18] powerpc/pseries: add of_node_put() in dlpar_detach_node() frowand.list
2018-11-07 12:23   ` Michael Ellerman
2018-11-07 14:58     ` Frank Rowand
2018-11-05 15:25 ` [PATCH v6 05/18] of: overlay: use prop add changeset entry for property in new nodes frowand.list
2018-11-05 15:25 ` [PATCH v6 06/18] of: overlay: do not duplicate properties from overlay for " frowand.list
2018-11-05 15:25 ` [PATCH v6 07/18] of: dynamic: change type of of_{at,de}tach_node() to void frowand.list
2018-11-07 12:08   ` Michael Ellerman
2018-11-07 14:55     ` Frank Rowand
2018-11-07 23:48       ` Michael Ellerman
2018-11-05 15:25 ` [PATCH v6 08/18] of: overlay: reorder fields in struct fragment frowand.list
2018-11-05 15:25 ` [PATCH v6 09/18] of: overlay: validate overlay properties #address-cells and #size-cells frowand.list
2018-11-05 15:25 ` [PATCH v6 10/18] of: overlay: make all pr_debug() and pr_err() messages unique frowand.list
2018-11-05 15:25 ` [PATCH v6 11/18] of: overlay: test case of two fragments adding same node frowand.list
2018-11-05 15:25 ` [PATCH v6 12/18] of: overlay: check prevents multiple fragments add or delete " frowand.list
2018-11-05 15:25 ` [PATCH v6 13/18] of: overlay: check prevents multiple fragments touching same property frowand.list
2018-11-05 15:25 ` [PATCH v6 14/18] of: unittest: remove unused of_unittest_apply_overlay() argument frowand.list
2018-11-05 15:25 ` [PATCH v6 15/18] of: overlay: set node fields from properties when add new overlay node frowand.list
2018-11-05 15:25 ` [PATCH v6 16/18] of: unittest: allow base devicetree to have symbol metadata frowand.list
2018-11-05 15:25 ` [PATCH v6 17/18] of: unittest: find overlays[] entry by name instead of index frowand.list
2018-11-05 15:25 ` [PATCH v6 18/18] of: unittest: initialize args before calling of_*parse_*() frowand.list
2018-11-05 19:24 ` [PATCH v6 00/18] of: overlay: validation checks, subsequent fixes Rob Herring
2018-11-05 21:55   ` Frank Rowand
2018-11-07 12:09     ` Michael Ellerman
2018-11-07 14:59       ` Frank Rowand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2b742254-3b54-d862-5126-95ae7d5056f9@gmail.com \
    --to=frowand.list@gmail.com \
    --cc=atull@kernel.org \
    --cc=benh@kernel.crashing.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-fpga@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mdf@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=pantelis.antoniou@konsulko.com \
    --cc=paulus@samba.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®