linux/arch
Alexander Potapenko 1dc0da6e9e x86, kfence: enable KFENCE for x86
Add architecture specific implementation details for KFENCE and enable
KFENCE for the x86 architecture. In particular, this implements the
required interface in <asm/kfence.h> for setting up the pool and
providing helper functions for protecting and unprotecting pages.

For x86, we need to ensure that the pool uses 4K pages, which is done
using the set_memory_4k() helper function.

[elver@google.com: add missing copyright and description header]
  Link: https://lkml.kernel.org/r/20210118092159.145934-2-elver@google.com

Link: https://lkml.kernel.org/r/20201103175841.3495947-3-elver@google.com
Signed-off-by: Marco Elver <elver@google.com>
Signed-off-by: Alexander Potapenko <glider@google.com>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Co-developed-by: Marco Elver <elver@google.com>
Reviewed-by: Jann Horn <jannh@google.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christopher Lameter <cl@linux.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hillf Danton <hdanton@sina.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Joern Engel <joern@purestorage.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-02-26 09:41:02 -08:00
..
alpha Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
arc arch: arc: Remove CONFIG_OPROFILE support 2021-01-22 12:12:03 +05:30
arm Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
arm64 arm64/mm: define arch_get_mappable_range() 2021-02-26 09:41:00 -08:00
csky local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
h8300 h8300: fix PREEMPTION build, TI_PRE_COUNT undefined 2021-02-13 11:42:40 -08:00
hexagon hexagon: remove CONFIG_EXPERIMENTAL from defconfigs 2021-02-24 13:38:26 -08:00
ia64 Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
m68k Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
microblaze Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
mips Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
nds32 nds32: Fix bogus reference to <asm/procinfo.h> 2021-02-25 14:31:49 +08:00
nios2 nios2: Don't use _end for calculating min_low_pfn 2021-02-19 15:02:09 +08:00
openrisc openrisc: io: Add missing __iomem annotation to iounmap() 2021-01-20 06:14:26 +09:00
parisc Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
powerpc Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
riscv Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2021-02-20 17:45:32 -08:00
s390 s390/mm: define arch_get_mappable_range() 2021-02-26 09:41:01 -08:00
sh Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
sparc Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
um Rework of the X86 irq stack handling: 2021-02-24 16:32:23 -08:00
x86 x86, kfence: enable KFENCE for x86 2021-02-26 09:41:02 -08:00
xtensa Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
.gitignore
Kconfig Rework of the X86 irq stack handling: 2021-02-24 16:32:23 -08:00