From: Alexey Dobriyan fs/proc/mmu.c consists of only one function which uses only: 1) struct vmalloc_info * 2) struct vm_struct * 3) struct vmalloc_info 4) vmlist 5) VMALLOC_TOTAL, VMALLOC_START, VMALLOC_END 6) read_lock, read_unlock 7) vmlist_lock 8) struct vm_struct This gives us linux/spinlock.h, asm/pgtable.h, "internal.h", linux/vmalloc.h. asm/pgtable.h uses PKMAP_BASE on i386, for which asm/highmem.h is needed. But, linux/highmem.h is actually used to make it compile everywhere. I'll deal later with this particular i386 surprise. Cross-compile tested on many archs and configs. Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton --- fs/proc/mmu.c | 21 ++------------------- 1 files changed, 2 insertions(+), 19 deletions(-) diff -puN fs/proc/mmu.c~fs-proc-mmuc-headers-butchery fs/proc/mmu.c --- a/fs/proc/mmu.c~fs-proc-mmuc-headers-butchery +++ a/fs/proc/mmu.c @@ -8,27 +8,10 @@ * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include -#include +#include #include -#include -#include #include "internal.h" void get_vmalloc_info(struct vmalloc_info *vmi) _