Function move_msr_up is used to _manually_ swap MSR entries in MSR array. This function can be removed and replaced using the swap macro instead. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <garsilva@xxxxxxxxxxxxxx> --- The new lines are over 80 characters, but I think in this case that is preferable over splitting them. arch/x86/kvm/vmx.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index e6c8ffa..210e491 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -2544,18 +2544,6 @@ static bool vmx_invpcid_supported(void) return cpu_has_vmx_invpcid() && enable_ept; } -/* - * Swap MSR entry in host/guest MSR entry array. - */ -static void move_msr_up(struct vcpu_vmx *vmx, int from, int to) -{ - struct shared_msr_entry tmp; - - tmp = vmx->guest_msrs[to]; - vmx->guest_msrs[to] = vmx->guest_msrs[from]; - vmx->guest_msrs[from] = tmp; -} - static void vmx_set_msr_bitmap(struct kvm_vcpu *vcpu) { unsigned long *msr_bitmap; @@ -2600,28 +2588,28 @@ static void setup_msrs(struct vcpu_vmx *vmx) if (is_long_mode(&vmx->vcpu)) { index = __find_msr_index(vmx, MSR_SYSCALL_MASK); if (index >= 0) - move_msr_up(vmx, index, save_nmsrs++); + swap(vmx->guest_msrs[index], vmx->guest_msrs[save_nmsrs++]); index = __find_msr_index(vmx, MSR_LSTAR); if (index >= 0) - move_msr_up(vmx, index, save_nmsrs++); + swap(vmx->guest_msrs[index], vmx->guest_msrs[save_nmsrs++]); index = __find_msr_index(vmx, MSR_CSTAR); if (index >= 0) - move_msr_up(vmx, index, save_nmsrs++); + swap(vmx->guest_msrs[index], vmx->guest_msrs[save_nmsrs++]); index = __find_msr_index(vmx, MSR_TSC_AUX); if (index >= 0 && guest_cpuid_has(&vmx->vcpu, X86_FEATURE_RDTSCP)) - move_msr_up(vmx, index, save_nmsrs++); + swap(vmx->guest_msrs[index], vmx->guest_msrs[save_nmsrs++]); /* * MSR_STAR is only needed on long mode guests, and only * if efer.sce is enabled. */ index = __find_msr_index(vmx, MSR_STAR); if ((index >= 0) && (vmx->vcpu.arch.efer & EFER_SCE)) - move_msr_up(vmx, index, save_nmsrs++); + swap(vmx->guest_msrs[index], vmx->guest_msrs[save_nmsrs++]); } #endif index = __find_msr_index(vmx, MSR_EFER); if (index >= 0 && update_transition_efer(vmx, index)) - move_msr_up(vmx, index, save_nmsrs++); + swap(vmx->guest_msrs[index], vmx->guest_msrs[save_nmsrs++]); vmx->save_nmsrs = save_nmsrs; -- 2.7.4