LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 3/3] x86: WARN_ON breakpoints from .kprobes.text section
@ 2008-01-27  9:09 Abhishek Sagar
  2008-01-27 14:28 ` Masami Hiramatsu
  0 siblings, 1 reply; 6+ messages in thread
From: Abhishek Sagar @ 2008-01-27  9:09 UTC (permalink / raw)
  To: LKML; +Cc: jkenisto, ananth, Masami Hiramatsu, Ingo Molnar

Identify breakpoints in .kprobes.text section. These certainly aren't kprobe traps. However, we make an exception for the breakpoint hardcoded into jprobe_return.

Signed-off-by: Abhishek Sagar <sagar.abhishek@gmail.com>
---

diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index 45f2949..f3d13d0 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -961,6 +961,7 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
 				       unsigned long val, void *data)
 {
 	struct die_args *args = data;
+	unsigned long addr = kprobe_bkpt_addr(args->regs);
 	int ret = NOTIFY_DONE;
 
 	if (args->regs && user_mode_vm(args->regs))
@@ -968,7 +969,14 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
 
 	switch (val) {
 	case DIE_INT3:
-		if (kprobe_handler(args->regs))
+		if (in_kprobes_functions(addr) &&
+		    !is_jprobe_bkpt((u8 *)addr)) {
+			/* A breakpoint has made it's way to the .kprobes.text
+			 * section (excluding jprobe_return). This could be
+			 * due to an external debugger. */
+			WARN_ON(1);
+			
+		} else if (kprobe_handler(args->regs))
 			ret = NOTIFY_STOP;
 		break;
 	case DIE_DEBUG:

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-01-28 17:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-27  9:09 [PATCH 3/3] x86: WARN_ON breakpoints from .kprobes.text section Abhishek Sagar
2008-01-27 14:28 ` Masami Hiramatsu
2008-01-27 15:33   ` Abhishek Sagar
2008-01-27 22:08     ` Masami Hiramatsu
2008-01-28 11:16       ` Abhishek Sagar
2008-01-28 17:22         ` Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).