aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/mm/fault.c')
-rw-r--r--arch/x86/mm/fault.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index ac2ad781da00..8bc5956e1af4 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -671,7 +671,8 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
671 goto bad_area_nosemaphore; 671 goto bad_area_nosemaphore;
672 672
673again: 673again:
674 /* When running in the kernel we expect faults to occur only to 674 /*
675 * When running in the kernel we expect faults to occur only to
675 * addresses in user space. All other faults represent errors in the 676 * addresses in user space. All other faults represent errors in the
676 * kernel and should generate an OOPS. Unfortunately, in the case of an 677 * kernel and should generate an OOPS. Unfortunately, in the case of an
677 * erroneous fault occurring in a code path which already holds mmap_sem 678 * erroneous fault occurring in a code path which already holds mmap_sem
@@ -734,9 +735,6 @@ good_area:
734 goto bad_area; 735 goto bad_area;
735 } 736 }
736 737
737#ifdef CONFIG_X86_32
738survive:
739#endif
740 /* 738 /*
741 * If for any reason at all we couldn't handle the fault, 739 * If for any reason at all we couldn't handle the fault,
742 * make sure we exit gracefully rather than endlessly redo 740 * make sure we exit gracefully rather than endlessly redo
@@ -871,12 +869,11 @@ out_of_memory:
871 up_read(&mm->mmap_sem); 869 up_read(&mm->mmap_sem);
872 if (is_global_init(tsk)) { 870 if (is_global_init(tsk)) {
873 yield(); 871 yield();
874#ifdef CONFIG_X86_32 872 /*
875 down_read(&mm->mmap_sem); 873 * Re-lookup the vma - in theory the vma tree might
876 goto survive; 874 * have changed:
877#else 875 */
878 goto again; 876 goto again;
879#endif
880 } 877 }
881 878
882 printk("VM: killing process %s\n", tsk->comm); 879 printk("VM: killing process %s\n", tsk->comm);