OSDN Git Service

x86: mce_banks always have the same size
authorJuan Quintela <quintela@redhat.com>
Tue, 29 Sep 2009 20:48:55 +0000 (22:48 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 5 Oct 2009 14:32:41 +0000 (09:32 -0500)
mce_banks is always MCE_BANKS_DEF * 4 in size, value never change

CC: Huang Ying <ying.huang@intel.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
target-i386/cpu.h
target-i386/helper.c
target-i386/machine.c

index f069018..1bf027e 100644 (file)
@@ -698,7 +698,7 @@ typedef struct CPUX86State {
     uint64 mcg_cap;
     uint64 mcg_status;
     uint64 mcg_ctl;
-    uint64 *mce_banks;
+    uint64 mce_banks[MCE_BANKS_DEF*4];
 
     uint64_t tsc_aux;
 } CPUX86State;
index 999c1bf..c961544 100644 (file)
@@ -1597,8 +1597,7 @@ static void mce_init(CPUX86State *cenv)
         && (cenv->cpuid_features&(CPUID_MCE|CPUID_MCA)) == (CPUID_MCE|CPUID_MCA)) {
         cenv->mcg_cap = MCE_CAP_DEF | MCE_BANKS_DEF;
         cenv->mcg_ctl = ~(uint64_t)0;
-        bank_num = cenv->mcg_cap & 0xff;
-        cenv->mce_banks = qemu_mallocz(bank_num * sizeof(uint64_t) * 4);
+        bank_num = MCE_BANKS_DEF;
         for (bank = 0; bank < bank_num; bank++)
             cenv->mce_banks[bank*4] = ~(uint64_t)0;
     }
index 18347e4..7dc8afc 100644 (file)
@@ -157,7 +157,7 @@ void cpu_save(QEMUFile *f, void *opaque)
     if (env->mcg_cap) {
         qemu_put_be64s(f, &env->mcg_status);
         qemu_put_be64s(f, &env->mcg_ctl);
-        for (i = 0; i < (env->mcg_cap & 0xff); i++) {
+        for (i = 0; i < MCE_BANKS_DEF; i++) {
             qemu_put_be64s(f, &env->mce_banks[4*i]);
             qemu_put_be64s(f, &env->mce_banks[4*i + 1]);
             qemu_put_be64s(f, &env->mce_banks[4*i + 2]);
@@ -355,7 +355,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
         if (env->mcg_cap) {
             qemu_get_be64s(f, &env->mcg_status);
             qemu_get_be64s(f, &env->mcg_ctl);
-            for (i = 0; i < (env->mcg_cap & 0xff); i++) {
+            for (i = 0; i < MCE_BANKS_DEF; i++) {
                 qemu_get_be64s(f, &env->mce_banks[4*i]);
                 qemu_get_be64s(f, &env->mce_banks[4*i + 1]);
                 qemu_get_be64s(f, &env->mce_banks[4*i + 2]);