Kernel oops with asus_acpi module
Matthias Hentges has postet this a while ago to the acpi4asus-list:
http://sourceforge.net/mailarchive/forum.php?thread_id=7214924&forum_id=33295
I have a Samsung P30. The problem happens on both rc and mm-kernels at the moment.
I hope this can be fixed before 2.6.12.
The asus_acpi module freezes the system on boot if compiled into the kernel.
If loaded as a module, I get this error:
Asus Laptop ACPI Extras version 0.29
Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: e19e9391 *pde = 00000000 Oops: 0000 [#1] PREEMPT Modules linked in: asus_acpi eth1394 ipw2100 ohci1394 ieee1394 yenta_socket rsrc_nonstatic pcmcia_core ehci_hcd uhci_hcd usbcore CPU: 0 EIP: 0060:[<e19e9391>] Not tainted VLI EFLAGS: 00210203 (2.6.12-rc5-mm2)
EIP is at asus_hotk_get_info+0x1aa/0x79a [asus_acpi]
eax: 00000000 ebx: dfe0d000 ecx: 00000002 edx: 00000003
esi: 00000000 edi: e19fca60 ebp: d7e9c800 esp: dae19ec0
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 12174, threadinfo=dae18000 task=d13bf0b0)
Stack: 00000000 00200296 c011c497 00000000 ffffffd8 dfe0d000 00000000 00000000
c05a9c88 c011c273 dae19f6c dfc37c3c 00000000 c0294036 00000000 00000000
00000000 dae19f54 00200246 0000002b 00000300 0000030c 00000000 00000000
Call Trace:
[<c011c497>] release_console_sem+0xe7/0x110
[<c011c273>] vprintk+0x1f3/0x2b0
[<c0294036>] sub_alloc+0xb6/0x1b0
[<e19e9a3f>] asus_hotk_add+0x8b/0x143 [asus_acpi]
[<c02e0f01>] acpi_bus_driver_init+0x29/0x50
[<c02e0fbc>] acpi_driver_attach+0x59/0x9d
[<e19e9b41>] asus_acpi_init+0x4a/0x72 [asus_acpi]
[<c0138212>] sys_init_module+0xc2/0x200
[<c01030d7>] sysenter_past_esp+0x54/0x75
Code: e1 e8 f4 2c 73 de 5e 5f a1 10 eb 9f e1 ba 03 00 00 00 bf 60 ca 9f e1 89 d1 c7 40 14 12 00 00 00 8b 45 08 89 04 24 89 c6 49 78 08 <ac> ae 75 08 84 c0 75 f5 31 c0 eb 04 19 c0 0c 01 85 c0 75 11 a1
If you need further info, please contact me.
On Sun, 5 Jun 2005 23:40:40 +0200 Hanno Böck wrote:
| Matthias Hentges has postet this a while ago to the acpi4asus-list: | http://sourceforge.net/mailarchive/forum.php?thread_id=7214924&forum_id=33295 | | I have a Samsung P30. The problem happens on both rc and mm-kernels at the | moment. | I hope this can be fixed before 2.6.12. | | The asus_acpi module freezes the system on boot if compiled into the kernel. | | If loaded as a module, I get this error: | | Asus Laptop ACPI Extras version 0.29 | Unable to handle kernel NULL pointer dereference at virtual address 00000000 | printing eip: | e19e9391 | *pde = 00000000 | Oops: 0000 [#1] | PREEMPT | Modules linked in: asus_acpi eth1394 ipw2100 ohci1394 ieee1394 yenta_socket | rsrc_nonstatic pcmcia_core ehci_hcd uhci_hcd usbcore | CPU: 0 | EIP: 0060:[<e19e9391>] Not tainted VLI | EFLAGS: 00210203 (2.6.12-rc5-mm2) | EIP is at asus_hotk_get_info+0x1aa/0x79a [asus_acpi] | eax: 00000000 ebx: dfe0d000 ecx: 00000002 edx: 00000003 | esi: 00000000 edi: e19fca60 ebp: d7e9c800 esp: dae19ec0 | ds: 007b es: 007b ss: 0068 | Process modprobe (pid: 12174, threadinfo=dae18000 task=d13bf0b0) | Stack: 00000000 00200296 c011c497 00000000 ffffffd8 dfe0d000 00000000 00000000 | c05a9c88 c011c273 dae19f6c dfc37c3c 00000000 c0294036 00000000 00000000 | 00000000 dae19f54 00200246 0000002b 00000300 0000030c 00000000 00000000 | Call Trace: | [<c011c497>] release_console_sem+0xe7/0x110 | [<c011c273>] vprintk+0x1f3/0x2b0 | [<c0294036>] sub_alloc+0xb6/0x1b0 | [<e19e9a3f>] asus_hotk_add+0x8b/0x143 [asus_acpi] | [<c02e0f01>] acpi_bus_driver_init+0x29/0x50 | [<c02e0fbc>] acpi_driver_attach+0x59/0x9d | [<e19e9b41>] asus_acpi_init+0x4a/0x72 [asus_acpi] | [<c0138212>] sys_init_module+0xc2/0x200 | [<c01030d7>] sysenter_past_esp+0x54/0x75 | Code: e1 e8 f4 2c 73 de 5e 5f a1 10 eb 9f e1 ba 03 00 00 00 bf 60 ca 9f e1 89 | d1 c7 40 14 12 00 00 00 8b 45 08 89 04 24 89 c6 49 78 08 <ac> ae 75 08 84 c0 | 75 f5 31 c0 eb 04 19 c0 0c 01 85 c0 75 11 a1 | | | If you need further info, please contact me.
What processor (x86) type/configs is your kernel compiled for?
Can you repeat with Magic SysRq enabled (if not already) and set log level to 9 (echo 9 > /proc/sysrq-trigger or Alt-SysRq-9). That should provide more console log info for us.... then post that log. (or check your log files, this log info may already be in some of them)
Thanks,
---
~Randy
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
(back to mailing lists + asus acpi maintainers)
On Mon, 6 Jun 2005 20:50:42 +0200 Hanno Böck wrote:
| Am Montag, 6. Juni 2005 20:45 schrieben Sie: | > 2 or 3 things: | > | > a. I can't match that Code line to any code in my | > compiler asus_acpi.o file. What version of gcc are you using? | > Can you send me your asus_acpi.o file? | | Attached. | I'm using gcc4 (but that's probably not the reason, because matthias hentges, | who has a debian-system, has the same problem)
Well, gcc4 does have some known issues with the Linux kernel, although I don't know the specifics of them.
| > | > b. That Code line is different from the first one that you posted. | > That doesn't make much sense to me.... | | Don't know why, but maybe because I recompiled the kernel with | debugging-support?
OK, I see that part.
I'm including a patch for you to try. Can you apply and test it and report back on it, please?
---
From: Randy Dunlap <rdunlap-/[email protected]> linux-2612-rc5-mm2
model->string.pointer was NULL, so printk of it caused an oops.
Handle ASUS ACPI string descriptor with 0 length or NULL pointer by trying the Samsung P30 support code exception handling.
diffstat:=
drivers/acpi/asus_acpi.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletion(-)
drivers/acpi/asus_acpi.c renamed from drivers/acpi/asus_acpi.c~asus_models +10 -1
@@ -993,6 +993,7 @@ static int __init asus_hotk_get_info(voi/* Samsung P30 has a device with a valid _HID whose INIT does not * return anything. Catch this one and any similar here */ if (buffer.pointer ==NULL ) { +try_p30:if (asus_info &&/* Samsung P30 */ strncmp (asus_info->oem_table_id,"ODEM" ,4 ) ==0 ) { hotk->model =P30 ;
@@ -1009,7 +1010,15 @@ static int __init asus_hotk_get_info(voi model = (union acpi_object *) buffer.pointer;if (model->type ==ACPI_TYPE_STRING ) { -printk (KERN_NOTICE " %s model detected, " , model->string.pointer); +if (!model->string.length || !model->string.pointer) { +printk (KERN_WARNING " model string length or pointer " +"is 0, trying P30 exceptions (%u, %p)\n" , + model->string.length, model->string.pointer); + goto try_p30; + } +else +printk (KERN_NOTICE " %s model detected, " , + model->string.pointer); } hotk->model =END_MODEL ;
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r
Thus wrote randy_dunlap:
Quoted 4 lines
OK, I see that part.
I'm including a patch for you to try. Can you apply and test it and report back on it, please?
May I see the DSDT? The Samsung P30 INIT method referenced in asus_hotk_get_info() is not supposed to return anything, not even an empty string. I believe the new ACPICA implicit return might be interfering. Here's the relevant part of what I based the code on:
Method (INIT, 1, NotSerialized)
{
Store (One, ATKP)
If (LNot (LLess (PCBV, 0x02)))
{
If (And (WBTF, 0x1F))
{
Or (WBTF, 0x20, WBTF)
}
And (WBTF, 0xE0, WBTF)
}
If (And (WBTF, 0x40))
{
If (And (WBTF, 0xBF))
{
WLED (0x81)
}
Else
{
WLED (0x80)
}
}
Else
{
WLED (0x80)
}
}Best regards,
Signature · 9 lines
Karol 'sziwan' Kozimor sziwan-DETuoxkZsSqrDJvtcaxF/[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
Am Montag, 6. Juni 2005 23:32 schrieb Karol Kozimor:
Quoted 4 lines
May I see the DSDT? The Samsung P30 INIT method referenced in
asus_hotk_get_info()is not supposed to return anything, not even an empty string. I believe the new ACPICA implicit return might be interfering. Here's the relevant part of what I based the code on:
Thus wrote Hanno Böck:
Quoted 5 lines
Am Montag, 6. Juni 2005 23:32 schrieb Karol Kozimor:
Quoted 4 lines
May I see the DSDT? The Samsung P30 INIT method referenced in
asus_hotk_get_info()is not supposed to return anything, not even an empty string. I believe the new ACPICA implicit return might be interfering. Here's the relevant part of what I based the code on:
Thanks. This might also help:
drivers/acpi/asus_acpi.c +1 -1
@@ -992,7 +992,7 @@/* Samsung P30 has a device with a valid _HID whose INIT does not * return anything. Catch this one and any similar here */ -if (buffer.pointer ==NULL ) { +if (buffer.pointer ==NULL || buffer.length ==0 ) {if (asus_info &&/* Samsung P30 */ strncmp (asus_info->oem_table_id,"ODEM" ,4 ) ==0 ) { hotk->model =P30 ;
But I'd like to get the full oops with the matching asus_acpi.o file also (might be off the list).
Best regards,
Signature · 9 lines
Karol 'sziwan' Kozimor sziwan-DETuoxkZsSqrDJvtcaxF/[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
Am Dienstag, 7. Juni 2005 00:21 schrieb Karol Kozimor:
Quoted 1 line
Thanks. This might also help:
Doesn't help (randys fix also didn't).
Quoted 2 lines
But I'd like to get the full oops with the matching asus_acpi.o file also (might be off the list).
Can you tell me what a full oops is, how I generate it? Then I can do so (I'm not a kernel-dev).
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
On Tue, 7 Jun 2005 19:46:17 +0200 Hanno Böck wrote:
| Am Dienstag, 7. Juni 2005 00:21 schrieb Karol Kozimor: | > Thanks. This might also help: | Doesn't help (randys fix also didn't).
were there any additional kernel log messages?
there should have been.
| > But I'd like to get the full oops with the matching asus_acpi.o file also | > (might be off the list).
Karol, did you see the beginning of the thread?
http://lkml.org/lkml/2005/6/5/101
| Can you tell me what a full oops is, how I generate it? Then I can do so (I'm | not a kernel-dev).
---
~Randy
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r
Thus wrote randy_dunlap:
Quoted 6 lines
| > But I'd like to get the full oops with the matching asus_acpi.o file also | > (might be off the list).
Karol, did you see the beginning of the thread?
http://lkml.org/lkml/2005/6/5/101
Yeah, but I didn't get the .o file :)
Please don't trim the Cc: list, or I'll be slow to respond. Best regards,
Signature · 9 lines
Karol 'sziwan' Kozimor sziwan-DETuoxkZsSqrDJvtcaxF/[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
There's still no fix for the asus_acpi-crash in 2.6.14_rc4. Will this be sorted out before 2.6.14?
Signature · 2 lines
Hanno Böck Blog: http://www.hboeck.de/ GPG: 3DBD3B20 Jabber: [email protected]
Thus wrote Hanno Böck:
Quoted 9 lines
Am Dienstag, 7. Juni 2005 00:21 schrieb Karol Kozimor:
Quoted 1 line
Thanks. This might also help:
Doesn't help (randys fix also didn't).
Quoted 2 lines
But I'd like to get the full oops with the matching asus_acpi.o file also (might be off the list).
Can you tell me what a full oops is, how I generate it? Then I can do so (I'm not a kernel-dev).
What I meant was the full log output (which, AFAIK, you did supply) and the asus_acpi.o file from the kernel build that the specific oops report was for, which only Randy received, I guess.
Anyway, I'll do a debug patch shortly.
Best regards,
Signature · 9 lines
Karol 'sziwan' Kozimor sziwan-DETuoxkZsSqrDJvtcaxF/[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20