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 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

Reply via email to