Can you add a high level comment to entry.S what paravirt mode is all about and perhaps a quick cheat sheet on the macros? > +/* SMP boot always wants to use real time delay to allow sufficient time > for + * the APs to come online */ > +#define USE_REAL_TIME_DELAY That's ugly. Can't you call different wait functions for that case instead? > +#ifdef CONFIG_PARAVIRT > +#include <asm/paravirt.h> > +#else > +static inline void init_IRQ(void) > +{ > + native_init_IRQ(); > +} > +#endif /* CONFIG_PARAVIRT */ You could probably avoid a lot of ifdefs by strategic use of __attribute__((weak)) > +#ifdef CONFIG_PARAVIRT > +#include <asm/paravirt.h> > +#else This is probably a good candidate for rename to native + wrapper macros too. Otherwise we'll always have to hack two different places later. -Andi