git: e5c7aa5c703e - main - arm64: print '0x' before hex values

From: Christos Margiolis <christos_at_FreeBSD.org>
Date: Wed, 21 Jun 2023 15:48:43 UTC
The branch main has been updated by christos:

URL: https://cgit.FreeBSD.org/src/commit/?id=e5c7aa5c703e268a80331be3a587449995563770

commit e5c7aa5c703e268a80331be3a587449995563770
Author:     Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2023-06-21 15:47:06 +0000
Commit:     Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2023-06-21 15:47:06 +0000

    arm64: print '0x' before hex values
    
    Not making it explicit that we're printing values in hex can be
    misleading when the number doesn't contain hex-only symbols (a-f). A
    good example of this is print_gp_register(), where we print "(func +
    offset)"; if the offset doesn't contain a-f symbols, it's not
    immediately clear if that value is in decimal or hex. Using '%#' instead
    of '0x%' also isn't a better option, it doesn't print '0x' if the value
    is 0, and it also messes up column alignment.
    
    Reviewed by:    imp, markj
    Approved by:    markj (mentor)
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D40583
---
 sys/arm64/arm64/trap.c | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
index 9b1b73aeb55d..7b5c7bc61fd3 100644
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -213,7 +213,7 @@ align_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
 	if (!lower) {
 		print_registers(frame);
 		print_gp_register("far", far);
-		printf(" esr: %16lx\n", esr);
+		printf(" esr: 0x%.16lx\n", esr);
 		panic("Misaligned access from kernel space!");
 	}
 
@@ -328,7 +328,7 @@ data_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
 	if (td->td_md.md_spinlock_count != 0) {
 		print_registers(frame);
 		print_gp_register("far", far);
-		printf(" esr: %.16lx\n", esr);
+		printf(" esr: 0x%.16lx\n", esr);
 		panic("data abort with spinlock held (spinlock count %d != 0)",
 		    td->td_md.md_spinlock_count);
 	}
@@ -337,7 +337,7 @@ data_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
 	    WARN_GIANTOK, NULL, "Kernel page fault") != 0) {
 		print_registers(frame);
 		print_gp_register("far", far);
-		printf(" esr: %16lx\n", esr);
+		printf(" esr: 0x%.16lx\n", esr);
 		panic("data abort in critical section or under mutex");
 	}
 
@@ -378,7 +378,7 @@ bad_far:
 			printf("Fatal data abort:\n");
 			print_registers(frame);
 			print_gp_register("far", far);
-			printf(" esr: %16lx\n", esr);
+			printf(" esr: 0x%.16lx\n", esr);
 
 #ifdef KDB
 			if (debugger_on_trap) {
@@ -390,7 +390,7 @@ bad_far:
 					return;
 			}
 #endif
-			panic("vm_fault failed: %lx error %d",
+			panic("vm_fault failed: 0x%lx error %d",
 			    frame->tf_elr, error);
 		}
 	}
@@ -409,14 +409,14 @@ print_gp_register(const char *name, uint64_t value)
 	db_expr_t offset;
 #endif
 
-	printf(" %s: %16lx", name, value);
+	printf(" %s: 0x%.16lx", name, value);
 #if defined(DDB)
 	/* If this looks like a kernel address try to find the symbol */
 	if (value >= VM_MIN_KERNEL_ADDRESS) {
 		sym = db_search_symbol(value, DB_STGY_ANY, &offset);
 		if (sym != C_DB_SYM_NULL) {
 			db_symbol_values(sym, &sym_name, &sym_value);
-			printf(" (%s + %lx)", sym_name, offset);
+			printf(" (%s + 0x%lx)", sym_name, offset);
 		}
 	}
 #endif
@@ -434,10 +434,10 @@ print_registers(struct trapframe *frame)
 		    reg);
 		print_gp_register(name, frame->tf_x[reg]);
 	}
