1. 14 4月, 2013 3 次提交
  2. 11 4月, 2013 1 次提交
    • K
      KVM: x86 emulator: Fix segment loading in VM86 · f8da94e9
      Kevin Wolf 提交于
      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: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NGleb Natapov <gleb@redhat.com>
      f8da94e9
  3. 14 2月, 2013 1 次提交
  4. 27 1月, 2013 1 次提交
  5. 24 1月, 2013 8 次提交
  6. 10 1月, 2013 7 次提交
  7. 03 1月, 2013 2 次提交
  8. 14 12月, 2012 2 次提交
  9. 12 12月, 2012 1 次提交
  10. 27 11月, 2012 1 次提交
  11. 06 9月, 2012 3 次提交
  12. 05 9月, 2012 3 次提交
  13. 28 8月, 2012 4 次提交
  14. 23 8月, 2012 1 次提交
    • A
      KVM: x86 emulator: use stack size attribute to mask rsp in stack ops · 5ad105e5
      Avi Kivity 提交于
      The sub-register used to access the stack (sp, esp, or rsp) is not
      determined by the address size attribute like other memory references,
      but by the stack segment's B bit (if not in x86_64 mode).
      
      Fix by using the existing stack_mask() to figure out the correct mask.
      
      This long-existing bug was exposed by a combination of a27685c3
      (emulate invalid guest state by default), which causes many more
      instructions to be emulated, and a seabios change (possibly a bug) which
      causes the high 16 bits of esp to become polluted across calls to real
      mode software interrupts.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      5ad105e5
  15. 26 7月, 2012 2 次提交