diff options
author | Christophe Leroy <christophe.leroy@csgroup.eu> | 2023-09-25 20:31:45 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2023-10-19 08:12:46 +0200 |
commit | 93820bfeefc4a125a6cedd1ee1a956eeb3eb2580 (patch) | |
tree | d6f5222c3333f431cd060c33ab70d446a71c40e6 /arch/powerpc/kernel/paca.c | |
parent | powerpc/e500: Introduce _PAGE_READ and remove _PAGE_USER (diff) | |
download | linux-93820bfeefc4a125a6cedd1ee1a956eeb3eb2580.tar.xz linux-93820bfeefc4a125a6cedd1ee1a956eeb3eb2580.zip |
powerpc/44x: Introduce _PAGE_READ and remove _PAGE_USER
44x MMU has 6 page protection bits:
- R, W, X for supervisor
- R, W, X for user
It means that it can support X without R.
To do that, _PAGE_READ flag is needed but there is no bit available
for it in PTE. On the other hand the only real use of _PAGE_USER is
to implement PAGE_NONE by clearing _PAGE_USER.
As _PAGE_NONE can also be implemented by clearing _PAGE_READ,
remove _PAGE_USER and add _PAGE_READ. In order to insert bits in
one go during TLB miss, move _PAGE_ACCESSED and put _PAGE_READ
just after _PAGE_DIRTY so that _PAGE_DIRTY is copied into SW and
_PAGE_READ into SR at once.
With that change, 44x now also honors execute-only protection.
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/043e17987b260b99b45094138c6cb2e89e63d499.1695659959.git.christophe.leroy@csgroup.eu
Diffstat (limited to 'arch/powerpc/kernel/paca.c')
0 files changed, 0 insertions, 0 deletions