ACPI / NUMA: move acpi_numa_slit_init() to drivers/acpi/numa.c
Identical implementations of acpi_numa_slit_init() are used by both x86 and follow-on arm64 support. Move it to drivers/acpi/numa.c, and guard with CONFIG_X86 || CONFIG_ARM64 because ia64 has its own architecture specific implementation. No code 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>
This commit is contained in:
parent
312521d054
commit
6525afdf53
@ -42,33 +42,6 @@ static __init inline int srat_disabled(void)
|
|||||||
return acpi_numa < 0;
|
return acpi_numa < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Callback for SLIT parsing. pxm_to_node() returns NUMA_NO_NODE for
|
|
||||||
* I/O localities since SRAT does not list them. I/O localities are
|
|
||||||
* not supported at this point.
|
|
||||||
*/
|
|
||||||
void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
|
|
||||||
{
|
|
||||||
int i, j;
|
|
||||||
|
|
||||||
for (i = 0; i < slit->locality_count; i++) {
|
|
||||||
const int from_node = pxm_to_node(i);
|
|
||||||
|
|
||||||
if (from_node == NUMA_NO_NODE)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for (j = 0; j < slit->locality_count; j++) {
|
|
||||||
const int to_node = pxm_to_node(j);
|
|
||||||
|
|
||||||
if (to_node == NUMA_NO_NODE)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
numa_set_distance(from_node, to_node,
|
|
||||||
slit->entry[slit->locality_count * i + j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Callback for Proximity Domain -> x2APIC mapping */
|
/* Callback for Proximity Domain -> x2APIC mapping */
|
||||||
void __init
|
void __init
|
||||||
acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
|
acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
|
||||||
|
@ -197,6 +197,35 @@ static int __init slit_valid(struct acpi_table_slit *slit)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_X86) || defined(CONFIG_ARM64)
|
||||||
|
/*
|
||||||
|
* Callback for SLIT parsing. pxm_to_node() returns NUMA_NO_NODE for
|
||||||
|
* I/O localities since SRAT does not list them. I/O localities are
|
||||||
|
* not supported at this point.
|
||||||
|
*/
|
||||||
|
void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
|
||||||
|
{
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
for (i = 0; i < slit->locality_count; i++) {
|
||||||
|
const int from_node = pxm_to_node(i);
|
||||||
|
|
||||||
|
if (from_node == NUMA_NO_NODE)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (j = 0; j < slit->locality_count; j++) {
|
||||||
|
const int to_node = pxm_to_node(j);
|
||||||
|
|
||||||
|
if (to_node == NUMA_NO_NODE)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
numa_set_distance(from_node, to_node,
|
||||||
|
slit->entry[slit->locality_count * i + j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* defined(CONFIG_X86) || defined (CONFIG_ARM64) */
|
||||||
|
|
||||||
static int __init acpi_parse_slit(struct acpi_table_header *table)
|
static int __init acpi_parse_slit(struct acpi_table_header *table)
|
||||||
{
|
{
|
||||||
struct acpi_table_slit *slit = (struct acpi_table_slit *)table;
|
struct acpi_table_slit *slit = (struct acpi_table_slit *)table;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user