mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	[media] media: Media Controller fix to not let stream_count go negative
Change media_entity_pipeline_stop() to not decrement stream_count of an inactive media pipeline. Doing so, results in preventing starting the pipeline. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
		
							parent
							
								
									d40ec6fdb0
								
							
						
					
					
						commit
						3801bc7d1b
					
				
					 1 changed files with 12 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -452,9 +452,12 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity,
 | 
			
		|||
	media_entity_graph_walk_start(graph, entity_err);
 | 
			
		||||
 | 
			
		||||
	while ((entity_err = media_entity_graph_walk_next(graph))) {
 | 
			
		||||
		/* don't let the stream_count go negative */
 | 
			
		||||
		if (entity->stream_count > 0) {
 | 
			
		||||
			entity_err->stream_count--;
 | 
			
		||||
			if (entity_err->stream_count == 0)
 | 
			
		||||
				entity_err->pipe = NULL;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * We haven't increased stream_count further than this
 | 
			
		||||
| 
						 | 
				
			
			@ -486,10 +489,13 @@ void media_entity_pipeline_stop(struct media_entity *entity)
 | 
			
		|||
	media_entity_graph_walk_start(graph, entity);
 | 
			
		||||
 | 
			
		||||
	while ((entity = media_entity_graph_walk_next(graph))) {
 | 
			
		||||
		/* don't let the stream_count go negative */
 | 
			
		||||
		if (entity->stream_count > 0) {
 | 
			
		||||
			entity->stream_count--;
 | 
			
		||||
			if (entity->stream_count == 0)
 | 
			
		||||
				entity->pipe = NULL;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!--pipe->streaming_count)
 | 
			
		||||
		media_entity_graph_walk_cleanup(graph);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue