public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Oops with IPMI and ACPI disabled on command line
@ 2005-05-16 21:33 Yann Droneaud
  2005-05-16 21:42 ` [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch Yann Droneaud
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Yann Droneaud @ 2005-05-16 21:33 UTC (permalink / raw)
  To: Kernel Mailing List, ACPI Developers; +Cc: Yann Droneaud


Hi,

I encounter an Oops with IPMI modules using acpi=ht|off,
I fixed it (only the Oops, IPMI is still not available on the system),
by two patches which follows.

Here is the Oops messages for reference:

May 16 11:18:29 localhost kernel: ipmi message handler version v33
May 16 11:18:29 localhost kernel: IPMI System Interface driver version v33, KCS version v33, SMIC version v33, BT version v33
May 16 11:18:29 localhost kernel:     ACPI-0166: *** Error: Invalid address flags 8
May 16 11:18:29 localhost kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004
May 16 11:18:29 localhost kernel:  printing eip:
May 16 11:18:29 localhost kernel: c01ff793
May 16 11:18:29 localhost kernel: *pde = 3764b001
May 16 11:18:29 localhost kernel: Oops: 0000 [#1]
May 16 11:18:29 localhost kernel: SMP
May 16 11:18:29 localhost kernel: Modules linked in: ipmi_si ipmi_msghandler af_packet floppy bcm5700 isofs nls_base md ehci_
hcd uhci_hcd usbcore genrtc unix sd_mod qla2300 qla2xxx scsi_transport_fc cciss ata_piix libata
May 16 11:18:29 localhost kernel: CPU:    0
May 16 11:18:29 localhost kernel: EIP:    0060:[acpi_get_firmware_table+630/694]    Not tainted VLI
May 16 11:18:29 localhost kernel: EIP:    0060:[<c01ff793>]    Not tainted VLI
May 16 11:18:29 localhost kernel: EFLAGS: 00010202   (2.6.11.9-mdvc)
May 16 11:18:29 localhost kernel: EIP is at acpi_get_firmware_table+0x276/0x2b6
May 16 11:18:29 localhost kernel: eax: 00000000   ebx: c21602c0   ecx: 00000000   edx: c21602c0
May 16 11:18:29 localhost ipmi: Starting IPMI failed
May 16 11:18:29 localhost kernel: esi: 00001001   edi: c02bfc49   ebp: 00000008   esp: f7f11eec
May 16 11:18:30 localhost kernel: ds: 007b   es: 007b   ss: 0068
May 16 11:18:30 localhost kernel: Process modprobe (pid: 2413, threadinfo=f7f11000 task=f744d540)
May 16 11:18:30 localhost kernel: Stack: c0119583 f76bff44 00000001 00000000 00000000 00000000 00000008 7fff32c0
May 16 11:18:30 localhost kernel:        00000000 f7f11f40 ffffffed 00000000 00000000 00000000 f8b81453 f8b851f9
May 16 11:18:30 localhost kernel:        00000001 00000008 f7f11f3c 000047d9 00000296 ffffffed f7f11f78 00000000
May 16 11:18:30 localhost kernel: Call Trace:
May 16 11:18:30 localhost kernel:  [__wake_up_common+63/94] __wake_up_common+0x3f/0x5e
May 16 11:18:30 localhost kernel:  [<c0119583>] __wake_up_common+0x3f/0x5e
May 16 11:18:30 localhost kernel:  [pg0+947508307/1069655040] try_init_acpi+0x41/0x2a9 [ipmi_si]
May 16 11:18:30 localhost kernel:  [<f8b81453>] try_init_acpi+0x41/0x2a9 [ipmi_si]
May 16 11:18:30 localhost kernel:  [pg0+947512705/1069655040] init_one_smi+0x4e2/0x57d [ipmi_si]
May 16 11:18:30 localhost kernel:  [<f8b82581>] init_one_smi+0x4e2/0x57d [ipmi_si]
May 16 11:18:30 localhost kernel:  [vprintk+312/367] vprintk+0x138/0x16f
May 16 11:18:30 localhost kernel:  [<c011dc62>] vprintk+0x138/0x16f
May 16 11:18:30 localhost kernel:  [pg0+944169095/1069655040] init_ipmi_si+0x87/0x22f [ipmi_si]
May 16 11:18:30 localhost kernel:  [<f8852087>] init_ipmi_si+0x87/0x22f [ipmi_si]
May 16 11:18:30 localhost kernel:  [sys_init_module+371/531] sys_init_module+0x173/0x213
May 16 11:18:30 localhost kernel:  [<c01361d9>] sys_init_module+0x173/0x213
May 16 11:18:30 localhost kernel:  [sysenter_past_esp+82/117] sysenter_past_esp+0x52/0x75
May 16 11:18:30 localhost kernel:  [<c0102fd5>] sysenter_past_esp+0x52/0x75
May 16 11:18:30 localhost kernel: Code: ff 83 c4 0c 85 c0 89 c6 75 1e 8b 54 24 10 8b 42 0c 8b 54 24 48 89 02 eb 0f 45 3b 6c 24 0c e9 4e ff ff ff be 06 00 00 00 8b 43 0c <ff> 70 04 50 e8 16 c5 fe ff 53 e8 a7 c4 fe ff 83 c4 0c 83 7c 24

Regards

-- 
Yann Droneaud <ydroneaud@mandriva.com>
Consulting Engineer
Professional Services
Mandriva http://mandriva.com/ (previously known as Mandrakesoft)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch
  2005-05-16 21:33 Oops with IPMI and ACPI disabled on command line Yann Droneaud
@ 2005-05-16 21:42 ` Yann Droneaud
  2005-05-17 23:27   ` [ACPI] " Sergio Monteiro Basto
  2005-05-16 21:47 ` [PATCH 2/2] IPMI and acpi=off|ht : ipmi_si_intf-acpi-disabled Yann Droneaud
  2005-05-16 21:49 ` Oops with IPMI and ACPI disabled on command line Corey Minyard
  2 siblings, 1 reply; 6+ messages in thread
From: Yann Droneaud @ 2005-05-16 21:42 UTC (permalink / raw)
  To: Kernel Mailing List, ACPI Developers; +Cc: Yann Droneaud


This patch check that rsdt_info->pointer is not NULL before trying to
unmap ACPI tables, which can happen if acpi_tb_get_rsdt_address() failed.

In my case, with ipmi_si_intf module and acpi=ht|off parameter, the call
failed because acpi_gbl_table_flags is not initialised, so the
address.pointer_type is not setup correctly, leading to message like:

May 16 11:18:29 localhost kernel:     ACPI-0166: *** Error: Invalid address flags 8

and rsdt_info->pointer equal to NULL leading to the Oops.

--- linux-2.6.11.9/drivers/acpi/tables/tbxfroot.c	2005-05-11 18:42:39.000000000 -0400
+++ linux-2.6.11.9-fixes/drivers/acpi/tables/tbxfroot.c	2005-05-16 16:51:33.115768232 -0400
@@ -313,7 +313,9 @@ acpi_get_firmware_table (
 
 
 cleanup:
-	acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
+	if (rsdt_info->pointer) {
+		acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
+	}
 	ACPI_MEM_FREE (rsdt_info);
 
 	if (header) {


Signed-Off-by: ydroneaud@mandriva.com

-- 
Yann Droneaud <ydroneaud@mandriva.com>
Consulting Engineer
Professional Services
Mandriva http://mandriva.com/ (previously known as Mandrakesoft)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/2] IPMI and acpi=off|ht : ipmi_si_intf-acpi-disabled
  2005-05-16 21:33 Oops with IPMI and ACPI disabled on command line Yann Droneaud
  2005-05-16 21:42 ` [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch Yann Droneaud
@ 2005-05-16 21:47 ` Yann Droneaud
  2005-06-07 14:54   ` [PATCH] [RESENT] Fix Oops in IPMI with " Yann Droneaud
  2005-05-16 21:49 ` Oops with IPMI and ACPI disabled on command line Corey Minyard
  2 siblings, 1 reply; 6+ messages in thread
From: Yann Droneaud @ 2005-05-16 21:47 UTC (permalink / raw)
  To: Kernel Mailing List, ACPI Developers; +Cc: Yann Droneaud


This patch fix ipmi_si_intf to not use ACPI tables if the ACPI
subsystem is disabled.

--- linux-2.6.11.9/drivers/char/ipmi/ipmi_si_intf.c	2005-05-11 18:41:12.000000000 -0400
+++ linux-2.6.11.9-fixes/drivers/char/ipmi/ipmi_si_intf.c	2005-05-16 16:38:11.780589696 -0400
@@ -1443,6 +1443,9 @@ static int try_init_acpi(int intf_num, s
 	char             *io_type;
 	u8 		 addr_space;
 
+	if (acpi_disabled)
+		return -ENODEV;
+
 	if (acpi_failure)
 		return -ENODEV;
 

Signed-Off-by: ydroneaud@mandriva.com

-- 
Yann Droneaud <ydroneaud@mandriva.com>
Consulting Engineer
Professional Services
Mandriva http://mandriva.com/ (previously known as Mandrakesoft)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Oops with IPMI and ACPI disabled on command line
  2005-05-16 21:33 Oops with IPMI and ACPI disabled on command line Yann Droneaud
  2005-05-16 21:42 ` [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch Yann Droneaud
  2005-05-16 21:47 ` [PATCH 2/2] IPMI and acpi=off|ht : ipmi_si_intf-acpi-disabled Yann Droneaud
@ 2005-05-16 21:49 ` Corey Minyard
  2 siblings, 0 replies; 6+ messages in thread
From: Corey Minyard @ 2005-05-16 21:49 UTC (permalink / raw)
  To: Yann Droneaud; +Cc: Kernel Mailing List, ACPI Developers

Yes, I noticed this recently, too.  It seems to be an ACPI bug, but I'm 
not 100% sure.  Here's my post to lkml:

In 2.6.12-rc4, I added acpi=off to the kernel command line and it 
panic-ed in acpi_get_firmware_table, called from the IPMI driver.

The attached patch fixes the problem, but it still spits out ugly 
"ACPI-0166: *** Error: Invalid address flags 8" errors.  So I doubt the 
patch is right, but maybe it points to something else.

Is it legal to call acpi_get_firmware_table if acpi is off?  If not, how 
can I tell that acpi is off?

-Corey

------------------------------------------------------------------------

Index: linux-2.6.12-rc4/drivers/acpi/tables/tbxfroot.c
===================================================================
--- linux-2.6.12-rc4.orig/drivers/acpi/tables/tbxfroot.c
+++ linux-2.6.12-rc4/drivers/acpi/tables/tbxfroot.c
@@ -313,7 +313,9 @@
 
 
 cleanup:
-	acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
+	if (rsdt_info->pointer)
+		acpi_os_unmap_memory (rsdt_info->pointer,
+			       	      (acpi_size) rsdt_info->pointer->length);
 	ACPI_MEM_FREE (rsdt_info);
 
 	if (header) {



Yann Droneaud wrote:

>Hi,
>
>I encounter an Oops with IPMI modules using acpi=ht|off,
>I fixed it (only the Oops, IPMI is still not available on the system),
>by two patches which follows.
>
>Here is the Oops messages for reference:
>
>May 16 11:18:29 localhost kernel: ipmi message handler version v33
>May 16 11:18:29 localhost kernel: IPMI System Interface driver version v33, KCS version v33, SMIC version v33, BT version v33
>May 16 11:18:29 localhost kernel:     ACPI-0166: *** Error: Invalid address flags 8
>May 16 11:18:29 localhost kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004
>May 16 11:18:29 localhost kernel:  printing eip:
>May 16 11:18:29 localhost kernel: c01ff793
>May 16 11:18:29 localhost kernel: *pde = 3764b001
>May 16 11:18:29 localhost kernel: Oops: 0000 [#1]
>May 16 11:18:29 localhost kernel: SMP
>May 16 11:18:29 localhost kernel: Modules linked in: ipmi_si ipmi_msghandler af_packet floppy bcm5700 isofs nls_base md ehci_
>hcd uhci_hcd usbcore genrtc unix sd_mod qla2300 qla2xxx scsi_transport_fc cciss ata_piix libata
>May 16 11:18:29 localhost kernel: CPU:    0
>May 16 11:18:29 localhost kernel: EIP:    0060:[acpi_get_firmware_table+630/694]    Not tainted VLI
>May 16 11:18:29 localhost kernel: EIP:    0060:[<c01ff793>]    Not tainted VLI
>May 16 11:18:29 localhost kernel: EFLAGS: 00010202   (2.6.11.9-mdvc)
>May 16 11:18:29 localhost kernel: EIP is at acpi_get_firmware_table+0x276/0x2b6
>May 16 11:18:29 localhost kernel: eax: 00000000   ebx: c21602c0   ecx: 00000000   edx: c21602c0
>May 16 11:18:29 localhost ipmi: Starting IPMI failed
>May 16 11:18:29 localhost kernel: esi: 00001001   edi: c02bfc49   ebp: 00000008   esp: f7f11eec
>May 16 11:18:30 localhost kernel: ds: 007b   es: 007b   ss: 0068
>May 16 11:18:30 localhost kernel: Process modprobe (pid: 2413, threadinfo=f7f11000 task=f744d540)
>May 16 11:18:30 localhost kernel: Stack: c0119583 f76bff44 00000001 00000000 00000000 00000000 00000008 7fff32c0
>May 16 11:18:30 localhost kernel:        00000000 f7f11f40 ffffffed 00000000 00000000 00000000 f8b81453 f8b851f9
>May 16 11:18:30 localhost kernel:        00000001 00000008 f7f11f3c 000047d9 00000296 ffffffed f7f11f78 00000000
>May 16 11:18:30 localhost kernel: Call Trace:
>May 16 11:18:30 localhost kernel:  [__wake_up_common+63/94] __wake_up_common+0x3f/0x5e
>May 16 11:18:30 localhost kernel:  [<c0119583>] __wake_up_common+0x3f/0x5e
>May 16 11:18:30 localhost kernel:  [pg0+947508307/1069655040] try_init_acpi+0x41/0x2a9 [ipmi_si]
>May 16 11:18:30 localhost kernel:  [<f8b81453>] try_init_acpi+0x41/0x2a9 [ipmi_si]
>May 16 11:18:30 localhost kernel:  [pg0+947512705/1069655040] init_one_smi+0x4e2/0x57d [ipmi_si]
>May 16 11:18:30 localhost kernel:  [<f8b82581>] init_one_smi+0x4e2/0x57d [ipmi_si]
>May 16 11:18:30 localhost kernel:  [vprintk+312/367] vprintk+0x138/0x16f
>May 16 11:18:30 localhost kernel:  [<c011dc62>] vprintk+0x138/0x16f
>May 16 11:18:30 localhost kernel:  [pg0+944169095/1069655040] init_ipmi_si+0x87/0x22f [ipmi_si]
>May 16 11:18:30 localhost kernel:  [<f8852087>] init_ipmi_si+0x87/0x22f [ipmi_si]
>May 16 11:18:30 localhost kernel:  [sys_init_module+371/531] sys_init_module+0x173/0x213
>May 16 11:18:30 localhost kernel:  [<c01361d9>] sys_init_module+0x173/0x213
>May 16 11:18:30 localhost kernel:  [sysenter_past_esp+82/117] sysenter_past_esp+0x52/0x75
>May 16 11:18:30 localhost kernel:  [<c0102fd5>] sysenter_past_esp+0x52/0x75
>May 16 11:18:30 localhost kernel: Code: ff 83 c4 0c 85 c0 89 c6 75 1e 8b 54 24 10 8b 42 0c 8b 54 24 48 89 02 eb 0f 45 3b 6c 24 0c e9 4e ff ff ff be 06 00 00 00 8b 43 0c <ff> 70 04 50 e8 16 c5 fe ff 53 e8 a7 c4 fe ff 83 c4 0c 83 7c 24
>
>Regards
>
>  
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [ACPI] [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch
  2005-05-16 21:42 ` [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch Yann Droneaud
@ 2005-05-17 23:27   ` Sergio Monteiro Basto
  0 siblings, 0 replies; 6+ messages in thread
From: Sergio Monteiro Basto @ 2005-05-17 23:27 UTC (permalink / raw)
  To: Yann Droneaud; +Cc: Kernel Mailing List, ACPI Developers, Moore, Robert

Hi,
I am CCing to Robert Moore because is about acpi/tables/tbxfroot.c. This
is code from ACPICA
http://developer.intel.com/technology/iapc/acpi/downloads.htm
So we have to wait for the next version of ACPICA, on dmesg we can find
it, for example:  

ACPI: Subsystem revision 20050211

thanks,

On Mon, 2005-05-16 at 23:42 +0200, Yann Droneaud wrote:
> This patch check that rsdt_info->pointer is not NULL before trying to
> unmap ACPI tables, which can happen if acpi_tb_get_rsdt_address() failed.
> 
> In my case, with ipmi_si_intf module and acpi=ht|off parameter, the call
> failed because acpi_gbl_table_flags is not initialised, so the
> address.pointer_type is not setup correctly, leading to message like:
> 
> May 16 11:18:29 localhost kernel:     ACPI-0166: *** Error: Invalid address flags 8
> 
> and rsdt_info->pointer equal to NULL leading to the Oops.
> 
> --- linux-2.6.11.9/drivers/acpi/tables/tbxfroot.c	2005-05-11 18:42:39.000000000 -0400
> +++ linux-2.6.11.9-fixes/drivers/acpi/tables/tbxfroot.c	2005-05-16 16:51:33.115768232 -0400
> @@ -313,7 +313,9 @@ acpi_get_firmware_table (
>  
> 
>  cleanup:
> -	acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
> +	if (rsdt_info->pointer) {
> +		acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
> +	}
>  	ACPI_MEM_FREE (rsdt_info);
>  
>  	if (header) {
> 
> 
> Signed-Off-by: ydroneaud@mandriva.com
> 
-- 
Sérgio M.B.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] [RESENT] Fix Oops in IPMI with acpi=off|ht : ipmi_si_intf-acpi-disabled
  2005-05-16 21:47 ` [PATCH 2/2] IPMI and acpi=off|ht : ipmi_si_intf-acpi-disabled Yann Droneaud
@ 2005-06-07 14:54   ` Yann Droneaud
  0 siblings, 0 replies; 6+ messages in thread
From: Yann Droneaud @ 2005-06-07 14:54 UTC (permalink / raw)
  To: Kernel Mailing List


[The patch was dropped in 2.6.12-rc5-mm2 with bk-acpi although it
wasn't related to it.
This patch is rediffed against 2.6.12-rc6, please apply]

This patch fix ipmi_si_intf to not use ACPI tables if the ACPI
subsystem is disabled, removing a Oops in ACPI layer (which is really
fixed by a previous patch sent by me but not confirmed by ACPI team).

Regards

--- linux-2.6.12-rc6/drivers/char/ipmi/ipmi_si_intf.c	2005-06-07 16:40:11.970072000 +0200
+++ linux-2.6.12-rc6-meuh/drivers/char/ipmi/ipmi_si_intf.c	2005-06-07 16:43:05.797516580 +0200
@@ -1484,6 +1484,9 @@ static int try_init_acpi(int intf_num, s
 	char             *io_type;
 	u8 		 addr_space;
 
+	if (acpi_disabled)
+		return -ENODEV;
+
 	if (acpi_failure)
 		return -ENODEV;
 


-- 
Yann Droneaud <ydroneaud@mandriva.com>
Consulting Engineer
Professional Services
Mandriva http://mandriva.com/ (previously known as Mandrakesoft)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-06-07 15:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-16 21:33 Oops with IPMI and ACPI disabled on command line Yann Droneaud
2005-05-16 21:42 ` [PATCH 1/2] IPMI and acpi=off|ht : acpi-get-firmware-failure.patch Yann Droneaud
2005-05-17 23:27   ` [ACPI] " Sergio Monteiro Basto
2005-05-16 21:47 ` [PATCH 2/2] IPMI and acpi=off|ht : ipmi_si_intf-acpi-disabled Yann Droneaud
2005-06-07 14:54   ` [PATCH] [RESENT] Fix Oops in IPMI with " Yann Droneaud
2005-05-16 21:49 ` Oops with IPMI and ACPI disabled on command line Corey Minyard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox