arm64: irq: set the correct node for shadow call stack
authorHuang Shijie <shijie@os.amperecomputing.com>
Wed, 13 Dec 2023 01:20:46 +0000 (09:20 +0800)
committerWill Deacon <will@kernel.org>
Wed, 13 Dec 2023 12:09:00 +0000 (12:09 +0000)
The init_irq_stacks() has been changed to use the correct node:
https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/commit/?id=75b5e0bf90bf

The init_irq_scs() has the same issue with init_irq_stacks():
cpu_to_node() is not initialized yet, it does not work.

This patch uses early_cpu_to_node() to set the init_irq_scs()
with the correct node.

Signed-off-by: Huang Shijie <shijie@os.amperecomputing.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20231213012046.12014-1-shijie@os.amperecomputing.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/irq.c

index 9f253d8efe90b64dedcd2ba53e8648b005f8afa5..85087e2df564982f6eefe78e075c55b39d60db71 100644 (file)
@@ -48,7 +48,7 @@ static void init_irq_scs(void)
 
        for_each_possible_cpu(cpu)
                per_cpu(irq_shadow_call_stack_ptr, cpu) =
-                       scs_alloc(cpu_to_node(cpu));
+                       scs_alloc(early_cpu_to_node(cpu));
 }
 
 #ifdef CONFIG_VMAP_STACK