Hi Robert, On 02/05/16 17:38, Robert Richter wrote: > From: Robert Richter <rrich...@cavium.com> > > In case of acpi the firmware does not provide node ids for cpus and > its devices. Determine it from system topology special to Cavium > ThunderX systems. This enables #23144 workaround for ACPI. > > Signed-off-by: Robert Richter <rrich...@cavium.com> > --- > drivers/irqchip/irq-gic-v3-its.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/drivers/irqchip/irq-gic-v3-its.c > b/drivers/irqchip/irq-gic-v3-its.c > index 494395274cf7..6eac0f3c1e56 100644 > --- a/drivers/irqchip/irq-gic-v3-its.c > +++ b/drivers/irqchip/irq-gic-v3-its.c > @@ -1107,11 +1107,13 @@ static void its_cpu_init_collection(void) > > /* avoid cross node collections and its mapping */ > if (its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) { > - struct device_node *cpu_node; > - > - cpu_node = of_get_cpu_node(cpu, NULL); > + int nid = of_node_to_nid(of_get_cpu_node(cpu, NULL)); > + if (nid == NUMA_NO_NODE) { > + pr_warn_once("ITS: Updating cpu numa node > ids\n");
I don't really understand the meaning of that message. What are you updating here? > + nid = MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), > 2); > + } > if (its->numa_node != NUMA_NO_NODE && > - its->numa_node != of_node_to_nid(cpu_node)) So you're going from something that was relatively generic (of_node_to_nid) to something that is now completely hardcoding the Cavium view of CPU topology. Doesn't ACPI have similar abstractions? > + its->numa_node != nid) > continue; > } > > @@ -1443,6 +1445,15 @@ static void __maybe_unused > its_enable_quirk_cavium_23144(void *data) > { > struct its_node *its = data; > > + if (!IS_ENABLED(CONFIG_NUMA)) > + return; > + > + if (its->numa_node == NUMA_NO_NODE) { > + /* make ACPI work */ > + its->numa_node = (its->phys_base >> 44) & 0x3; How is that ACPI specific? > + pr_warn_once("ITS: Updating ITS numa node ids\n"); > + } > + > its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_23144; > } > > Thanks, M. -- Jazz is not dead. It just smells funny...