diff options
author | Hanjun Guo <hanjun.guo@linaro.org> | 2016-05-24 18:35:38 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-05-30 08:27:08 -0400 |
commit | 2faeff1d507c21d262e8afca862243909970d567 (patch) | |
tree | ea1cc1dd77a0be844b8eccf5f0faedaa9435ac17 | |
parent | 34c333705238dcc82aa758ef1fbb002dbcd76414 (diff) |
x86 / ACPI / NUMA: cleanup acpi_numa_processor_affinity_init()
Cleanup acpi_numa_processor_affinity_init() in preparation for its
move to drivers/acpi/numa.c. It will be reused by arm64, this has no
functional change.
Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
Signed-off-by: Robert Richter <rrichter@cavium.com>
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | arch/x86/mm/srat.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c index f242a11df488..9e2a833b54fb 100644 --- a/arch/x86/mm/srat.c +++ b/arch/x86/mm/srat.c | |||
@@ -26,11 +26,6 @@ | |||
26 | 26 | ||
27 | int acpi_numa __initdata; | 27 | int acpi_numa __initdata; |
28 | 28 | ||
29 | static __init int setup_node(int pxm) | ||
30 | { | ||
31 | return acpi_map_pxm_to_node(pxm); | ||
32 | } | ||
33 | |||
34 | static __init void bad_srat(void) | 29 | static __init void bad_srat(void) |
35 | { | 30 | { |
36 | printk(KERN_ERR "SRAT: SRAT not used.\n"); | 31 | printk(KERN_ERR "SRAT: SRAT not used.\n"); |
@@ -64,7 +59,7 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa) | |||
64 | pxm, apic_id); | 59 | pxm, apic_id); |
65 | return; | 60 | return; |
66 | } | 61 | } |
67 | node = setup_node(pxm); | 62 | node = acpi_map_pxm_to_node(pxm); |
68 | if (node < 0) { | 63 | if (node < 0) { |
69 | printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm); | 64 | printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm); |
70 | bad_srat(); | 65 | bad_srat(); |
@@ -100,7 +95,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) | |||
100 | pxm = pa->proximity_domain_lo; | 95 | pxm = pa->proximity_domain_lo; |
101 | if (acpi_srat_revision >= 2) | 96 | if (acpi_srat_revision >= 2) |
102 | pxm |= *((unsigned int*)pa->proximity_domain_hi) << 8; | 97 | pxm |= *((unsigned int*)pa->proximity_domain_hi) << 8; |
103 | node = setup_node(pxm); | 98 | node = acpi_map_pxm_to_node(pxm); |
104 | if (node < 0) { | 99 | if (node < 0) { |
105 | printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm); | 100 | printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm); |
106 | bad_srat(); | 101 | bad_srat(); |
@@ -124,12 +119,6 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) | |||
124 | pxm, apic_id, node); | 119 | pxm, apic_id, node); |
125 | } | 120 | } |
126 | 121 | ||
127 | #ifdef CONFIG_MEMORY_HOTPLUG | ||
128 | static inline int save_add_info(void) {return 1;} | ||
129 | #else | ||
130 | static inline int save_add_info(void) {return 0;} | ||
131 | #endif | ||
132 | |||
133 | /* Callback for parsing of the Proximity Domain <-> Memory Area mappings */ | 122 | /* Callback for parsing of the Proximity Domain <-> Memory Area mappings */ |
134 | int __init | 123 | int __init |
135 | acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) | 124 | acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) |
@@ -145,7 +134,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) | |||
145 | if ((ma->flags & ACPI_SRAT_MEM_ENABLED) == 0) | 134 | if ((ma->flags & ACPI_SRAT_MEM_ENABLED) == 0) |
146 | goto out_err; | 135 | goto out_err; |
147 | hotpluggable = ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE; | 136 | hotpluggable = ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE; |
148 | if (hotpluggable && !save_add_info()) | 137 | if (hotpluggable && !IS_ENABLED(CONFIG_MEMORY_HOTPLUG)) |
149 | goto out_err; | 138 | goto out_err; |
150 | 139 | ||
151 | start = ma->base_address; | 140 | start = ma->base_address; |
@@ -154,7 +143,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) | |||
154 | if (acpi_srat_revision <= 1) | 143 | if (acpi_srat_revision <= 1) |
155 | pxm &= 0xff; | 144 | pxm &= 0xff; |
156 | 145 | ||
157 | node = setup_node(pxm); | 146 | node = acpi_map_pxm_to_node(pxm); |
158 | if (node < 0) { | 147 | if (node < 0) { |
159 | printk(KERN_ERR "SRAT: Too many proximity domains.\n"); | 148 | printk(KERN_ERR "SRAT: Too many proximity domains.\n"); |
160 | goto out_err_bad_srat; | 149 | goto out_err_bad_srat; |
@@ -182,7 +171,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) | |||
182 | out_err_bad_srat: | 171 | out_err_bad_srat: |
183 | bad_srat(); | 172 | bad_srat(); |
184 | out_err: | 173 | out_err: |
185 | return -1; | 174 | return -EINVAL; |
186 | } | 175 | } |
187 | 176 | ||
188 | int __init x86_acpi_numa_init(void) | 177 | int __init x86_acpi_numa_init(void) |