asm-generic, mm: pgtable: convert my_zero_pfn() to macros to fix build
authorKirill A. Shutemov <>
Wed, 26 Dec 2012 00:19:55 +0000 (03:19 +0300)
committerLinus Torvalds <>
Fri, 18 Jan 2013 19:23:26 +0000 (11:23 -0800)
Commit 816422ad7647 ("asm-generic, mm: pgtable: consolidate zero page
helpers") broke the compile on MIPS if SPARSEMEM is enabled.  We get

  In file included from arch/mips/include/asm/pgtable.h:552,
                   from include/linux/mm.h:44,
                   from arch/mips/kernel/asm-offsets.c:14:
  include/asm-generic/pgtable.h: In function 'my_zero_pfn':
  include/asm-generic/pgtable.h:466: error: implicit declaration of function 'page_to_section'
  In file included from arch/mips/kernel/asm-offsets.c:14:
  include/linux/mm.h: At top level:
  include/linux/mm.h:738: error: conflicting types for 'page_to_section'
  include/asm-generic/pgtable.h:466: note: previous implicit declaration of 'page_to_section' was here

Due header files inter-dependencies, the only way I see to fix it is
convert my_zero_pfn() for __HAVE_COLOR_ZERO_PAGE to macros.

Signed-off-by: Kirill A. Shutemov <>
Tested-by: Aaro Koskinen <>
Acked-by: David Daney <>
Cc: Andrew Morton <>
Signed-off-by: Linus Torvalds <>

index 701beab27aab71c94031151d9daaf6090f570b99..5cf680a98f9bcb7494a2c0a4bc557fca00b84296 100644 (file)
@@ -461,10 +461,8 @@ static inline int is_zero_pfn(unsigned long pfn)
        return offset_from_zero_pfn <= (zero_page_mask >> PAGE_SHIFT);
-static inline unsigned long my_zero_pfn(unsigned long addr)
-       return page_to_pfn(ZERO_PAGE(addr));
+#define my_zero_pfn(addr)      page_to_pfn(ZERO_PAGE(addr))
 static inline int is_zero_pfn(unsigned long pfn)