Don't know why the previous mail went blank. On Mon, 2024-02-12 at 17:42 +1100, Michael Ellerman wrote: > KASAN is seen to increase stack usage, to the point that it was > reported > to lead to stack overflow on some 32-bit machines (see link). > > To avoid overflows the stack size was doubled for KASAN builds in > commit 3e8635fb2e07 ("powerpc/kasan: Force thread size increase with > KASAN"). > > However with a 32KB stack size to begin with, the doubling leads to a > 64KB stack, which causes build errors: > arch/powerpc/kernel/switch.S:249: Error: operand out of range > (0x000000000000fe50 is not between 0xffffffffffff8000 and > 0x0000000000007fff) > > Although the asm could be reworked, in practice a 32KB stack seems > sufficient even for KASAN builds - the additional usage seems to be > in > the 2-3KB range for a 64-bit KASAN build. > > So only increase the stack for KASAN if the stack size is < 32KB. > > Link: > https://lore.kernel.org/linuxppc-dev/bug-207129-206...@https.bugzilla.kernel.org%2F/ > Reported-by: Spoorthy <spoor...@linux.ibm.com> > Reported-by: Benjamin Gray <bg...@linux.ibm.com> > Fixes: 18f14afe2816 ("powerpc/64s: Increase default stack size to > 32KB") > Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
Reviewed-by: Benjamin Gray <bg...@linux.ibm.com> > --- > arch/powerpc/include/asm/thread_info.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/include/asm/thread_info.h > b/arch/powerpc/include/asm/thread_info.h > index bf5dde1a4114..15c5691dd218 100644 > --- a/arch/powerpc/include/asm/thread_info.h > +++ b/arch/powerpc/include/asm/thread_info.h > @@ -14,7 +14,7 @@ > > #ifdef __KERNEL__ > > -#ifdef CONFIG_KASAN > +#if defined(CONFIG_KASAN) && CONFIG_THREAD_SHIFT < 15 > #define MIN_THREAD_SHIFT (CONFIG_THREAD_SHIFT + 1) > #else > #define MIN_THREAD_SHIFT CONFIG_THREAD_SHIFT