From: Len Brown This patch updates 2.6.0-test5 to the current ACPI in 2.4.22-pre5 If nothing explodes, I'll be releasing it to Linus shortly via BK. (then I'll send a patch with the upcoming linux-acpi-test-2.6.0 changes) The thing most 2.6 users will notice is that the CONFIG_ACPI_HT_ONLY scheme has been returned to the one used in 2.4.22 that people liked better; but several key platform fixes are included too. cheers, -Len It is also available here: http://linux-acpi.bkbits.net:8080/linux-acpi-release-2.6.0 and here: http://prdownloads.sourceforge.net/acpi/acpi-20030916-2.6.0-test5.diff?download ChangeSet@1.1315.7.7, 2003-09-18 12:01:37-07:00, len.brown@intel.com ACPI_CA_VERSION 0x20030916 ChangeSet@1.1315.7.6, 2003-09-18 11:59:12-07:00, len.brown@intel.com remove ASUS A7V BIOS version 1011 from blacklist (Eric Valette) ChangeSet@1.1315.7.5, 2003-09-18 11:41:51-07:00, len.brown@intel.com IBM ThinkPAD T30/T40 oops (David Shaohua Li) https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=98849 ChangeSet@1.1315.7.4, 2003-09-18 11:29:42-07:00, len.brown@intel.com Extended IRQ resource type for nForce (Andrew de Quincey) ChangeSet@1.1315.7.3, 2003-09-18 10:58:41-07:00, len.brown@intel.com [ACPI] Handle systems that specify non-ACPI-compliant SCI over-rides (Jun Naka jima) ChangeSet@1.1315.7.2, 2003-09-18 10:54:11-07:00, len.brown@intel.com Handle BIOS with _CRS that fails (Jun Nakajima) ChangeSet@1.1315.7.1, 2003-09-18 00:52:06-04:00, len.brown@intel.com [ACPI] merge 2.4.22 cleanup into 2.6 Restores CONFIG_ACPI_HT_ONLY as an alternative to CONFIG_ACPI rather than a prerequisite ChangeSet@1.1130.1.2, 2003-09-15 00:34:00-04:00, len.brown@intel.com sync 2.4.22 changes into 2.6 Note that this restores CONFIG_ACPI_HT_ONLY as a sub-set of CONFIG_ACPI rather than a dependency. arch/i386/kernel/acpi/boot.c | 10 +-- arch/i386/kernel/dmi_scan.c | 10 +-- arch/i386/kernel/mpparse.c | 31 +++++------ arch/i386/kernel/setup.c | 2 drivers/acpi/Kconfig | 108 ++++++++++++++++++++++------------------- drivers/acpi/Makefile | 2 drivers/acpi/ec.c | 7 +- drivers/acpi/events/evregion.c | 6 +- drivers/acpi/pci_link.c | 74 +++++++++++++++++++++------- include/acpi/acconfig.h | 2 include/linux/acpi.h | 6 +- init/do_mounts.h | 1 12 files changed, 155 insertions(+), 104 deletions(-) diff -puN arch/i386/kernel/acpi/boot.c~acpi-20030916 arch/i386/kernel/acpi/boot.c --- 25/arch/i386/kernel/acpi/boot.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/arch/i386/kernel/acpi/boot.c 2003-09-26 22:15:04.000000000 -0700 @@ -183,8 +183,7 @@ acpi_parse_lapic_nmi ( #endif /*CONFIG_X86_LOCAL_APIC*/ -#ifdef CONFIG_X86_IO_APIC - +#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER) static int __init acpi_parse_ioapic ( @@ -368,7 +367,6 @@ acpi_boot_init (void) result = acpi_table_parse(ACPI_APIC, acpi_parse_madt); if (!result) { - printk(KERN_WARNING PREFIX "MADT not present\n"); return 0; } else if (result < 0) { @@ -416,7 +414,7 @@ acpi_boot_init (void) #endif /*CONFIG_X86_LOCAL_APIC*/ -#ifdef CONFIG_X86_IO_APIC +#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER) /* * I/O APIC @@ -472,7 +470,8 @@ acpi_boot_init (void) acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; acpi_ioapic = 1; -#endif /*CONFIG_X86_IO_APIC*/ + +#endif /* CONFIG_X86_IO_APIC && CONFIG_ACPI_INTERPRETER */ #ifdef CONFIG_X86_LOCAL_APIC if (acpi_lapic && acpi_ioapic) { @@ -480,6 +479,7 @@ acpi_boot_init (void) clustered_apic_check(); } #endif + #ifdef CONFIG_HPET_TIMER acpi_table_parse(ACPI_HPET, acpi_parse_hpet); #endif diff -puN arch/i386/kernel/dmi_scan.c~acpi-20030916 arch/i386/kernel/dmi_scan.c --- 25/arch/i386/kernel/dmi_scan.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/arch/i386/kernel/dmi_scan.c 2003-09-26 22:15:04.000000000 -0700 @@ -939,11 +939,6 @@ static __initdata struct dmi_blacklist d MATCH(DMI_BOARD_NAME, "CUR-DLS"), NO_MATCH, NO_MATCH }}, - { force_acpi_ht, "ASUS A7V", { - MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC"), - MATCH(DMI_BOARD_NAME, ""), - MATCH(DMI_BIOS_VERSION, "ASUS A7V ACPI BIOS Revision 1011"), NO_MATCH }}, - { force_acpi_ht, "ABIT i440BX-W83977", { MATCH(DMI_BOARD_VENDOR, "ABIT "), MATCH(DMI_BOARD_NAME, "i440BX-W83977 (BP6)"), @@ -978,7 +973,10 @@ static __initdata struct dmi_blacklist d { disable_acpi_pci, "ASUS A7V", { MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC"), MATCH(DMI_BOARD_NAME, ""), - MATCH(DMI_BIOS_VERSION, "ASUS A7V ACPI BIOS Revision 1007"), NO_MATCH }}, + /* newer BIOS, Revision 1011, does work */ + MATCH(DMI_BIOS_VERSION, "ASUS A7V ACPI BIOS Revision 1007"), + NO_MATCH }}, + #endif { NULL, } diff -puN arch/i386/kernel/mpparse.c~acpi-20030916 arch/i386/kernel/mpparse.c --- 25/arch/i386/kernel/mpparse.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/arch/i386/kernel/mpparse.c 2003-09-26 22:15:04.000000000 -0700 @@ -830,7 +830,7 @@ void __init mp_register_lapic ( MP_processor_info(&processor); } -#ifdef CONFIG_X86_IO_APIC +#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER) #define MP_ISA_BUS 0 #define MP_MAX_IOAPIC_PIN 127 @@ -1019,10 +1019,6 @@ void __init mp_config_acpi_legacy_irqs ( } } -#ifdef CONFIG_ACPI - -/* Ensure the ACPI SCI interrupt level is active low, edge-triggered */ - extern FADT_DESCRIPTOR acpi_fadt; void __init mp_config_ioapic_for_sci(int irq) @@ -1031,6 +1027,7 @@ void __init mp_config_ioapic_for_sci(int int ioapic_pin; struct acpi_table_madt *madt; struct acpi_table_int_src_ovr *entry = NULL; + acpi_interrupt_flags flags; void *madt_end; acpi_status status; @@ -1054,15 +1051,12 @@ void __init mp_config_ioapic_for_sci(int * See the note at the end of ACPI 2.0b section * 5.2.10.8 for what this is about. */ - if (entry->bus_irq != entry->global_irq) { - acpi_fadt.sci_int = entry->global_irq; - irq = entry->global_irq; - break; - } - else - return; + flags = entry->flags; + acpi_fadt.sci_int = entry->global_irq; + irq = entry->global_irq; + break; } - + entry = (struct acpi_table_int_src_ovr *) ((unsigned long) entry + entry->header.length); } @@ -1072,9 +1066,14 @@ void __init mp_config_ioapic_for_sci(int ioapic_pin = irq - mp_ioapic_routing[ioapic].irq_start; - io_apic_set_pci_routing(ioapic, ioapic_pin, irq, 1, 1); // Active low, level triggered + if (flags.polarity == 0) + flags.polarity = 0x3; /* Active low */ + if (flags.trigger == 0) + flags.trigger = 0x3; /* Level-triggered */ + + io_apic_set_pci_routing(ioapic, ioapic_pin, irq, + (flags.trigger >> 1) , (flags.polarity >> 1)); } -#endif /* CONFIG_ACPI */ #ifdef CONFIG_ACPI_PCI @@ -1154,5 +1153,5 @@ void __init mp_parse_prt (void) } #endif /*CONFIG_ACPI_PCI*/ -#endif /* CONFIG_X86_IO_APIC */ +#endif /*CONFIG_X86_IO_APIC && CONFIG_ACPI_INTERPRETER*/ #endif /*CONFIG_ACPI_BOOT*/ diff -puN arch/i386/kernel/setup.c~acpi-20030916 arch/i386/kernel/setup.c --- 25/arch/i386/kernel/setup.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/arch/i386/kernel/setup.c 2003-09-26 22:15:04.000000000 -0700 @@ -64,7 +64,7 @@ struct cpuinfo_x86 boot_cpu_data = { 0, unsigned long mmu_cr4_features; EXPORT_SYMBOL_GPL(mmu_cr4_features); -#ifdef CONFIG_ACPI +#ifdef CONFIG_ACPI_INTERPRETER int acpi_disabled __initdata = 0; #else int acpi_disabled __initdata = 1; diff -puN drivers/acpi/ec.c~acpi-20030916 drivers/acpi/ec.c --- 25/drivers/acpi/ec.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/drivers/acpi/ec.c 2003-09-26 22:15:04.000000000 -0700 @@ -32,7 +32,7 @@ #include #include #include - +#include #define _COMPONENT ACPI_EC_COMPONENT ACPI_MODULE_NAME ("acpi_ec") @@ -412,7 +412,10 @@ acpi_ec_space_setup ( * The EC object is in the handler context and is needed * when calling the acpi_ec_space_handler. */ - *return_context = handler_context; + if(function == ACPI_REGION_DEACTIVATE) + *return_context = NULL; + else + *return_context = handler_context; return AE_OK; } diff -puN drivers/acpi/events/evregion.c~acpi-20030916 drivers/acpi/events/evregion.c --- 25/drivers/acpi/events/evregion.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/drivers/acpi/events/evregion.c 2003-09-26 22:15:04.000000000 -0700 @@ -382,7 +382,7 @@ acpi_ev_detach_region( union acpi_operand_object *obj_desc; union acpi_operand_object **last_obj_ptr; acpi_adr_space_setup region_setup; - void *region_context; + void **region_context; union acpi_operand_object *region_obj2; acpi_status status; @@ -394,7 +394,7 @@ acpi_ev_detach_region( if (!region_obj2) { return_VOID; } - region_context = region_obj2->extra.region_context; + region_context = ®ion_obj2->extra.region_context; /* Get the address handler from the region object */ @@ -450,7 +450,7 @@ acpi_ev_detach_region( region_setup = handler_obj->address_space.setup; status = region_setup (region_obj, ACPI_REGION_DEACTIVATE, - handler_obj->address_space.context, ®ion_context); + handler_obj->address_space.context, region_context); /* Init routine may fail, Just ignore errors */ diff -puN drivers/acpi/Kconfig~acpi-20030916 drivers/acpi/Kconfig --- 25/drivers/acpi/Kconfig~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/drivers/acpi/Kconfig 2003-09-26 22:15:04.000000000 -0700 @@ -3,34 +3,14 @@ # menu "ACPI (Advanced Configuration and Power Interface) Support" - -config ACPI_HT - bool "ACPI Processor Enumeration for HT" - depends on X86 - default y - ---help--- - ACPI enumerates both logical (a.k.a. Hyper-Threaded -- HT) - and physical processors. It is designed to obsolete several older - specifications, including the MultiProcessor Specification (MPS), - which supported only physical processors. - - CONFIG_ACPI_HT includes the minimal ACPI boot-time code - necessary to enumerate logical processors and enable HT. - - CONFIG_ACPI includes CONFIG_ACPI_HT, plus IO APIC enumeration, - and the hooks to run the ACPI AML interpreter for run-time events. - - When CONFIG_ACPI is selected, the command-line option "acpi=ht" - is available to run just the ACPI boot-time code -- just as if - only CONFIG_ACPI_HT were selected. - - Note that "acpi=off" can be used to disable all ACPI code in the kernel. - -config ACPI - bool "Full ACPI Support" depends on !X86_VISWS depends on !IA64_HP_SIM - depends on IA64 || (X86 || ACPI_HT) + depends on IA64 || X86 + +config ACPI + bool "ACPI Support" + depends on IA64 || X86 + default y ---help--- Advanced Configuration and Power Interface (ACPI) support for @@ -60,14 +40,47 @@ config ACPI available at: +config ACPI_HT_ONLY + bool "Restrict ACPI to minimum boot code to enable HT" + depends on X86 + depends on ACPI + depends on SMP + default n + ---help--- + ACPI enumerates both logical (a.k.a. Hyper-Threaded -- HT) + and physical processors. It is designed to obsolete several older + specifications, including the MultiProcessor Specification (MPS), + which supported only physical processors. + + CONFIG_ACPI_HT_ONLY includes just the minimal ACPI boot-time code + necessary to enumerate logical processors and enable HT. + + CONFIG_ACPI includes this, plus IO APIC enumeration, + and the hooks to run the ACPI AML interpreter for run-time events. + + When CONFIG_ACPI is selected, the command-line option "acpi=ht" + is available to run just the ACPI boot-time code -- just as if + only CONFIG_ACPI_HT_ONLY were selected. + + Note that "acpi=off" can be used to disable all ACPI code in the kernel. + + config ACPI_BOOT bool - depends on ACPI || ACPI_HT + depends on ACPI + default y + +config ACPI_INTERPRETER + bool + depends on ACPI + depends on !IA64_SGI_SN + depends on !ACPI_HT_ONLY default y config ACPI_SLEEP bool "Sleep States (EXPERIMENTAL)" depends on X86 && ACPI + depends on ACPI_INTERPRETER depends on EXPERIMENTAL && PM default y ---help--- @@ -93,7 +106,8 @@ config ACPI_SLEEP_PROC_FS config ACPI_AC tristate "AC Adapter" - depends on X86 && ACPI + depends on X86 + depends on ACPI_INTERPRETER default m help This driver adds support for the AC Adapter object, which indicates @@ -102,7 +116,8 @@ config ACPI_AC config ACPI_BATTERY tristate "Battery" - depends on X86 && ACPI + depends on X86 + depends on ACPI_INTERPRETER default m help This driver adds support for battery information through @@ -111,7 +126,7 @@ config ACPI_BATTERY config ACPI_BUTTON tristate "Button" - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default m help @@ -123,7 +138,7 @@ config ACPI_BUTTON config ACPI_FAN tristate "Fan" - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default m help @@ -132,7 +147,7 @@ config ACPI_FAN config ACPI_PROCESSOR tristate "Processor" - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default m help @@ -152,14 +167,15 @@ config ACPI_THERMAL config ACPI_NUMA bool "NUMA support" - depends on ACPI + depends on ACPI_INTERPRETER depends on NUMA depends on !X86_64 default y if IA64_GENERIC || IA64_SGI_SN2 config ACPI_ASUS tristate "ASUS/Medion Laptop Extras" - depends on X86 && ACPI + depends on X86 + depends on ACPI_INTERPRETER default m ---help--- This driver provides support for extra features of ACPI-compatible @@ -185,7 +201,8 @@ config ACPI_ASUS config ACPI_TOSHIBA tristate "Toshiba Laptop Extras" - depends on X86 && ACPI + depends on X86 + depends on ACPI_INTERPRETER default m ---help--- This driver adds support for access to certain system settings @@ -212,7 +229,7 @@ config ACPI_TOSHIBA config ACPI_DEBUG bool "Debug Statements" - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default n help @@ -222,19 +239,14 @@ config ACPI_DEBUG config ACPI_BUS bool - depends on ACPI - depends on !IA64_SGI_SN - default y - -config ACPI_INTERPRETER - bool - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default y config ACPI_EC bool - depends on X86 && ACPI + depends on X86 + depends on ACPI_INTERPRETER default y help This driver is required on some systems for the proper operation of @@ -243,19 +255,19 @@ config ACPI_EC config ACPI_POWER bool - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default y config ACPI_PCI bool - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default PCI config ACPI_SYSTEM bool - depends on ACPI + depends on ACPI_INTERPRETER depends on !IA64_SGI_SN default y help @@ -264,7 +276,7 @@ config ACPI_SYSTEM config ACPI_EFI bool - depends on ACPI + depends on ACPI_INTERPRETER depends on IA64 default y diff -puN drivers/acpi/Makefile~acpi-20030916 drivers/acpi/Makefile --- 25/drivers/acpi/Makefile~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/drivers/acpi/Makefile 2003-09-26 22:15:04.000000000 -0700 @@ -18,7 +18,7 @@ obj-$(CONFIG_ACPI) := acpi_ksyms.o # ACPI Boot-Time Table Parsing # obj-$(CONFIG_ACPI_BOOT) += tables.o -obj-$(CONFIG_ACPI) += blacklist.o +obj-$(CONFIG_ACPI_INTERPRETER) += blacklist.o # # ACPI Core Subsystem (Interpreter) diff -puN drivers/acpi/pci_link.c~acpi-20030916 drivers/acpi/pci_link.c --- 25/drivers/acpi/pci_link.c~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/drivers/acpi/pci_link.c 2003-09-26 22:15:04.000000000 -0700 @@ -220,7 +220,6 @@ acpi_pci_link_check_current ( return AE_CTRL_TERMINATE; } - static int acpi_pci_link_get_current ( struct acpi_pci_link *link) @@ -279,6 +278,28 @@ end: return_VALUE(result); } +static int +acpi_pci_link_try_get_current ( + struct acpi_pci_link *link, + int irq) +{ + int result; + + ACPI_FUNCTION_TRACE("acpi_pci_link_try_get_current"); + + result = acpi_pci_link_get_current(link); + if (result && link->irq.active) { + return_VALUE(result); + } + + if (!link->irq.active) { + ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "No active IRQ resource found\n")); + printk(KERN_WARNING "_CRS returns NULL! Using IRQ %d for device (%s [%s]).\n", irq, acpi_device_name(link->device), acpi_device_bid(link->device)); + link->irq.active = irq; + } + + return 0; +} static int acpi_pci_link_set ( @@ -294,6 +315,7 @@ acpi_pci_link_set ( struct acpi_buffer buffer = {sizeof(resource)+1, &resource}; int i = 0; int valid = 0; + int resource_type = 0; ACPI_FUNCTION_TRACE("acpi_pci_link_set"); @@ -317,20 +339,32 @@ acpi_pci_link_set ( } } + /* If IRQ<=15, first try with a "normal" IRQ descriptor. If that fails, try with + * an extended one */ + if (irq <= 15) { + resource_type = ACPI_RSTYPE_IRQ; + } else { + resource_type = ACPI_RSTYPE_EXT_IRQ; + } + +retry_programming: + memset(&resource, 0, sizeof(resource)); /* NOTE: PCI interrupts are always level / active_low / shared. But not all interrupts > 15 are PCI interrupts. Rely on the ACPI IRQ definition for parameters */ - if (irq <= 15) { + switch(resource_type) { + case ACPI_RSTYPE_IRQ: resource.res.id = ACPI_RSTYPE_IRQ; resource.res.length = sizeof(struct acpi_resource); resource.res.data.irq.edge_level = link->irq.edge_level; resource.res.data.irq.active_high_low = link->irq.active_high_low; resource.res.data.irq.number_of_interrupts = 1; resource.res.data.irq.interrupts[0] = irq; - } - else { + break; + + case ACPI_RSTYPE_EXT_IRQ: resource.res.id = ACPI_RSTYPE_EXT_IRQ; resource.res.length = sizeof(struct acpi_resource); resource.res.data.extended_irq.producer_consumer = ACPI_CONSUMER; @@ -339,11 +373,21 @@ acpi_pci_link_set ( resource.res.data.extended_irq.number_of_interrupts = 1; resource.res.data.extended_irq.interrupts[0] = irq; /* ignore resource_source, it's optional */ + break; } resource.end.id = ACPI_RSTYPE_END_TAG; /* Attempt to set the resource */ status = acpi_set_current_resources(link->handle, &buffer); + + /* if we failed and IRQ <= 15, try again with an extended descriptor */ + if (ACPI_FAILURE(status) && (resource_type == ACPI_RSTYPE_IRQ)) { + resource_type = ACPI_RSTYPE_EXT_IRQ; + printk(PREFIX "Retrying with extended IRQ descriptor\n"); + goto retry_programming; + } + + /* check for total failure */ if (ACPI_FAILURE(status)) { ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error evaluating _SRS\n")); return_VALUE(-ENODEV); @@ -361,7 +405,7 @@ acpi_pci_link_set ( } /* Make sure the active IRQ is the one we requested. */ - result = acpi_pci_link_get_current(link); + result = acpi_pci_link_try_get_current(link, irq); if (result) { return_VALUE(result); } @@ -458,14 +502,14 @@ static int acpi_pci_link_allocate(struct irq = link->irq.possible[0]; } - /* - * Select the best IRQ. This is done in reverse to promote - * the use of IRQs 9, 10, 11, and >15. - */ - for (i=(link->irq.possible_count-1); i>0; i--) { - if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) - irq = link->irq.possible[i]; - } + /* + * Select the best IRQ. This is done in reverse to promote + * the use of IRQs 9, 10, 11, and >15. + */ + for (i=(link->irq.possible_count-1); i>0; i--) { + if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) + irq = link->irq.possible[i]; + } /* Attempt to enable the link device at this IRQ. */ if (acpi_pci_link_set(link, irq)) { @@ -574,10 +618,6 @@ acpi_pci_link_add ( else printk(" %d", link->irq.possible[i]); } - if (!link->irq.active) - printk(", disabled"); - else if (!found) - printk(", enabled at IRQ %d", link->irq.active); printk(")\n"); /* TBD: Acquire/release lock */ diff -puN include/acpi/acconfig.h~acpi-20030916 include/acpi/acconfig.h --- 25/include/acpi/acconfig.h~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/include/acpi/acconfig.h 2003-09-26 22:15:04.000000000 -0700 @@ -64,7 +64,7 @@ /* Version string */ -#define ACPI_CA_VERSION 0x20030813 +#define ACPI_CA_VERSION 0x20030916 /* Maximum objects in the various object caches */ diff -puN include/linux/acpi.h~acpi-20030916 include/linux/acpi.h --- 25/include/linux/acpi.h~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/include/linux/acpi.h 2003-09-26 22:15:04.000000000 -0700 @@ -424,17 +424,17 @@ int ec_write(u8 addr, u8 val); #endif /*CONFIG_ACPI_EC*/ -#ifdef CONFIG_ACPI +#ifdef CONFIG_ACPI_INTERPRETER int acpi_blacklisted(void); -#else +#else /*!CONFIG_ACPI_INTERPRETER*/ static inline int acpi_blacklisted(void) { return 0; } -#endif /*CONFIG_ACPI*/ +#endif /*!CONFIG_ACPI_INTERPRETER*/ #endif /*_LINUX_ACPI_H*/ diff -puN init/do_mounts.h~acpi-20030916 init/do_mounts.h --- 25/init/do_mounts.h~acpi-20030916 2003-09-26 22:15:04.000000000 -0700 +++ 25-akpm/init/do_mounts.h 2003-09-26 22:15:04.000000000 -0700 @@ -104,4 +104,3 @@ void md_run_setup(void); static inline void md_run_setup(void) {} #endif - _