linux/arch/powerpc
Christophe Leroy da7bb43ab9 powerpc/32: Fix vmap stack - Properly set r1 before activating MMU
We need r1 to be properly set before activating MMU, otherwise any new
exception taken while saving registers into the stack in exception
prologs will use the user stack, which is wrong and will even lockup
or crash when KUAP is selected.

Do that by switching the meaning of r11 and r1 until we have saved r1
to the stack: copy r1 into r11 and setup the new stack pointer in r1.
To avoid complicating and impacting all generic and specific prolog
code (and more), copy back r1 into r11 once r11 is save onto
the stack.

We could get rid of copying r1 back and forth at the cost of
rewriting everything to use r1 instead of r11 all the way when
CONFIG_VMAP_STACK is set, but the effort is probably not worth it.

Fixes: 028474876f ("powerpc/32: prepare for CONFIG_VMAP_STACK")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/8f85e8752ac5af602db7237ef53d634f4f3d3892.1599486108.git.christophe.leroy@csgroup.eu
2020-09-15 22:13:33 +10:00
..
boot powerpc/boot: Update Makefile comment for 64bit wrapper 2020-09-08 22:24:19 +10:00
configs powerpc/configs: Add BLK_DEV_NVME to pseries_defconfig 2020-07-29 23:47:53 +10:00
crypto powerpc: Replace HTTP links with HTTPS ones 2020-07-22 00:01:23 +10:00
include powerpc/uaccess: Remove __put_user_asm() and __put_user_asm2() 2020-09-15 22:13:32 +10:00
kernel powerpc/32: Fix vmap stack - Properly set r1 before activating MMU 2020-09-15 22:13:33 +10:00
kexec powerpc/kexec_file: Enable early kernel OPAL calls 2020-07-29 23:47:55 +10:00
kvm powerpc/64s: handle ISA v3.1 local copy-paste context switches 2020-09-08 22:57:12 +10:00
lib powerpc/uaccess: Switch __patch_instruction() to __put_user_asm_goto() 2020-09-15 22:13:32 +10:00
math-emu
mm powerpc/8xx: Support 16k hugepages with 4k pages 2020-09-15 22:13:31 +10:00
net powerpc/ppc-opcode: Consolidate powerpc instructions from bpf_jit.h 2020-07-16 13:12:42 +10:00
oprofile powerpc/oprofile: fix spelling mistake "contex" -> "context" 2020-08-25 01:31:33 +10:00
perf Merge branch 'fixes' into next 2020-09-14 22:57:18 +10:00
platforms powerpc/tau: Disable TAU between measurements 2020-09-15 22:13:30 +10:00
purgatory powerpc/kexec_file: Enable early kernel OPAL calls 2020-07-29 23:47:55 +10:00
sysdev powerpc/icp-hv: Fix missing of_node_put() in success path 2020-08-25 01:31:31 +10:00
tools powerpc/tools: Remove 90 line limit in checkpatch script 2020-09-08 22:57:11 +10:00
xmon powerpc/watchpoint: Add hw_len wherever missing 2020-09-15 22:13:20 +10:00
Kbuild
Kconfig powerpc/64/mm: implement page mapping percpu first chunk allocator 2020-09-15 22:13:22 +10:00
Kconfig.debug
Makefile powerpc/4xx: ppc4xx compile flag optimizations 2020-06-22 14:19:12 +10:00
Makefile.postlink powerpc: unrel_branch_check.sh: use nm to find symbol value 2020-09-02 11:00:22 +10:00