Re: PROBLEM: Kernel 2.6.26 oops if I unplug my Logitech USB 1.1 headset

From: Vegard Nossum
Date: Fri Sep 05 2008 - 04:18:25 EST


On Fri, Sep 5, 2008 at 10:01 AM, Vegard Nossum <vegard.nossum@xxxxxxxxx> wrote:
> On Fri, Sep 5, 2008 at 9:58 AM, Vegard Nossum <vegard.nossum@xxxxxxxxx> wrote:
>> On Fri, Sep 5, 2008 at 9:09 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
>>> At Thu, 4 Sep 2008 17:28:22 -0700,
>>> Andrew Morton wrote:
>>>>
>>>> On Fri, 05 Sep 2008 01:05:21 +0200
>>>> Edgar Kalkowski <eMail@xxxxxxxxxxxxxxxxxx> wrote:
>>>>
>>>> > Dear kernel hackers. ;)
>>>> >
>>>> > [1.] One line summary of the problem: If I unplug my USB-Headset the kernel oopses.
>>>>
>>>> cc's added.
>>>>
>>>> Might be USB, might be ALSA.
>>>
>>> Hm, it's hard to guess...
>>> Edgar, could you check whether it happens with 2.6.25?
>>
>> Hi,
>>
>> I recognize this address:
>>
>>>>> BUG: unable to handle kernel paging request at 00100100
>>
>> Is this a magic value? I also got it, see for example:
>> http://lkml.org/lkml/2008/8/21/426
>>
>> Google will also recognize it:
>> http://www.google.com/search?hl=en&q="unable+to+handle+kernel+paging+request"+00100100
>>
>> Where does it come from?
>
> Oh. It _is_ LIST_POISON1. Sorry for the bit of noise.

Probably totally unrelated, but I couldn't help to find this bit of
code somewhat odd. In snd_ctl_dev_disconnect():

down_read(&card->controls_rwsem);
list_for_each_entry(ctl, &card->ctl_files, list) {
wake_up(&ctl->change_sleep);
kill_fasync(&ctl->fasync, SIGIO, POLL_ERR);
}
up_read(&card->controls_rwsem);

...shouldn't that be using &card->ctl_files_rwlock instead of
&card->controls_rwsem? That one is always used to protect the list ops
on &card->ctl_files in all the other places. Or maybe it is already
locked from higher ups?


Vegard

--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
--
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/