All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Berthold Cogel <cogel@rrz.uni-koeln.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Oops in evdev_disconnect for kernel 2.6.23.12
Date: Sat, 5 Jan 2008 06:52:33 +0000	[thread overview]
Message-ID: <20080105065233.GE27894@ZenIV.linux.org.uk> (raw)
In-Reply-To: <477A93CD.9030707@rrz.uni-koeln.de>

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...

  parent reply	other threads:[~2008-01-05  6:52 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 [this message]
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

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=20080105065233.GE27894@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=cogel@rrz.uni-koeln.de \
    --cc=linux-kernel@vger.kernel.org \
    /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.