original_kernel/kernel
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
..
irq
power [PATCH] core remove PageReserved 2005-10-29 21:40:39 -07:00
Kconfig.hz
Kconfig.preempt
Makefile
acct.c [PATCH] mm: rss = file_rss + anon_rss 2005-10-29 21:40:38 -07:00
audit.c
auditsc.c
capability.c
compat.c
configs.c
cpu.c
cpuset.c
crash_dump.c
dma.c
exec_domain.c
exit.c [PATCH] mm: update_hiwaters just in time 2005-10-29 21:40:39 -07:00
extable.c
fork.c [PATCH] mm: ptd_alloc take ptlock 2005-10-29 21:40:40 -07:00
futex.c
intermodule.c
itimer.c
kallsyms.c
kexec.c
kfifo.c
kmod.c
kprobes.c
ksysfs.c
kthread.c
module.c
panic.c
params.c
pid.c
posix-cpu-timers.c
posix-timers.c
printk.c
profile.c
ptrace.c
rcupdate.c
resource.c
sched.c [PATCH] mm: update_hiwaters just in time 2005-10-29 21:40:39 -07:00
seccomp.c
signal.c
softirq.c
softlockup.c
spinlock.c
stop_machine.c
sys.c
sys_ni.c
sysctl.c
time.c
timer.c [PATCH] TIMERS: add missing compensation for HZ == 250 2005-10-29 21:40:35 -07:00
uid16.c
user.c
wait.c
workqueue.c