KVM: X86: Fix initialization of MSR lists
authorChenyi Qiang <chenyi.qiang@intel.com>
Wed, 6 Nov 2019 06:35:20 +0000 (14:35 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 12 Nov 2019 09:17:25 +0000 (10:17 +0100)
commit7a5ee6edb42e0bb487954806d34877995b6b8d59
tree148baa85fb034c6fa3ef946f774abd70e152e2ee
parente2d3fcaf939dded3da604a25ebbea9fb954c2280
KVM: X86: Fix initialization of MSR lists

The three MSR lists(msrs_to_save[], emulated_msrs[] and
msr_based_features[]) are global arrays of kvm.ko, which are
adjusted (copy supported MSRs forward to override the unsupported MSRs)
when insmod kvm-{intel,amd}.ko, but it doesn't reset these three arrays
to their initial value when rmmod kvm-{intel,amd}.ko. Thus, at the next
installation, kvm-{intel,amd}.ko will do operations on the modified
arrays with some MSRs lost and some MSRs duplicated.

So define three constant arrays to hold the initial MSR lists and
initialize msrs_to_save[], emulated_msrs[] and msr_based_features[]
based on the constant arrays.

Cc: stable@vger.kernel.org
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
[Remove now useless conditionals. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c