Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2004-02-13 12:40:35 -0500
committerLen Brown <len.brown@intel.com>2004-02-13 12:40:35 -0500
commitbb49d1d1636a84a4c9abf194b4487a14e7c3a905 (patch)
tree2b6b7c9e7c646e1ea5fb9abebd000767c8583e5c
parenta394cc86eebd499cf264c7c417718063c28bee23 (diff)
parentf6497de6fa05885c3bb7fa63738f1fdd452ae647 (diff)
merge
-rw-r--r--arch/i386/Kconfig6
-rw-r--r--arch/i386/kernel/acpi/boot.c4
-rw-r--r--arch/i386/kernel/mpparse.c11
-rw-r--r--arch/x86_64/kernel/acpi/boot.c5
-rw-r--r--arch/x86_64/kernel/mpparse.c13
-rw-r--r--drivers/acpi/Kconfig2
-rw-r--r--drivers/acpi/numa.c2
-rw-r--r--drivers/acpi/processor.c6
8 files changed, 30 insertions, 19 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index e578b0cd49f5..52e6730c4d64 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -701,7 +701,7 @@ config X86_PAE
# Common NUMA Features
config NUMA
bool "Numa Memory Allocation Support"
- depends on SMP && HIGHMEM64G && (X86_PC || X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY))
+ depends on SMP && HIGHMEM64G && (X86_PC || X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
default n if X86_PC
default y if (X86_NUMAQ || X86_SUMMIT)
@@ -709,8 +709,8 @@ config NUMA
comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
-comment "NUMA (Summit) requires SMP, 64GB highmem support, full ACPI"
- depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI || ACPI_HT_ONLY)
+comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
+ depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
config DISCONTIGMEM
bool
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 8c24f7dd3194..33dfee9bb09a 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -141,6 +141,10 @@ acpi_parse_lapic (
acpi_table_print_madt_entry(header);
+ /* no utility in registering a disabled processor */
+ if (processor->flags.enabled == 0)
+ return 0;
+
mp_register_lapic (
processor->id, /* APIC ID */
processor->flags.enabled); /* Enabled? */
diff --git a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c
index 6f0be72349d4..952702c16bb2 100644
--- a/arch/i386/kernel/mpparse.c
+++ b/arch/i386/kernel/mpparse.c
@@ -634,7 +634,7 @@ void __init get_smp_config (void)
/*
* ACPI may be used to obtain the entire SMP configuration or just to
- * enumerate/configure processors (CONFIG_ACPI_HT). Note that
+ * enumerate/configure processors (CONFIG_ACPI_BOOT). Note that
* ACPI supports both logical (e.g. Hyper-Threading) and physical
* processors, where MPS only supports physical.
*/
@@ -940,7 +940,7 @@ void __init mp_override_legacy_irq (
* erroneously sets the trigger to level, resulting in a HUGE
* increase of timer interrupts!
*/
- if ((bus_irq == 0) && (global_irq == 2) && (trigger == 3))
+ if ((bus_irq == 0) && (trigger == 3))
trigger = 1;
intsrc.mpc_type = MP_INTSRC;
@@ -961,7 +961,7 @@ void __init mp_override_legacy_irq (
* Otherwise create a new entry (e.g. global_irq == 2).
*/
for (i = 0; i < mp_irq_entries; i++) {
- if ((mp_irqs[i].mpc_dstapic == intsrc.mpc_dstapic)
+ if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus)
&& (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
mp_irqs[i] = intsrc;
found = 1;
@@ -1008,9 +1008,10 @@ void __init mp_config_acpi_legacy_irqs (void)
*/
for (i = 0; i < 16; i++) {
- if (i == 2) continue; /* Don't connect IRQ2 */
+ if (i == 2)
+ continue; /* Don't connect IRQ2 */
- intsrc.mpc_irqtype = i ? mp_INT : mp_ExtINT; /* 8259A to #0 */
+ intsrc.mpc_irqtype = mp_INT;
intsrc.mpc_srcbusirq = i; /* Identity mapped */
intsrc.mpc_dstirq = i;
diff --git a/arch/x86_64/kernel/acpi/boot.c b/arch/x86_64/kernel/acpi/boot.c
index d46c2d41b759..fbb672bc9a43 100644
--- a/arch/x86_64/kernel/acpi/boot.c
+++ b/arch/x86_64/kernel/acpi/boot.c
@@ -120,6 +120,11 @@ acpi_parse_lapic (
acpi_table_print_madt_entry(header);
+ /* no utility in registering a disabled processor */
+ if (processor->flags.enabled == 0)
+ return 0;
+
+
mp_register_lapic (
processor->id, /* APIC ID */
processor->flags.enabled); /* Enabled? */
diff --git a/arch/x86_64/kernel/mpparse.c b/arch/x86_64/kernel/mpparse.c
index 8110ef34d377..7f85ad115149 100644
--- a/arch/x86_64/kernel/mpparse.c
+++ b/arch/x86_64/kernel/mpparse.c
@@ -487,7 +487,7 @@ void __init get_smp_config (void)
/*
* ACPI may be used to obtain the entire SMP configuration or just to
- * enumerate/configure processors (CONFIG_ACPI_HT_ONLY). Note that
+ * enumerate/configure processors (CONFIG_ACPI_BOOT). Note that
* ACPI supports both logical (e.g. Hyper-Threading) and physical
* processors, where MPS only supports physical.
*/
@@ -787,7 +787,7 @@ void __init mp_override_legacy_irq (
* erroneously sets the trigger to level, resulting in a HUGE
* increase of timer interrupts!
*/
- if ((bus_irq == 0) && (global_irq == 2) && (trigger == 3))
+ if ((bus_irq == 0) && (trigger == 3))
trigger = 1;
intsrc.mpc_type = MP_INTSRC;
@@ -808,8 +808,8 @@ void __init mp_override_legacy_irq (
* Otherwise create a new entry (e.g. global_irq == 2).
*/
for (i = 0; i < mp_irq_entries; i++) {
- if ((mp_irqs[i].mpc_dstapic == intsrc.mpc_dstapic)
- && (mp_irqs[i].mpc_dstirq == intsrc.mpc_dstirq)) {
+ if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus)
+ && (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
mp_irqs[i] = intsrc;
found = 1;
break;
@@ -855,9 +855,10 @@ void __init mp_config_acpi_legacy_irqs (void)
*/
for (i = 0; i < 16; i++) {
- if (i == 2) continue; /* Don't connect IRQ2 */
+ if (i == 2)
+ continue; /* Don't connect IRQ2 */
- intsrc.mpc_irqtype = i ? mp_INT : mp_ExtINT; /* 8259A to #0 */
+ intsrc.mpc_irqtype = mp_INT;
intsrc.mpc_srcbusirq = i; /* Identity mapped */
intsrc.mpc_dstirq = i;
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c2e448390e35..d8277b66cf8f 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -143,7 +143,7 @@ config ACPI_NUMA
bool "NUMA support"
depends on ACPI_INTERPRETER
depends on NUMA
- depends on !X86_64
+ depends on IA64
default y if IA64_GENERIC || IA64_SGI_SN2
config ACPI_ASUS
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index 15494a4e26ff..f9385f4abc30 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -172,7 +172,7 @@ acpi_numa_init()
NR_CPUS);
result = acpi_table_parse_srat(ACPI_SRAT_MEMORY_AFFINITY,
acpi_parse_memory_affinity,
- NR_NODE_MEMBLKS);
+ NR_NODE_MEMBLKS); // IA64 specific
} else {
/* FIXME */
printk("Warning: acpi_table_parse(ACPI_SRAT) returned %d!\n",result);
diff --git a/drivers/acpi/processor.c b/drivers/acpi/processor.c
index 8bf340c1a557..a381161af6d4 100644
--- a/drivers/acpi/processor.c
+++ b/drivers/acpi/processor.c
@@ -1022,7 +1022,7 @@ acpi_processor_get_performance_states (
(u32) px->status));
if (!px->core_frequency) {
- ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "core_frequency is 0\n"));
+ ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid _PSS data: freq is zero\n"));
result = -EFAULT;
kfree(pr->performance->states);
goto end;
@@ -1607,7 +1607,7 @@ static int cpu_has_cpufreq(unsigned int cpu)
static int acpi_thermal_cpufreq_increase(unsigned int cpu)
{
- if (!cpu_has_cpufreq)
+ if (!cpu_has_cpufreq(cpu))
return -ENODEV;
if (cpufreq_thermal_reduction_pctg[cpu] < 60) {
@@ -1622,7 +1622,7 @@ static int acpi_thermal_cpufreq_increase(unsigned int cpu)
static int acpi_thermal_cpufreq_decrease(unsigned int cpu)
{
- if (!cpu_has_cpufreq)
+ if (!cpu_has_cpufreq(cpu))
return -ENODEV;
if (cpufreq_thermal_reduction_pctg[cpu] >= 20) {