alistair23-linux/arch
Kirill A. Shutemov 86fa949b05 x86/mm: provide pmdp_establish() helper
We need an atomic way to setup pmd page table entry, avoiding races with
CPU setting dirty/accessed bits.  This is required to implement
pmdp_invalidate() that doesn't lose these bits.

On PAE we can avoid expensive cmpxchg8b for cases when new page table
entry is not present.  If it's present, fallback to cpmxchg loop.

[akpm@linux-foundation.org: add missing `do' to do-while loop]
Link: http://lkml.kernel.org/r/20171213105756.69879-10-kirill.shutemov@linux.intel.com
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-01-31 17:18:38 -08:00
..
alpha dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
arc arc: use generic_pmdp_establish as pmdp_establish 2018-01-31 17:18:37 -08:00
arm arm/mm: provide pmdp_establish() helper 2018-01-31 17:18:37 -08:00
arm64 arm64: provide pmdp_establish() helper 2018-01-31 17:18:37 -08:00
blackfin Merge branch 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-30 17:58:07 -08:00
c6x Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
cris dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
frv Merge branch 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-30 17:58:07 -08:00
h8300 dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
hexagon dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
ia64 dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
m32r m32r: remove abort() 2018-01-31 17:18:34 -08:00
m68k dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
metag Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2018-01-30 14:18:52 -08:00
microblaze dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
mips mips: use generic_pmdp_establish as pmdp_establish 2018-01-31 17:18:37 -08:00
mn10300 dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
nios2 dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
openrisc Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2018-01-30 14:18:52 -08:00
parisc dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
powerpc powerpc/mm: update pmdp_invalidate to return old pmd value 2018-01-31 17:18:37 -08:00
riscv dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
s390 s390/mm: modify pmdp_invalidate to return old value. 2018-01-31 17:18:38 -08:00
score Merge branch 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-30 17:58:07 -08:00
sh Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2018-01-30 14:18:52 -08:00
sparc sparc64: update pmdp_invalidate() to return old pmd value 2018-01-31 17:18:38 -08:00
tile dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
um Merge branch 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-01-30 17:58:07 -08:00
unicore32 dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
x86 x86/mm: provide pmdp_establish() helper 2018-01-31 17:18:38 -08:00
xtensa dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00
.gitignore
Kconfig dma mapping changes for Linux 4.16: 2018-01-31 11:32:27 -08:00