-	printf("  sp: %16lx\n", frame->tf_sp);
+	printf("  sp: 0x%.16lx\n", frame->tf_sp);
 	print_gp_register(" lr", frame->tf_lr);
 	print_gp_register("elr", frame->tf_elr);
-	printf("spsr: %16lx\n", frame->tf_spsr);
+	printf("spsr: 0x%.16lx\n", frame->tf_spsr);
 }
 
 #ifdef VFP
@@ -485,8 +485,8 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
 #endif
 
 	CTR4(KTR_TRAP,
-	    "do_el1_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td,
-	    esr, frame->tf_elr, frame);
+	    "do_el1_sync: curthread: %p, esr 0x%lx, elr: 0x%lx, frame: %p",
+	    td, esr, frame->tf_elr, frame);
 
 	/*
 	 * Enable debug exceptions if we aren't already handling one. They will
@@ -506,7 +506,7 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
 #endif
 		{
 			print_registers(frame);
-			printf(" esr: %16lx\n", esr);
+			printf(" esr: 0x%.16lx\n", esr);
 			panic("VFP exception in the kernel");
 		}
 		break;
@@ -519,8 +519,8 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
 		} else {
 			print_registers(frame);
 			print_gp_register("far", far);
-			printf(" esr: %16lx\n", esr);
-			panic("Unhandled EL1 %s abort: %x",
+			printf(" esr: 0x%.16lx\n", esr);
+			panic("Unhandled EL1 %s abort: 0x%x",
 			    exception == EXCP_INSN_ABORT ? "instruction" :
 			    "data", dfsc);
 		}
@@ -564,7 +564,7 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
 	default:
 		print_registers(frame);
 		print_gp_register("far", far);
-		panic("Unknown kernel exception %x esr_el1 %lx", exception,
+		panic("Unknown kernel exception 0x%x esr_el1 0x%lx", exception,
 		    esr);
 	}
 }
@@ -579,7 +579,7 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
 
 	/* Check we have a sane environment when entering from userland */
 	KASSERT((uintptr_t)get_pcpu() >= VM_MIN_KERNEL_ADDRESS,
-	    ("Invalid pcpu address from userland: %p (tpidr %lx)",
+	    ("Invalid pcpu address from userland: %p (tpidr 0x%lx)",
 	     get_pcpu(), READ_SPECIALREG(tpidr_el1)));
 
 	kasan_mark(frame, sizeof(*frame), sizeof(*frame), 0);
@@ -599,8 +599,8 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
 	intr_enable();
 
 	CTR4(KTR_TRAP,
-	    "do_el0_sync: curthread: %p, esr %lx, elr: %lx, frame: %p", td, esr,
-	    frame->tf_elr, frame);
+	    "do_el0_sync: curthread: %p, esr 0x%lx, elr: 0x%lx, frame: %p",
+	    td, esr, frame->tf_elr, frame);
 
 	switch (exception) {
 	case EXCP_FP_SIMD:
@@ -637,8 +637,8 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
 		else {
 			print_registers(frame);
 			print_gp_register("far", far);
-			printf(" esr: %16lx\n", esr);
-			panic("Unhandled EL0 %s abort: %x",
+			printf(" esr: 0x%.16lx\n", esr);
+			panic("Unhandled EL0 %s abort: 0x%x",
 			    exception == EXCP_INSN_ABORT_L ? "instruction" :
 			    "data", dfsc);
 		}
@@ -730,7 +730,7 @@ do_serror(struct trapframe *frame)
 
 	print_registers(frame);
 	print_gp_register("far", far);
-	printf(" esr: %16lx\n", esr);
+	printf(" esr: 0x%.16lx\n", esr);
 	panic("Unhandled System Error");
 }
 
@@ -745,6 +745,6 @@ unhandled_exception(struct trapframe *frame)
 
 	print_registers(frame);
 	print_gp_register("far", far);
-	printf(" esr: %16lx\n", esr);
+	printf(" esr: 0x%.16lx\n", esr);
 	panic("Unhandled exception");
 }