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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to