提交 2ee6850c 编写于 作者: S Sebastian Haas 提交者: Marc Kleine-Budde

can: ems_usb: Improved memory handling on ems_usb_start

Do not return from ems_usb_start if allocation fails. If not all URBs
could be allocated use the one already submitted.
Signed-off-by: NSebastian Haas <dev@sebastianhaas.info>
Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
上级 9a123496
......@@ -607,7 +607,8 @@ static int ems_usb_start(struct ems_usb *dev)
if (!urb) {
dev_err(netdev->dev.parent,
"No memory left for URBs\n");
return -ENOMEM;
err = -ENOMEM;
break;
}
buf = usb_alloc_coherent(dev->udev, RX_BUFFER_SIZE, GFP_KERNEL,
......@@ -616,7 +617,8 @@ static int ems_usb_start(struct ems_usb *dev)
dev_err(netdev->dev.parent,
"No memory left for USB buffer\n");
usb_free_urb(urb);
return -ENOMEM;
err = -ENOMEM;
break;
}
usb_fill_bulk_urb(urb, dev->udev, usb_rcvbulkpipe(dev->udev, 2),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册