KVM: arm/arm64: Log PSTATE for unhandled sysregs
When KVM traps an unhandled sysreg/coproc access from a guest, it logs the guest PC. To aid debugging, it would be helpful to know which exception level the trap came from, along with other PSTATE/CPSR bits, so let's log the PSTATE/CPSR too. Acked-by: Christoffer Dall <christoffer.dall@arm.com> Signed-off-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
fb544d1ca6
commit
d1878af3a5
|
@ -602,8 +602,8 @@ static int emulate_cp15(struct kvm_vcpu *vcpu,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* If access function fails, it should complain. */
|
/* If access function fails, it should complain. */
|
||||||
kvm_err("Unsupported guest CP15 access at: %08lx\n",
|
kvm_err("Unsupported guest CP15 access at: %08lx [%08lx]\n",
|
||||||
*vcpu_pc(vcpu));
|
*vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
||||||
print_cp_instr(params);
|
print_cp_instr(params);
|
||||||
kvm_inject_undefined(vcpu);
|
kvm_inject_undefined(vcpu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1912,8 +1912,8 @@ static void unhandled_cp_access(struct kvm_vcpu *vcpu,
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
kvm_err("Unsupported guest CP%d access at: %08lx\n",
|
kvm_err("Unsupported guest CP%d access at: %08lx [%08lx]\n",
|
||||||
cp, *vcpu_pc(vcpu));
|
cp, *vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
||||||
print_sys_reg_instr(params);
|
print_sys_reg_instr(params);
|
||||||
kvm_inject_undefined(vcpu);
|
kvm_inject_undefined(vcpu);
|
||||||
}
|
}
|
||||||
|
@ -2063,8 +2063,8 @@ static int emulate_sys_reg(struct kvm_vcpu *vcpu,
|
||||||
if (likely(r)) {
|
if (likely(r)) {
|
||||||
perform_access(vcpu, params, r);
|
perform_access(vcpu, params, r);
|
||||||
} else {
|
} else {
|
||||||
kvm_err("Unsupported guest sys_reg access at: %lx\n",
|
kvm_err("Unsupported guest sys_reg access at: %lx [%08lx]\n",
|
||||||
*vcpu_pc(vcpu));
|
*vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
||||||
print_sys_reg_instr(params);
|
print_sys_reg_instr(params);
|
||||||
kvm_inject_undefined(vcpu);
|
kvm_inject_undefined(vcpu);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue