Commit 4f6a0252 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/kuap: Wire-up KUAP on 85xx in 32 bits mode.



This adds KUAP support to 85xx in 32 bits mode.
This is done by reading the content of SPRN_MAS1 and checking
the TID at the time user pgtable is loaded.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/f8696f8980ca1532ada3a2f0e0a03e756269c7fe.1634627931.git.christophe.leroy@csgroup.eu
parent fcf9bb6d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -462,6 +462,12 @@ END_BTB_FLUSH_SECTION
	mfspr	r11,SPRN_SPRG_THREAD
	lwz	r11,PGDIR(r11)

#ifdef CONFIG_PPC_KUAP
	mfspr	r12, SPRN_MAS1
	rlwinm.	r12,r12,0,0x3fff0000
	beq	2f			/* KUAP fault */
#endif

4:
	/* Mask of required permission bits. Note that while we
	 * do copy ESR:ST to _PAGE_RW position as trying to write
@@ -571,6 +577,12 @@ END_BTB_FLUSH_SECTION
	mfspr	r11,SPRN_SPRG_THREAD
	lwz	r11,PGDIR(r11)

#ifdef CONFIG_PPC_KUAP
	mfspr	r12, SPRN_MAS1
	rlwinm.	r12,r12,0,0x3fff0000
	beq	2f			/* KUAP fault */
#endif

	/* Make up the required permissions for user code */
#ifdef CONFIG_PTE_64BIT
	li	r13,_PAGE_PRESENT | _PAGE_BAP_UX
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ config PPC_BOOK3S_32
config PPC_85xx
	bool "Freescale 85xx"
	select E500
	select PPC_HAVE_KUAP

config PPC_8xx
	bool "Freescale 8xx"