On Fri, Jan 15, 2021 at 05:18:22PM +0000, Elena Petrova wrote: > From: George-Aurelian Popescu <georgepope@xxxxxxxxxx> > > Implement UBSan handlers inside nVHe hyp code, as empty functions for the > moment, so the undefined behaviours, that are triggered there, will be > linked to them, not to the ones defined in kernel-proper lib/ubsan.c. > > In this way, enabling UBSAN_MISC won't cause a link error. The commit message needs to be updated - UBSAN_MISC does not exist any longer. Also "nVHe" is a typo. Other than that: Acked-by: David Brazdil <dbrazdil@xxxxxxxxxx> > > Signed-off-by: Elena Petrova <lenaptr@xxxxxxxxxx> > --- > arch/arm64/kvm/hyp/nvhe/Makefile | 3 ++- > arch/arm64/kvm/hyp/nvhe/ubsan.c | 30 ++++++++++++++++++++++++++++++ > 2 files changed, 32 insertions(+), 1 deletion(-) > create mode 100644 arch/arm64/kvm/hyp/nvhe/ubsan.c > > diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile > index 1f1e351c5fe2..2a683e7c6c5b 100644 > --- a/arch/arm64/kvm/hyp/nvhe/Makefile > +++ b/arch/arm64/kvm/hyp/nvhe/Makefile > @@ -10,6 +10,8 @@ obj-y := timer-sr.o sysreg-sr.o debug-sr.o switch.o tlb.o hyp-init.o host.o \ > hyp-main.o hyp-smp.o psci-relay.o > obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \ > ../fpsimd.o ../hyp-entry.o ../exception.o > +obj-$(CONFIG_UBSAN) += ubsan.o > +CFLAGS_ubsan.nvhe.o += -I $(srctree)/lib/ > > ## > ## Build rules for compiling nVHE hyp code > @@ -61,7 +63,6 @@ KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_FTRACE) $(CC_FLAGS_SCS), $(KBUILD_CFLAG > # cause crashes. Just disable it. > GCOV_PROFILE := n > KASAN_SANITIZE := n > -UBSAN_SANITIZE := n > KCOV_INSTRUMENT := n > > # Skip objtool checking for this directory because nVHE code is compiled with > diff --git a/arch/arm64/kvm/hyp/nvhe/ubsan.c b/arch/arm64/kvm/hyp/nvhe/ubsan.c > new file mode 100644 > index 000000000000..a5db6b61ceb2 > --- /dev/null > +++ b/arch/arm64/kvm/hyp/nvhe/ubsan.c > @@ -0,0 +1,30 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Copyright 2020 Google LLC > + * Author: George Popescu <georgepope@xxxxxxxxxx> > + */ > +#include <linux/ctype.h> > +#include <linux/types.h> > +#include <ubsan.h> > + > +void __ubsan_handle_add_overflow(void *_data, void *lhs, void *rhs) {} > + > +void __ubsan_handle_sub_overflow(void *_data, void *lhs, void *rhs) {} > + > +void __ubsan_handle_mul_overflow(void *_data, void *lhs, void *rhs) {} > + > +void __ubsan_handle_negate_overflow(void *_data, void *old_val) {} > + > +void __ubsan_handle_divrem_overflow(void *_data, void *lhs, void *rhs) {} > + > +void __ubsan_handle_type_mismatch(struct type_mismatch_data *data, void *ptr) {} > + > +void __ubsan_handle_type_mismatch_v1(void *_data, void *ptr) {} > + > +void __ubsan_handle_out_of_bounds(void *_data, void *index) {} > + > +void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs) {} > + > +void __ubsan_handle_builtin_unreachable(void *_data) {} > + > +void __ubsan_handle_load_invalid_value(void *_data, void *val) {} > -- > 2.30.0.296.g2bfb1c46d8-goog > > _______________________________________________ > kvmarm mailing list > kvmarm@xxxxxxxxxxxxxxxxxxxxx > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm