All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/msm: Remove bad calls to of_node_put()
@ 2016-11-17  6:42 Archit Taneja
  2016-11-18 22:04 ` Rob Clark
  0 siblings, 1 reply; 2+ messages in thread
From: Archit Taneja @ 2016-11-17  6:42 UTC (permalink / raw)
  To: robdclark; +Cc: linux-arm-msm, dri-devel

In add_components_mdp, we parse the endpoints in MDP output ports
using the helper for_each_endpoint_of_node(). Our function calls
of_node_put() on the endpoint node before we iterate over the
next one. This is already done by the helper, and results in
trying to decrement the refcount twice.

Remove the extra of_node_put calls. This fixes warnings seen when
we try to insert the driver as a module on IFC6410.

Reported-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
---
 drivers/gpu/drm/msm/msm_drv.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 46568fc..5cabe1b 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -903,10 +903,8 @@ static int add_components_mdp(struct device *mdp_dev,
 		 * remote-endpoint isn't a component that we need to add
 		 */
 		if (of_device_is_compatible(np, "qcom,mdp4") &&
-		    ep.port == 0) {
-			of_node_put(ep_node);
+		    ep.port == 0)
 			continue;
-		}
 
 		/*
 		 * It's okay if some of the ports don't have a remote endpoint
@@ -914,15 +912,12 @@ static int add_components_mdp(struct device *mdp_dev,
 		 * any external interface.
 		 */
 		intf = of_graph_get_remote_port_parent(ep_node);
-		if (!intf) {
-			of_node_put(ep_node);
+		if (!intf)
 			continue;
-		}
 
 		component_match_add(master_dev, matchptr, compare_of, intf);
 
 		of_node_put(intf);
-		of_node_put(ep_node);
 	}
 
 	return 0;
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] drm/msm: Remove bad calls to of_node_put()
  2016-11-17  6:42 [PATCH] drm/msm: Remove bad calls to of_node_put() Archit Taneja
@ 2016-11-18 22:04 ` Rob Clark
  0 siblings, 0 replies; 2+ messages in thread
From: Rob Clark @ 2016-11-18 22:04 UTC (permalink / raw)
  To: Archit Taneja; +Cc: linux-arm-msm, Ilia Mirkin, dri-devel

On Thu, Nov 17, 2016 at 1:42 AM, Archit Taneja <architt@codeaurora.org> wrote:
> In add_components_mdp, we parse the endpoints in MDP output ports
> using the helper for_each_endpoint_of_node(). Our function calls
> of_node_put() on the endpoint node before we iterate over the
> next one. This is already done by the helper, and results in
> trying to decrement the refcount twice.
>
> Remove the extra of_node_put calls. This fixes warnings seen when
> we try to insert the driver as a module on IFC6410.

thanks.. fwiw, I've also seen this error on at least one of db{410,820}c..

BR,
-R

> Reported-by: Ilia Mirkin <imirkin@alum.mit.edu>
> Signed-off-by: Archit Taneja <architt@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/msm_drv.c | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 46568fc..5cabe1b 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -903,10 +903,8 @@ static int add_components_mdp(struct device *mdp_dev,
>                  * remote-endpoint isn't a component that we need to add
>                  */
>                 if (of_device_is_compatible(np, "qcom,mdp4") &&
> -                   ep.port == 0) {
> -                       of_node_put(ep_node);
> +                   ep.port == 0)
>                         continue;
> -               }
>
>                 /*
>                  * It's okay if some of the ports don't have a remote endpoint
> @@ -914,15 +912,12 @@ static int add_components_mdp(struct device *mdp_dev,
>                  * any external interface.
>                  */
>                 intf = of_graph_get_remote_port_parent(ep_node);
> -               if (!intf) {
> -                       of_node_put(ep_node);
> +               if (!intf)
>                         continue;
> -               }
>
>                 component_match_add(master_dev, matchptr, compare_of, intf);
>
>                 of_node_put(intf);
> -               of_node_put(ep_node);
>         }
>
>         return 0;
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> hosted by The Linux Foundation
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-11-18 22:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-17  6:42 [PATCH] drm/msm: Remove bad calls to of_node_put() Archit Taneja
2016-11-18 22:04 ` Rob Clark

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.