• Marco Elver's avatar
    arm64, kfence: enable KFENCE for ARM64 · 840b2398
    Marco Elver authored
    Add architecture specific implementation details for KFENCE and enable
    KFENCE for the arm64 architecture. In particular, this implements the
    required interface in <asm/kfence.h>.
    
    KFENCE requires that attributes for pages from its memory pool can
    individually be set. Therefore, force the entire linear map to be mapped
    at page granularity. Doing so may result in extra memory allocated for
    page tables in case rodata=full is not set; however, currently
    CONFIG_RODATA_FULL_DEFAULT_ENABLED=y is the default, and the common case
    is therefore not affected by this change.
    
    [elver@google.com: add missing copyright and description header]
      Link: https://lkml.kernel.org/r/20210118092159.145934-3-elver@google.com
    
    Link: https://lkml.kernel.org/r/20201103175841.3495947-4-elver@google.comSigned-off-by: default avatarAlexander Potapenko <glider@google.com>
    Signed-off-by: default avatarMarco Elver <elver@google.com>
    Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
    Co-developed-by: default avatarAlexander Potapenko <glider@google.com>
    Reviewed-by: default avatarJann Horn <jannh@google.com>
    Reviewed-by: default avatarMark Rutland <mark.rutland@arm.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: 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: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    840b2398
kfence.h 461 Bytes