diff options
author | Mark Brown <broonie@kernel.org> | 2022-08-04 17:57:10 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-08-04 17:57:10 +0100 |
commit | 36fbc25b4ef8c4833242060ad90be77ced9d59f2 (patch) | |
tree | 1a1a4c75de9b214e04aa3b2d1ed3fc656570db36 /arch/riscv/mm/init.c | |
parent | 465d4efa41826f7bdb7516438e54048bb670daeb (diff) | |
parent | 360614c01f81f48a89d8b13f8fa69c3ae0a1f5c7 (diff) |
Merge branch 'mm-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
# Conflicts:
# Documentation/translations/zh_CN/mm/free_page_reporting.rst
# Documentation/translations/zh_CN/mm/frontswap.rst
# Documentation/translations/zh_CN/mm/page_frags.rst
# Documentation/translations/zh_CN/mm/page_migration.rst
# Documentation/translations/zh_CN/mm/vmalloced-kernel-stacks.rst
# Documentation/translations/zh_CN/mm/zsmalloc.rst
# include/linux/pagevec.h
# mm/internal.h
Diffstat (limited to 'arch/riscv/mm/init.c')
-rw-r--r-- | arch/riscv/mm/init.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index d466ec670e1f..a88b7dc31a68 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -288,6 +288,26 @@ static pmd_t __maybe_unused early_dtb_pmd[PTRS_PER_PMD] __initdata __aligned(PAG #define early_pg_dir ((pgd_t *)XIP_FIXUP(early_pg_dir)) #endif /* CONFIG_XIP_KERNEL */ +static const pgprot_t protection_map[16] = { + [VM_NONE] = PAGE_NONE, + [VM_READ] = PAGE_READ, + [VM_WRITE] = PAGE_COPY, + [VM_WRITE | VM_READ] = PAGE_COPY, + [VM_EXEC] = PAGE_EXEC, + [VM_EXEC | VM_READ] = PAGE_READ_EXEC, + [VM_EXEC | VM_WRITE] = PAGE_COPY_EXEC, + [VM_EXEC | VM_WRITE | VM_READ] = PAGE_COPY_READ_EXEC, + [VM_SHARED] = PAGE_NONE, + [VM_SHARED | VM_READ] = PAGE_READ, + [VM_SHARED | VM_WRITE] = PAGE_SHARED, + [VM_SHARED | VM_WRITE | VM_READ] = PAGE_SHARED, + [VM_SHARED | VM_EXEC] = PAGE_EXEC, + [VM_SHARED | VM_EXEC | VM_READ] = PAGE_READ_EXEC, + [VM_SHARED | VM_EXEC | VM_WRITE] = PAGE_SHARED_EXEC, + [VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = PAGE_SHARED_EXEC +}; +DECLARE_VM_GET_PAGE_PROT + void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot) { unsigned long addr = __fix_to_virt(idx); |