]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/32: Preserve cr1 in exception prolog stack check to fix build error
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 8 Feb 2021 07:17:40 +0000 (07:17 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 11 Feb 2021 12:35:06 +0000 (23:35 +1100)
commit3642eb21256a317ac14e9ed560242c6d20cf06d9
tree18a9f2dadd82a25984d362d058bdf7ef7cc0f5e0
parentac7c5e9b08acdb54ef3525abcad24bdb3ed05551
powerpc/32: Preserve cr1 in exception prolog stack check to fix build error

THREAD_ALIGN_SHIFT = THREAD_SHIFT + 1 = PAGE_SHIFT + 1
Maximum PAGE_SHIFT is 18 for 256k pages so
THREAD_ALIGN_SHIFT is 19 at the maximum.

No need to clobber cr1, it can be preserved when moving r1
into CR when we check stack overflow.

This reduces the number of instructions in Machine Check Exception
prolog and fixes a build failure reported by the kernel test robot
on v5.10 stable when building with RTAS + VMAP_STACK + KVM. That
build failure is due to too many instructions in the prolog hence
not fitting between 0x200 and 0x300. Allthough the problem doesn't
show up in mainline, it is still worth the change.

Fixes: 98bf2d3f4970 ("powerpc/32s: Fix RTAS machine check with VMAP stack")
Cc: stable@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/5ae4d545e3ac58e133d2599e0deb88843cb494fc.1612768623.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/head_32.h
arch/powerpc/kernel/head_book3s_32.S