mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 07:38:10 +00:00
powerpc: Refactor permission masks used for __P/__S table and kernel memory flags
Prepare a common version of the permission masks that will be based on _PAGE_NA, _PAGE_RO, _PAGE_ROX, _PAGE_RW, _PAGE_RWX that will be defined in platform specific headers in later patches. Put them in a new header pgtable-masks.h which will be included by platforms. And prepare a common version of flags used for mapping kernel memory that will be based on _PAGE_RO, _PAGE_ROX, _PAGE_RW, _PAGE_RWX that will be defined in platform specific headers. Put them in unless _PAGE_KERNEL_RO is already defined so that platform specific definitions can be dismantled one by one. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/d31b59efcdb38e675479563307af891aeadf6ec9.1695659959.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
a785874736
commit
a5a08dc90f
1 changed files with 30 additions and 0 deletions
30
arch/powerpc/include/asm/pgtable-masks.h
Normal file
30
arch/powerpc/include/asm/pgtable-masks.h
Normal file
|
@ -0,0 +1,30 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_POWERPC_PGTABLE_MASKS_H
|
||||
#define _ASM_POWERPC_PGTABLE_MASKS_H
|
||||
|
||||
#ifndef _PAGE_NA
|
||||
#define _PAGE_NA 0
|
||||
#define _PAGE_RO _PAGE_READ
|
||||
#define _PAGE_ROX (_PAGE_READ | _PAGE_EXEC)
|
||||
#define _PAGE_RW (_PAGE_READ | _PAGE_WRITE)
|
||||
#define _PAGE_RWX (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
|
||||
#endif
|
||||
|
||||
/* Permission flags for kernel mappings */
|
||||
#ifndef _PAGE_KERNEL_RO
|
||||
#define _PAGE_KERNEL_RO _PAGE_RO
|
||||
#define _PAGE_KERNEL_ROX _PAGE_ROX
|
||||
#define _PAGE_KERNEL_RW (_PAGE_RW | _PAGE_DIRTY)
|
||||
#define _PAGE_KERNEL_RWX (_PAGE_RWX | _PAGE_DIRTY)
|
||||
#endif
|
||||
|
||||
/* Permission masks used to generate the __P and __S table */
|
||||
#define PAGE_NONE __pgprot(_PAGE_BASE | _PAGE_NA)
|
||||
#define PAGE_SHARED __pgprot(_PAGE_BASE | _PAGE_RW)
|
||||
#define PAGE_SHARED_X __pgprot(_PAGE_BASE | _PAGE_RWX)
|
||||
#define PAGE_COPY __pgprot(_PAGE_BASE | _PAGE_RO)
|
||||
#define PAGE_COPY_X __pgprot(_PAGE_BASE | _PAGE_ROX)
|
||||
#define PAGE_READONLY __pgprot(_PAGE_BASE | _PAGE_RO)
|
||||
#define PAGE_READONLY_X __pgprot(_PAGE_BASE | _PAGE_ROX)
|
||||
|
||||
#endif /* _ASM_POWERPC_PGTABLE_MASKS_H */
|
Loading…
Reference in a new issue