2019-11-28 18:30:16

by Johan Hovold

[permalink] [raw]
Subject: [PATCH] can: ucan: fix non-atomic allocation in completion handler

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 <[email protected]> # 4.19
Cc: Jakob Unterwurzacher <[email protected]>
Cc: Martin Elshuber <[email protected]>
Cc: Philipp Tomsich <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
---
drivers/net/can/usb/ucan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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.24.0


2019-12-03 10:08:41

by Marc Kleine-Budde

[permalink] [raw]
Subject: Re: [PATCH] can: ucan: fix non-atomic allocation in completion handler

On 11/28/19 7:26 PM, Johan Hovold wrote:
> 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 <[email protected]> # 4.19
> Cc: Jakob Unterwurzacher <[email protected]>
> Cc: Martin Elshuber <[email protected]>
> Cc: Philipp Tomsich <[email protected]>
> Signed-off-by: Johan Hovold <[email protected]>

Added to linux-can.

tnx,
Marc

--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |


Attachments:
signature.asc (499.00 B)
OpenPGP digital signature