From mboxrd@z Thu Jan 1 00:00:00 1970 From: akpm@linux-foundation.org Subject: + x86-prevent-kprobes-from-catching-spurious-page-faults.patch added to -mm tree Date: Thu, 05 Feb 2009 14:18:06 -0800 Message-ID: <200902052218.n15MI67t032241@imap1.linux-foundation.org> Reply-To: linux-kernel@vger.kernel.org Return-path: Received: from smtp1.linux-foundation.org ([140.211.169.13]:43313 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752440AbZBEWTa (ORCPT ); Thu, 5 Feb 2009 17:19:30 -0500 Sender: mm-commits-owner@vger.kernel.org List-Id: mm-commits@vger.kernel.org To: mm-commits@vger.kernel.org Cc: mhiramat@redhat.com, ananth@in.ibm.com, fche@redhat.com, hpa@zytor.com, jkenisto@us.ibm.com, mathieu.desnoyers@polymtl.ca, mingo@elte.hu, npiggin@suse.de, stable@kernel.org, tglx@linutronix.de The patch titled x86: prevent kprobes from catching spurious page faults has been added to the -mm tree. Its filename is x86-prevent-kprobes-from-catching-spurious-page-faults.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: x86: prevent kprobes from catching spurious page faults From: Masami Hiramatsu Prevent kprobes from catching spurious faults which will cause infinite recursive page-fault and memory corruption by stack overflow. Signed-off-by: Masami Hiramatsu Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Mathieu Desnoyers Cc: Nick Piggin Cc: Ananth N Mavinakayanahalli Cc: Jim Keniston Cc: "Frank Ch. Eigler" Cc: [2.6.28.x] Signed-off-by: Andrew Morton --- arch/x86/mm/fault.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff -puN arch/x86/mm/fault.c~x86-prevent-kprobes-from-catching-spurious-page-faults arch/x86/mm/fault.c --- a/arch/x86/mm/fault.c~x86-prevent-kprobes-from-catching-spurious-page-faults +++ a/arch/x86/mm/fault.c @@ -603,8 +603,6 @@ void __kprobes do_page_fault(struct pt_r si_code = SEGV_MAPERR; - if (notify_page_fault(regs)) - return; if (unlikely(kmmio_fault(regs, address))) return; @@ -634,6 +632,9 @@ void __kprobes do_page_fault(struct pt_r if (spurious_fault(address, error_code)) return; + /* kprobes don't want to hook the spurious faults. */ + if (notify_page_fault(regs)) + return; /* * Don't take the mm semaphore here. If we fixup a prefetch * fault we could otherwise deadlock. @@ -641,6 +642,9 @@ void __kprobes do_page_fault(struct pt_r goto bad_area_nosemaphore; } + /* kprobes don't want to hook the spurious faults. */ + if (notify_page_fault(regs)) + return; /* * It's safe to allow irq's after cr2 has been saved and the _ Patches currently in -mm which might be from mhiramat@redhat.com are origin.patch x86-prevent-kprobes-from-catching-spurious-page-faults.patch kprobes-cleanup-aggr_kprobe-related-code.patch kprobes-move-export_symbol_gpl-just-after-function-definitions.patch kprobes-cleanup-comment-style-in-kprobesh.patch kprobes-rename-kprobe_enabled-to-kprobes_all_disarmed.patch kprobes-support-per-kprobe-disabling.patch kprobes-support-kretprobe-and-jprobe-per-probe-disabling.patch