On 02/26/2015 04:22 PM, Ahmed S. Darwish wrote: > From: Ahmed S. Darwish > > The Kvaser firmware can only read and write messages that are > not crossing the USB endpoint's wMaxPacketSize boundary. While > receiving commands from the CAN device, if the next command in > the same URB buffer crossed that max packet size boundary, the > firmware puts a zero-length placeholder command in its place > then moves the real command to the next boundary mark. > > The driver did not recognize such behavior, leading to missing > a good number of rx events during a heavy rx load session. > > Moreover, a tx URB context only gets freed upon receiving its > respective tx ACK event. Over time, the free tx URB contexts > pool gets depleted due to the missing ACK events. Consequently, > the netif transmission queue gets __permanently__ stopped; no > frames could be sent again except after restarting the CAN > newtwork interface. > > Signed-off-by: Ahmed S. Darwish Can you please send a fix for this endianess errors (against linux-can-fixes-for-4.0-20150314): > drivers/net/can/usb/kvaser_usb.c:595:39: warning: restricted __le16 degrades to integer > drivers/net/can/usb/kvaser_usb.c:1332:31: warning: restricted __le16 degrades to integer 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 |