Message ID | 1479364923-15757-1-git-send-email-architt@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 >
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;
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(-)