| From 7be8e42f47e3bbbbdff97be4752df1f876d12bb6 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Thu, 28 Nov 2019 19:26:03 +0100 |
| Subject: [PATCH] can: ucan: fix non-atomic allocation in completion handler |
| |
| commit 870db5d1015c8bd63e93b579e857223c96249ff7 upstream. |
| |
| USB completion handlers are called in atomic context and must |
| specifically not allocate memory using GFP_KERNEL. |
| |
| Fixes: 9f2d3eae88d2 ("can: ucan: add driver for Theobroma Systems UCAN devices") |
| Cc: stable <stable@vger.kernel.org> # 4.19 |
| Cc: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com> |
| Cc: Martin Elshuber <martin.elshuber@theobroma-systems.com> |
| Cc: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/can/usb/ucan.c b/drivers/net/can/usb/ucan.c |
| index 04aac3bb54ef..81e942f713e6 100644 |
| --- a/drivers/net/can/usb/ucan.c |
| +++ b/drivers/net/can/usb/ucan.c |
| @@ -792,7 +792,7 @@ static void ucan_read_bulk_callback(struct urb *urb) |
| up); |
| |
| usb_anchor_urb(urb, &up->rx_urbs); |
| - ret = usb_submit_urb(urb, GFP_KERNEL); |
| + ret = usb_submit_urb(urb, GFP_ATOMIC); |
| |
| if (ret < 0) { |
| netdev_err(up->netdev, |
| -- |
| 2.7.4 |
| |