On 01/12/2015 09:36 PM, Ahmed S. Darwish wrote: > On Mon, Jan 12, 2015 at 12:09:32PM +0100, Marc Kleine-Budde wrote: >> On 01/11/2015 09:15 PM, Ahmed S. Darwish wrote: >>> From: Ahmed S. Darwish >>> >>> Let the error counters be more accurate in case of Out of >>> Memory conditions. >> >> Please have a look at kvaser_usb_rx_error(), the whole state handling is >> omitted in case of OOM. >> > > I see. Regarding kvaser_usb_rx_error(), would something like > below patch be acceptable? > > Kindly note that separating recording interface state from > error frame packet building leads to duplication of a good > number of if-conditions. Meanwhile, it truly saves _all_ > of the possible state before any ENOMEM -- the correct thing > to do. > > Another solution was to allocate the can frame on the stack, > and thus avoiding any code duplication. But this only leads > to calls of "kvaser_usb_simple_msg_async", which can fail > with -ENOMEM by itself, returning to the very same problem > again. > > If the patch is acceptable, I'll rebase my USBCAN-II driver > above it and re-submit the series (minus the merged patch). Looks good from my point of view, stats and state are handled independent of the error skb. Andri can you have a look at the state handling itself? Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |