Re: WARNING: at arch/x86/kernel/apic/apic.c:249native_apic_write_dummy

From: Cyrill Gorcunov
Date: Wed Jun 17 2009 - 12:37:31 EST


[Vegard Nossum - Wed, Jun 17, 2009 at 06:33:31PM +0200]
| 2009/6/17 Cyrill Gorcunov <gorcunov@xxxxxxxxx>:
| > Vegard, could you test the patch?
| >
| >        -- Cyrill
| > ---
| >
| > If we have apic disabled we don't even switch to APIC mode and do not
| > calling for connect_bsp_APIC. Though on SMP compiled kernel the
| > native_machine_shutdown does try to write the apic register anyway.
| > Fix it with explicit check if we really should touch apic registers.
| >
| > Reported-by: Vegard Nossum <vegard.nossum@xxxxxxxxx>
| > Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
| > ---
| >  arch/x86/kernel/apic/io_apic.c |    4 +++-
| >  1 file changed, 3 insertions(+), 1 deletion(-)
| >
| > Index: linux-2.6.git/arch/x86/kernel/apic/io_apic.c
| > =====================================================================
| > --- linux-2.6.git.orig/arch/x86/kernel/apic/io_apic.c
| > +++ linux-2.6.git/arch/x86/kernel/apic/io_apic.c
| > @@ -2003,7 +2003,9 @@ void disable_IO_APIC(void)
| >        /*
| >         * Use virtual wire A mode when interrupt remapping is enabled.
| >         */
| > -       disconnect_bsp_APIC(!intr_remapping_enabled && ioapic_i8259.pin != -1);
| > +       if (cpu_has_apic)
| > +               disconnect_bsp_APIC(!intr_remapping_enabled &&
| > +                               ioapic_i8259.pin != -1);
| >  }
| >
| >  #ifdef CONFIG_X86_32
| >
|
| Seems to work here:
|
| [ 317.596743] ACPI: Preparing to enter system sleep state S5
| [ 317.633421] Disabling non-boot CPUs ...
| [ 317.637493] Power down.
| [ 317.638305] acpi_power_off called
|
| and no warning.
|
| Thanks!
|
|
| Vegard
|

Thanks for testing Vegard! I'll recheck again and send
properly formed patch a bit later.

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