Re: ACPI WARNING: at drivers/acpi/tables/tbfadt.c:348 acpi_tb_create_local_fadt+0x147/0x2f4()

From: Andrew Paprocki
Date: Wed Jul 16 2008 - 23:35:21 EST


On Wed, Jul 16, 2008 at 10:29 PM, Andrew Paprocki <andrew@xxxxxxxxxxx> wrote:
> I just saw this for the first time using a kernel built from the git
> head. This is all the ACPI related printk info around the warning. If
> more information is needed to figure out what this is, please let me
> know.
>
> [ 0.000000] ACPI: RSDP 000F7CE0, 0024 (r2 RS690 )
> [ 0.000000] ACPI: XSDT 3DFE30C0, 004C (r1 RS690 AWRDACPI 42302E31 AWRD 0)
> [ 0.000000] ACPI: FACP 3DFE7400, 00F4 (r3 RS690 AWRDACPI 42302E31 AWRD 0)
> [ 0.000000] ------------[ cut here ]------------
> [ 0.000000] WARNING: at drivers/acpi/tables/tbfadt.c:348
> acpi_tb_create_local_fadt+0x147/0x2f4()
> [ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.26 #1
> [ 0.000000] [<c01171bb>] warn_on_slowpath+0x3b/0x74
> [ 0.000000] [<c01ede36>] acpi_os_vprintf+0x1d/0x20
> [ 0.000000] [<c01ede46>] acpi_os_printf+0xd/0xe
> [ 0.000000] [<c020120e>] acpi_ut_info+0x21/0x24
> [ 0.000000] [<c0200016>] acpi_tb_print_table_header+0x96/0x9c
> [ 0.000000] [<c020032b>] acpi_tb_create_local_fadt+0x147/0x2f4
> [ 0.000000] [<c0200508>] acpi_tb_parse_fadt+0x30/0x6c
> [ 0.000000] [<c03eeda5>] acpi_tb_parse_root_table+0x264/0x2ab
> [ 0.000000] [<c03ee469>] acpi_table_init+0x14/0x6d
> [ 0.000000] [<c03e3b28>] acpi_boot_table_init+0x2b/0xc3
> [ 0.000000] [<c03dfcf4>] setup_arch+0x3fa/0x557
> [ 0.000000] [<c03de7a9>] start_kernel+0x41/0x1ec
> [ 0.000000] =======================
> [ 0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---
> [ 0.000000] ACPI: DSDT 3DFE3240, 4146 (r1 RS690 AWRDACPI 1000
> MSFT 100000E)
> [ 0.000000] ACPI: FACS 3DFE0000, 0040
> [ 0.000000] ACPI: SSDT 3DFE7600, 0136 (r1 PTLTD POWERNOW 1 LTP 1)
> [ 0.000000] ACPI: HPET 3DFE7780, 0038 (r1 RS690 AWRDACPI 42302E31 AWRD 98)
> [ 0.000000] ACPI: MCFG 3DFE7800, 003C (r1 RS690 AWRDACPI 42302E31 AWRD 0)
> [ 0.000000] ACPI: APIC 3DFE7540, 0068 (r1 RS690 AWRDACPI 42302E31 AWRD 0)
>

This most definitely broke because of:

commit 01a5bba576b9364b33f61f0cd9fa70c2cf5535e2
Author: Jan Beulich <jbeulich@xxxxxxxxxx>
Date: Wed Jul 16 23:27:08 2008 +0200

Fix FADT parsing

I added printk()s and this is what is reported here:

printk(KERN_INFO
"xpm1a_event_block bit_width=%d pm1_register_length=%d\n",
acpi_gbl_FADT.xpm1a_event_block.bit_width, pm1_register_length);
acpi_tb_init_generic_address(&acpi_gbl_xpm1a_enable,
pm1_register_length,
(acpi_gbl_FADT.xpm1a_event_block.address +
pm1_register_length));

[ 0.000000] xpm1a_event_block bit_width=8 pm1_register_length=0

The bit width is not % 16, so the following patch addition a few lines
earlier fails:

WARN_ON(ACPI_MOD_16(acpi_gbl_FADT.xpm1a_event_block.bit_width));

Also, I noticed that the patch changed the definition of
acpi_tb_init_generic_address to name the parameter byte_width instead
of bit_width. The declaration at the top of the file and the
documentation still refer to it as bit_width.

I also added printk()s to the first call to
acpi_tb_init_generic_address ~ line 326 and the lengths passed to the
function at that point are:
[ 0.000000] fadt_info_table[i].length=88
[ 0.000000] fadt_info_table[i].length=89
[ 0.000000] fadt_info_table[i].length=93
--
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/