diff options
author | Vincenzo Frascino <vincenzo.frascino@arm.com> | 2019-04-15 10:49:37 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2019-04-23 18:01:58 +0100 |
commit | af1b3cf2c2a3f42bbb680812ff1bbd715ac8af69 (patch) | |
tree | 67550d4018c6cc1e368214556d744317da53e689 /arch/arm64/kernel/vdso.c | |
parent | 1255a7341bee6cd96df056ed0c13e44b59023687 (diff) | |
download | linux-af1b3cf2c2a3f42bbb680812ff1bbd715ac8af69.tar.gz |
arm64: compat: Add KUSER_HELPERS config option
When kuser helpers are enabled the kernel maps the relative code at
a fixed address (0xffff0000). Making configurable the option to disable
them means that the kernel can remove this mapping and any access to
this memory area results in a sigfault.
Add a KUSER_HELPERS config option that can be used to disable the
mapping when it is turned off.
This option can be turned off if and only if the applications are
designed specifically for the platform and they do not make use of the
kuser helpers code.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
[will: Use IS_ENABLED() instead of #ifdef]
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/vdso.c')
-rw-r--r-- | arch/arm64/kernel/vdso.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index 41f4d75bbc14..8074cbd3a3a8 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c @@ -74,6 +74,9 @@ static int aarch32_alloc_kuser_vdso_page(void) int kuser_sz = __kuser_helper_end - __kuser_helper_start; unsigned long vdso_page; + if (!IS_ENABLED(CONFIG_KUSER_HELPERS)) + return 0; + vdso_page = get_zeroed_page(GFP_ATOMIC); if (!vdso_page) return -ENOMEM; @@ -112,6 +115,9 @@ static int aarch32_kuser_helpers_setup(struct mm_struct *mm) { void *ret; + if (!IS_ENABLED(CONFIG_KUSER_HELPERS)) + return 0; + /* * Avoid VM_MAYWRITE for compatibility with arch/arm/, where it's * not safe to CoW the page containing the CPU exception vectors. |