Yes, putting the extern highstart_pfn back compiles clean for that rand config.
Sorry for the attachment, no access to a patch friendly mailer at work. Andrew. On 5/16/07, Linus Torvalds <[EMAIL PROTECTED]> wrote:
On Tue, 15 May 2007, andrew hendry wrote: > > almost, highstart_pfn is used in a few printks > > arch/i386/mm/discontig.c: In function 'setup_memory': > arch/i386/mm/discontig.c:314: error: 'highstart_pfn' undeclared (first > use in this function) > arch/i386/mm/discontig.c:314: error: (Each undeclared identifier is > reported only once > arch/i386/mm/discontig.c:314: error: for each function it appears in.) Gaah. highstart_pfn is declared in <asm/highmem.h>, but that one is protected by a #ifdef CONFIG_HIGHMEM #include <asm/highmem.h> in <linux/highmem.h>, so even though we include highmem.h, we never see the declaration. Your config is insane, but anyway, does it compile if you just add back the extra "unnecessary" declaration of highstart_pfn? Linus
diff -uprN -X dontdiff a/arch/i386/mm/discontig.c b/arch/i386/mm/discontig.c --- a/arch/i386/mm/discontig.c 2007-05-15 15:19:49.000000000 +1000 +++ b/arch/i386/mm/discontig.c 2007-05-15 15:35:26.000000000 +1000 @@ -31,6 +31,7 @@ #include <linux/module.h> #include <linux/kexec.h> #include <linux/pfn.h> +#include <linux/swap.h> #include <asm/e820.h> #include <asm/setup.h> @@ -97,14 +98,9 @@ unsigned long node_memmap_size_bytes(int #endif extern unsigned long find_max_low_pfn(void); -extern void find_max_pfn(void); extern void add_one_highpage_init(struct page *, int, int); -extern struct e820map e820; -extern unsigned long highend_pfn, highstart_pfn; -extern unsigned long max_low_pfn; -extern unsigned long totalram_pages; -extern unsigned long totalhigh_pages; +extern unsigned long highstart_pfn; #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) @@ -360,7 +356,9 @@ void __init zone_sizes_init(void) max_zone_pfns[ZONE_DMA] = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; max_zone_pfns[ZONE_NORMAL] = max_low_pfn; +#ifdef CONFIG_HIGHMEM max_zone_pfns[ZONE_HIGHMEM] = highend_pfn; +#endif /* If SRAT has not registered memory, register it now */ if (find_max_pfn_with_active_regions() == 0) { for_each_online_node(nid) {