The fwnode_graph_get_next_endpoint() returns an 'endpoint' node pointer with refcount incremented, and refcount of the passed as a previous 'endpoint' node is decremented.
So when iterating over all nodes using fwnode_graph_get_next_endpoint(), we don't need to call fwnode_handle_put() for each node except for error exit paths. Otherwise we get "OF: ERROR: Bad of_node_put() on ..." messages. Fixes: d079f94c9046 ("media: platform: Switch to v4l2_async_notifier_add_subdev") Cc: Steve Longerbeam <slongerb...@gmail.com> Cc: Hyun Kwon <hyun.k...@xilinx.com> Cc: Laurent Pinchart <laurent.pinch...@ideasonboard.com> Cc: Mauro Carvalho Chehab <mche...@kernel.org> Signed-off-by: Akinobu Mita <akinobu.m...@gmail.com> --- drivers/media/platform/xilinx/xilinx-vipp.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/media/platform/xilinx/xilinx-vipp.c b/drivers/media/platform/xilinx/xilinx-vipp.c index 574614d..26b13fd 100644 --- a/drivers/media/platform/xilinx/xilinx-vipp.c +++ b/drivers/media/platform/xilinx/xilinx-vipp.c @@ -377,8 +377,6 @@ static int xvip_graph_parse_one(struct xvip_composite_device *xdev, goto err_notifier_cleanup; } - fwnode_handle_put(ep); - /* Skip entities that we have already processed. */ if (remote == of_fwnode_handle(xdev->dev->of_node) || xvip_graph_find_entity(xdev, remote)) { -- 2.7.4