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

powerpc/kuap: Wire-up KUAP on 44x



This adds KUAP support to 44x. This is done by checking
the content of SPRN_PID at the time it is read and written
into SPRN_MMUCR.

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/7d6c3f1978a26feada74b084f651e8cf1e3b3a47.1634627931.git.christophe.leroy@csgroup.eu
parent 43afcf8f
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -334,6 +334,10 @@ interrupt_base:
	mfspr	r12,SPRN_MMUCR
	mfspr   r13,SPRN_PID		/* Get PID */
	rlwimi	r12,r13,0,24,31		/* Set TID */
#ifdef CONFIG_PPC_KUAP
	cmpwi	r13,0
	beq	2f			/* KUAP Fault */
#endif

4:
	mtspr	SPRN_MMUCR,r12
@@ -444,6 +448,10 @@ interrupt_base:
	mfspr	r12,SPRN_MMUCR
	mfspr   r13,SPRN_PID		/* Get PID */
	rlwimi	r12,r13,0,24,31		/* Set TID */
#ifdef CONFIG_PPC_KUAP
	cmpwi	r13,0
	beq	2f			/* KUAP Fault */
#endif

4:
	mtspr	SPRN_MMUCR,r12
@@ -572,6 +580,10 @@ finish_tlb_load_44x:
3:	mfspr	r11,SPRN_SPRG3
	lwz	r11,PGDIR(r11)
	mfspr   r12,SPRN_PID		/* Get PID */
#ifdef CONFIG_PPC_KUAP
	cmpwi	r12,0
	beq	2f			/* KUAP Fault */
#endif
4:	mtspr	SPRN_MMUCR,r12		/* Set MMUCR */

	/* Mask of required permission bits. Note that while we
@@ -669,6 +681,10 @@ finish_tlb_load_44x:
3:	mfspr	r11,SPRN_SPRG_THREAD
	lwz	r11,PGDIR(r11)
	mfspr   r12,SPRN_PID		/* Get PID */
#ifdef CONFIG_PPC_KUAP
	cmpwi	r12,0
	beq	2f			/* KUAP Fault */
#endif
4:	mtspr	SPRN_MMUCR,r12		/* Set MMUCR */

	/* Make up the required permissions */
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ config 44x
	select PHYS_64BIT
	select PPC_HAVE_KUEP
	select PPC_KUEP
	select PPC_HAVE_KUAP

endchoice