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: Sebastian Haas <dev@sebastianhaas.info> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
9a12349663
commit
2ee6850ca0
|
@ -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),
|
||||
|
|
Loading…
Reference in New Issue