FAILED: Patch "LoongArch: Disable instrumentation for setup_ptwalker()" failed to apply to 6.1-stable tree
Subsystems (2)
Sasha Levin
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Thanks,
Sasha
------------------ original commit in Linus's tree ------------------
From 7cb37af61f09c9cfd90c43c9275307c16320cbf2 Mon Sep 17 00:00:00 2001
From: Tiezhu Yang <[email protected]>
Date: Tue, 10 Feb 2026 19:31:17 +0800
Subject: [PATCH] LoongArch: Disable instrumentation for setup_ptwalker()
According to Documentation/dev-tools/kasan.rst, software KASAN modes use compiler instrumentation to insert validity checks. Such instrumentation might be incompatible with some parts of the kernel, and therefore needs to be disabled, just use the attribute __no_sanitize_address to disable instrumentation for the low level function setup_ptwalker().
Otherwise bringing up the secondary CPUs failed when CONFIG_KASAN is set (especially when PTW is enabled), here are the call chains:
smpboot_entry()
start_secondary()
cpu_probe()
per_cpu_trap_init()
tlb_init()
setup_tlb_handler()
setup_ptwalker()The reason is the PGD registers are configured in setup_ptwalker(), but KASAN instrumentation may cause TLB exceptions before that.
--- arch/loongarch/mm/tlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/loongarch/mm/tlb.c +1 -1
@@ -202,7 +202,7 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t *pteplocal_irq_restore (flags); } -static void setup_ptwalker (void ) +static void __no_sanitize_address setup_ptwalker(void) {unsigned long pwctl0, pwctl1;unsigned long pgd_i =0 , pgd_w =0 ;
Signature · 1 line
2.51.0
Huacai Chen
maintainerHi, Sasha,
Quoted 5 lines · Sasha Levin
The patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
I'm very confused because it can be applied and already here:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-6.1
Huacai
Quoted 58 lines
Thanks,
Sasha------------------ original commit in Linus's tree ------------------
From
7cb37af61f09c9cfd90c43c9275307c16320cbf2Mon Sep 17 00:00:00 2001
From: Tiezhu Yang <[email protected]>
Date: Tue, 10 Feb 2026 19:31:17 +0800
Subject: [PATCH] LoongArch: Disable instrumentation forsetup_ptwalker()According to
Documentation/dev-tools/kasan.rst, software KASAN modes use compiler instrumentation to insert validity checks. Such instrumentation might be incompatible with some parts of the kernel, and therefore needs to be disabled, just use the attribute__no_sanitize_addressto disable instrumentation for the low level functionsetup_ptwalker().Otherwise bringing up the secondary CPUs failed when
CONFIG_KASANis set (especially when PTW is enabled), here are the call chains:smpboot_entry() start_secondary() cpu_probe() per_cpu_trap_init() tlb_init() setup_tlb_handler() setup_ptwalker()The reason is the PGD registers are configured in
setup_ptwalker(), but KASAN instrumentation may cause TLB exceptions before that.Signed-off-by Tiezhu Yang <[email protected]>Signed-off-by Huacai Chen <[email protected]>--- arch/loongarch/mm/tlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/loongarch/mm/tlb.c +1
-2@@ -202,7 +202,7 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t *pteplocal_irq_restore (flags); } -static void setup_ptwalker (void ) +static void __no_sanitize_address setup_ptwalker(void) {unsigned long pwctl0, pwctl1;unsigned long pgd_i =0 , pgd_w =0 ; --2.51.0