On Mon, 23 Jul 2012, Bjørn Mork wrote: > >>>[ 243.148375] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0 > >>>[ 243.148471] BUG: unable to handle kernel NULL pointer dereference at (null) > >>>[ 243.148508] IP: [<ffffffffa0468527>] stop_read_write_urbs+0x37/0x80 [usb_wwan] > > Yes, this is easily reproducible with any driver based on usb_wwan. > I've tested both qcserial and option. The immediate cause of this is > that the &port->dev drvdata is NULL when stop_read_write_urbs is called, > so that > > portdata = usb_get_serial_port_data(port); > > ends up being NULL. This problem can also hit in resume I believe. I > think some of the solution may be moving device_del from disconnect to > destroy (cut'n paste patch - probably white space damaged): No, that's definitely not the way to go. I suspect that answer is to make usb_wwan_disconnect a .port_remove callback instead of a .disconnect callback. By the time the disconnect method runs, the ports have been unregistered and are basically gone. Alan Stern -- 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