mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 08:43:31 +00:00
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: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/f8696f8980ca1532ada3a2f0e0a03e756269c7fe.1634627931.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
fcf9bb6d32
commit
4f6a025201
2 changed files with 13 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Reference in a new issue