diff mbox

[1/1] gpu: drm: omapdrm: dss-of: add missing of_node_put after calling of_parse_phandle

Message ID 1467623335-30765-1-git-send-email-peter.chen@nxp.com (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Chen July 4, 2016, 9:08 a.m. UTC
of_node_put needs to be called when the device node which is got
from of_parse_phandle has finished using.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
 drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Daniel Vetter July 12, 2016, 1:04 p.m. UTC | #1
On Mon, Jul 04, 2016 at 05:08:55PM +0800, Peter Chen wrote:
> of_node_put needs to be called when the device node which is got
> from of_parse_phandle has finished using.
> 
> Signed-off-by: Peter Chen <peter.chen@nxp.com>

Just an aside: When you do the same bugfix for multiple places it's good
practice to submit it as one series (and cc everyone involved). Increases
the odds that someone is in a good mood and reviews them all, instead of
just the one affecting their own driver.
-Daniel

> ---
>  drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c b/drivers/gpu/drm/omapdrm/dss/dss-of.c
> index bf407b6..1ee6e5e 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
> @@ -126,15 +126,16 @@ u32 dss_of_port_get_port_number(struct device_node *port)
>  
>  static struct device_node *omapdss_of_get_remote_port(const struct device_node *node)
>  {
> -	struct device_node *np;
> +	struct device_node *np, *np_parent;
>  
>  	np = of_parse_phandle(node, "remote-endpoint", 0);
>  	if (!np)
>  		return NULL;
>  
> -	np = of_get_next_parent(np);
> +	np_parent = of_get_next_parent(np);
> +	of_node_put(np);
>  
> -	return np;
> +	return np_parent;
>  }
>  
>  struct device_node *
> -- 
> 1.9.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Peter Chen July 13, 2016, 1:22 a.m. UTC | #2
>
>Just an aside: When you do the same bugfix for multiple places it's good practice to
>submit it as one series (and cc everyone involved). Increases the odds that someone
>is in a good mood and reviews them all, instead of just the one affecting their own
>driver.

Thanks, I realized that, and did it for later fixes for drm.
But if the bug fixes are at several subsystems, I think
we should split patch set per subsystem.

Peter

>
>> ---
>>  drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
>>  1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> index bf407b6..1ee6e5e 100644
>> --- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> +++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> @@ -126,15 +126,16 @@ u32 dss_of_port_get_port_number(struct
>> device_node *port)
>>
>>  static struct device_node *omapdss_of_get_remote_port(const struct
>> device_node *node)  {
>> -	struct device_node *np;
>> +	struct device_node *np, *np_parent;
>>
>>  	np = of_parse_phandle(node, "remote-endpoint", 0);
>>  	if (!np)
>>  		return NULL;
>>
>> -	np = of_get_next_parent(np);
>> +	np_parent = of_get_next_parent(np);
>> +	of_node_put(np);
>>
>> -	return np;
>> +	return np_parent;
>>  }
>>
>>  struct device_node *
>> --
>> 1.9.1
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>--
>Daniel Vetter
>Software Engineer, Intel Corporation
>http://blog.ffwll.ch
Daniel Vetter July 13, 2016, 9:51 a.m. UTC | #3
On Wed, Jul 13, 2016 at 01:22:06AM +0000, Peter Chen wrote:
>  
> >
> >Just an aside: When you do the same bugfix for multiple places it's good practice to
> >submit it as one series (and cc everyone involved). Increases the odds that someone
> >is in a good mood and reviews them all, instead of just the one affecting their own
> >driver.
> 
> Thanks, I realized that, and did it for later fixes for drm.
> But if the bug fixes are at several subsystems, I think
> we should split patch set per subsystem.

Yeah, splitting per subsystem makes sense I'd say. I merged some of your
patches, others are merged by driver maintainers directly. Is there
anything left? If so, pls resend those as a new series to make sure it's
all in one place.
-Daniel

> 
> Peter
> 
> >
> >> ---
> >>  drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
> >>  1 file changed, 4 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c
> >> b/drivers/gpu/drm/omapdrm/dss/dss-of.c
> >> index bf407b6..1ee6e5e 100644
> >> --- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
> >> +++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
> >> @@ -126,15 +126,16 @@ u32 dss_of_port_get_port_number(struct
> >> device_node *port)
> >>
> >>  static struct device_node *omapdss_of_get_remote_port(const struct
> >> device_node *node)  {
> >> -	struct device_node *np;
> >> +	struct device_node *np, *np_parent;
> >>
> >>  	np = of_parse_phandle(node, "remote-endpoint", 0);
> >>  	if (!np)
> >>  		return NULL;
> >>
> >> -	np = of_get_next_parent(np);
> >> +	np_parent = of_get_next_parent(np);
> >> +	of_node_put(np);
> >>
> >> -	return np;
> >> +	return np_parent;
> >>  }
> >>
> >>  struct device_node *
> >> --
> >> 1.9.1
> >>
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel@lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> >
> >--
> >Daniel Vetter
> >Software Engineer, Intel Corporation
> >http://blog.ffwll.ch
Peter Chen July 14, 2016, 1:48 a.m. UTC | #4
>>
>> >
>> >Just an aside: When you do the same bugfix for multiple places it's
>> >good practice to submit it as one series (and cc everyone involved).
>> >Increases the odds that someone is in a good mood and reviews them
>> >all, instead of just the one affecting their own driver.
>>
>> Thanks, I realized that, and did it for later fixes for drm.
>> But if the bug fixes are at several subsystems, I think we should
>> split patch set per subsystem.
>
>Yeah, splitting per subsystem makes sense I'd say. I merged some of your patches,
>others are merged by driver maintainers directly. Is there anything left? If so, pls
>resend those as a new series to make sure it's all in one place.
>-Daniel
>

Thanks, Daniel.

I am afraid I don't know which one is merged, do you have a tree? And, I can re-send them all.
The latest patches which merged Linux-next is at [1], I remembered I dropped
one since the fix has already been there.

git log --oneline miss-of-node-put (for drm)

e167f2a gpu: drm: vc4_hdmi: add missing of_node_put after calling of_parse_phandle
9f86a38 gpu: drm: sun4i_drv: add missing of_node_put after calling of_parse_phandle
e0475ac gpu: drm: sti_vtg: add missing of_node_put after calling of_parse_phandle
99ad059 gpu: drm: sti_hqvdp: add missing of_node_put after calling of_parse_phandle
7d90d71 gpu: drm: sti_vdo: add missing of_node_put after calling of_parse_phandle
57c9e36 gpu: drm: sti_compositor: add missing of_node_put after calling of_parse_phandle
2cb11fb gpu: drm: rockchip_drm_drv: add missing of_node_put after calling of_parse_phandle
2668b9c gpu: drm: omapdrm: dss-of: add missing of_node_put after calling of_parse_phandle
ab81c2e gpu: drm: omapdrm: connector-dvi: add missing of_node_put after calling of_parse_phandle
4fc7ab7 gpn: drm: fsl_tcon: add missing of_node_put after calling of_parse_phandle
df5f61f gpu: drm: exynos_hdmi: add missing of_node_put after calling of_parse_phandle
6d294e6 gpu: drm: arcpgu_drv: add missing of_node_put after calling of_parse_phandle


[1] https://git.kernel.org/cgit/linux/kernel/git/peter.chen/usb.git/log/?h=fix-missing-of-node-put


Peter
>>
>> Peter
>>
>> >
>> >> ---
>> >>  drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
>> >>  1 file changed, 4 insertions(+), 3 deletions(-)
>> >>
>> >> diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> >> b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> >> index bf407b6..1ee6e5e 100644
>> >> --- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> >> +++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>> >> @@ -126,15 +126,16 @@ u32 dss_of_port_get_port_number(struct
>> >> device_node *port)
>> >>
>> >>  static struct device_node *omapdss_of_get_remote_port(const struct
>> >> device_node *node)  {
>> >> -	struct device_node *np;
>> >> +	struct device_node *np, *np_parent;
>> >>
>> >>  	np = of_parse_phandle(node, "remote-endpoint", 0);
>> >>  	if (!np)
>> >>  		return NULL;
>> >>
>> >> -	np = of_get_next_parent(np);
>> >> +	np_parent = of_get_next_parent(np);
>> >> +	of_node_put(np);
>> >>
>> >> -	return np;
>> >> +	return np_parent;
>> >>  }
>> >>
>> >>  struct device_node *
>> >> --
>> >> 1.9.1
>> >>
>> >> _______________________________________________
>> >> dri-devel mailing list
>> >> dri-devel@lists.freedesktop.org
>> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>> >
>> >--
>> >Daniel Vetter
>> >Software Engineer, Intel Corporation
>> >http://blog.ffwll.ch
>
>--
>Daniel Vetter
>Software Engineer, Intel Corporation
>http://blog.ffwll.ch
Peter Chen July 14, 2016, 3:30 a.m. UTC | #5
>>> >
>>> >Just an aside: When you do the same bugfix for multiple places it's
>>> >good practice to submit it as one series (and cc everyone involved).
>>> >Increases the odds that someone is in a good mood and reviews them
>>> >all, instead of just the one affecting their own driver.
>>>
>>> Thanks, I realized that, and did it for later fixes for drm.
>>> But if the bug fixes are at several subsystems, I think we should
>>> split patch set per subsystem.
>>
>>Yeah, splitting per subsystem makes sense I'd say. I merged some of
>>your patches, others are merged by driver maintainers directly. Is
>>there anything left? If so, pls resend those as a new series to make sure it's all in
>one place.
>>-Daniel
>>
>
>Thanks, Daniel.
>
>I am afraid I don't know which one is merged, do you have a tree? And, I can re-send
>them all.
>The latest patches which merged Linux-next is at [1], I remembered I dropped one
>since the fix has already been there.
>
>git log --oneline miss-of-node-put (for drm)
>
>e167f2a gpu: drm: vc4_hdmi: add missing of_node_put after calling
>of_parse_phandle
>9f86a38 gpu: drm: sun4i_drv: add missing of_node_put after calling
>of_parse_phandle e0475ac gpu: drm: sti_vtg: add missing of_node_put after calling
>of_parse_phandle
>99ad059 gpu: drm: sti_hqvdp: add missing of_node_put after calling
>of_parse_phandle
>7d90d71 gpu: drm: sti_vdo: add missing of_node_put after calling of_parse_phandle
>57c9e36 gpu: drm: sti_compositor: add missing of_node_put after calling
>of_parse_phandle 2cb11fb gpu: drm: rockchip_drm_drv: add missing of_node_put
>after calling of_parse_phandle 2668b9c gpu: drm: omapdrm: dss-of: add missing
>of_node_put after calling of_parse_phandle ab81c2e gpu: drm: omapdrm:
>connector-dvi: add missing of_node_put after calling of_parse_phandle
>4fc7ab7 gpn: drm: fsl_tcon: add missing of_node_put after calling of_parse_phandle
>df5f61f gpu: drm: exynos_hdmi: add missing of_node_put after calling
>of_parse_phandle
>6d294e6 gpu: drm: arcpgu_drv: add missing of_node_put after calling
>of_parse_phandle
>
>
>[1] https://git.kernel.org/cgit/linux/kernel/git/peter.chen/usb.git/log/?h=fix-missing-of-
>node-put
>
>

I find below are at Linux-next, do you need me to send remains?

6d5fa28 gpu: drm: rockchip_drm_drv: add missing of_node_put after calling of_parse_phandle
e8ef1b6 gpu: drm: sti_vtg: add missing of_node_put after calling of_parse_phandle
5d950ef gpu: drm: sti_hqvdp: add missing of_node_put after calling of_parse_phandle
f33dd64 gpu: drm: sti_vdo: add missing of_node_put after calling of_parse_phandle
9897f79 gpu: drm: sti_compositor: add missing of_node_put after calling of_parse_phandle
f7d8a3c drm/msm: add missing of_node_put after calling of_parse_phandle

Peter

>Peter
>>>
>>> Peter
>>>
>>> >
>>> >> ---
>>> >>  drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
>>> >>  1 file changed, 4 insertions(+), 3 deletions(-)
>>> >>
>>> >> diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>> >> b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>> >> index bf407b6..1ee6e5e 100644
>>> >> --- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>> >> +++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>> >> @@ -126,15 +126,16 @@ u32 dss_of_port_get_port_number(struct
>>> >> device_node *port)
>>> >>
>>> >>  static struct device_node *omapdss_of_get_remote_port(const
>>> >> struct device_node *node)  {
>>> >> -	struct device_node *np;
>>> >> +	struct device_node *np, *np_parent;
>>> >>
>>> >>  	np = of_parse_phandle(node, "remote-endpoint", 0);
>>> >>  	if (!np)
>>> >>  		return NULL;
>>> >>
>>> >> -	np = of_get_next_parent(np);
>>> >> +	np_parent = of_get_next_parent(np);
>>> >> +	of_node_put(np);
>>> >>
>>> >> -	return np;
>>> >> +	return np_parent;
>>> >>  }
>>> >>
>>> >>  struct device_node *
>>> >> --
>>> >> 1.9.1
>>> >>
>>> >> _______________________________________________
>>> >> dri-devel mailing list
>>> >> dri-devel@lists.freedesktop.org
>>> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>> >
>>> >--
>>> >Daniel Vetter
>>> >Software Engineer, Intel Corporation http://blog.ffwll.ch
>>
>>--
>>Daniel Vetter
>>Software Engineer, Intel Corporation
>>http://blog.ffwll.ch
Daniel Vetter July 14, 2016, 7:40 a.m. UTC | #6
On Thu, Jul 14, 2016 at 5:30 AM, Peter Chen <peter.chen@nxp.com> wrote:
>>>> >Just an aside: When you do the same bugfix for multiple places it's
>>>> >good practice to submit it as one series (and cc everyone involved).
>>>> >Increases the odds that someone is in a good mood and reviews them
>>>> >all, instead of just the one affecting their own driver.
>>>>
>>>> Thanks, I realized that, and did it for later fixes for drm.
>>>> But if the bug fixes are at several subsystems, I think we should
>>>> split patch set per subsystem.
>>>
>>>Yeah, splitting per subsystem makes sense I'd say. I merged some of
>>>your patches, others are merged by driver maintainers directly. Is
>>>there anything left? If so, pls resend those as a new series to make sure it's all in
>>one place.
>>>-Daniel
>>>
>>
>>Thanks, Daniel.
>>
>>I am afraid I don't know which one is merged, do you have a tree? And, I can re-send
>>them all.
>>The latest patches which merged Linux-next is at [1], I remembered I dropped one
>>since the fix has already been there.
>>
>>git log --oneline miss-of-node-put (for drm)
>>
>>e167f2a gpu: drm: vc4_hdmi: add missing of_node_put after calling
>>of_parse_phandle
>>9f86a38 gpu: drm: sun4i_drv: add missing of_node_put after calling
>>of_parse_phandle e0475ac gpu: drm: sti_vtg: add missing of_node_put after calling
>>of_parse_phandle
>>99ad059 gpu: drm: sti_hqvdp: add missing of_node_put after calling
>>of_parse_phandle
>>7d90d71 gpu: drm: sti_vdo: add missing of_node_put after calling of_parse_phandle
>>57c9e36 gpu: drm: sti_compositor: add missing of_node_put after calling
>>of_parse_phandle 2cb11fb gpu: drm: rockchip_drm_drv: add missing of_node_put
>>after calling of_parse_phandle 2668b9c gpu: drm: omapdrm: dss-of: add missing
>>of_node_put after calling of_parse_phandle ab81c2e gpu: drm: omapdrm:
>>connector-dvi: add missing of_node_put after calling of_parse_phandle
>>4fc7ab7 gpn: drm: fsl_tcon: add missing of_node_put after calling of_parse_phandle
>>df5f61f gpu: drm: exynos_hdmi: add missing of_node_put after calling
>>of_parse_phandle
>>6d294e6 gpu: drm: arcpgu_drv: add missing of_node_put after calling
>>of_parse_phandle
>>
>>
>>[1] https://git.kernel.org/cgit/linux/kernel/git/peter.chen/usb.git/log/?h=fix-missing-of-
>>node-put
>>
>>
>
> I find below are at Linux-next, do you need me to send remains?

Yes please, that would be good.
-Daniel

>
> 6d5fa28 gpu: drm: rockchip_drm_drv: add missing of_node_put after calling of_parse_phandle
> e8ef1b6 gpu: drm: sti_vtg: add missing of_node_put after calling of_parse_phandle
> 5d950ef gpu: drm: sti_hqvdp: add missing of_node_put after calling of_parse_phandle
> f33dd64 gpu: drm: sti_vdo: add missing of_node_put after calling of_parse_phandle
> 9897f79 gpu: drm: sti_compositor: add missing of_node_put after calling of_parse_phandle
> f7d8a3c drm/msm: add missing of_node_put after calling of_parse_phandle
>
> Peter
>
>>Peter
>>>>
>>>> Peter
>>>>
>>>> >
>>>> >> ---
>>>> >>  drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ++++---
>>>> >>  1 file changed, 4 insertions(+), 3 deletions(-)
>>>> >>
>>>> >> diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>>> >> b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>>> >> index bf407b6..1ee6e5e 100644
>>>> >> --- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>>> >> +++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
>>>> >> @@ -126,15 +126,16 @@ u32 dss_of_port_get_port_number(struct
>>>> >> device_node *port)
>>>> >>
>>>> >>  static struct device_node *omapdss_of_get_remote_port(const
>>>> >> struct device_node *node)  {
>>>> >> -        struct device_node *np;
>>>> >> +        struct device_node *np, *np_parent;
>>>> >>
>>>> >>          np = of_parse_phandle(node, "remote-endpoint", 0);
>>>> >>          if (!np)
>>>> >>                  return NULL;
>>>> >>
>>>> >> -        np = of_get_next_parent(np);
>>>> >> +        np_parent = of_get_next_parent(np);
>>>> >> +        of_node_put(np);
>>>> >>
>>>> >> -        return np;
>>>> >> +        return np_parent;
>>>> >>  }
>>>> >>
>>>> >>  struct device_node *
>>>> >> --
>>>> >> 1.9.1
>>>> >>
>>>> >> _______________________________________________
>>>> >> dri-devel mailing list
>>>> >> dri-devel@lists.freedesktop.org
>>>> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>>> >
>>>> >--
>>>> >Daniel Vetter
>>>> >Software Engineer, Intel Corporation http://blog.ffwll.ch
>>>
>>>--
>>>Daniel Vetter
>>>Software Engineer, Intel Corporation
>>>http://blog.ffwll.ch
diff mbox

Patch

diff --git a/drivers/gpu/drm/omapdrm/dss/dss-of.c b/drivers/gpu/drm/omapdrm/dss/dss-of.c
index bf407b6..1ee6e5e 100644
--- a/drivers/gpu/drm/omapdrm/dss/dss-of.c
+++ b/drivers/gpu/drm/omapdrm/dss/dss-of.c
@@ -126,15 +126,16 @@  u32 dss_of_port_get_port_number(struct device_node *port)
 
 static struct device_node *omapdss_of_get_remote_port(const struct device_node *node)
 {
-	struct device_node *np;
+	struct device_node *np, *np_parent;
 
 	np = of_parse_phandle(node, "remote-endpoint", 0);
 	if (!np)
 		return NULL;
 
-	np = of_get_next_parent(np);
+	np_parent = of_get_next_parent(np);
+	of_node_put(np);
 
-	return np;
+	return np_parent;
 }
 
 struct device_node *