On Mon, 19 Mar 2001, Linus Torvalds wrote: > The complete changelog is appended, but the biggest recent change is > the mmap_sem change, which I updated with new locking rules for > pte/pmd_alloc to avoid the race on the actual page table build. > > This has only been tested on i386 without PAE, and is known to break > other architectures. Ingo, mind checking what PAE needs? [...] one nontrivial issue was that on PAE the pgd has to be installed with 'present' pgd entries, due to a CPU erratum. This means that the pgd_present() code in mm/memory.c, while correct theoretically, doesnt work with PAE. An equivalent solution is to use !pgd_none(), which also works with the PAE workaround. PAE mode could re-define pgd_present() to filter out the workaround - do you prefer this to the !pgd_none() solution? the rest was pretty straightforward. in any case, with the attached pae-2.4.3-A4 patch (against 2.4.3-pre7, applies to 2.4.2-ac24 cleanly as well) applied, 2.4.3-pre7 boots & works just fine on PAE 64GB-HIGHMEM and non-PAE kernels. - the patch also does another cleanup: removes various bad_pagetable code snippets all around the x86 tree, it's not needed anymore. This saves 8 KB RAM on x86 systems. - removed the last remaining *_kernel() macro. - fixed a minor clear_page() bug in pgalloc.h, gfp() could fail in the future. Ingo