]> Git Repo - linux.git/commitdiff
KVM: arm64: timers: Don't BUG() on unhandled timer trap
authorMarc Zyngier <[email protected]>
Thu, 12 Jan 2023 12:38:29 +0000 (12:38 +0000)
committerOliver Upton <[email protected]>
Thu, 26 Jan 2023 18:48:47 +0000 (18:48 +0000)
Although not handling a trap is a pretty bad situation to be in,
panicing the kernel isn't useful and provides no valuable
information to help debugging the situation.

Instead, dump the encoding of the unhandled sysreg, and inject
an UNDEF in the guest. At least, this gives a user an opportunity
to report the issue with some information to help debugging it.

Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Oliver Upton <[email protected]>
arch/arm64/kvm/sys_regs.c

index d5ee52d6bf7326f9254298631ef2fc0824c0e176..32f4e424b9a5249ac58eec9fa633650614cc53df 100644 (file)
@@ -1049,7 +1049,9 @@ static bool access_arch_timer(struct kvm_vcpu *vcpu,
                treg = TIMER_REG_CVAL;
                break;
        default:
-               BUG();
+               print_sys_reg_msg(p, "%s", "Unhandled trapped timer register");
+               kvm_inject_undefined(vcpu);
+               return false;
        }
 
        if (p->is_write)
This page took 0.069977 seconds and 4 git commands to generate.