From: Keir Fraser Date: Tue, 4 May 2010 12:59:55 +0000 (+0100) Subject: mce: Revert 21264:a8eb546e3cb0 X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~12264 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e684e887aff66c58f225b1f109be2bcfe6c9c75a;p=xen.git mce: Revert 21264:a8eb546e3cb0 Changes Xen machine-check ABI in incompatible way. Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c index efcd74f965..33e5bcb480 100644 --- a/xen/arch/x86/cpu/mcheck/mce.c +++ b/xen/arch/x86/cpu/mcheck/mce.c @@ -1274,7 +1274,6 @@ long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc) unsigned int target; struct xen_mc_msrinject *mc_msrinject; struct xen_mc_mceinject *mc_mceinject; - cpumask_t target_map; if (!IS_PRIV(v->domain) ) return x86_mcerr(NULL, -EPERM); @@ -1412,7 +1411,6 @@ long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc) mc_mceinject = &op->u.mc_mceinject; target = mc_mceinject->mceinj_cpunr; - flags = mc_mceinject->mceinj_flag; if (target >= NR_CPUS) return x86_mcerr("do_mca #MC: bad target", -EINVAL); @@ -1421,22 +1419,12 @@ long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc) return x86_mcerr("do_mca #MC: target offline", -EINVAL); add_taint(TAINT_ERROR_INJECT); - if (flags == XEN_MC_UC) { - if ( mce_broadcast ) - on_each_cpu(x86_mc_mceinject, mc_mceinject, 0); - else - on_selected_cpus(cpumask_of(target), x86_mc_mceinject, - mc_mceinject, 1); - } - else if (flags == XEN_MC_CE) { - if (mce_broadcast) - send_IPI_mask(&cpu_online_map, CMCI_APIC_VECTOR); - else { - cpus_clear(target_map); - cpu_set(target, target_map); - send_IPI_mask(&target_map, CMCI_APIC_VECTOR); - } - } + + if ( mce_broadcast ) + on_each_cpu(x86_mc_mceinject, mc_mceinject, 0); + else + on_selected_cpus(cpumask_of(target), x86_mc_mceinject, + mc_mceinject, 1); break; default: diff --git a/xen/include/public/arch-x86/xen-mca.h b/xen/include/public/arch-x86/xen-mca.h index 6458504cd8..1279714688 100644 --- a/xen/include/public/arch-x86/xen-mca.h +++ b/xen/include/public/arch-x86/xen-mca.h @@ -400,11 +400,8 @@ struct xen_mc_msrinject { #define MC_MSRINJ_F_INTERPOSE 0x1 #define XEN_MC_mceinject 5 -#define XEN_MC_UC 0 -#define XEN_MC_CE 1 struct xen_mc_mceinject { - uint32_t mceinj_cpunr; /* target processor id */ - uint32_t mceinj_flag; /* UC error or CE error flag */ + unsigned int mceinj_cpunr; /* target processor id */ }; struct xen_mc {