Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753668AbYKRQa0 (ORCPT ); Tue, 18 Nov 2008 11:30:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752732AbYKRQaH (ORCPT ); Tue, 18 Nov 2008 11:30:07 -0500 Received: from mx2.redhat.com ([66.187.237.31]:35128 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753585AbYKRQaE (ORCPT ); Tue, 18 Nov 2008 11:30:04 -0500 Message-ID: <4922ED4D.8070201@redhat.com> Date: Tue, 18 Nov 2008 11:29:01 -0500 From: Masami Hiramatsu User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: akpm@linux-foundation.org CC: mm-commits@vger.kernel.org, ananth@in.ibm.com, anil.s.keshavamurthy@intel.com, Jim Keniston , systemtap-ml , LKML Subject: [PATCH -mm] bugfix: pass aggr_kprobe to arch_remove_kprobe References: <200811140028.mAE0SppC021444@imap1.linux-foundation.org> In-Reply-To: <200811140028.mAE0SppC021444@imap1.linux-foundation.org> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1847 Lines: 64 Hi Andrew, akpm@linux-foundation.org wrote: > The patch titled > kprobes: support probing module __exit function > has been added to the -mm tree. Its filename is > kprobes-support-probing-module-__exit-function.patch I found that one bug was still alive. Here is the bugfix. Thank you, Call arch_remove_kprobe() with aggr_kprobe instead of user specific kprobe, because the user specific kprobe on the gone or reused aggr_kprobe may have invalid arch_specific_insn. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli --- kernel/kprobes.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) Index: 2.6-rc/kernel/kprobes.c =================================================================== --- 2.6-rc.orig/kernel/kprobes.c +++ 2.6-rc/kernel/kprobes.c @@ -766,14 +766,14 @@ static void __kprobes __unregister_kprob { struct kprobe *old_p; - if (list_empty(&p->list) || list_is_singular(&p->list)) { - if (!list_empty(&p->list)) { - /* "p" is the last child of an aggr_kprobe */ - old_p = list_entry(p->list.next, struct kprobe, list); - list_del(&p->list); - kfree(old_p); - } + if (list_empty(&p->list)) arch_remove_kprobe(p); + else if (list_is_singular(&p->list)) { + /* "p" is the last child of an aggr_kprobe */ + old_p = list_entry(p->list.next, struct kprobe, list); + list_del(&p->list); + arch_remove_kprobe(old_p); + kfree(old_p); } } -- Masami Hiramatsu Software Engineer Hitachi Computer Products (America) Inc. Software Solutions Division e-mail: mhiramat@redhat.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/