[PATCH v2 9/9] arm64: KVM: enable trapping of all debug registers
From: Christoffer Dall <hidden>
Date: 2014-05-25 15:36:29
Also in:
kvm
On Tue, May 20, 2014 at 05:55:45PM +0100, Marc Zyngier wrote:
quoted hunk ↗ jump to hunk
Enable trapping of the debug registers, preventing the guests to mess with the host state (and allowing guests to use the debug infrastructure as well). Reviewed-by: Anup Patel <redacted> Signed-off-by: Marc Zyngier <redacted> --- arch/arm64/kvm/hyp.S | 8 ++++++++ 1 file changed, 8 insertions(+)diff --git a/arch/arm64/kvm/hyp.S b/arch/arm64/kvm/hyp.S index 73ec5c4..72ed0bf8 100644 --- a/arch/arm64/kvm/hyp.S +++ b/arch/arm64/kvm/hyp.S@@ -777,6 +777,14 @@ __kvm_hyp_code_start: mrs x2, mdcr_el2 and x2, x2, #MDCR_EL2_HPMN_MASK orr x2, x2, #(MDCR_EL2_TPM | MDCR_EL2_TPMCR) + orr x2, x2, #(MDCR_EL2_TDRA | MDCR_EL2_TDOSA)
so we unconditionally trap on the OS register access, but we don't properly emulate these do we? What's the rationale? (atmittedly, again, I'm not 100% clear on how the OS lock thingy is supposed to work/be used).
+ + // Check for KVM_ARM64_DEBUG_DIRTY, and set to debug to trap + // if not dirty.
s/set to debug to trap/set debug to trap/ ??
+ ldr x3, [x0, #VCPU_DEBUG_FLAGS] + tbnz x3, #KVM_ARM64_DEBUG_DIRTY_SHIFT, 1f + orr x2, x2, #MDCR_EL2_TDA +1: msr mdcr_el2, x2 .endm -- 1.8.3.4
as per the functionality in this patch otherwise: Reviewed-by: Christoffer Dall <redacted>