[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86emul: drop and avoid use of BUG()
commit b8cdfac2be38c98dd3ad0e911a3f7f787f5bcf6b Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon Aug 26 10:33:09 2024 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Aug 26 10:33:09 2024 +0200 x86emul: drop and avoid use of BUG() Generally it is not a good idea to use BUG() in emulator code. Even for internal flaws we're better off returning errors to callers, rather than crashing the system. Replace the sole remaining use and remove the test / fuzzing harness surrogate. Put in place a declaration pleasing the compiler when finding uses in Xen headers, while at the same time breaking the build (at linking time) in case an active reference would newly appear. Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- tools/tests/x86_emulator/x86-emulate.h | 1 - xen/arch/x86/x86_emulate/decode.c | 4 +++- xen/arch/x86/x86_emulate/private.h | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/tests/x86_emulator/x86-emulate.h b/tools/tests/x86_emulator/x86-emulate.h index d2012ab767..4fca051152 100644 --- a/tools/tests/x86_emulator/x86-emulate.h +++ b/tools/tests/x86_emulator/x86-emulate.h @@ -42,7 +42,6 @@ #include <xen-tools/common-macros.h> -#define BUG() abort() #define ASSERT assert #define ASSERT_UNREACHABLE() assert(!__LINE__) diff --git a/xen/arch/x86/x86_emulate/decode.c b/xen/arch/x86/x86_emulate/decode.c index ee4cbdc000..5a880578c7 100644 --- a/xen/arch/x86/x86_emulate/decode.c +++ b/xen/arch/x86/x86_emulate/decode.c @@ -1122,7 +1122,9 @@ int x86emul_decode(struct x86_emulate_state *s, switch ( def_ad_bytes ) { default: - BUG(); /* Shouldn't be possible. */ + ASSERT_UNREACHABLE(); /* Shouldn't be possible. */ + return X86EMUL_UNHANDLEABLE; + case 2: if ( ctxt->regs->eflags & X86_EFLAGS_VM ) break; diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h index a2faa8b29b..f735bb6a5a 100644 --- a/xen/arch/x86/x86_emulate/private.h +++ b/xen/arch/x86/x86_emulate/private.h @@ -15,6 +15,9 @@ # include <asm/x86-vendors.h> # include <asm/x86_emulate.h> +# undef BUG /* Make sure it's not used anywhere here. */ +void BUG(void); + # ifndef CONFIG_HVM # define X86EMUL_NO_FPU # define X86EMUL_NO_MMX -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |