From: <wen.yang99@zte.com.cn>
To: julia.lawall@lip6.fr
Cc: tony@atomide.com, peng.hao2@zte.com.cn,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, tomi.valkeinen@ti.com,
robh@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH] arm/mach-omap2/display: fix possible object referenceleak
Date: Wed, 20 Feb 2019 10:41:06 +0800 (CST) [thread overview]
Message-ID: <201902201041061130247@zte.com.cn> (raw)
In-Reply-To: <alpine.DEB.2.20.1902191824410.27989@hadrien>
[-- Attachment #1.1: Type: text/plain, Size: 2489 bytes --]
Hi,
> > Adding devicetree list, Julia, Rob and Tomi to Cc.
> >
> > * Peng Hao <peng.hao2@zte.com.cn> [190212 23:11]:
> > > of_find_device_by_node() takes a reference to the struct device
> > > when it finds a match via get_device.When returning error we should
> > > call put_device.
> > >
> > > Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
> > > ---
> > > arch/arm/mach-omap2/display.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
> > > index f86b72d..c6aa9ed 100644
> > > --- a/arch/arm/mach-omap2/display.c
> > > +++ b/arch/arm/mach-omap2/display.c
> > > @@ -258,6 +258,7 @@ static int __init omapdss_init_of(void)
> > > r = of_platform_populate(node, NULL, NULL, &pdev->dev);
> > > if (r) {
> > > pr_err("Unable to populate DSS submodule devices\n");
> > > + put_device(&pdev->dev);
> > > return r;
> > > }
> >
> > In general, if the device tree node is never used afterwards,
> > should this be just:
> >
> > r = of_platform_populate(node, NULL, NULL, &pdev->dev);
> > of_node_put(dev_node);
>
> Are these solving the same problems? The of_node_put looks clearly
> necessary, whether there is a success or failure. I'm not familiar with
> put_device. I see that it does a kobject_put, but I don't know what
> happens because of that. But it looks like an inconsistency that Peng's
> patch only considers the failure case, while your suggestion happens
> always.
>
> I guess Peng's patch is motivated by a Coccinelle script that Wen Yang
> (also from ZTE) has been working on. Perhaps there is a need to adjust
> what is suggested by that script.
Yes, Peng Hao and I belong to the same company.
I found some code issues with this Coccinelle script:
Https://lkml.org/lkml/2019/2/16/107
Our other colleagues are submitting some patches to fix these discovered problems.
For this code(arch/arm/mach-omap2/display.c), there may be two issues:
1, the of_find_device_by_node() takes a reference to the underlying device
structure, we should call put_device() release that reference.
2, of_find_compatible_node/of_find_node_by_name/of_parse_phandle... will
increase the refcount of device_node, we should call of_node_put() to release
the refcount.
The first issue can already be detected by the Coccinelle script described above;
The second issue, we are still looking for ways to develop the corresponding Coccinelle script.
Regards,
Wen
next prev parent reply other threads:[~2019-02-20 2:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-13 15:32 [PATCH] arm/mach-omap2/display: fix possible object reference leak Peng Hao
2019-02-13 15:32 ` Peng Hao
2019-02-19 17:05 ` Tony Lindgren
2019-02-19 17:05 ` Tony Lindgren
2019-02-19 17:30 ` Julia Lawall
2019-02-19 17:30 ` Julia Lawall
2019-02-20 2:41 ` wen.yang99 [this message]
2019-02-19 17:33 ` Julia Lawall
2019-02-19 17:33 ` Julia Lawall
2019-02-19 17:58 ` Tony Lindgren
2019-02-19 17:58 ` Tony Lindgren
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=201902201041061130247@zte.com.cn \
--to=wen.yang99@zte.com.cn \
--cc=devicetree@vger.kernel.org \
--cc=julia.lawall@lip6.fr \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=peng.hao2@zte.com.cn \
--cc=robh@kernel.org \
--cc=tomi.valkeinen@ti.com \
--cc=tony@atomide.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.