From: Huacai Chen <chenhuacai@xxxxxxxxxxx> commit 3c252263be801f937f56b4bcd8e8e2b5307c1ce5 upstream. Currently, KASAN on LoongArch assume the CPU VA bits is 48, which is true for Loongson-3 series, but not for Loongson-2 series (only 40 or lower), this patch fix that issue and make KASAN usable for variable cpu_vabits. Solution is very simple: Just define XRANGE_SHADOW_SHIFT which means valid address length from VA_BITS to min(cpu_vabits, VA_BITS). Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Kanglong Wang <wangkanglong@xxxxxxxxxxx> Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/loongarch/include/asm/kasan.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/arch/loongarch/include/asm/kasan.h +++ b/arch/loongarch/include/asm/kasan.h @@ -16,7 +16,7 @@ #define XRANGE_SHIFT (48) /* Valid address length */ -#define XRANGE_SHADOW_SHIFT (PGDIR_SHIFT + PAGE_SHIFT - 3) +#define XRANGE_SHADOW_SHIFT min(cpu_vabits, VA_BITS) /* Used for taking out the valid address */ #define XRANGE_SHADOW_MASK GENMASK_ULL(XRANGE_SHADOW_SHIFT - 1, 0) /* One segment whole address space size */ Patches currently in stable-queue which might be from chenhuacai@xxxxxxxxxxx are queue-6.6/loongarch-don-t-crash-in-stack_top-for-tasks-without.patch queue-6.6/loongarch-enable-irq-if-do_ale-triggered-in-irq-enabled-context.patch queue-6.6/loongarch-get-correct-cores_per_package-for-smt-systems.patch queue-6.6/loongarch-make-kasan-usable-for-variable-cpu_vabits.patch