Re: [PATCH] KVM: x86: Move definition of __ex to kvm_host.h

Sean Christopherson
2020-05-08T17:57:39Z

On Fri, May 08, 2020 at 08:27:53AM +0200, Uros Bizjak wrote:
> Move the definition of __ex to a common include to be
> shared between VMX and SVM.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
> ---
> arch/x86/include/asm/kvm_host.h | 2 ++
> arch/x86/kvm/svm/svm.c | 2 --
> arch/x86/kvm/vmx/ops.h | 2 --
> 3 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> index 35a915787559..4df0c07b0a62 100644
> --- a/arch/x86/include/asm/kvm_host.h
> +++ b/arch/x86/include/asm/kvm_host.h
> @@ -1620,6 +1620,8 @@ asmlinkage void kvm_spurious_fault(void);
> "668: \n\t" \
> _ASM_EXTABLE(666b, 667b)
>
> +#define __ex(x) __kvm_handle_fault_on_reboot(x)

Moving this to asm/kvm_host.h is a bit sketchy as __ex() isn't exactly the
most unique name. arch/x86/kvm/x86.h would probably be a better
destination as it's "private". __ex() is only used in vmx.c, nested.c and
svm.c, all of which already include x86.h.

> +
> #define KVM_ARCH_WANT_MMU_NOTIFIER
> int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end);
> int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
> index 57fdd752d2bb..9ea0a69d7fee 100644
> --- a/arch/x86/kvm/svm/svm.c
> +++ b/arch/x86/kvm/svm/svm.c
> @@ -42,8 +42,6 @@
>
> #include "svm.h"
>
> -#define __ex(x) __kvm_handle_fault_on_reboot(x)
> -
> MODULE_AUTHOR("Qumranet");
> MODULE_LICENSE("GPL");
>
> diff --git a/arch/x86/kvm/vmx/ops.h b/arch/x86/kvm/vmx/ops.h
> index 5f1ac002b4b6..3cec799837e8 100644
> --- a/arch/x86/kvm/vmx/ops.h
> +++ b/arch/x86/kvm/vmx/ops.h
> @@ -10,8 +10,6 @@
> #include "evmcs.h"
> #include "vmcs.h"
>
> -#define __ex(x) __kvm_handle_fault_on_reboot(x)
> -
> asmlinkage void vmread_error(unsigned long field, bool fault);
> __attribute__((regparm(0))) void vmread_error_trampoline(unsigned long field,
> bool fault);
> --
> 2.25.4
>