1. 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
  2. 09 8月, 2013 1 次提交
    • M
      arm64: KVM: perform save/restore of PAR_EL1 · 1bbd8054
      Marc Zyngier 提交于
      Not saving PAR_EL1 is an unfortunate oversight. If the guest
      performs an AT* operation and gets scheduled out before reading
      the result of the translation from PAREL1, it could become
      corrupted by another guest or the host.
      
      Saving this register is made slightly more complicated as KVM also
      uses it on the permission fault handling path, leading to an ugly
      "stash and restore" sequence. Fortunately, this is already a slow
      path so we don't really care. Also, Linux doesn't do any AT*
      operation, so Linux guests are not impacted by this bug.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      1bbd8054
  3. 12 6月, 2013 1 次提交
  4. 07 6月, 2013 1 次提交