diff options
| author | Sakari Ailus <sakari.ailus@iki.fi> | 2015-11-29 17:20:02 -0200 | 
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2016-01-11 12:19:12 -0200 | 
| commit | 8aaf62b5b9bef73978973e4b825c7818528d3ca2 (patch) | |
| tree | 78bdfa6eb1c7e2a958a340d2664bf50faae420e2 /drivers/media | |
| parent | 677cb4bfc23e7fd8f49d2d10af64f171942fab84 (diff) | |
| download | linux-8aaf62b5b9bef73978973e4b825c7818528d3ca2.tar.bz2 | |
[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 <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media')
| -rw-r--r-- | drivers/media/media-entity.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| 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. */ |