From: Sakari Ailus Date: Sun, 29 Nov 2015 19:20:02 +0000 (-0200) Subject: [media] media: Enforce single entity->pipe in a pipeline X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=8aaf62b5b9bef73978973e4b825c7818528d3ca2;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git [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 --- 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. */