Ingo Molnar wrote: >> Yes, but it happens after asm/paravirt.h has already included some >> things, and it ends up causing problems. paravirt.h still defines >> various stub functions in the !CONFIG_PARAVIRT case, so it needs to do >> the includes either way. >> > > hm, it then needs to be fixed first, instead of adding to the mess. > OK, I've fixed this by hoisting all the native_* implementations into pgtable.h. In the !PARAVIRT case the normal macros directly use the native_* functions, and in the PARAVIRT case they're used by the native paravirt_ops. This has the nice property of avoiding this specific problem, and also generally removes code duplication. J