diff options
author | Mark Johnston <markj@FreeBSD.org> | 2023-12-11 14:08:08 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2023-12-11 14:08:08 +0000 |
commit | ecc2e6deae71b69a30bf3b7e3354aba002a37d69 (patch) | |
tree | bf2d8977fa6be37e9a826f32de2964bb310059a9 | |
parent | a6a481eaa2e0f02e24b874f1a08bb494a68972c0 (diff) | |
download | src-ecc2e6deae71b69a30bf3b7e3354aba002a37d69.tar.gz src-ecc2e6deae71b69a30bf3b7e3354aba002a37d69.zip |
arm: Fix handling of undefined instructions in kernel mode
Only panic if no undefined instruction handler matched the exception.
This can arise in practice if the VFP is enabled lazily.
While here, fix the panic string to not include a newline.
Reviewed by: andrew
Obtained from: Stormshield
Sponsored by: Klara, Inc.
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D42970
-rw-r--r-- | sys/arm/arm/undefined.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/arm/arm/undefined.c b/sys/arm/arm/undefined.c index 706033f5d570..dc29b55ae596 100644 --- a/sys/arm/arm/undefined.c +++ b/sys/arm/arm/undefined.c @@ -342,11 +342,11 @@ undefinedinstruction(struct trapframe *frame) #else printf("No debugger in kernel.\n"); #endif - return; - } - else - panic("Undefined instruction in kernel (0x%08x).\n", + } else if (uh == NULL) { + panic("Undefined instruction in kernel (0x%08x)", fault_instruction); + } + return; } userret(td, frame); |