1. 03 Nov, 2013 1 commit
    • Paolo Bonzini's avatar
      KVM: x86: fix emulation of "movzbl %bpl, %eax" · daf72722
      Paolo Bonzini authored
      When I was looking at RHEL5.9's failure to start with
      unrestricted_guest=0/emulate_invalid_guest_state=1, I got it working with a
      slightly older tree than kvm.git.  I now debugged the remaining failure,
      which was introduced by commit 660696d1 (KVM: X86 emulator: fix
      source operand decoding for 8bit mov[zs]x instructions, 2013-04-24)
      introduced a similar mis-emulation to the one in commit 8acb4207
      
       (KVM:
      fix sil/dil/bpl/spl in the mod/rm fields, 2013-05-30).  The incorrect
      decoding occurs in 8-bit movzx/movsx instructions whose 8-bit operand
      is sil/dil/bpl/spl.
      
      Needless to say, "movzbl %bpl, %eax" does occur in RHEL5.9's decompression
      prolog, just a handful of instructions before finally giving control to
      the decompressed vmlinux and getting out of the invalid guest state.
      
      Because OpMem8 bypasses decode_modrm, the same handling of the REX prefix
      must be applied to OpMem8.
      Reported-by: default avatarMichele Baldessari <michele@redhat.com>
      Cc: stable@vger.kernel.org
      Cc: Gleb Natapov <gleb@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      daf72722
  2. 31 Oct, 2013 1 commit
  3. 30 Oct, 2013 4 commits
  4. 17 Sep, 2013 1 commit
  5. 03 Jun, 2013 2 commits
  6. 21 May, 2013 8 commits
  7. 09 May, 2013 3 commits
  8. 25 Apr, 2013 1 commit
  9. 14 Apr, 2013 3 commits
  10. 11 Apr, 2013 1 commit
    • Kevin Wolf's avatar
      KVM: x86 emulator: Fix segment loading in VM86 · f8da94e9
      Kevin Wolf authored
      This fixes a regression introduced in commit 03ebebeb ("KVM: x86
      emulator: Leave segment limit and attributs alone in real mode").
      
      The mentioned commit changed the segment descriptors for both real mode
      and VM86 to only update the segment base instead of creating a
      completely new descriptor with limit 0xffff so that unreal mode keeps
      working across a segment register reload.
      
      This leads to an invalid segment descriptor in the eyes of VMX, which
      seems to be okay for real mode because KVM will fix it up before the
      next VM entry or emulate the state, but it doesn't do this if the guest
      is in VM86, so we end up with:
      
        KVM: entry failed, hardware error 0x80000021
      
      Fix this by effectively reverting commit 03ebebeb
      
       for VM86 and leaving
      it only in place for real mode, which is where it's really needed.
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      f8da94e9
  11. 13 Feb, 2013 1 commit
  12. 27 Jan, 2013 1 commit
  13. 23 Jan, 2013 8 commits
  14. 09 Jan, 2013 5 commits