| From e681286de221af78fc85db9222b6a203148c005a Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Wed, 29 Oct 2014 09:07:31 +0100 |
| Subject: USB: opticon: fix non-atomic allocation in write path |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit e681286de221af78fc85db9222b6a203148c005a upstream. |
| |
| Write may be called from interrupt context so make sure to use |
| GFP_ATOMIC for all allocations in write. |
| |
| Fixes: 0d930e51cfe6 ("USB: opticon: Add Opticon OPN2001 write support") |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/serial/opticon.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/usb/serial/opticon.c |
| +++ b/drivers/usb/serial/opticon.c |
| @@ -215,7 +215,7 @@ static int opticon_write(struct tty_stru |
| |
| /* The connected devices do not have a bulk write endpoint, |
| * to transmit data to de barcode device the control endpoint is used */ |
| - dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO); |
| + dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC); |
| if (!dr) { |
| count = -ENOMEM; |
| goto error_no_dr; |