Messages in this thread | | | Date | Tue, 22 Feb 2022 16:54:54 +0800 | Subject | Re: [PATCH] KVM: x86: Fix function address when kvm_x86_ops.func is NULL | From | Like Xu <> |
| |
On 22/2/2022 4:33 pm, Paolo Bonzini wrote: > On 2/22/22 07:25, Like Xu wrote: >> From: Like Xu <likexu@tencent.com> >> >> Fix the function address for __static_call_return0() which is used by >> static_call_update() when a func in struct kvm_x86_ops is NULL. >> >> Fixes: 5be2226f417d ("KVM: x86: allow defining return-0 static calls") >> Signed-off-by: Like Xu <likexu@tencent.com> > > Sorry for the stupid question, but what breaks?
Although they are numerically the same, I suppose we should use the & operator here, as in the other cases where __static_call_return0 is used.
What's more, Clang complains about the KVM_X86_OP_OPTIONAL_RET0 change:
./arch/x86/include/asm/kvm-x86-ops.h:108:1: warning: pointer type mismatch \ ('bool (*)(struct kvm_vcpu *)' (aka '_Bool (*)(struct kvm_vcpu *)') and 'void *') \ [-Wpointer-type-mismatch] and more warnings from [-Wpointer-type-mismatch]
Does it help you ?
> > Paolo > >> --- >> arch/x86/include/asm/kvm_host.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h >> index 713e08f62385..312f5ee19514 100644 >> --- a/arch/x86/include/asm/kvm_host.h >> +++ b/arch/x86/include/asm/kvm_host.h >> @@ -1548,7 +1548,7 @@ static inline void kvm_ops_static_call_update(void) >> #define KVM_X86_OP_OPTIONAL __KVM_X86_OP >> #define KVM_X86_OP_OPTIONAL_RET0(func) \ >> static_call_update(kvm_x86_##func, kvm_x86_ops.func ? : \ >> - (void *) __static_call_return0); >> + (void *)&__static_call_return0); >> #include <asm/kvm-x86-ops.h> >> #undef __KVM_X86_OP >> } >
| |