USB: cdc_acm: Fix race condition when opening tty
If acm_rx_tasklet() gets called before tty_port_block_til_ready() returns, then bulk IN urbs may not be sent. This fixes it. Signed-off-by: Henry Gebhardt <gebhardt@astro.uni-tuebingen.de> Acked-by: Oliver Neukum <oliver@neukum.org> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
		
					parent
					
						
							
								a1f17a872b
							
						
					
				
			
			
				commit
				
					
						18a77b5d23
					
				
			
		
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -609,9 +609,9 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
 | 
			
		|||
 | 
			
		||||
	acm->throttle = 0;
 | 
			
		||||
 | 
			
		||||
	tasklet_schedule(&acm->urb_task);
 | 
			
		||||
	set_bit(ASYNCB_INITIALIZED, &acm->port.flags);
 | 
			
		||||
	rv = tty_port_block_til_ready(&acm->port, tty, filp);
 | 
			
		||||
	tasklet_schedule(&acm->urb_task);
 | 
			
		||||
done:
 | 
			
		||||
	mutex_unlock(&acm->mutex);
 | 
			
		||||
err_out:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue