1. 21 7月, 2015 1 次提交
    • A
      KVM: arm64: introduce vcpu->arch.debug_ptr · 84e690bf
      Alex Bennée 提交于
      This introduces a level of indirection for the debug registers. Instead
      of using the sys_regs[] directly we store registers in a structure in
      the vcpu. The new kvm_arm_reset_debug_ptr() sets the debug ptr to the
      guest context.
      
      Because we no longer give the sys_regs offset for the sys_reg_desc->reg
      field, but instead the index into a debug-specific struct we need to
      add a number of additional trap functions for each register. Also as the
      generic generic user-space access code no longer works we have
      introduced a new pair of function pointers to the sys_reg_desc structure
      to override the generic code when needed.
      Reviewed-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      84e690bf
  2. 03 3月, 2014 1 次提交
    • M
      arm64: KVM: allows discrimination of AArch32 sysreg access · 2072d29c
      Marc Zyngier 提交于
      The current handling of AArch32 trapping is slightly less than
      perfect, as it is not possible (from a handler point of view)
      to distinguish it from an AArch64 access, nor to tell a 32bit
      from a 64bit access either.
      
      Fix this by introducing two additional flags:
      - is_aarch32: true if the access was made in AArch32 mode
      - is_32bit: true if is_aarch32 == true and a MCR/MRC instruction
        was used to perform the access (as opposed to MCRR/MRRC).
      
      This allows a handler to cover all the possible conditions in which
      a system register gets trapped.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NChristoffer Dall <christoffer.dall@linaro.org>
      2072d29c
  3. 07 6月, 2013 1 次提交