Following up on this bug I have found the location of the OOPS in source code (using bisection). It's clearly not the source of the problem, but I hope it will help. In the file drivers/usb/class/cdc-acm.c, around line 1098, there is a comment "/*workaround for switched interfaces */" and then a check: if (data_interface->cur_altsetting->desc.bInterfaceClass != CDC_DATA_INTERFACE_TYPE) At this point, the variable data_interface is NULL and this causes the OOPS.