1. 07 6月, 2008 2 次提交
    • A
      KVM: x86 emulator: fix hypercall return value on AMD · 33e3885d
      Avi Kivity 提交于
      The hypercall instructions on Intel and AMD are different.  KVM allows the
      guest to choose one or the other (the default is Intel), and if the guest
      chooses incorrectly, KVM will patch it at runtime to select the correct
      instruction.  This allows live migration between Intel and AMD machines.
      
      This patching occurs in the x86 emulator.  The current code also executes
      the hypercall.  Unfortunately, the tail end of the x86 emulator code also
      executes, overwriting the return value of the hypercall with the original
      contents of rax (which happens to be the hypercall number).
      
      Fix not by executing the hypercall in the emulator context; instead let the
      guest reissue the patched instruction and execute the hypercall via the
      normal path.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      33e3885d
    • J
      KVM: ia64: fix zero extending for mmio ld1/2/4 emulation in KVM · f20d2752
      Jes Sorensen 提交于
      Only copy in the data actually requested by the instruction emulation
      and zero pad the destination register first. This avoids the problem
      where emulated mmio access got garbled data from ld2.acq instructions
      in the vga console driver.
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Acked-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      f20d2752
  2. 06 6月, 2008 24 次提交
  3. 05 6月, 2008 14 次提交