x86-64 compile error in 2.6.9-rc1-bk1

From: Thomas Duffy
Date: Wed Aug 25 2004 - 13:57:00 EST


If you have CONFIG_SWIOTLB=y (GART_IOMMU=y), you get:

ld: BFD 2.15.90.0.3 20040415 assertion fail ../../bfd/linker.c:619
arch/x86_64/mm/built-in.o(.init.text+0x52a): In function `mem_init':
: undefined reference to `swiotlb_force'
make[1]: *** [.tmp_vmlinux1] Error 1
make: *** [_all] Error 2

This was added in Linus's tree. But I cannot find where swiotlb_force is defined...

diff -Nru a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c
--- a/arch/x86_64/mm/init.c 2004-06-24 01:55:57 -07:00
+++ b/arch/x86_64/mm/init.c 2004-08-24 02:08:31 -07:00

@@ -396,6 +400,8 @@
return 0;
}

+extern int swiotlb_force;
+
static struct kcore_list kcore_mem, kcore_vmalloc, kcore_kernel, kcore_modules, kcore_vsyscall;

@@ -405,7 +411,10 @@
int tmp;

#ifdef CONFIG_SWIOTLB
- if (!iommu_aperture && end_pfn >= 0xffffffff>>PAGE_SHIFT)
+ if (swiotlb_force)
+ swiotlb = 1;
+ if (!iommu_aperture &&
+ (end_pfn >= 0xffffffff>>PAGE_SHIFT || force_iommu))
swiotlb = 1;
if (swiotlb)
swiotlb_init();

Attachment: signature.asc
Description: This is a digitally signed message part