aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaswinder Singh Rajput <jaswinder@kernel.org>2009-03-18 22:18:56 +0530
committerIngo Molnar <mingo@elte.hu>2009-03-18 18:54:39 +0100
commit09933a108e6730a464a1ab676c9decc11aee0edc (patch)
tree1233d15bd2e1e0e4fbfa4144a878f553a3b04a35
parent490362003457f8d387f6f6e73e3a7efbf56c3314 (diff)
tracing: fix oops in tracepoint_update_probe_range()
Change this crash: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<ffffffff8107d4de>] tracepoint_update_probe_range+0x1f/0x9b PGD 13d5fb067 PUD 13d688067 PMD 0 Oops: 0000 [#1] SMP To a more debuggable WARN_ONCE(). Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> LKML-Reference: <1237394936.3132.1.camel@localhost.localdomain> [ moved the check outside the lock and added a WARN_ON(). ] Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--kernel/tracepoint.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
index 79602740bbb..adf28734fe2 100644
--- a/kernel/tracepoint.c
+++ b/kernel/tracepoint.c
@@ -272,12 +272,17 @@ static void disable_tracepoint(struct tracepoint *elem)
*
* Updates the probe callback corresponding to a range of tracepoints.
*/
-void tracepoint_update_probe_range(struct tracepoint *begin,
- struct tracepoint *end)
+void
+tracepoint_update_probe_range(struct tracepoint *begin, struct tracepoint *end)
{
struct tracepoint *iter;
struct tracepoint_entry *mark_entry;
+ if (!begin) {
+ WARN_ON_ONCE(1);
+ return;
+ }
+
mutex_lock(&tracepoints_mutex);
for (iter = begin; iter < end; iter++) {
mark_entry = get_tracepoint(iter->name);