[Skiboot] [RFC PATCH 1/3] core/exceptions.c: rearrange code to allow more interrupt types

Nicholas Piggin npiggin at gmail.com
Wed Jun 5 12:36:14 AEST 2019


Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
 core/exceptions.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/core/exceptions.c b/core/exceptions.c
index 4e5c0819e..5e453264e 100644
--- a/core/exceptions.c
+++ b/core/exceptions.c
@@ -78,9 +78,10 @@ void exception_entry(struct stack_frame *stack)
 	if (!(msr & MSR_RI))
 		fatal = true;
 
-	prerror("***********************************************\n");
 	l = 0;
-	if (stack->type == 0x100) {
+	switch (stack->type) {
+	case 0x100:
+		prerror("***********************************************\n");
 		if (fatal) {
 			l += snprintf(buf + l, EXCEPTION_MAX_STR - l,
 				"Fatal System Reset at "REG"   ", nip);
@@ -88,14 +89,21 @@ void exception_entry(struct stack_frame *stack)
 			l += snprintf(buf + l, EXCEPTION_MAX_STR - l,
 				"System Reset at "REG"   ", nip);
 		}
-	} else if (stack->type == 0x200) {
+		break;
+
+	case 0x200:
 		fatal = true;
+		prerror("***********************************************\n");
 		l += snprintf(buf + l, EXCEPTION_MAX_STR - l,
 			"Fatal MCE at "REG"   ", nip);
-	} else {
+		break;
+
+	default:
 		fatal = true;
+		prerror("***********************************************\n");
 		l += snprintf(buf + l, EXCEPTION_MAX_STR - l,
 			"Fatal Exception 0x%llx at "REG"  ", stack->type, nip);
+		break;
 	}
 	l += snprintf_symbol(buf + l, EXCEPTION_MAX_STR - l, nip);
 	l += snprintf(buf + l, EXCEPTION_MAX_STR - l, "  MSR "REG, msr);
-- 
2.20.1



More information about the Skiboot mailing list