Commit 8f3873a3 authored by Pierre-Clément Tosi's avatar Pierre-Clément Tosi Committed by Oliver Upton
Browse files

KVM: arm64: Introduce print_nvhe_hyp_panic helper



Add a helper to display a panic banner soon to also be used for kCFI
failures, to ensure that we remain consistent.

Signed-off-by: default avatarPierre-Clément Tosi <ptosi@google.com>
Acked-by: default avatarWill Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20240610063244.2828978-8-ptosi@google.com


Signed-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
parent 7a928b32
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -411,6 +411,12 @@ void handle_exit_early(struct kvm_vcpu *vcpu, int exception_index)
		kvm_handle_guest_serror(vcpu, kvm_vcpu_get_esr(vcpu));
}

static void print_nvhe_hyp_panic(const char *name, u64 panic_addr)
{
	kvm_err("nVHE hyp %s at: [<%016llx>] %pB!\n", name, panic_addr,
		(void *)(panic_addr + kaslr_offset()));
}

void __noreturn __cold nvhe_hyp_panic_handler(u64 esr, u64 spsr,
					      u64 elr_virt, u64 elr_phys,
					      u64 par, uintptr_t vcpu,
@@ -439,11 +445,9 @@ void __noreturn __cold nvhe_hyp_panic_handler(u64 esr, u64 spsr,
		if (file)
			kvm_err("nVHE hyp BUG at: %s:%u!\n", file, line);
		else
			kvm_err("nVHE hyp BUG at: [<%016llx>] %pB!\n", panic_addr,
					(void *)(panic_addr + kaslr_offset()));
			print_nvhe_hyp_panic("BUG", panic_addr);
	} else {
		kvm_err("nVHE hyp panic at: [<%016llx>] %pB!\n", panic_addr,
				(void *)(panic_addr + kaslr_offset()));
		print_nvhe_hyp_panic("panic", panic_addr);
	}

	/* Dump the nVHE hypervisor backtrace */