Linux/linux 7a5ee6earch/x86/kvm x86.c

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 at vger.kernel.org
Reviewed-by: Xiaoyao Li <xiaoyao.li at intel.com>
Signed-off-by: Chenyi Qiang <chenyi.qiang at intel.com>
[Remove now useless conditionals. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
DeltaFile
+26-30arch/x86/kvm/x86.c
+26-301 files

UnifiedSplitRaw