mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	USB: make usb-skeleton honor O_NONBLOCK in write path
usb:usb-skeleton: honor O_NONBLOCK in write path nonblocking writes are allowed by using down_trylock if necessary to reserve an URB Signed-off-by: Oliver Neukum <oliver@neukum.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
		
							parent
							
								
									e7389cc9a7
								
							
						
					
					
						commit
						7981998673
					
				
					 1 changed files with 10 additions and 3 deletions
				
			
		|  | @ -399,9 +399,16 @@ static ssize_t skel_write(struct file *file, const char *user_buffer, size_t cou | |||
| 		goto exit; | ||||
| 
 | ||||
| 	/* limit the number of URBs in flight to stop a user from using up all RAM */ | ||||
| 	if (down_interruptible(&dev->limit_sem)) { | ||||
| 		retval = -ERESTARTSYS; | ||||
| 		goto exit; | ||||
| 	if (!file->f_flags & O_NONBLOCK) { | ||||
| 		if (down_interruptible(&dev->limit_sem)) { | ||||
| 			retval = -ERESTARTSYS; | ||||
| 			goto exit; | ||||
| 		} | ||||
| 	} else { | ||||
| 		if (down_trylock(&dev->limit_sem)) { | ||||
| 			retval = -EAGAIN; | ||||
| 			goto exit; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	spin_lock_irq(&dev->err_lock); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Oliver Neukum
						Oliver Neukum