diff options
Diffstat (limited to 'arch/x86/kernel/acpi/boot.c')
| -rw-r--r-- | arch/x86/kernel/acpi/boot.c | 101 | 
1 files changed, 7 insertions, 94 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index a54d714545f..cd40aba6aa9 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -31,6 +31,7 @@  #include <linux/module.h>  #include <linux/dmi.h>  #include <linux/irq.h> +#include <linux/slab.h>  #include <linux/bootmem.h>  #include <linux/ioport.h>  #include <linux/pci.h> @@ -490,6 +491,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)   *  ACPI based hotplug support for CPU   */  #ifdef CONFIG_ACPI_HOTPLUG_CPU +#include <acpi/processor.h>  static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid)  { @@ -567,6 +569,8 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu)  		goto free_new_map;  	} +	acpi_processor_set_pdc(handle); +  	cpu = cpumask_first(new_map);  	acpi_map_cpu2node(handle, cpu, physid); @@ -1293,23 +1297,6 @@ static int __init dmi_disable_acpi(const struct dmi_system_id *d)  }  /* - * Limit ACPI to CPU enumeration for HT - */ -static int __init force_acpi_ht(const struct dmi_system_id *d) -{ -	if (!acpi_force) { -		printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", -		       d->ident); -		disable_acpi(); -		acpi_ht = 1; -	} else { -		printk(KERN_NOTICE -		       "Warning: acpi=force overrules DMI blacklist: acpi=ht\n"); -	} -	return 0; -} - -/*   * Force ignoring BIOS IRQ0 pin2 override   */  static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) @@ -1345,82 +1332,6 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {  	 },  	/* -	 * Boxes that need acpi=ht -	 */ -	{ -	 .callback = force_acpi_ht, -	 .ident = "FSC Primergy T850", -	 .matches = { -		     DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), -		     DMI_MATCH(DMI_PRODUCT_NAME, "PRIMERGY T850"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "HP VISUALIZE NT Workstation", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), -		     DMI_MATCH(DMI_PRODUCT_NAME, "HP VISUALIZE NT Workstation"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "Compaq Workstation W8000", -	 .matches = { -		     DMI_MATCH(DMI_SYS_VENDOR, "Compaq"), -		     DMI_MATCH(DMI_PRODUCT_NAME, "Workstation W8000"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "ASUS CUR-DLS", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), -		     DMI_MATCH(DMI_BOARD_NAME, "CUR-DLS"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "ABIT i440BX-W83977", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "ABIT <http://www.abit.com>"), -		     DMI_MATCH(DMI_BOARD_NAME, "i440BX-W83977 (BP6)"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "IBM Bladecenter", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), -		     DMI_MATCH(DMI_BOARD_NAME, "IBM eServer BladeCenter HS20"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "IBM eServer xSeries 360", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), -		     DMI_MATCH(DMI_BOARD_NAME, "eServer xSeries 360"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "IBM eserver xSeries 330", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), -		     DMI_MATCH(DMI_BOARD_NAME, "eserver xSeries 330"), -		     }, -	 }, -	{ -	 .callback = force_acpi_ht, -	 .ident = "IBM eserver xSeries 440", -	 .matches = { -		     DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), -		     DMI_MATCH(DMI_PRODUCT_NAME, "eserver xSeries 440"), -		     }, -	 }, - -	/*  	 * Boxes that need ACPI PCI IRQ routing disabled  	 */  	{ @@ -1652,8 +1563,10 @@ static int __init parse_acpi(char *arg)  	}  	/* Limit ACPI just to boot-time to enable HT */  	else if (strcmp(arg, "ht") == 0) { -		if (!acpi_force) +		if (!acpi_force) { +			printk(KERN_WARNING "acpi=ht will be removed in Linux-2.6.35\n");  			disable_acpi(); +		}  		acpi_ht = 1;  	}  	/* acpi=rsdt use RSDT instead of XSDT */  |