From: Len Brown Date: Fri, 9 Jan 2009 08:39:43 +0000 (-0500) Subject: Merge branch 'linus' into release X-Git-Tag: v2.6.29-rc1~34^2~2 X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=b2576e1d4408e134e2188c967b1f28af39cd79d4;p=linux-2.6-omap-h63xx.git Merge branch 'linus' into release --- b2576e1d4408e134e2188c967b1f28af39cd79d4 diff --cc arch/x86/kernel/acpi/boot.c index 39ae3d0e3a4,29dc0c89d4a..d37593c2f43 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@@ -1359,18 -1374,18 +1374,29 @@@ static void __init acpi_process_madt(vo "Invalid BIOS MADT, disabling ACPI\n"); disable_acpi(); } + } else { + /* + * ACPI found no MADT, and so ACPI wants UP PIC mode. + * In the event an MPS table was found, forget it. + * Boot with "acpi=off" to use MPS on such a system. + */ + if (smp_found_config) { + printk(KERN_WARNING PREFIX + "No APIC-table, disabling MPS\n"); + smp_found_config = 0; + } } + + /* + * ACPI supports both logical (e.g. Hyper-Threading) and physical + * processors, where MPS only supports physical. + */ + if (acpi_lapic && acpi_ioapic) + printk(KERN_INFO "Using ACPI (MADT) for SMP configuration " + "information\n"); + else if (acpi_lapic) + printk(KERN_INFO "Using ACPI for processor (LAPIC) " + "configuration information\n"); #endif return; } diff --cc drivers/pci/hotplug/pciehp.h index 7072952ea1d,27fd18f019f..db85284ffb6 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h @@@ -217,13 -217,26 +217,25 @@@ struct hpc_ops #ifdef CONFIG_ACPI #include #include -#include #include + extern void __init pciehp_acpi_slot_detection_init(void); + extern int pciehp_acpi_slot_detection_check(struct pci_dev *dev); + + static inline void pciehp_firmware_init(void) + { + pciehp_acpi_slot_detection_init(); + } + static inline int pciehp_get_hp_hw_control_from_firmware(struct pci_dev *dev) { + int retval; u32 flags = (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL); - return acpi_get_hp_hw_control_from_firmware(dev, flags); + retval = acpi_get_hp_hw_control_from_firmware(dev, flags); + if (retval) + return retval; + return pciehp_acpi_slot_detection_check(dev); } static inline int pciehp_get_hp_params_from_firmware(struct pci_dev *dev, diff --cc kernel/power/disk.c index 096fe4899ea,f77d3819ef5..45e8541ab7e --- a/kernel/power/disk.c +++ b/kernel/power/disk.c @@@ -257,9 -256,10 +256,9 @@@ static int create_image(int platform_mo int hibernation_snapshot(int platform_mode) { - int error, ftrace_save; + int error; - /* Free memory before shutting down devices. */ - error = swsusp_shrink_memory(); + error = platform_begin(platform_mode); if (error) return error;