In case of any error inside the xvip_pipeline_start_stop function, it
should release the lock taken and do media graph cleanup.
Signed-off-by: Saurabh Sengar <saurabh.singh@xilinx.com>
Reviewed-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
/* Walk the graph to locate the subdev nodes */
ret = media_graph_walk_init(&graph, mdev);
- if (ret) {
- mutex_unlock(&mdev->graph_mutex);
- return ret;
- }
+ if (ret)
+ goto error;
media_graph_walk_start(&graph, entity);
if (start && ret < 0 && ret != -ENOIOCTLCMD) {
dev_err(xdev->dev, "s_stream is failed on subdev\n");
xvip_subdev_set_streaming(xdev, subdev, !start);
- return ret;
+ goto error;
}
}
}
+error:
mutex_unlock(&mdev->graph_mutex);
media_graph_walk_cleanup(&graph);