From: Nigel Cunningham <nigel@nigel.suspend2.net>
To: Berthold Cogel <cogel@uni-koeln.de>
Cc: Al Viro <viro@ZenIV.linux.org.uk>, linux-kernel@vger.kernel.org
Subject: Re: Oops in evdev_disconnect for kernel 2.6.23.12
Date: Sun, 06 Jan 2008 12:50:37 +1100 [thread overview]
Message-ID: <478033ED.7050907@nigel.suspend2.net> (raw)
In-Reply-To: <47801D70.8020504@uni-koeln.de>
Hi.
Berthold Cogel wrote:
> Al Viro schrieb:
>> On Tue, Jan 01, 2008 at 08:26:05PM +0100, Berthold Cogel wrote:
>>
>>> Jan 1 17:34:39 wonderland kernel: BUG: unable to handle kernel
>>> paging request at virtual address 00100100
>>
>> LIST_POISON1
>>
>>> Jan 1 17:34:39 wonderland kernel: EIP is at evdev_disconnect+0x65/0x9e
>>
>> and by the look of code, it's a bit before the call of something that
>> gets
>> 0x20006 as one of its arguments. Which, by the look of evdev.s, gets
>> passed only to kill_fasync(). So it's POLL_HUP, so this code could be
>> these days:
>> spin_lock(&evdev->client_lock);
>> list_for_each_entry(client, &evdev->client_list, node)
>> kill_fasync(&client->fasync, SIGIO, POLL_HUP);
>> spin_unlock(&evdev->client_lock);
>> in evdev_hangup()
>> prior to commit 6addb1d6de1968b84852f54561cc9a999909b5a9:
>> list_for_each_entry(client, &evdev->client_list, node)
>> kill_fasync(&client->fasync, SIGIO, POLL_HUP);
>> in evdev_disconnect()
>>
>>
>>> I'm using Debian stable/testing/unstable with homemade kernel
>>> 2.6.23.12 (patched with tuxonice-3.0-rc3-for-2.6.23.9).
>>
>> ... and seeing that this changeset postdates 2.6.23 *and* adds locking to
>> the lists we are traversing in either variant, I'd bet that the kernel
>> you
>> have does *NOT* have the changeset in question, that you have list
>> corruption
>> from race and that your oops is list_for_each_entry() trying to walk
>> forward from entry that just had list_del() poisoning its ->next.
>>
>> There are only 4 changesets between 2.6.23 and this one affecting
>> drivers/input
>> and only
>> 8006479c9b75fb6594a7b746af3d7f1fbb68f18f and
>> 6addb1d6de1968b84852f54561cc9a999909b5a9
>> appear to be relevant. Apply to your kernel and see if it helps...
>
> Looks as if I have to start using git ... I always feared that this day
> will come. ;-)
>
> If I'm able to reproduce the oops with my patched kernel, I will gladly
> follow your advice.
>
> Regards,
>
> Berthold
I can't do it immediately but I'll send you the patches to try a later
in the day if you like.
Nigel
prev parent reply other threads:[~2008-01-06 1:58 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-01 19:26 Oops in evdev_disconnect for kernel 2.6.23.12 Berthold Cogel
2008-01-01 20:35 ` Berthold Cogel
2008-01-01 21:17 ` Nigel Cunningham
2008-01-05 9:30 ` Andrew Morton
2008-01-05 6:52 ` Al Viro
2008-01-06 0:14 ` Berthold Cogel
2008-01-06 0:17 ` Al Viro
2008-01-06 19:39 ` Berthold Cogel
2008-01-06 20:15 ` Al Viro
2008-01-06 21:15 ` Berthold Cogel
2008-01-06 23:45 ` Al Viro
2008-01-07 20:54 ` Berthold Cogel
2008-02-02 2:58 ` Martin Bauer
2008-02-03 9:33 ` Martin Bauer
2008-01-06 1:50 ` Nigel Cunningham [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=478033ED.7050907@nigel.suspend2.net \
--to=nigel@nigel.suspend2.net \
--cc=cogel@uni-koeln.de \
--cc=linux-kernel@vger.kernel.org \
--cc=viro@ZenIV.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.