From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nikola Ciprich Subject: Re: kvm-86 fails to compile with "'IOMMU_CACHE' undeclared" Date: Wed, 20 May 2009 22:45:12 +0200 Message-ID: <20090520204512.GB6154@nik-comp.linuxbox.cz> References: <20090520174858.GA16793@nightfall.luchs.at> <20090520203022.GA6154@nik-comp.linuxbox.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: KVM list , nikola.ciprich@linuxbox.cz, Avi Kivity To: =?iso-8859-1?Q?Ren=E9?= Pfeiffer Return-path: Received: from gwu.lbox.cz ([62.245.111.132]:50165 "EHLO gwu.lbox.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754839AbZETUoy (ORCPT ); Wed, 20 May 2009 16:44:54 -0400 Content-Disposition: inline In-Reply-To: <20090520203022.GA6154@nik-comp.linuxbox.cz> Sender: kvm-owner@vger.kernel.org List-ID: Hi,=20 KVM-86 IOMMU uses features available since 2.6.30-rcXX, attached patch disables its compilation on older kernels. I'm not sure if this is the best way to disable it, but You can use it as a workaround. Avi, is this OK? if so, please apply. nik diff -Naur kvm-kmod-devel-86/external-module-compat-comm.h kvm-kmod-dev= el-86-disable-iommu-for-old-kernels/external-module-compat-comm.h --- kvm-kmod-devel-86/external-module-compat-comm.h 2009-05-20 15:5= 9:56.000000000 +0200 +++ kvm-kmod-devel-86-disable-iommu-for-old-kernels/external-module-com= pat-comm.h 2009-05-20 22:37:23.632038570 +0200 @@ -791,3 +791,7 @@ } #endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +#undef CONFIG_IOMMU_API +#endif diff -Naur kvm-kmod-devel-86/x86/iommu.c kvm-kmod-devel-86-disable-iomm= u-for-old-kernels/x86/iommu.c --- kvm-kmod-devel-86/x86/iommu.c 2009-05-20 16:00:00.000000000 += 0200 +++ kvm-kmod-devel-86-disable-iommu-for-old-kernels/x86/iommu.c 2009-05= -20 22:37:43.840878726 +0200 @@ -1,3 +1,4 @@ +#ifdef CONFIG_IOMMU_API #ifndef KVM_UNIFDEF_H #define KVM_UNIFDEF_H @@ -271,3 +272,4 @@ iommu_domain_free(domain); return 0; } +#endif On Wed, May 20, 2009 at 10:30:22PM +0200, Nikola Ciprich wrote: > Hi Rene, > as a workaround, You can disable=20 > AMD IOMMU support (AMD_IOMMU) and=20 > Support for DMA Remapping Devices (EXPERIMENTAL) (DMAR) > in Your host kernel. > I'll post patch to disable KVM IOMMU support for kernels <2.6.30 soon= =2E > BR > nik >=20 > On Wed, May 20, 2009 at 07:48:59PM +0200, Ren=C3=A9 Pfeiffer wrote: > > Hello! > >=20 > > I just tried to compile kvm-86 on two test machines and I get the > > following error: > >=20 > > [...] > > CC [M] /usr/src/build/kvm-86/kvm/kernel/x86/iommu.o > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function =E2=80=98= kvm_iommu_map_pages=E2=80=99: > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: =E2=80=98IO= MMU_CACHE=E2=80=99 undeclared (first use in this function) > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: (Each undec= lared identifier is reported only once > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: for each fu= nction it appears in.) > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function =E2=80=98= kvm_assign_device=E2=80=99: > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:155: error: implicit d= eclaration of function =E2=80=98iommu_domain_has_cap=E2=80=99 > > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:156: error: =E2=80=98I= OMMU_CAP_CACHE_COHERENCY=E2=80=99 undeclared (first use in this functio= n) > > make[4]: *** [/usr/src/build/kvm-86/kvm/kernel/x86/iommu.o] Error 1 > > make[3]: *** [/usr/src/build/kvm-86/kvm/kernel/x86] Error 2 > > make[2]: *** [_module_/usr/src/build/kvm-86/kvm/kernel] Error 2 > > make[1]: *** [all] Error 2 > > make: *** [kvm-kmod] Error 2 > >=20 > > Both machines run Debian Lenny with a custom kernel (2.6.29.1 and > > 2.6.29.3). One machine is Intel-based (Core2Duo), one is AMD-based.= Both > > compiled earlier versions of kvm just fine. configure was run witho= ut > > options. > >=20 > > Best, > > Ren=C3=A9. > >=20 > > --=20 > > )\._.,--....,'``. fL Let GNU/Linux work for you while you take = a nap. > > /, _.. \ _\ (`._ ,. R. Pfeiffer + http://w= eb.luchs.at/ > > `._.-(,_..'--(,_..'`-.;.' - System administration + Consulting + T= eaching - > > Got mail delivery problems? http://web.luchs.at/information/blocke= dmail.php >=20 >=20 >=20 > --=20 > ------------------------------------- > Nikola CIPRICH > LinuxBox.cz, s.r.o. > 28. rijna 168, 709 01 Ostrava >=20 > tel.: +420 596 603 142 > fax: +420 596 621 273 > mobil: +420 777 093 799 >=20 > www.linuxbox.cz >=20 > mobil servis: +420 737 238 656 > email servis: servis@linuxbox.cz > ------------------------------------- > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >=20 --=20 ------------------------------------- Nikola CIPRICH LinuxBox.cz, s.r.o. 28. rijna 168, 709 01 Ostrava tel.: +420 596 603 142 fax: +420 596 621 273 mobil: +420 777 093 799 www.linuxbox.cz mobil servis: +420 737 238 656 email servis: servis@linuxbox.cz -------------------------------------