kernel/arch/x86/kvm/lapic.c
.. .. @@ -2115,10 +2115,14 @@ 2115 2115 break; 2116 2116 2117 2117 case APIC_SELF_IPI: 2118 - if (apic_x2apic_mode(apic))2119 - kvm_apic_send_ipi(apic, APIC_DEST_SELF | (val & APIC_VECTOR_MASK), 0);2120 - else2118 + /*2119 + * Self-IPI exists only when x2APIC is enabled. Bits 7:0 hold2120 + * the vector, everything else is reserved.2121 + */2122 + if (!apic_x2apic_mode(apic) || (val & ~APIC_VECTOR_MASK))2121 2123 ret = 1; 2124 + else2125 + kvm_apic_send_ipi(apic, APIC_DEST_SELF | val, 0);2122 2126 break; 2123 2127 default: 2124 2128 ret = 1;