[PATCH] drm/msm: Remove bad calls to of_node_put()

Rob Clark robdclark at gmail.com
Fri Nov 18 22:04:56 UTC 2016


On Thu, Nov 17, 2016 at 1:42 AM, Archit Taneja <architt at 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 at alum.mit.edu>
> Signed-off-by: Archit Taneja <architt at 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
>


More information about the dri-devel mailing list