On 06/28/2009 03:15 PM, Gleb Natapov wrote:
Directed EOI is specified by x2APIC, but is available even when lapic is
in xAPIC mode.

  #define APIC_LVT_NUM                  6
  /* 14 is the version for Xeon and Pentium 8.4.8*/
-#define APIC_VERSION                   (0x14UL | ((APIC_LVT_NUM - 1)<<  16))
+#define APIC_VERSION                   (0x14UL | ((APIC_LVT_NUM - 1)<<  16) | \
+                                        APIC_LVR_DIRECTED_EOI)

Better make that depend on the x2apic cpuid bit.

  static void apic_send_ipi(struct kvm_lapic *apic)
@@ -683,7 +686,7 @@ static void apic_mmio_write(struct kvm_io_device *this,
                break;

        case APIC_SPIV:
-               apic_set_reg(apic, APIC_SPIV, val&  0x3ff);
+               apic_set_reg(apic, APIC_SPIV, val&  0xfff);
                if (!(val&  APIC_SPIV_APIC_ENABLED)) {
                        int i;
                        u32 lvt_val;

Confused, you're adding bits 10 and 11 while APIC_SPIV_DIRECTED_EOI is bit 12?

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to