If I enable HIGHMEM in my .config (see my previous bug report for my
.config and just change HIGHMEM to enabled) compilation fails:
[snip]
CC arch/um/kernel/mem.o
arch/um/kernel/mem.c: In function `mem_init':
arch/um/kernel/mem.c:71: warning: implicit declaration of function
`phys_page'
arch/um/kernel/mem.c:71: warning: assignment makes pointer from integer
without a cast
arch/um/kernel/mem.c: In function `kmap_init':
arch/um/kernel/mem.c:151: warning: implicit declaration of function
`pte_offset'arch/um/kernel/mem.c:151: warning: assignment makes pointer
from integer without a cast
[snip]
LD .tmp_vmlinux1
arch/um/kernel/built-in.o(.text+0x2ca9): In function `mem_init':
arch/um/kernel/mem.c:71: undefined reference to `phys_page'
arch/um/kernel/built-in.o(.init.text+0x1d2): In function `kmap_init':
include/asm/pgtable.h:394: undefined reference to `pte_offset'
collect2: ld returned 1 exit status
KSYM .tmp_kallsyms1.S
nm: '.tmp_vmlinux1': No such file
make: *** [.tmp_kallsyms1.S] Error 139
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/
[email protected] said:
> If I enable HIGHMEM in my .config (see my previous bug report for my
> .config and just change HIGHMEM to enabled) compilation fails:
The patch below fixes it.
Jeff
Index: 2.6.9/arch/um/Kconfig
===================================================================
--- 2.6.9.orig/arch/um/Kconfig 2004-11-16 21:25:38.000000000 -0500
+++ 2.6.9/arch/um/Kconfig 2004-11-16 21:44:53.000000000 -0500
@@ -224,7 +224,15 @@
config HIGHMEM
bool "Highmem support"
- depends on BROKEN
+ default n
+ help
+ This enables UML's highmem support. This allows UML to have
+ more physical memory than it can map into its virtual address
+ space. In tt mode, or with CONFIG_MODE_TT enabled, the limit is a
+ bit less than 512M. With CONFIG_MODE_TT disabled and
+ CONFIG_LOAD_LOW and CONFIG_STATIC_LINK enabled, the limit is
+ around 2.75G.
+ Enabling this option slows down UML, signficantly in skas mode.
config KERNEL_STACK_ORDER
int "Kernel stack size order"
Index: 2.6.9/arch/um/kernel/mem.c
===================================================================
--- 2.6.9.orig/arch/um/kernel/mem.c 2004-11-16 21:54:53.000000000 -0500
+++ 2.6.9/arch/um/kernel/mem.c 2004-11-16 21:55:45.000000000 -0500
@@ -68,7 +68,7 @@
max_low_pfn = (high_physmem - uml_physmem) >> PAGE_SHIFT;
#ifdef CONFIG_HIGHMEM
- highmem_start_page = phys_page(__pa(high_physmem));
+ highmem_start_page = pfn_to_page(phys_to_pfn(__pa(high_physmem)));
#endif
/* clear the zero-page */
@@ -140,7 +140,7 @@
pgprot_t kmap_prot;
#define kmap_get_fixmap_pte(vaddr) \
- pte_offset_kernel(pmd_offset(pml4_pgd_offset(pml4_offset_k(vaddr),
+ pte_offset_kernel(pmd_offset(pml4_pgd_offset(pml4_offset_k(vaddr), \
vaddr), (vaddr)), (vaddr))
void __init kmap_init(void)