1. 09 Aug, 2009 1 commit
    • Gleb Natapov's avatar
      KVM: Avoid redelivery of edge interrupt before next edge · b4a2f5e7
      Gleb Natapov authored
      The check for an edge is broken in current ioapic code. ioapic->irr is
      cleared on each edge interrupt by ioapic_service() and this makes
      old_irr != ioapic->irr condition in kvm_ioapic_set_irq() to be always
      true. The patch fixes the code to properly recognise edge.
      
      Some HW emulation calls set_irq() without level change. If each such
      call is propagated to an OS it may confuse a device driver. This is the
      case with keyboard device emulation and Windows XP x64  installer on SMP VM.
      Each keystroke produce two interrupts (down/up) one interrupt is
      submitted to CPU0 and another to CPU1. This confuses Windows somehow
      and it ignores keystrokes.
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      b4a2f5e7
  2. 06 Aug, 2009 1 commit
  3. 05 Aug, 2009 11 commits
  4. 04 Aug, 2009 27 commits