x86: fix CMCI injection
authorJan Beulich <jbeulich@suse.com>
Tue, 26 Feb 2013 09:15:56 +0000 (10:15 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 26 Feb 2013 09:15:56 +0000 (10:15 +0100)
commit2f8c55ccefe49bb526df0eaf5fa9b7b788422208
tree8033d7e89278598690f358db62859b5477634b2f
parent0f8adcb2a7183bea5063f6fffba7d7e1aa14fc84
x86: fix CMCI injection

This fixes the wrong use of literal vector 0xF7 with an "int"
instruction (invalidated by 25113:14609be41f36) and the fact that doing
the injection via a software interrupt was never valid anyway (because
cmci_interrupt() acks the LAPIC, which does the wrong thing if the
interrupt didn't get delivered though it).

In order to do latter, the patch introduces send_IPI_self(), at once
removing two opend coded uses of "genapic" in the IRQ handling code.

Reported-by: Yongjie Ren <yongjie.ren@intel.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Yongjie Ren <yongjie.ren@intel.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/arch/x86/cpu/mcheck/mce.c
xen/arch/x86/cpu/mcheck/mce.h
xen/arch/x86/cpu/mcheck/mce_intel.c
xen/arch/x86/irq.c
xen/arch/x86/smp.c
xen/include/asm-x86/smp.h