aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/mm/fault.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@muc.de>2005-04-16 18:24:55 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 18:24:55 -0400
commit1e01441051dda3bb01c455b6e20bce6d00563d82 (patch)
tree5dc4c69dd4522ca569f70ead0ecbb923f1451891 /arch/x86_64/mm/fault.c
parent35faa71484287fc150b8498cd5acae59ad17a356 (diff)
[PATCH] x86_64: Use a VMA for the 32bit vsyscall
Use a real VMA to map the 32bit vsyscall page This interacts better with Hugh's upcomming VMA walk optimization Also removes some ugly special cases. Code roughly modelled after the ppc64 vdso version from Ben Herrenschmidt. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/mm/fault.c')
-rw-r--r--arch/x86_64/mm/fault.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/arch/x86_64/mm/fault.c b/arch/x86_64/mm/fault.c
index 5724370475cc..d4676ca09144 100644
--- a/arch/x86_64/mm/fault.c
+++ b/arch/x86_64/mm/fault.c
@@ -458,17 +458,6 @@ bad_area:
458 up_read(&mm->mmap_sem); 458 up_read(&mm->mmap_sem);
459 459
460bad_area_nosemaphore: 460bad_area_nosemaphore:
461
462#ifdef CONFIG_IA32_EMULATION
463 /* 32bit vsyscall. map on demand. */
464 if (test_thread_flag(TIF_IA32) &&
465 address >= VSYSCALL32_BASE && address < VSYSCALL32_END) {
466 if (map_syscall32(mm, address) < 0)
467 goto out_of_memory2;
468 return;
469 }
470#endif
471
472 /* User mode accesses just cause a SIGSEGV */ 461 /* User mode accesses just cause a SIGSEGV */
473 if (error_code & 4) { 462 if (error_code & 4) {
474 if (is_prefetch(regs, address, error_code)) 463 if (is_prefetch(regs, address, error_code))
@@ -550,7 +539,6 @@ no_context:
550 */ 539 */
551out_of_memory: 540out_of_memory:
552 up_read(&mm->mmap_sem); 541 up_read(&mm->mmap_sem);
553out_of_memory2:
554 if (current->pid == 1) { 542 if (current->pid == 1) {
555 yield(); 543 yield();
556 goto again; 544 goto again;