diff options
Diffstat (limited to 'drivers/usb/serial/generic.c')
| -rw-r--r-- | drivers/usb/serial/generic.c | 12 | 
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c index 2b01ec8651c2..b63ce023f96f 100644 --- a/drivers/usb/serial/generic.c +++ b/drivers/usb/serial/generic.c @@ -173,16 +173,8 @@ retry:  		clear_bit_unlock(USB_SERIAL_WRITE_BUSY, &port->flags);  		return result;  	} -	/* -	 * Try sending off another urb, unless called from completion handler -	 * (in which case there will be no free urb or no data). -	 */ -	if (mem_flags != GFP_ATOMIC) -		goto retry; -	clear_bit_unlock(USB_SERIAL_WRITE_BUSY, &port->flags); - -	return 0; +	goto retry;	/* try sending off another urb */  }  EXPORT_SYMBOL_GPL(usb_serial_generic_write_start); @@ -208,7 +200,7 @@ int usb_serial_generic_write(struct tty_struct *tty,  		return 0;  	count = kfifo_in_locked(&port->write_fifo, buf, count, &port->lock); -	result = usb_serial_generic_write_start(port, GFP_KERNEL); +	result = usb_serial_generic_write_start(port, GFP_ATOMIC);  	if (result)  		return result;  | 
