# SPDX-License-Identifier: GPL-2.0
# KVM common configuration items and defaults

config KVM_COMMON
       bool
       select EVENTFD
       select INTERVAL_TREE
       select PREEMPT_NOTIFIERS

config HAVE_KVM_PFNCACHE
       bool

config HAVE_KVM_IRQCHIP
       bool

config HAVE_KVM_IRQ_ROUTING
       bool

config HAVE_KVM_DIRTY_RING
       bool

# Only strongly ordered architectures can select this, as it doesn't
# put any explicit constraint on userspace ordering. They can also
# select the _ACQ_REL version.
config HAVE_KVM_DIRTY_RING_TSO
       bool
       select HAVE_KVM_DIRTY_RING
       depends on X86

# Weakly ordered architectures can only select this, advertising
# to userspace the additional ordering requirements.
config HAVE_KVM_DIRTY_RING_ACQ_REL
       bool
       select HAVE_KVM_DIRTY_RING

# Allow enabling both the dirty bitmap and dirty ring. Only architectures
# that need to dirty memory outside of a vCPU context should select this.
config NEED_KVM_DIRTY_RING_WITH_BITMAP
	bool
	depends on HAVE_KVM_DIRTY_RING

config KVM_MMIO
       bool

config KVM_ASYNC_PF
       bool

# Toggle to switch between direct notification and batch job
config KVM_ASYNC_PF_SYNC
       bool

config HAVE_KVM_MSI
       bool

config HAVE_KVM_READONLY_MEM
       bool

config HAVE_KVM_CPU_RELAX_INTERCEPT
       bool

config KVM_VFIO
       bool

config HAVE_KVM_INVALID_WAKEUPS
       bool

config KVM_GENERIC_DIRTYLOG_READ_PROTECT
       bool

config KVM_GENERIC_PRE_FAULT_MEMORY
       bool

config KVM_COMPAT
       def_bool y
       depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)

config HAVE_KVM_IRQ_BYPASS
       bool
       select IRQ_BYPASS_MANAGER

config HAVE_KVM_VCPU_ASYNC_IOCTL
       bool

config HAVE_KVM_VCPU_RUN_PID_CHANGE
       bool

config HAVE_KVM_NO_POLL
       bool

config KVM_XFER_TO_GUEST_WORK
       bool

config HAVE_KVM_PM_NOTIFIER
       bool

config KVM_GENERIC_HARDWARE_ENABLING
       bool

config KVM_GENERIC_MMU_NOTIFIER
       select MMU_NOTIFIER
       bool

config KVM_GENERIC_MEMORY_ATTRIBUTES
       depends on KVM_GENERIC_MMU_NOTIFIER
       bool

config KVM_PRIVATE_MEM
       select XARRAY_MULTI
       bool

config KVM_GENERIC_PRIVATE_MEM
       select KVM_GENERIC_MEMORY_ATTRIBUTES
       select KVM_PRIVATE_MEM
       bool

config HAVE_KVM_ARCH_GMEM_PREPARE
       bool
       depends on KVM_PRIVATE_MEM

config HAVE_KVM_ARCH_GMEM_INVALIDATE
       bool
       depends on KVM_PRIVATE_MEM
