aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHanjun Guo <hanjun.guo@linaro.org>2016-05-24 18:35:38 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-05-30 08:27:08 -0400
commit2faeff1d507c21d262e8afca862243909970d567 (patch)
treeea1cc1dd77a0be844b8eccf5f0faedaa9435ac17
parent34c333705238dcc82aa758ef1fbb002dbcd76414 (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.c21
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
27int acpi_numa __initdata; 27int acpi_numa __initdata;
28 28
29static __init int setup_node(int pxm)
30{
31 return acpi_map_pxm_to_node(pxm);
32}
33
34static __init void bad_srat(void) 29static __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
128static inline int save_add_info(void) {return 1;}
129#else
130static 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 */
134int __init 123int __init
135acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) 124acpi_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)
182out_err_bad_srat: 171out_err_bad_srat:
183 bad_srat(); 172 bad_srat();
184out_err: 173out_err:
185 return -1; 174 return -EINVAL;
186} 175}
187 176
188int __init x86_acpi_numa_init(void) 177int __init x86_acpi_numa_init(void)