[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 1/3] xen/mcelog: drop __MC_MSR_MCGCAP



It has never been part of Xen's public interface, and there's therefore
no guarantee for MCG_CAP's value to always be present in array entry 0.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/drivers/xen/mcelog.c
+++ b/drivers/xen/mcelog.c
@@ -222,7 +222,7 @@ static int convert_log(struct mc_info *m
        struct mcinfo_global *mc_global;
        struct mcinfo_bank *mc_bank;
        struct xen_mce m;
-       uint32_t i;
+       unsigned int i, j;
 
        mic = NULL;
        x86_mcinfo_lookup(&mic, mi, MC_TYPE_GLOBAL);
@@ -248,7 +248,12 @@ static int convert_log(struct mc_info *m
        m.socketid = g_physinfo[i].mc_chipid;
        m.cpu = m.extcpu = g_physinfo[i].mc_cpunr;
        m.cpuvendor = (__u8)g_physinfo[i].mc_vendor;
-       m.mcgcap = g_physinfo[i].mc_msrvalues[__MC_MSR_MCGCAP].value;
+       for (j = 0; j < g_physinfo[i].mc_nmsrvals; ++j)
+               switch (g_physinfo[i].mc_msrvalues[j].reg) {
+               case MSR_IA32_MCG_CAP:
+                       m.mcgcap = g_physinfo[i].mc_msrvalues[j].value;
+                       break;
+               }
 
        mic = NULL;
        x86_mcinfo_lookup(&mic, mi, MC_TYPE_BANK);
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -183,7 +183,6 @@ struct mc_info {
 DEFINE_GUEST_HANDLE_STRUCT(mc_info);
 
 #define __MC_MSR_ARRAYSIZE 8
-#define __MC_MSR_MCGCAP 0
 #define __MC_NMSRS 1
 #define MC_NCAPS 7
 struct mcinfo_logical_cpu {


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.