forked from mirrors/linux
		
	media: lirc: release lock before sleep
There is no reason to hold the lock while we wait for the IR to transmit. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
		
							parent
							
								
									7b3aa7146e
								
							
						
					
					
						commit
						f81a8158d4
					
				
					 1 changed files with 5 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -347,6 +347,10 @@ static ssize_t ir_lirc_transmit_ir(struct file *file, const char __user *buf,
 | 
			
		|||
	if (ret < 0)
 | 
			
		||||
		goto out_kfree;
 | 
			
		||||
 | 
			
		||||
	kfree(txbuf);
 | 
			
		||||
	kfree(raw);
 | 
			
		||||
	mutex_unlock(&dev->lock);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * The lircd gap calculation expects the write function to
 | 
			
		||||
	 * wait for the actual IR signal to be transmitted before
 | 
			
		||||
| 
						 | 
				
			
			@ -359,7 +363,7 @@ static ssize_t ir_lirc_transmit_ir(struct file *file, const char __user *buf,
 | 
			
		|||
		schedule_timeout(usecs_to_jiffies(towait));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ret = n;
 | 
			
		||||
	return n;
 | 
			
		||||
out_kfree:
 | 
			
		||||
	kfree(txbuf);
 | 
			
		||||
	kfree(raw);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue