d438fabce7
Instead of removing the fault handling portion of the stack trace based on the fault handler's name, just use struct pt_regs directly. Change kfence_handle_page_fault() to take a struct pt_regs, and plumb it through to kfence_report_error() for out-of-bounds, use-after-free, or invalid access errors, where pt_regs is used to generate the stack trace. If the kernel is a DEBUG_KERNEL, also show registers for more information. Link: https://lkml.kernel.org/r/20201105092133.2075331-1-elver@google.com Signed-off-by: Marco Elver <elver@google.com> Suggested-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Cc: Alexander Potapenko <glider@google.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Jann Horn <jannh@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
23 lines
410 B
C
23 lines
410 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* arm64 KFENCE support.
|
|
*
|
|
* Copyright (C) 2020, Google LLC.
|
|
*/
|
|
|
|
#ifndef __ASM_KFENCE_H
|
|
#define __ASM_KFENCE_H
|
|
|
|
#include <asm/cacheflush.h>
|
|
|
|
static inline bool arch_kfence_init_pool(void) { return true; }
|
|
|
|
static inline bool kfence_protect_page(unsigned long addr, bool protect)
|
|
{
|
|
set_memory_valid(addr, 1, !protect);
|
|
|
|
return true;
|
|
}
|
|
|
|
#endif /* __ASM_KFENCE_H */
|