mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 08:04:22 +08:00
powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
CONFIG_PPC_KUAP_DEBUG is not selectable because it depends on PPC_32
which doesn't exists.
Fixing it leads to a deadlock due to a vital register getting
clobbered in _switch().
Change dependency to PPC32 and use r0 instead of r4 in _switch()
Fixes: e2fb9f5444
("powerpc/32: Prepare for Kernel Userspace Access Protection")
Cc: stable@vger.kernel.org # v5.2+
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/540242f7d4573f7cdf1b3bf46bb35f743b2cd68f.1587124651.git.christophe.leroy@c-s.fr
This commit is contained in:
parent
b61c38baa9
commit
feb8e960d7
@ -732,7 +732,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_SPE)
|
|||||||
stw r10,_CCR(r1)
|
stw r10,_CCR(r1)
|
||||||
stw r1,KSP(r3) /* Set old stack pointer */
|
stw r1,KSP(r3) /* Set old stack pointer */
|
||||||
|
|
||||||
kuap_check r2, r4
|
kuap_check r2, r0
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/* We need a sync somewhere here to make sure that if the
|
/* We need a sync somewhere here to make sure that if the
|
||||||
* previous task gets rescheduled on another CPU, it sees all
|
* previous task gets rescheduled on another CPU, it sees all
|
||||||
|
@ -397,7 +397,7 @@ config PPC_KUAP
|
|||||||
|
|
||||||
config PPC_KUAP_DEBUG
|
config PPC_KUAP_DEBUG
|
||||||
bool "Extra debugging for Kernel Userspace Access Protection"
|
bool "Extra debugging for Kernel Userspace Access Protection"
|
||||||
depends on PPC_KUAP && (PPC_RADIX_MMU || PPC_32)
|
depends on PPC_KUAP && (PPC_RADIX_MMU || PPC32)
|
||||||
help
|
help
|
||||||
Add extra debugging for Kernel Userspace Access Protection (KUAP)
|
Add extra debugging for Kernel Userspace Access Protection (KUAP)
|
||||||
If you're unsure, say N.
|
If you're unsure, say N.
|
||||||
|
Loading…
Reference in New Issue
Block a user