aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorAndrey Konovalov <andrey.konovalov@linaro.org>2014-04-15 01:23:48 +0400
committerAndrey Konovalov <andrey.konovalov@linaro.org>2014-04-15 01:23:48 +0400
commit6613ee6dc52517d1227f25da53ad13b0bf7f667b (patch)
treef90420a6af2d132e41592dbee10be7b465278771 /kernel
parent4927de2cbfb20ff234ae8b40cb6f26f7e54b5e2f (diff)
parentc7edc9e326d53ca5ef9bed82de0740c6b107d55b (diff)
Merge branch 'tracking-uprobes' into merge-linux-linaro-core-tracking
Diffstat (limited to 'kernel')
-rw-r--r--kernel/events/uprobes.c9
-rw-r--r--kernel/trace/Kconfig1
2 files changed, 10 insertions, 0 deletions
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 307d87c0991..04709b66369 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -1804,6 +1804,11 @@ static bool handle_trampoline(struct pt_regs *regs)
return true;
}
+bool __weak arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs)
+{
+ return false;
+}
+
/*
* Run handler and ask thread to singlestep.
* Ensure all non-fatal signals cannot interrupt thread while it singlesteps.
@@ -1858,7 +1863,11 @@ static void handle_swbp(struct pt_regs *regs)
if (!get_utask())
goto out;
+ if (arch_uprobe_ignore(&uprobe->arch, regs))
+ goto out;
+
handler_chain(uprobe, regs);
+
if (can_skip_sstep(uprobe, regs))
goto out;
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index e24c188cbbc..09eea4f745a 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -427,6 +427,7 @@ config UPROBE_EVENT
bool "Enable uprobes-based dynamic events"
depends on ARCH_SUPPORTS_UPROBES
depends on MMU
+ depends on PERF_EVENTS
select UPROBES
select PROBE_EVENTS
select TRACING