All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: kvm@vger.kernel.org, "Zhang, Xiantao" <xiantao.zhang@intel.com>
Subject: Re: [PATCH] kvm-kmod: fix build on kernels with kvm trace set
Date: Thu, 30 Apr 2009 14:52:08 +0300	[thread overview]
Message-ID: <49F990E8.7000007@redhat.com> (raw)
In-Reply-To: <20090428122226.GA6777@redhat.com>

Michael S. Tsirkin wrote:
> CONFIG_KVM_TRACE in kernel conflicts with the definition
> in external module. external-module-compat-comm.h tried
> to work around this, but this didn't work as some
> code still does #include <linux/autoconf.h>
> directly.
>
> Solve this differently by s/CONFIG_KVM_TRACE/CONFIG_KMOD_KVM_TRACE/
> in awk. Had to tighten regular expressions in hack-module.awk
> so that they don't trigger on kvm_host.h .
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  Makefile                      |    5 +++--
>  configure                     |    2 +-
>  external-module-compat-comm.h |    7 -------
>  x86/Kbuild                    |    2 +-
>  x86/hack-module.awk           |    8 +++++---
>  5 files changed, 10 insertions(+), 14 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index f2ef811..9cdc0af 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -34,8 +34,8 @@ hack-files-ia64 = kvm_main.c kvm_fw.c kvm_lib.c kvm-ia64.c
>  
>  hack-files = $(hack-files-$(ARCH_DIR))
>  
> -ifeq ($(EXT_CONFIG_KVM_TRACE),y)
> -module_defines += -DEXT_CONFIG_KVM_TRACE=y
> +ifeq ($(CONFIG_KMOD_KVM_TRACE),y)
> +module_defines += -DCONFIG_KMOD_KVM_TRACE=1
>  endif
>  
>  all:: prerequisite
> @@ -72,6 +72,7 @@ header-sync:
>  	for i in $$(find $T -name '*.h'); do \
>  		$(call unifdef,$$i); done
>  	$(call hack, include/linux/kvm.h)
> +	$(call hack, include/linux/kvm_host.h)
>  	$(call hack, include/asm-$(ARCH_DIR)/kvm.h)
>  	set -e && for i in $$(find $T -type f -printf '%P '); \
>  		do mkdir -p $$(dirname $$i); cmp -s $$i $T/$$i || cp $T/$$i $$i; done
> diff --git a/configure b/configure
> index 30af6e7..6e12bb1 100755
> --- a/configure
> +++ b/configure
> @@ -122,5 +122,5 @@ DEPMOD_VERSION=$depmod_version
>  EOF
>  
>  cat <<EOF > config.kbuild
> -EXT_CONFIG_KVM_TRACE=$kvm_trace
> +CONFIG_KMOD_KVM_TRACE=$kvm_trace
>  EOF
> diff --git a/external-module-compat-comm.h b/external-module-compat-comm.h
> index c955927..e561448 100644
> --- a/external-module-compat-comm.h
> +++ b/external-module-compat-comm.h
> @@ -18,13 +18,6 @@
>  #include <linux/hrtimer.h>
>  #include <asm/bitops.h>
>  
> -/* Override CONFIG_KVM_TRACE */
> -#ifdef EXT_CONFIG_KVM_TRACE
> -#  define CONFIG_KVM_TRACE 1
> -#else
> -#  undef CONFIG_KVM_TRACE
> -#endif
> -
>  /*
>   * 2.6.16 does not have GFP_NOWAIT
>   */
> diff --git a/x86/Kbuild b/x86/Kbuild
> index d3aca00..fbdb28b 100644
> --- a/x86/Kbuild
> +++ b/x86/Kbuild
> @@ -7,7 +7,7 @@ kvm-objs := kvm_main.o x86.o mmu.o x86_emulate.o ../anon_inodes.o irq.o i8259.o
>  	 lapic.o ioapic.o preempt.o i8254.o coalesced_mmio.o irq_comm.o \
>  	 timer.o \
>  	 ../external-module-compat.o
> -ifeq ($(EXT_CONFIG_KVM_TRACE),y)
> +ifeq ($(CONFIG_KMOD_KVM_TRACE),y)
>  kvm-objs += kvm_trace.o
>  endif
>  ifeq ($(CONFIG_IOMMU_API),y)
> diff --git a/x86/hack-module.awk b/x86/hack-module.awk
> index 260eeef..f3d95be 100644
> --- a/x86/hack-module.awk
> +++ b/x86/hack-module.awk
> @@ -4,7 +4,7 @@ BEGIN { split("INIT_WORK desc_struct ldttss_desc64 desc_ptr " \
>  	      "hrtimer_expires_remaining " \
>  	      "on_each_cpu relay_open request_irq" , compat_apis); }
>  
> -/^int kvm_init\(/ { anon_inodes = 1 }
> +/^int kvm_init\([^)]*\)$/ { anon_inodes = 1 }
>  
>  /return 0;/ && anon_inodes {
>      print "\tr = kvm_init_anon_inodes();";
> @@ -17,7 +17,7 @@ BEGIN { split("INIT_WORK desc_struct ldttss_desc64 desc_ptr " \
>      anon_inodes = 0
>  }
>  
> -/^void kvm_exit/ { anon_inodes_exit = 1 }
> +/^void kvm_exit[^)]*\)$/ { anon_inodes_exit = 1 }
>  
>  /\}/ && anon_inodes_exit {
>      print "\tkvm_exit_anon_inodes();";
> @@ -25,7 +25,7 @@ BEGIN { split("INIT_WORK desc_struct ldttss_desc64 desc_ptr " \
>      anon_inodes_exit = 0
>  }
>  
> -/^int kvm_arch_init/ { kvm_arch_init = 1 }
> +/^int kvm_arch_init[^)])$/ { kvm_arch_init = 1 }
>  /\<tsc_khz\>/ && kvm_arch_init { sub("\\<tsc_khz\\>", "kvm_tsc_khz") }
>  /^}/ { kvm_arch_init = 0 }
>  
> @@ -85,6 +85,8 @@ BEGIN { split("INIT_WORK desc_struct ldttss_desc64 desc_ptr " \
>  
>  /\kvm_.*_fops\.owner = module;/ { $0 = "IF_ANON_INODES_DOES_REFCOUNTS(" $0 ")" }
>  
> +{ sub(/\<CONFIG_KVM_TRACE\>/, "CONFIG_KMOD_KVM_TRACE") }
> +
>  { print }
>  
>  /unsigned long flags;/ &&  vmx_load_host_state {
>   

Xiantao, do we need to change this for ia64?

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2009-04-30 11:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-28 12:22 [PATCH] kvm-kmod: fix build on kernels with kvm trace set Michael S. Tsirkin
2009-04-30 11:52 ` Avi Kivity [this message]
2009-05-04  0:58   ` Zhang, Xiantao
2009-05-04  9:24 ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49F990E8.7000007@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=xiantao.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.