|
[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 |