forked from torvalds/linux
Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
KVM: arm64: Enable UBSan instrumentation in nVHE hyp code
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. Change-Id: I4a468b33251fa099ddfc05a7cefa520cb8817994 Signed-off-by: Elena Petrova <lenaptr@google.com>
- Loading branch information
1 parent
694a1c0
commit 9eaabf22215aee1257362a608a15658c558d7fe5
Showing
2 changed files
with
32 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| // SPDX-License-Identifier: GPL-2.0-only | ||
| /* | ||
| * Copyright 2020 Google LLC | ||
| * Author: George Popescu <georgepope@google.com> | ||
| */ | ||
| #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) {} |