Hi Ingo, On Friday, 11 of July 2008, Rafael J. Wysocki wrote: > On Friday, 11 of July 2008, Ingo Molnar wrote: > > > > * Rafael J. Wysocki <rjw@xxxxxxx> wrote: [--snip--] > > Well, it turns out that linux-next from today doesn't boot on my box too > (64-bit) and I don't see anything obviously suspicious. Bisection time. I have identified the source of the breakage on my box, but I don't really think it's the same problem that Edwin is observing. Namely, it turns out that some code in arch/x86/kernel/acpi/boot.c, as in today's linux-next, doesn't really make sense, because we have two conflicting DMA-based quirks in there for the same set of boxes (HP nx6325 and nx6125) and one of them actually breaks my box. I have reported that already, but it probably got lost somewhere. Below is a patch that fixes things for me, on top of today's linux-next. Please apply. Thanks, Rafael --- Remove some code that breaks my HP nx6325 from arch/x86/kernel/acpi/boot.c. Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> --- arch/x86/kernel/acpi/boot.c | 47 -------------------------------------------- 1 file changed, 47 deletions(-) Index: linux-next/arch/x86/kernel/acpi/boot.c =================================================================== --- linux-next.orig/arch/x86/kernel/acpi/boot.c +++ linux-next/arch/x86/kernel/acpi/boot.c @@ -84,8 +84,6 @@ int acpi_lapic; int acpi_ioapic; int acpi_strict; -static int disable_irq0_through_ioapic __initdata; - u8 acpi_sci_flags __initdata; int acpi_sci_override_gsi __initdata; int acpi_skip_timer_override __initdata; @@ -982,10 +980,6 @@ void __init mp_override_legacy_irq(u8 bu int pin; struct mp_config_intsrc mp_irq; - /* Skip the 8254 timer interrupt (IRQ 0) if requested. */ - if (bus_irq == 0 && disable_irq0_through_ioapic) - return; - /* * Convert 'gsi' to 'ioapic.pin'. */ @@ -1052,10 +1046,6 @@ void __init mp_config_acpi_legacy_irqs(v for (i = 0; i < 16; i++) { int idx; - /* Skip the 8254 timer interrupt (IRQ 0) if requested. */ - if (i == 0 && disable_irq0_through_ioapic) - continue; - for (idx = 0; idx < mp_irq_entries; idx++) { struct mp_config_intsrc *irq = mp_irqs + idx; @@ -1413,17 +1403,6 @@ static int __init force_acpi_ht(const st } /* - * Don't register any I/O APIC entries for the 8254 timer IRQ. - */ -static int __init -dmi_disable_irq0_through_ioapic(const struct dmi_system_id *d) -{ - pr_notice("%s detected: disabling IRQ 0 through I/O APIC\n", d->ident); - disable_irq0_through_ioapic = 1; - return 0; -} - -/* * Force ignoring BIOS IRQ0 pin2 override */ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) @@ -1608,32 +1587,6 @@ static struct dmi_system_id __initdata a * is enabled. This input is incorrectly designated the * ISA IRQ 0 via an interrupt source override even though * it is wired to the output of the master 8259A and INTIN0 - * is not connected at all. Abandon any attempts to route - * IRQ 0 through the I/O APIC therefore. - */ - { - .callback = dmi_disable_irq0_through_ioapic, - .ident = "HP NX6125 laptop", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), - DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6125"), - }, - }, - { - .callback = dmi_disable_irq0_through_ioapic, - .ident = "HP NX6325 laptop", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), - DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"), - }, - }, - /* - * HP laptops which use a DSDT reporting as HP/SB400/10000, - * which includes some code which overrides all temperature - * trip points to 16C if the INTIN2 input of the I/O APIC - * is enabled. This input is incorrectly designated the - * ISA IRQ 0 via an interrupt source override even though - * it is wired to the output of the master 8259A and INTIN0 * is not connected at all. Force ignoring BIOS IRQ0 pin2 * override in that cases. */ -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html