Message ID | c1b7f0e5c2476f9f565acda5c1e746b8d181499b.1708933498.git.isaku.yamahata@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v19,001/130] x86/virt/tdx: Rename _offset to _member for TD_SYSINFO_MAP() macro | expand |
On 2/26/2024 4:25 PM, isaku.yamahata@intel.com wrote: > From: Isaku Yamahata <isaku.yamahata@intel.com> > > vmx_hardware_disable() accesses loaded_vmcss_on_cpu via > hardware_disable_all(). To allow hardware_enable/disable_all() before > kvm_init(), initialize it in before kvm_x86_vendor_init() in vmx_init() > so that tdx module initialization, hardware_setup method, can reference > the variable. > > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com> > Reviewed-by: Yuan Yao <yuan.yao@intel.com> The shortlog should be this? KVM: VMX: Initialize loaded_vmcss_on_cpu in vmx_init() Others, Reviewed-by: Binbin Wu <binbin.wu@linux.intel.com> > > --- > v19: > - Fix the subject to match the patch by Yuan > > v18: > - Move the vmcss_on_cpu initialization from vmx_hardware_setup() to > early point of vmx_init() by Binbin > > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com> > --- > arch/x86/kvm/vmx/vmx.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index 434f5aaef030..8af0668e4dca 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -8539,6 +8539,10 @@ static int __init vmx_init(void) > */ > hv_init_evmcs(); > > + /* vmx_hardware_disable() accesses loaded_vmcss_on_cpu. */ > + for_each_possible_cpu(cpu) > + INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu)); > + > r = kvm_x86_vendor_init(&vt_init_ops); > if (r) > return r; > @@ -8554,11 +8558,8 @@ static int __init vmx_init(void) > if (r) > goto err_l1d_flush; > > - for_each_possible_cpu(cpu) { > - INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu)); > - > + for_each_possible_cpu(cpu) > pi_init_cpu(cpu); > - } > > cpu_emergency_register_virt_callback(vmx_emergency_disable); >
On Wed, Mar 13, 2024 at 11:30:11PM +0800, Binbin Wu <binbin.wu@linux.intel.com> wrote: > > > On 2/26/2024 4:25 PM, isaku.yamahata@intel.com wrote: > > From: Isaku Yamahata <isaku.yamahata@intel.com> > > > > vmx_hardware_disable() accesses loaded_vmcss_on_cpu via > > hardware_disable_all(). To allow hardware_enable/disable_all() before > > kvm_init(), initialize it in before kvm_x86_vendor_init() in vmx_init() > > so that tdx module initialization, hardware_setup method, can reference > > the variable. > > > > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com> > > Reviewed-by: Yuan Yao <yuan.yao@intel.com> > > The shortlog should be this? > KVM: VMX: Initialize loaded_vmcss_on_cpu in vmx_init() Yes. I also will fix the shortlog in the next patch.
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 434f5aaef030..8af0668e4dca 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -8539,6 +8539,10 @@ static int __init vmx_init(void) */ hv_init_evmcs(); + /* vmx_hardware_disable() accesses loaded_vmcss_on_cpu. */ + for_each_possible_cpu(cpu) + INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu)); + r = kvm_x86_vendor_init(&vt_init_ops); if (r) return r; @@ -8554,11 +8558,8 @@ static int __init vmx_init(void) if (r) goto err_l1d_flush; - for_each_possible_cpu(cpu) { - INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu)); - + for_each_possible_cpu(cpu) pi_init_cpu(cpu); - } cpu_emergency_register_virt_callback(vmx_emergency_disable);