• Michal Hocko's avatar
    sparc32: do not include swap.h from pgtable_32.h · b3d9ed3f
    Michal Hocko authored
    "memcg: export struct mem_cgroup" will add includes into
    linux/memcontrol.h which lead to further header dependency issues as
    reported by Guenter Roeck:
    
      In file included from include/linux/highmem.h:7:0,
                       from include/linux/bio.h:23,
                       from include/linux/writeback.h:192,
                       from include/linux/memcontrol.h:30,
                       from include/linux/swap.h:8,
                       from ./arch/sparc/include/asm/pgtable_32.h:17,
                       from ./arch/sparc/include/asm/pgtable.h:6,
                       from arch/sparc/kernel/traps_32.c:23:
      include/linux/mm.h: In function 'is_vmalloc_addr':
      include/linux/mm.h:371:17: error: 'VMALLOC_START' undeclared (first use in this function)
      include/linux/mm.h:371:17: note: each undeclared identifier is reported only once for each function it appears in
      include/linux/mm.h:371:41: error: 'VMALLOC_END' undeclared (first use in this function)
      include/linux/mm.h: In function 'maybe_mkwrite':
      include/linux/mm.h:556:3: error: implicit declaration of function 'pte_mkwrite'
    
    The issue is that pgtable_32.h depends on swap.h to get swap_entry_t but
    that goes all the way down to linux/mm.h which wants to have VMALLOC_*
    which is defined later in pgtable_32.h, though.
    
    swap_entry_t is defined in include/mm_types.h so it should be sufficient
    to include this header without more dependencies.
    Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b3d9ed3f
pgtable_32.h 11.3 KB