2022-11-09 12:17:16

by Like Xu

[permalink] [raw]
Subject: [PATCH] KVM: svm/avic: Drop "struct kvm_x86_ops" for avic_hardware_setup()

From: Like Xu <[email protected]>

Even in commit 4bdec12aa8d6 ("KVM: SVM: Detect X2APIC virtualization
(x2AVIC) support"), where avic_hardware_setup() was first introduced,
its only pass-in parameter "struct kvm_x86_ops *ops" is not used at all.
Clean it up a bit to avoid compiler ranting from LLVM toolchain.

Signed-off-by: Like Xu <[email protected]>
---
arch/x86/kvm/svm/avic.c | 2 +-
arch/x86/kvm/svm/svm.c | 2 +-
arch/x86/kvm/svm/svm.h | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
index cc651a3310b1..18283b8e954d 100644
--- a/arch/x86/kvm/svm/avic.c
+++ b/arch/x86/kvm/svm/avic.c
@@ -1161,7 +1161,7 @@ void avic_vcpu_unblocking(struct kvm_vcpu *vcpu)
* - Hypervisor can support both xAVIC and x2AVIC in the same guest.
* - The mode can be switched at run-time.
*/
-bool avic_hardware_setup(struct kvm_x86_ops *x86_ops)
+bool avic_hardware_setup(void)
{
if (!npt_enabled)
return false;
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index c773bbf9b6cf..b81fe508b7b9 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -5038,7 +5038,7 @@ static __init int svm_hardware_setup(void)
nrips = false;
}

- enable_apicv = avic = avic && avic_hardware_setup(&svm_x86_ops);
+ enable_apicv = avic = avic && avic_hardware_setup();

if (!enable_apicv) {
svm_x86_ops.vcpu_blocking = NULL;
diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h
index 9d940d8736f0..7f1e2c9ac920 100644
--- a/arch/x86/kvm/svm/svm.h
+++ b/arch/x86/kvm/svm/svm.h
@@ -427,7 +427,7 @@ extern struct kvm_x86_nested_ops svm_nested_ops;

/* avic.c */

-bool avic_hardware_setup(struct kvm_x86_ops *ops);
+bool avic_hardware_setup(void);
int avic_ga_log_notifier(u32 ga_tag);
void avic_vm_destroy(struct kvm *kvm);
int avic_vm_init(struct kvm *kvm);
--
2.38.1



2022-11-09 17:49:22

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] KVM: svm/avic: Drop "struct kvm_x86_ops" for avic_hardware_setup()

+Maxim

On Wed, Nov 09, 2022, Like Xu wrote:
> From: Like Xu <[email protected]>
>
> Even in commit 4bdec12aa8d6 ("KVM: SVM: Detect X2APIC virtualization
> (x2AVIC) support"), where avic_hardware_setup() was first introduced,
> its only pass-in parameter "struct kvm_x86_ops *ops" is not used at all.

I assume the intent was to fill the AVIC ops so that they don't need to be exposed
outside of avic.c. I like the idea in theory, but unlike vmx_nested_ops they
wouldn't be fully contained, which IMO would make the code as a whole more difficult
to follow.

Maxim, any objection?

> Clean it up a bit to avoid compiler ranting from LLVM toolchain.
>
> Signed-off-by: Like Xu <[email protected]>
> ---

Reviewed-by: Sean Christopherson <[email protected]>

2023-01-19 22:00:32

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] KVM: svm/avic: Drop "struct kvm_x86_ops" for avic_hardware_setup()

On Wed, 09 Nov 2022 19:59:52 +0800, Like Xu wrote:
> Even in commit 4bdec12aa8d6 ("KVM: SVM: Detect X2APIC virtualization
> (x2AVIC) support"), where avic_hardware_setup() was first introduced,
> its only pass-in parameter "struct kvm_x86_ops *ops" is not used at all.
> Clean it up a bit to avoid compiler ranting from LLVM toolchain.
>
>

Applied to kvm-x86 svm, thanks!

[1/1] KVM: svm/avic: Drop "struct kvm_x86_ops" for avic_hardware_setup()
https://github.com/kvm-x86/linux/commit/6e66dcbdfe90

--
https://github.com/kvm-x86/linux/tree/next
https://github.com/kvm-x86/linux/tree/fixes