Now you've done it, Oliver :-) This is only the first series of what to expect. And it will be getting worse as I dig myself closer and closer to something I can use instead of my own banal attemt on implementing the same functionality as this driver. All these patches have been briefly tested against an Ericsson F3507g modem with two proper AT command speaking WDM interfaces. The first patch should be a pretty obvious race, although I don't know how to trigger it intentionally. The second patch improves the useability of this driver from 0% to near 100% for me by allowing simultaneous read/write. The third patch fixes a minor glitch I observe if I leave a process reading from the device when it's removed. With this patch, the read is unblocked on device removal, allowing the removal process to finish. This is a common case for me, as my laptop will disconnect the Ericsson modem using rfkill on suspend. Bjørn Mork (3): USB: cdc-wdm: updating desc->length must be protected by spin_lock USB: cdc-wdm: use two mutexes to allow simultaneous read and write USB: cdc-wdm: timeout blocking reads to allow driver to shutdown on device removal drivers/usb/class/cdc-wdm.c | 70 +++++++++++++++++++++++++++---------------- 1 files changed, 44 insertions(+), 26 deletions(-) -- 1.7.8.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html