can: ucan: fix non-atomic allocation in completion handler
authorJohan Hovold <johan@kernel.org>
Thu, 28 Nov 2019 18:26:03 +0000 (19:26 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 3 Dec 2019 10:15:08 +0000 (11:15 +0100)
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>
drivers/net/can/usb/ucan.c

index 04aac3b..81e942f 100644 (file)
@@ -792,7 +792,7 @@ resubmit:
                          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,