The following patches change x86_32 to use native format for the boot time page tables. The first two are taken directly from Eric Biederman's older patch series http://marc.info/?l=linux-kernel&m=117794868309910&w=2 and http://marc.info/?l=linux-kernel&m=117794868819193&w=2 while the final patch is http://marc.info/?l=linux-kernel&m=117795243926186&w=2 updated for the current tree (much of it was already in, the rest has been extensively modified). Changes since v1: - Grabbed Eric's patches for enabling PAE in head_32.S -- I think they are cleaner than what I had. - Use native_* accessors instead of #undef CONFIG_PARAVIRT. This approach seem cleaner and also allows the code to live in init_32.c instead of creating a new file. - Ensure we map enough pages to create a full 4G mapping of lowmem. This now includes the space for the initial page tables rather than being in addition too. - Continue to map extra pages for CONFIG_DEBUG_PAGEALLOC and some extra pages for slack, per the original assembly code. Cheers, Ian. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Eric W. Biederman Cc: Andi Kleen Cc: Mika Penttilä