diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-08-14 12:05:46 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-14 12:05:46 -0400 |
commit | 48e4d4604b7da52d6a56ddc821a460b183b7353d (patch) | |
tree | f9a7846e5616dc972dcfa6e7d279f28e8178c014 /arch | |
parent | 0fc11e3618bb1f9e0640127ec84f5d2690fa3894 (diff) |
sh: stacktrace: Add reliability checks in address saving ops.
This adopts the reliability checks from the x86 stacktrace code so known
bad addresses are not recorded in the stack trace buffer.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sh/kernel/stacktrace.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/sh/kernel/stacktrace.c b/arch/sh/kernel/stacktrace.c index 45b1adde3abe..a0f497bcbb4f 100644 --- a/arch/sh/kernel/stacktrace.c +++ b/arch/sh/kernel/stacktrace.c | |||
@@ -38,6 +38,9 @@ static void save_stack_address(void *data, unsigned long addr, int reliable) | |||
38 | { | 38 | { |
39 | struct stack_trace *trace = data; | 39 | struct stack_trace *trace = data; |
40 | 40 | ||
41 | if (!reliable) | ||
42 | return; | ||
43 | |||
41 | if (trace->skip > 0) { | 44 | if (trace->skip > 0) { |
42 | trace->skip--; | 45 | trace->skip--; |
43 | return; | 46 | return; |
@@ -67,6 +70,9 @@ save_stack_address_nosched(void *data, unsigned long addr, int reliable) | |||
67 | { | 70 | { |
68 | struct stack_trace *trace = (struct stack_trace *)data; | 71 | struct stack_trace *trace = (struct stack_trace *)data; |
69 | 72 | ||
73 | if (!reliable) | ||
74 | return; | ||
75 | |||
70 | if (in_sched_functions(addr)) | 76 | if (in_sched_functions(addr)) |
71 | return; | 77 | return; |
72 | 78 | ||