From 8aaf62b5b9bef73978973e4b825c7818528d3ca2 Mon Sep 17 00:00:00 2001 From: Sakari Ailus Date: Sun, 29 Nov 2015 17:20:02 -0200 Subject: [media] media: Enforce single entity->pipe in a pipeline If a different entity->pipe in a pipeline was encountered, a warning was issued but the execution continued as if nothing had happened. Return an error instead right there. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab --- drivers/media/media-entity.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c index 6926e0685d0a..4822763dcefa 100644 --- a/drivers/media/media-entity.c +++ b/drivers/media/media-entity.c @@ -323,7 +323,12 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity, DECLARE_BITMAP(has_no_links, MEDIA_ENTITY_MAX_PADS); entity->stream_count++; - WARN_ON(entity->pipe && entity->pipe != pipe); + + if (WARN_ON(entity->pipe && entity->pipe != pipe)) { + ret = -EBUSY; + goto error; + } + entity->pipe = pipe; /* Already streaming --- no need to check. */ -- cgit v1.2.3-59-g8ed1b