.. | .. |
---|
222 | 222 | struct mcinfo_global *mc_global; |
---|
223 | 223 | struct mcinfo_bank *mc_bank; |
---|
224 | 224 | struct xen_mce m; |
---|
225 | | - uint32_t i; |
---|
| 225 | + unsigned int i, j; |
---|
226 | 226 | |
---|
227 | 227 | mic = NULL; |
---|
228 | 228 | x86_mcinfo_lookup(&mic, mi, MC_TYPE_GLOBAL); |
---|
.. | .. |
---|
248 | 248 | m.socketid = g_physinfo[i].mc_chipid; |
---|
249 | 249 | m.cpu = m.extcpu = g_physinfo[i].mc_cpunr; |
---|
250 | 250 | m.cpuvendor = (__u8)g_physinfo[i].mc_vendor; |
---|
251 | | - m.mcgcap = g_physinfo[i].mc_msrvalues[__MC_MSR_MCGCAP].value; |
---|
| 251 | + for (j = 0; j < g_physinfo[i].mc_nmsrvals; ++j) |
---|
| 252 | + switch (g_physinfo[i].mc_msrvalues[j].reg) { |
---|
| 253 | + case MSR_IA32_MCG_CAP: |
---|
| 254 | + m.mcgcap = g_physinfo[i].mc_msrvalues[j].value; |
---|
| 255 | + break; |
---|
| 256 | + |
---|
| 257 | + case MSR_PPIN: |
---|
| 258 | + case MSR_AMD_PPIN: |
---|
| 259 | + m.ppin = g_physinfo[i].mc_msrvalues[j].value; |
---|
| 260 | + break; |
---|
| 261 | + } |
---|
252 | 262 | |
---|
253 | 263 | mic = NULL; |
---|
254 | 264 | x86_mcinfo_lookup(&mic, mi, MC_TYPE_BANK); |
---|