diff options
author | Mostafa Saleh <smostafa@google.com> | 2025-04-30 16:27:10 +0000 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2025-05-07 11:21:35 +0100 |
commit | 61b38f7591fb434fce326c1d686a9793c7f418bc (patch) | |
tree | 8740dc16c8e16ff51dc20e67d740dbf9d6e6290a /lib/ubsan.c | |
parent | d683a8561889c1813fe2ad6082769c91e3cb71b3 (diff) |
KVM: arm64: Introduce CONFIG_UBSAN_KVM_EL2
Add a new Kconfig CONFIG_UBSAN_KVM_EL2 for KVM which enables
UBSAN for EL2 code (in protected/nvhe/hvhe) modes.
This will re-use the same checks enabled for the kernel for
the hypervisor. The only difference is that for EL2 it always
emits a "brk" instead of implementing hooks as the hypervisor
can't print reports.
The KVM code will re-use the same code for the kernel
"report_ubsan_failure()" so #ifdefs are changed to also have this
code for CONFIG_UBSAN_KVM_EL2
Signed-off-by: Mostafa Saleh <smostafa@google.com>
Reviewed-by: Kees Cook <kees@kernel.org>
Link: https://lore.kernel.org/r/20250430162713.1997569-4-smostafa@google.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'lib/ubsan.c')
-rw-r--r-- | lib/ubsan.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/ubsan.c b/lib/ubsan.c index 17993727fc96..a6ca235dd714 100644 --- a/lib/ubsan.c +++ b/lib/ubsan.c @@ -19,7 +19,7 @@ #include "ubsan.h" -#ifdef CONFIG_UBSAN_TRAP +#if defined(CONFIG_UBSAN_TRAP) || defined(CONFIG_UBSAN_KVM_EL2) /* * Only include matches for UBSAN checks that are actually compiled in. * The mappings of struct SanitizerKind (the -fsanitize=xxx args) to @@ -97,7 +97,9 @@ const char *report_ubsan_failure(u32 check_type) } } -#else +#endif + +#ifndef CONFIG_UBSAN_TRAP static const char * const type_check_kinds[] = { "load of", "store to", |