public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: entity: Catch unbalanced media_pipeline_stop calls
@ 2017-01-03 13:12 Kieran Bingham
  2017-01-03 13:36 ` Laurent Pinchart
  0 siblings, 1 reply; 7+ messages in thread
From: Kieran Bingham @ 2017-01-03 13:12 UTC (permalink / raw)
  To: sakari.ailus, laurent.pinchart, mchehab
  Cc: linux-media, linux-renesas-soc, Kieran Bingham

Drivers must not perform unbalanced calls to stop the entity pipeline,
however if they do they will fault in the core media code, as the
entity->pipe will be set as NULL. We handle this gracefully in the core
with a WARN for the developer.

Replace the erroneous check on zero streaming counts, with a check on
NULL pipe elements instead, as this is the symptom of unbalanced
media_pipeline_stop calls.

Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
---
 drivers/media/media-entity.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c
index caa13e6f09f5..cb1fb2c17f85 100644
--- a/drivers/media/media-entity.c
+++ b/drivers/media/media-entity.c
@@ -534,8 +534,13 @@ void __media_pipeline_stop(struct media_entity *entity)
 	struct media_graph *graph = &entity->pipe->graph;
 	struct media_pipeline *pipe = entity->pipe;
 
+	/*
+	 * If the following check fails, the driver has performed an
+	 * unbalanced call to media_pipeline_stop()
+	 */
+	if (WARN_ON(!pipe))
+		return;
 
-	WARN_ON(!pipe->streaming_count);
 	media_graph_walk_start(graph, entity);
 
 	while ((entity = media_graph_walk_next(graph))) {
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-05-06 17:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-03 13:12 [PATCH] media: entity: Catch unbalanced media_pipeline_stop calls Kieran Bingham
2017-01-03 13:36 ` Laurent Pinchart
2017-01-03 17:05   ` Kieran Bingham
2017-01-04  8:57     ` Sakari Ailus
2017-05-05 17:33       ` Kieran Bingham
2017-05-05 21:11         ` Sakari Ailus
2017-05-06 17:23           ` Kieran Bingham

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox