diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-05 14:16:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-05 14:16:25 -0400 |
commit | 32fb6c17566ec66de87324a834c7776f40e35e78 (patch) | |
tree | 87b8ed5d66495536fbb452255c3eacd1cfb0c43a /arch/x86/mm | |
parent | 45e36c1666aa6c8b0c538abcf984b336184d8c3f (diff) | |
parent | 7ec0a7290797f57b780f792d12f4bcc19c83aa4f (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (140 commits)
ACPI: processor: use .notify method instead of installing handler directly
ACPI: button: use .notify method instead of installing handler directly
ACPI: support acpi_device_ops .notify methods
toshiba-acpi: remove MAINTAINERS entry
ACPI: battery: asynchronous init
acer-wmi: Update copyright notice & documentation
acer-wmi: Cleanup the failure cleanup handling
acer-wmi: Blacklist Acer Aspire One
video: build fix
thinkpad-acpi: rework brightness support
thinkpad-acpi: enhanced debugging messages for the fan subdriver
thinkpad-acpi: enhanced debugging messages for the hotkey subdriver
thinkpad-acpi: enhanced debugging messages for rfkill subdrivers
thinkpad-acpi: restrict access to some firmware LEDs
thinkpad-acpi: remove HKEY disable functionality
thinkpad-acpi: add new debug helpers and warn of deprecated atts
thinkpad-acpi: add missing log levels
thinkpad-acpi: cleanup debug helpers
thinkpad-acpi: documentation cleanup
thinkpad-acpi: drop ibm-acpi alias
...
Diffstat (limited to 'arch/x86/mm')
-rw-r--r-- | arch/x86/mm/srat_64.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c index 574c8bc95ef0..c7d272b8574c 100644 --- a/arch/x86/mm/srat_64.c +++ b/arch/x86/mm/srat_64.c | |||
@@ -116,6 +116,36 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit) | |||
116 | reserve_early(phys, phys + length, "ACPI SLIT"); | 116 | reserve_early(phys, phys + length, "ACPI SLIT"); |
117 | } | 117 | } |
118 | 118 | ||
119 | /* Callback for Proximity Domain -> x2APIC mapping */ | ||
120 | void __init | ||
121 | acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa) | ||
122 | { | ||
123 | int pxm, node; | ||
124 | int apic_id; | ||
125 | |||
126 | if (srat_disabled()) | ||
127 | return; | ||
128 | if (pa->header.length < sizeof(struct acpi_srat_x2apic_cpu_affinity)) { | ||
129 | bad_srat(); | ||
130 | return; | ||
131 | } | ||
132 | if ((pa->flags & ACPI_SRAT_CPU_ENABLED) == 0) | ||
133 | return; | ||
134 | pxm = pa->proximity_domain; | ||
135 | node = setup_node(pxm); | ||
136 | if (node < 0) { | ||
137 | printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm); | ||
138 | bad_srat(); | ||
139 | return; | ||
140 | } | ||
141 | |||
142 | apic_id = pa->apic_id; | ||
143 | apicid_to_node[apic_id] = node; | ||
144 | acpi_numa = 1; | ||
145 | printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n", | ||
146 | pxm, apic_id, node); | ||
147 | } | ||
148 | |||
119 | /* Callback for Proximity Domain -> LAPIC mapping */ | 149 | /* Callback for Proximity Domain -> LAPIC mapping */ |
120 | void __init | 150 | void __init |
121 | acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) | 151 | acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) |