Re: What may be causing this kernel panic ?

From: Frédéric L. W. Meunier
Date: Sat Apr 28 2012 - 00:20:51 EST


2012/4/27 Frédéric L. W. Meunier:
> 2012/4/27 Mark Lord:
>> If anyone goes into the code to look at this, I do wonder if it might be
>> related to a bug I've been seeing in 3.2.xx/3.3.xx whereby the input system
>> (or X11?) often fails to notice I've released a keyboard button..
>> and the auto-repeat just keeps on going until I press/release another button
>> to stop it.
>>
>> Bot the ooops above and the repeat issue could be due to the same/similar race
>> somewhere in there.  Or not.  Just keep your eyes and mind open to the possibility. :)
>
> Well, I sort of bisected it compiling 3.2.0, 3.1.0, 3.0.0, 2.6.39, 2.6.38, 2.6.37 and 2.6.36,
> which was the first to not panic. I'm attaching the 2.6.37 panic.

After cloning the git tree, compiling and running 13 bisected kernels
from 2.6.36 to 2.6.37 and not being able to reproduce it, I made a
diff against my other tree, made from vanilla patches, and it turned
out that the culprit is a defkeymap.c I had generated to use my
brazilian keyboard by default, which I'm attaching, just in case
someone wants to investigate it.

But since this never happened to me, I really suspect it's something
triggered by compiling the kernel with it and the GCC 4.6.3 from Arch
Linux. What I don't know is if it can be fixed in the kernel.

Anyway, I never thought that a keymap could crash the kernel by
pressing a key within a file manager running on a Linux console. And I
also noticed that while that keymap was compiled in the kernel,
another was loaded by the init scripts. And that's exactly the cause
of the kernel panic, because without running 'loadkeys', there's no
crash.

So, the scenario is: I compile the kernel with defkeymap.c-br-abnt2 or
defkeymap.c-br-latin1-abnt2 as defkeymap.c. If I don't load another or
the same keymap with 'loadkeys' while or after booting, the kernel
doesn't crash. If I do, the kernel crashes pressing some key in
Midnight Commander. The key isn't always the same. Loading the us
keymap, it was an arrow key. With a brazilian keymap, it was F3.

James, I'm copying you because you appear to be the (only ?)
maintainer and I don't know if you're following it (the subject just
mentioned a kernel panic).

Attachment: defkeymap.c-br-abnt2
Description: Binary data

Attachment: defkeymap.c-br-latin1-abnt2
Description: Binary data