Hi, At long *long* last a respin of the patches that clean up pmd_get_atomic() and i386-PAE. I'd nearly forgotten why I did this, but the old posting gave clue that patch #7 was the whole purpose of me doing these patches. Having carried these patches for at least 2 years, they recently hit a rebase bump against the mg-lru patches, which is what prompted this repost. Linus' comment about try_cmpxchg64() (and Uros before him) made me redo those patches (see patch #10) which resulted in pxx_xchg64(). This in turn led to killing off set_64bit(). The robot doesn't hate on these patches and they boot in kvm (because who still has i386 hardware). Patches also available at: git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/mm.pae --- arch/mips/Kconfig | 2 +- arch/sh/Kconfig | 2 +- arch/sh/include/asm/pgtable-3level.h | 10 +- arch/um/include/asm/pgtable-3level.h | 8 -- arch/x86/Kconfig | 2 +- arch/x86/include/asm/cmpxchg_32.h | 28 ----- arch/x86/include/asm/cmpxchg_64.h | 5 - arch/x86/include/asm/pgtable-3level.h | 171 ++++++---------------------- arch/x86/include/asm/pgtable-3level_types.h | 7 ++ arch/x86/include/asm/pgtable_64_types.h | 1 + arch/x86/include/asm/pgtable_types.h | 4 +- drivers/iommu/intel/irq_remapping.c | 10 +- include/linux/pgtable.h | 71 +++++++----- kernel/events/core.c | 2 +- mm/Kconfig | 2 +- mm/gup.c | 2 +- mm/hmm.c | 3 +- mm/khugepaged.c | 2 +- mm/mapping_dirty_helpers.c | 2 +- mm/mprotect.c | 2 +- mm/userfaultfd.c | 2 +- mm/vmscan.c | 5 +- 22 files changed, 110 insertions(+), 233 deletions(-)