Re: -tip: origin tree boot crash

From: Paul Rolland
Date: Mon Dec 28 2009 - 14:28:21 EST


Hello,

> Message from syslogd@tux at Dec 28 16:00:22 ...
> kernel:CR2: 0000000100000024
> Dec 28 16:00:22 tux kernel: ACPI: WMI: Mapper loaded
> Dec 28 16:00:22 tux kernel: input: Dell WMI hotkeys
> as /devices/virtual/input/input13 Dec 28 16:00:22 tux kernel: BUG: unable
> to handle kernel paging request at 0000000100000024 Dec 28 16:00:22 tux
> kernel: IP: [<ffffffffa0003789>] wmi_install_notify_handler+0x39/0x80
> [wmi] Dec 28 16:00:22 tux kernel: PGD 565f3067 PUD 0 Dec 28 16:00:22 tux
> kernel: Oops: 0000 [#1] SMP Dec 28 16:00:22 tux kernel: last sysfs
> file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq Dec 28
> 16:00:22 tux kernel: CPU 1 Dec 28 16:00:22 tux kernel: Pid: 20215, comm:
> modprobe Not tainted 2.6.33-rc2 #1 0T816J/Vostro 1520 Dec 28 16:00:22 tux
> kernel: RIP: 0010:[<ffffffffa0003789>] [<ffffffffa0003789>]
> wmi_install_notify_handler+0x39/0x80 [wmi] Dec 28 16:00:22 tux kernel:
> RSP: 0018:ffff88009434bed8 EFLAGS: 00010202 Dec 28 16:00:22 tux kernel:
> RAX: 0000000000000015 RBX: ffffffffa014f0f0 RCX: 000000000000009d Dec 28
> 16:00:22 tux kernel: RDX: 00000000fffffff4 RSI: ffff88009434be98 RDI:
> ffff88009434be8c Dec 28 16:00:22 tux kernel: RBP: ffff88009434bef8 R08:
> ffff88009434be88 R09: 0000000000000010 Dec 28 16:00:22 tux kernel: R10:
> ffff88009434bee0 R11: 0000000000000006 R12: 0000000000000000 Dec 28
> 16:00:22 tux kernel: R13: 0000000002188470 R14: 0000000000000000 R15:
> 0000000000000000 Dec 28 16:00:22 tux kernel: FS: 00007fb6aa7446f0(0000)
> GS:ffff880028300000(0000) knlGS:0000000000000000 Dec 28 16:00:22 tux
> kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b Dec 28 16:00:22
> tux kernel: CR2: 0000000100000024 CR3: 00000000bd319000 CR4:
> 00000000000406e0 Dec 28 16:00:22 tux kernel: DR0: 0000000000000000 DR1:
> 0000000000000000 DR2: 0000000000000000 Dec 28 16:00:22 tux kernel: DR3:
> 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Dec 28
> 16:00:22 tux kernel: Process modprobe (pid: 20215, threadinfo
> ffff88009434a000, task ffff8800a3a0ace0) Dec 28 16:00:22 tux kernel:
> Stack: Dec 28 16:00:22 tux kernel: ffff88009434bef8 00000000fffffff4
> 0000000000000000 ffffffffa0152000 Dec 28 16:00:22 tux kernel: <0>
> ffff88009434bf18 ffffffffa0152142 0000000000000000 0000000000000000 Dec
> 28 16:00:22 tux kernel: <0> ffff88009434bf48 ffffffff810001d7
> 0000000000000000 ffffffffa014f780 Dec 28 16:00:22 tux kernel: Call Trace:
> Dec 28 16:00:22 tux kernel: [<ffffffffa0152000>] ?
> dell_wmi_init+0x0/0x14a [dell_wmi] Dec 28 16:00:22 tux kernel:
> [<ffffffffa0152142>] dell_wmi_init+0x142/0x14a [dell_wmi] Dec 28 16:00:22
> tux kernel: [<ffffffff810001d7>] do_one_initcall+0x37/0x190 Dec 28
> 16:00:22 tux kernel: [<ffffffff81074408>] sys_init_module+0xd8/0x250 Dec
> 28 16:00:22 tux kernel: [<ffffffff810024ab>]
> system_call_fastpath+0x16/0x1b Dec 28 16:00:22 tux kernel: Code: 65 f8 48
> 89 f3 49 89 d4 48 85 f6 74 35 48 85 ff 74 30 48 8d 75 e8 e8 27 fd ff ff
> 48 8b 55 e8 b8 06 00 00 00 48 85 d2 74 09 b0 15 <48> 83 7a 30 00 74 20 48
> 8b 5d f0 4c 8b 65 f8 c9 c3 66 0f 1f 44 Dec 28 16:00:22 tux kernel: RIP
> [<ffffffffa0003789>] wmi_install_notify_handler+0x39/0x80 [wmi] Dec 28
> 16:00:22 tux kernel: RSP <ffff88009434bed8> Dec 28 16:00:22 tux kernel:
> CR2: 0000000100000024 Dec 28 16:00:22 tux kernel: ---[ end trace
> d18b623021a6c139 ]---
>

Fixed this completely with the following two patches on top of 2.6.33-rc2 :

--- wmi.c.orig 2009-12-28 17:27:15.000000000 +0100
+++ wmi.c 2009-12-28 17:39:01.000000000 +0100
@@ -488,12 +488,13 @@
{
struct wmi_block *block;
acpi_status status;
+ bool err;

if (!guid || !handler)
return AE_BAD_PARAMETER;

- find_guid(guid, &block);
- if (!block)
+ err = find_guid(guid, &block);
+ if (!err)
return AE_NOT_EXIST;

if (block->handler)
@@ -517,12 +518,13 @@
{
struct wmi_block *block;
acpi_status status;
+ bool err;

if (!guid)
return AE_BAD_PARAMETER;

- find_guid(guid, &block);
- if (!block)
+ err = find_guid(guid, &block);
+ if (!err)
return AE_NOT_EXIST;

if (!block->handler)

--- dell-wmi.c.orig 2009-12-28 17:49:09.000000000 +0100
+++ dell-wmi.c 2009-12-28 17:41:36.000000000 +0100
@@ -343,7 +343,7 @@
printk(KERN_ERR
"dell-wmi: Unable to register notify handler - %d\n",
err);
- return err;
+ return -err;
}

return 0;


Signed-off-by: rol@xxxxxxxxxx <Paul Rolland>

Paul
--
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/