Patch "KVM: VMX: introduce alloc_loaded_vmcs" has been added to the 4.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
KVM: VMX: introduce alloc_loaded_vmcs
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
KVM_VMX_introduce_alloc_loaded_vmcs.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Subject: KVM: VMX: introduce alloc_loaded_vmcs
From: Paolo Bonzini [email protected]
Date: Thu Jan 11 12:16:15 2018 +0100
From: Paolo Bonzini [email protected]
commit f21f165ef922c2146cc5bdc620f542953c41714b
Group together the calls to alloc_vmcs and loaded_vmcs_init. Soon we'll also allocate an MSR bitmap there.
--- arch/x86/kvm/vmx.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-)
arch/x86/kvm/vmx.c +22 -14
@@ -3814,11 +3814,6 @@ static struct vmcs *alloc_vmcs_cpu(int creturn vmcs; } -static struct vmcs *alloc_vmcs (void ) -{ -return alloc_vmcs_cpu (raw_smp_processor_id ()); -} -static void free_vmcs (struct vmcs *vmcs) {free_pages ((unsigned long )vmcs, vmcs_config.order);
@@ -3837,6 +3832,22 @@ static void free_loaded_vmcs(struct loadWARN_ON (loaded_vmcs->shadow_vmcs !=NULL ); } +static struct vmcs *alloc_vmcs (void ) +{ +return alloc_vmcs_cpu (raw_smp_processor_id ()); +} + +static int alloc_loaded_vmcs (struct loaded_vmcs *loaded_vmcs) +{ + loaded_vmcs->vmcs =alloc_vmcs (); +if (!loaded_vmcs->vmcs) +return -ENOMEM ; + + loaded_vmcs->shadow_vmcs =NULL ; +loaded_vmcs_init (loaded_vmcs); +return 0 ; +} +static void free_kvm_area (void ) {int cpu;
@@ -7135,12 +7146,11 @@ static int enter_vmx_operation(struct kv {struct vcpu_vmx *vmx =to_vmx (vcpu);struct vmcs *shadow_vmcs; +int r; - vmx->nested.vmcs02.vmcs =alloc_vmcs (); - vmx->nested.vmcs02.shadow_vmcs =NULL ; -if (!vmx->nested.vmcs02.vmcs) + r =alloc_loaded_vmcs (&vmx->nested.vmcs02); +if (r <0 ) goto out_vmcs02; -loaded_vmcs_init (&vmx->nested.vmcs02);if (cpu_has_vmx_msr_bitmap ()) { vmx->nested.msr_bitmap =
@@ -9535,13 +9545,11 @@ static struct kvm_vcpu *vmx_create_vcpu(if (!vmx->guest_msrs) goto free_pml; - vmx->loaded_vmcs = &vmx->vmcs01; - vmx->loaded_vmcs->vmcs =alloc_vmcs (); - vmx->loaded_vmcs->shadow_vmcs =NULL ; -if (!vmx->loaded_vmcs->vmcs) + err =alloc_loaded_vmcs (&vmx->vmcs01); +if (err <0 ) goto free_msrs; -loaded_vmcs_init (vmx->loaded_vmcs); + vmx->loaded_vmcs = &vmx->vmcs01; cpu =get_cpu ();vmx_vcpu_load (&vmx->vcpu, cpu); vmx->vcpu.cpu = cpu;
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/x86pti_Do_not_enable_PTI_on_CPUs_which_are_not_vulnerable_to_Meltdown.patch queue-4.14/x86kvm_Update_spectre-v1_mitigation.patch queue-4.14/x86speculation_Use_Indirect_Branch_Prediction_Barrier_in_context_switch.patch queue-4.14/KVM_VMX_introduce_alloc_loaded_vmcs.patch queue-4.14/x86cpufeature_Blacklist_SPEC_CTRLPRED_CMD_on_early_Spectre_v2_microcodes.patch queue-4.14/x86cpufeatures_Add_Intel_feature_bits_for_Speculation_Control.patch queue-4.14/x86paravirt_Remove_noreplace-paravirt_cmdline_option.patch queue-4.14/KVM_VMX_Make_indirect_call_speculation_safe.patch queue-4.14/x86msr_Add_definitions_for_new_speculation_control_MSRs.patch queue-4.14/KVMVMX_Allow_direct_access_to_MSR_IA32_SPEC_CTRL.patch queue-4.14/x86cpufeatures_Add_CPUID_7_EDX_CPUID_leaf.patch queue-4.14/KVM_nVMX_Eliminate_vmcs02_pool.patch queue-4.14/x86cpufeatures_Add_AMD_feature_bits_for_Speculation_Control.patch queue-4.14/KVMSVM_Allow_direct_access_to_MSR_IA32_SPEC_CTRL.patch queue-4.14/KVMx86_Add_IBPB_support.patch queue-4.14/KVMVMX_Emulate_MSR_IA32_ARCH_CAPABILITIES.patch queue-4.14/x86speculation_Add_basic_IBPB_(Indirect_Branch_Prediction_Barrier)_support.patch queue-4.14/x86speculation_Simplify_indirect_branch_prediction_barrier().patch queue-4.14/KVM_VMX_make_MSR_bitmaps_per-VCPU.patch queue-4.14/KVM_x86_Make_indirect_calls_in_emulator_speculation_safe.patch queue-4.14/x86retpoline_Simplify_vmexit_fill_RSB().patch queue-4.14/x86cpufeatures_Clean_up_Spectre_v2_related_CPUID_flags.patch queue-4.14/KVMx86_Update_the_reverse_cpuid_list_to_include_CPUID_7_EDX.patch