lkml.org 
[lkml]   [2008]   [Jan]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 21/54] KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM
On Tue, Jan 01, 2008 at 05:35:47PM +0200, Avi Kivity wrote:
> Currently, make headers_check barfs due to <asm/kvm.h>, which <linux/kvm.h>
> includes, not existing. Rather than add a zillion <asm/kvm.h>s, export kvm.h
> only if the arch actually supports it.
>
> Signed-off-by: Avi Kivity <avi@qumranet.com>
> ---
> arch/x86/Kconfig | 4 ++++
> drivers/kvm/Kconfig | 4 ++--
> include/linux/Kbuild | 2 +-
> 3 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 80b7ba4..e029a93 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -116,6 +116,10 @@ config ARCH_SUPPORTS_OPROFILE
> bool
> default y
>
> +config ARCH_SUPPORTS_KVM
> + bool
> + default y
> +
>
> config ZONE_DMA32
> bool
> diff --git a/drivers/kvm/Kconfig b/drivers/kvm/Kconfig
> index 6569206..4086080 100644
> --- a/drivers/kvm/Kconfig
> +++ b/drivers/kvm/Kconfig
> @@ -3,7 +3,7 @@
> #
> menuconfig VIRTUALIZATION
> bool "Virtualization"
> - depends on X86
> + depends on ARCH_SUPPORTS_KVM || X86
> default y
> ---help---
> Say Y here to get to see options for using your Linux host to run other
> @@ -16,7 +16,7 @@ if VIRTUALIZATION
>
> config KVM
> tristate "Kernel-based Virtual Machine (KVM) support"
> - depends on X86 && EXPERIMENTAL
> + depends on ARCH_SUPPORTS_KVM && EXPERIMENTAL
> select PREEMPT_NOTIFIERS
> select ANON_INODES
> ---help---

An approach like the following is preferred:
kvm/Kconfig:

# config symbols to be selected by archs that implment virtualization/kvm
config HAVE_VIRTUALIZATION
config HAVE_KVM

menuconfig VIRTUALIZATION
bool "..."
depends on HAVE_VIRTUALIZATION

config KVM
tristate "..."
depends on HAVE_KVM

arch/x86/Kconfig:

config X86
select HAVE_VIRTUALIZATION
select HAVE_KVM


I dunno about the additional "HAVE_VIRTUALIZATION" - I added it
because I assume virtualization is more than just kvm.

The rationales behinds this approach is:

-> We do not define a new config variable for each arch
-> We have a common way to say that an arch supports a feature
-> We have a common naming scheme


Sam


\
 
 \ /
  Last update: 2008-01-01 17:25    [from the cache]
©2003-2011 Jasper Spaans