2022-02-18 03:46:24

by Leonardo Bras

[permalink] [raw]
Subject: [PATCH v1 1/1] x86/kvm: Fix compilation warning in non-x86_64 builds

On non-x86_64 builds, the helper gtod_is_based_on_tsc() is defined but
never used, which results in an warning with -Wunused-function, and
becomes an error if -Werror is present.

Add #ifdef so gtod_is_based_on_tsc() is only defined in x86_64 builds.

Reported-by: kernel test robot <[email protected]>
Signed-off-by: Leonardo Bras <[email protected]>
---
arch/x86/kvm/x86.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ca0fae020961..b389517aa6ed 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2363,10 +2363,12 @@ static u64 compute_guest_tsc(struct kvm_vcpu *vcpu, s64 kernel_ns)
return tsc;
}

+#ifdef CONFIG_X86_64
static inline int gtod_is_based_on_tsc(int mode)
{
return mode == VDSO_CLOCKMODE_TSC || mode == VDSO_CLOCKMODE_HVCLOCK;
}
+#endif

static void kvm_track_tsc_matching(struct kvm_vcpu *vcpu)
{
--
2.35.1


2022-02-18 09:05:32

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] x86/kvm: Fix compilation warning in non-x86_64 builds

On 2/18/22 04:41, Leonardo Bras wrote:
> On non-x86_64 builds, the helper gtod_is_based_on_tsc() is defined but
> never used, which results in an warning with -Wunused-function, and
> becomes an error if -Werror is present.
>
> Add #ifdef so gtod_is_based_on_tsc() is only defined in x86_64 builds.
>
> Reported-by: kernel test robot <[email protected]>
> Signed-off-by: Leonardo Bras <[email protected]>
> ---
> arch/x86/kvm/x86.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index ca0fae020961..b389517aa6ed 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -2363,10 +2363,12 @@ static u64 compute_guest_tsc(struct kvm_vcpu *vcpu, s64 kernel_ns)
> return tsc;
> }
>
> +#ifdef CONFIG_X86_64
> static inline int gtod_is_based_on_tsc(int mode)
> {
> return mode == VDSO_CLOCKMODE_TSC || mode == VDSO_CLOCKMODE_HVCLOCK;
> }
> +#endif
>
> static void kvm_track_tsc_matching(struct kvm_vcpu *vcpu)
> {

More precisely, this is an "inline" in a .c (main compilation unit)
file. clang warns on them even though it doesn't do that on a .h
(included) file.

I tend not to rewind kvm/master and kvm/next unless absolutely
necessary, so I pushed an incremental fix for kvm_guest_supported_xfd()
as well.

Paolo