target-i386: kvm: 'kvm_get_supported_msrs' cleanup

Function 'kvm_get_supported_msrs' is only called once
now, get rid of the static variable 'kvm_supported_msrs'.

Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20190725151639.21693-1-liq3ea@163.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Li Qiang 2019-07-25 08:16:39 -07:00 committed by Paolo Bonzini
parent 98387d5802
commit de428cead6

View File

@ -1842,24 +1842,22 @@ static int kvm_get_supported_feature_msrs(KVMState *s)
static int kvm_get_supported_msrs(KVMState *s) static int kvm_get_supported_msrs(KVMState *s)
{ {
static int kvm_supported_msrs;
int ret = 0; int ret = 0;
/* first time */
if (kvm_supported_msrs == 0) {
struct kvm_msr_list msr_list, *kvm_msr_list; struct kvm_msr_list msr_list, *kvm_msr_list;
kvm_supported_msrs = -1; /*
* Obtain MSR list from KVM. These are the MSRs that we must
/* Obtain MSR list from KVM. These are the MSRs that we must * save/restore.
* save/restore */ */
msr_list.nmsrs = 0; msr_list.nmsrs = 0;
ret = kvm_ioctl(s, KVM_GET_MSR_INDEX_LIST, &msr_list); ret = kvm_ioctl(s, KVM_GET_MSR_INDEX_LIST, &msr_list);
if (ret < 0 && ret != -E2BIG) { if (ret < 0 && ret != -E2BIG) {
return ret; return ret;
} }
/* Old kernel modules had a bug and could write beyond the provided /*
memory. Allocate at least a safe amount of 1K. */ * Old kernel modules had a bug and could write beyond the provided
* memory. Allocate at least a safe amount of 1K.
*/
kvm_msr_list = g_malloc0(MAX(1024, sizeof(msr_list) + kvm_msr_list = g_malloc0(MAX(1024, sizeof(msr_list) +
msr_list.nmsrs * msr_list.nmsrs *
sizeof(msr_list.indices[0]))); sizeof(msr_list.indices[0])));
@ -1942,7 +1940,6 @@ static int kvm_get_supported_msrs(KVMState *s)
} }
g_free(kvm_msr_list); g_free(kvm_msr_list);
}
return ret; return ret;
} }