diff mbox series

[v17,004/116] KVM: VMX: Reorder vmx initialization with kvm vendor initialization

Message ID 2ae2d7d2bdf795fe0e5ef648714d56bd1029755e.1699368322.git.isaku.yamahata@intel.com (mailing list archive)
State New, archived
Headers show
Series KVM TDX basic feature support | expand

Commit Message

Isaku Yamahata Nov. 7, 2023, 2:55 p.m. UTC
From: Isaku Yamahata <isaku.yamahata@intel.com>

To match vmx_exit cleanup.

Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
---
 arch/x86/kvm/vmx/main.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Chao Gao Dec. 4, 2023, 8:25 a.m. UTC | #1
On Tue, Nov 07, 2023 at 06:55:30AM -0800, isaku.yamahata@intel.com wrote:
>From: Isaku Yamahata <isaku.yamahata@intel.com>
>
>To match vmx_exit cleanup.
>
>Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
>---
> arch/x86/kvm/vmx/main.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
>diff --git a/arch/x86/kvm/vmx/main.c b/arch/x86/kvm/vmx/main.c
>index 266760865ed8..e07bec005eda 100644
>--- a/arch/x86/kvm/vmx/main.c
>+++ b/arch/x86/kvm/vmx/main.c
>@@ -180,11 +180,11 @@ static int __init vt_init(void)
> 	 */
> 	hv_init_evmcs();
> 
>-	r = kvm_x86_vendor_init(&vt_init_ops);
>+	r = vmx_init();

> 	if (r)
>-		return r;
>+		goto err_vmx_init;

this is incorrect. vmx_exit() shouldn't be called if
vmx_init() failed.

> 
>-	r = vmx_init();
>+	r = kvm_x86_vendor_init(&vt_init_ops);
> 	if (r)
> 		goto err_vmx_init;
> 
>@@ -201,9 +201,9 @@ static int __init vt_init(void)
> 	return 0;
> 
> err_kvm_init:
>-	vmx_exit();
>-err_vmx_init:
> 	kvm_x86_vendor_exit();
>+err_vmx_init:
>+	vmx_exit();
> 	return r;
> }
> module_init(vt_init);
>-- 
>2.25.1
>
>
Binbin Wu Dec. 5, 2023, 7:55 a.m. UTC | #2
On 12/4/2023 4:25 PM, Chao Gao wrote:
> On Tue, Nov 07, 2023 at 06:55:30AM -0800, isaku.yamahata@intel.com wrote:
>> From: Isaku Yamahata <isaku.yamahata@intel.com>
>>
>> To match vmx_exit cleanup.
>>
>> Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
>> ---
>> arch/x86/kvm/vmx/main.c | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/x86/kvm/vmx/main.c b/arch/x86/kvm/vmx/main.c
>> index 266760865ed8..e07bec005eda 100644
>> --- a/arch/x86/kvm/vmx/main.c
>> +++ b/arch/x86/kvm/vmx/main.c
>> @@ -180,11 +180,11 @@ static int __init vt_init(void)
>> 	 */
>> 	hv_init_evmcs();
>>
>> -	r = kvm_x86_vendor_init(&vt_init_ops);
>> +	r = vmx_init();
>> 	if (r)
>> -		return r;
>> +		goto err_vmx_init;
> this is incorrect. vmx_exit() shouldn't be called if
> vmx_init() failed.
>
>> -	r = vmx_init();
>> +	r = kvm_x86_vendor_init(&vt_init_ops);
>> 	if (r)
>> 		goto err_vmx_init;
And also, maybe better to rename the lable, e.g, err_vendor_init?

>>
>> @@ -201,9 +201,9 @@ static int __init vt_init(void)
>> 	return 0;
>>
>> err_kvm_init:
>> -	vmx_exit();
>> -err_vmx_init:
>> 	kvm_x86_vendor_exit();
>> +err_vmx_init:
>> +	vmx_exit();
>> 	return r;
>> }
>> module_init(vt_init);
>> -- 
>> 2.25.1
>>
>>
diff mbox series

Patch

diff --git a/arch/x86/kvm/vmx/main.c b/arch/x86/kvm/vmx/main.c
index 266760865ed8..e07bec005eda 100644
--- a/arch/x86/kvm/vmx/main.c
+++ b/arch/x86/kvm/vmx/main.c
@@ -180,11 +180,11 @@  static int __init vt_init(void)
 	 */
 	hv_init_evmcs();
 
-	r = kvm_x86_vendor_init(&vt_init_ops);
+	r = vmx_init();
 	if (r)
-		return r;
+		goto err_vmx_init;
 
-	r = vmx_init();
+	r = kvm_x86_vendor_init(&vt_init_ops);
 	if (r)
 		goto err_vmx_init;
 
@@ -201,9 +201,9 @@  static int __init vt_init(void)
 	return 0;
 
 err_kvm_init:
-	vmx_exit();
-err_vmx_init:
 	kvm_x86_vendor_exit();
+err_vmx_init:
+	vmx_exit();
 	return r;
 }
 module_init(vt_init);