linux/include
Hugh Dickins c74df32c72 [PATCH] mm: ptd_alloc take ptlock
Second step in pushing down the page_table_lock.  Remove the temporary
bridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not
to hold page_table_lock, whether it's on init_mm or a user mm; take
page_table_lock internally to check if a racing task already allocated.

Convert their callers from common code.  But avoid coming back to change them
again later: instead of moving the spin_lock(&mm->page_table_lock) down,
switch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which
encapsulate the mapping+locking and unlocking+unmapping together, and in the
end may use alternatives to the mm page_table_lock itself.

These callers all hold mmap_sem (some exclusively, some not), so at no level
can a page table be whipped away from beneath them; and pte_alloc uses the
"atomic" pmd_present to test whether it needs to allocate.  It appears that on
all arches we can safely descend without page_table_lock.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-29 21:40:40 -07:00
..
acpi
asm-alpha [PATCH] add sem_is_read/write_locked() 2005-10-29 21:40:35 -07:00
asm-arm [PATCH] mm: tlb_finish_mmu forget rss 2005-10-29 21:40:37 -07:00
asm-arm26 [PATCH] mm: tlb_finish_mmu forget rss 2005-10-29 21:40:37 -07:00
asm-cris
asm-frv
asm-generic [PATCH] mm: ptd_alloc inline and out 2005-10-29 21:40:40 -07:00
asm-h8300
asm-i386 [PATCH] add sem_is_read/write_locked() 2005-10-29 21:40:35 -07:00
asm-ia64 [PATCH] mm: tlb_finish_mmu forget rss 2005-10-29 21:40:37 -07:00
asm-m32r
asm-m68k
asm-m68knommu
asm-mips BCM1480 HT support 2005-10-29 19:32:49 +01:00
asm-parisc
asm-powerpc
asm-ppc [PATCH] add sem_is_read/write_locked() 2005-10-29 21:40:35 -07:00
asm-ppc64 [PATCH] mm: page fault handlers tidyup 2005-10-29 21:40:37 -07:00
asm-s390 [PATCH] add sem_is_read/write_locked() 2005-10-29 21:40:35 -07:00
asm-sh [PATCH] add sem_is_read/write_locked() 2005-10-29 21:40:35 -07:00
asm-sh64
asm-sparc
asm-sparc64 [PATCH] mm: tlb_finish_mmu forget rss 2005-10-29 21:40:37 -07:00
asm-um
asm-v850
asm-x86_64 [PATCH] add sem_is_read/write_locked() 2005-10-29 21:40:35 -07:00
asm-xtensa
linux [PATCH] mm: ptd_alloc take ptlock 2005-10-29 21:40:40 -07:00
math-emu
media
mtd
net
pcmcia
rdma
rxrpc
scsi
sound
video