> On Thu, Feb 07, 2008 at 03:33:07PM -0800, Christoph Lameter wrote: > > On Thu, 7 Feb 2008, Kyle McMartin wrote: > > > > > yes, it's in my batch of fixes. > > > > <big sigh of relief> So I do not have to worry about it? > > > > haha no. i don't expect people to have to untangle the mess of includes > that is <asm-parisc/*.h> :) > > cheers, kyle > - This move to define those symbol before including linux/mm.h seems to make the drill: --- include/asm-parisc/pgtable.h.Orig 2007-10-22 08:19:20.000000000 +0000 +++ include/asm-parisc/pgtable.h 2008-02-12 16:28:36.000000000 +0000 @@ -10,6 +10,12 @@ * we simulate an x86-style page table for the linux mm code */ +extern void *vmalloc_start; +#define PCXL_DMA_MAP_SIZE (8*1024*1024) +#define VMALLOC_START ((unsigned long)vmalloc_start) +/* this is a fixmap remnant, see fixmap.h */ +#define VMALLOC_END (KERNEL_MAP_END) + #include <linux/mm.h> /* for vm_area_struct */ #include <linux/bitops.h> #include <asm/processor.h> @@ -116,14 +122,6 @@ #define FIRST_USER_ADDRESS 0 -#ifndef __ASSEMBLY__ -extern void *vmalloc_start; -#define PCXL_DMA_MAP_SIZE (8*1024*1024) -#define VMALLOC_START ((unsigned long)vmalloc_start) -/* this is a fixmap remnant, see fixmap.h */ -#define VMALLOC_END (KERNEL_MAP_END) -#endif - /* NB: The tlb miss handlers make certain assumptions about the order */ /* of the following bits, so be careful (One example, bits 25-31 */ /* are moved together in one instruction). */ === <> ==== But next compile error appears there: In file included from /CAD/linux-2.6.25-rc1-pa-git-20080212/arch/parisc/mm/init.c:26: include2/asm/pgalloc.h:142: error: conflicting types for 'pte_free_kernel' include2/asm/pgalloc.h:137: error: previous definition of 'pte_free_kernel' was here include2/asm/pgalloc.h: In function 'pte_free_kernel': include2/asm/pgalloc.h:144: error: expected ')' before ';' token include2/asm/pgalloc.h:145: error: too few arguments to function 'pte_free_kernel' include2/asm/pgalloc.h:145: error: expected ';' before '}' token make[2]: *** [arch/parisc/mm/init.o] Error 1 make[1]: *** [arch/parisc/mm] Error 2 make: *** [sub-make] Error 2 and in include/asm-parisc/pgalloc.h we can read: static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) { free_page((unsigned long)pte); } static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte) { pgtable_page_dtor(pte); pte_free_kernel(page_address((pte)); } i.e. 2 time the definition of the same function: which is the right definition? Cheers, r. --- Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95... http://www.scarlet.be/ - To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html