lkml.org 
[lkml]   [2016]   [Apr]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 05/14] acpi, numa: move acpi_numa_slit_init() to drivers/acpi/numa.c
    Date
    From: Hanjun Guo <hanjun.guo@linaro.org>

    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>
    ---
    arch/x86/mm/srat.c | 27 ---------------------------
    drivers/acpi/numa.c | 29 +++++++++++++++++++++++++++++
    2 files changed, 29 insertions(+), 27 deletions(-)

    diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c
    index 90b6ed9..f242a11 100644
    --- a/arch/x86/mm/srat.c
    +++ b/arch/x86/mm/srat.c
    @@ -42,33 +42,6 @@ static __init inline int srat_disabled(void)
    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 */
    void __init
    acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
    diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
    index f41f06b..acc361d 100644
    --- a/drivers/acpi/numa.c
    +++ b/drivers/acpi/numa.c
    @@ -197,6 +197,35 @@ static int __init slit_valid(struct acpi_table_slit *slit)
    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)
    {
    struct acpi_table_slit *slit = (struct acpi_table_slit *)table;
    --
    1.7.11.7
    \
     
     \ /
      Last update: 2016-04-20 04:01    [W:4.143 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site