]> www.infradead.org Git - users/hch/configfs.git/commit
KVM: Convert KVM_ARCH_WANT_MMU_NOTIFIER to CONFIG_KVM_GENERIC_MMU_NOTIFIER
authorSean Christopherson <seanjc@google.com>
Fri, 27 Oct 2023 18:21:49 +0000 (11:21 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 13 Nov 2023 10:29:09 +0000 (05:29 -0500)
commitf128cf8cfbecccf95e891ae90d9c917df5117c7a
tree1f390105ca6528c1641644879861e6906ddf0b63
parent4a2e993faad3880962540ab8e3b68f22e48b18e8
KVM: Convert KVM_ARCH_WANT_MMU_NOTIFIER to CONFIG_KVM_GENERIC_MMU_NOTIFIER

Convert KVM_ARCH_WANT_MMU_NOTIFIER into a Kconfig and select it where
appropriate to effectively maintain existing behavior.  Using a proper
Kconfig will simplify building more functionality on top of KVM's
mmu_notifier infrastructure.

Add a forward declaration of kvm_gfn_range to kvm_types.h so that
including arch/powerpc/include/asm/kvm_ppc.h's with CONFIG_KVM=n doesn't
generate warnings due to kvm_gfn_range being undeclared.  PPC defines
hooks for PR vs. HV without guarding them via #ifdeffery, e.g.

  bool (*unmap_gfn_range)(struct kvm *kvm, struct kvm_gfn_range *range);
  bool (*age_gfn)(struct kvm *kvm, struct kvm_gfn_range *range);
  bool (*test_age_gfn)(struct kvm *kvm, struct kvm_gfn_range *range);
  bool (*set_spte_gfn)(struct kvm *kvm, struct kvm_gfn_range *range);

Alternatively, PPC could forward declare kvm_gfn_range, but there's no
good reason not to define it in common KVM.

Acked-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Message-Id: <20231027182217.3615211-8-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
17 files changed:
arch/arm64/include/asm/kvm_host.h
arch/arm64/kvm/Kconfig
arch/loongarch/include/asm/kvm_host.h
arch/loongarch/kvm/Kconfig
arch/mips/include/asm/kvm_host.h
arch/mips/kvm/Kconfig
arch/powerpc/include/asm/kvm_host.h
arch/powerpc/kvm/Kconfig
arch/powerpc/kvm/powerpc.c
arch/riscv/include/asm/kvm_host.h
arch/riscv/kvm/Kconfig
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/Kconfig
include/linux/kvm_host.h
include/linux/kvm_types.h
virt/kvm/Kconfig
virt/kvm/kvm_main.c