asm/paravirt.h ends up including linux/sched.h, which pud_populate needs for its reference to current. Specifically include linux/sched.h for it. In file included from /home/jeremy/hg/xen/paravirt/linux/arch/x86/mm/pgtable.c:3: include2/asm/pgalloc.h: In function ‘pud_populate’: include2/asm/pgalloc.h:93: error: dereferencing pointer to incomplete type make[3]: *** [arch/x86/mm/pgtable.o] Error 1 make[2]: *** [arch/x86/mm/] Error 2 make[1]: *** [sub-make] Error 2 make: *** [all] Error 2 Signed-off-by: Jeremy Fitzhardinge --- include/asm-x86/pgalloc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/asm-x86/pgalloc.h b/include/asm-x86/pgalloc.h --- a/include/asm-x86/pgalloc.h +++ b/include/asm-x86/pgalloc.h @@ -4,6 +4,7 @@ #include #include /* for struct page */ #include +#include #ifdef CONFIG_PARAVIRT #include