Re: Kernel Oops while disconnecting USB peripheral (always)

From: Sarbojit Ganguly
Date: Tue Aug 07 2012 - 23:22:55 EST


Sorry guys I was away due to personal emergency, however now I am back
and will check the reply ASAP.

On 28 July 2012 21:49, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Sat, 28 Jul 2012, Daniel Mack wrote:
>
>> Hmm, interesting. Thanks for sharing this. I personally never saw this
>> bug kicking in, but if I understand your findings correctly, we would
>> need something like the following patch for snd-usb and the storage driver?
>>
>> Sarbojit, could you give this a test and see whether your kernel still
>> crashes in any of the two drivers?
>
>
>> --- a/drivers/usb/storage/usb.c
>> +++ b/drivers/usb/storage/usb.c
>> @@ -1025,9 +1025,14 @@ void usb_stor_disconnect(struct usb_interface *intf)
>> {
>> struct us_data *us = usb_get_intfdata(intf);
>>
>> + if (!us)
>> + return;
>
> This can never happen. The disconnect routine gets called only once,
> so us will not be NULL.
>
>> +
>> US_DEBUGP("storage_disconnect() called\n");
>> quiesce_and_remove_host(us);
>> release_everything(us);
>> +
>> + usb_set_intfdata(intf, NULL);
>> }
>> EXPORT_SYMBOL_GPL(usb_stor_disconnect);
>
> Alan Stern
>



--
Regards,
Sarbojit
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/