projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[firefly-linux-kernel-4.4.55.git]
/
kernel
/
trace
/
trace_kdb.c
diff --git
a/kernel/trace/trace_kdb.c
b/kernel/trace/trace_kdb.c
index bd90e1b06088a74d890b011f6bec7b61d7cf2383..b0b1c44e923a358bffcebda8c24b3d5e861b2693 100644
(file)
--- a/
kernel/trace/trace_kdb.c
+++ b/
kernel/trace/trace_kdb.c
@@
-20,10
+20,12
@@
static void ftrace_dump_buf(int skip_lines, long cpu_file)
{
/* use static because iter can be a bit big for the stack */
static struct trace_iterator iter;
{
/* use static because iter can be a bit big for the stack */
static struct trace_iterator iter;
+ static struct ring_buffer_iter *buffer_iter[CONFIG_NR_CPUS];
unsigned int old_userobj;
int cnt = 0, cpu;
trace_init_global_iter(&iter);
unsigned int old_userobj;
int cnt = 0, cpu;
trace_init_global_iter(&iter);
+ iter.buffer_iter = buffer_iter;
for_each_tracing_cpu(cpu) {
atomic_inc(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled);
for_each_tracing_cpu(cpu) {
atomic_inc(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled);
@@
-57,19
+59,19
@@
static void ftrace_dump_buf(int skip_lines, long cpu_file)
ring_buffer_read_start(iter.buffer_iter[cpu_file]);
tracing_iter_reset(&iter, cpu_file);
}
ring_buffer_read_start(iter.buffer_iter[cpu_file]);
tracing_iter_reset(&iter, cpu_file);
}
- if (!trace_empty(&iter))
- trace_find_next_entry_inc(&iter);
- while (!trace_empty(&iter)) {
+
+ while (trace_find_next_entry_inc(&iter)) {
if (!cnt)
kdb_printf("---------------------------------\n");
cnt++;
if (!cnt)
kdb_printf("---------------------------------\n");
cnt++;
- if (
trace_find_next_entry_inc(&iter) != NULL && !skip_lines)
+ if (
!skip_lines) {
print_trace_line(&iter);
print_trace_line(&iter);
- if (!skip_lines)
trace_printk_seq(&iter.seq);
trace_printk_seq(&iter.seq);
- else
+ } else {
skip_lines--;
skip_lines--;
+ }
+
if (KDB_FLAG(CMD_INTERRUPT))
goto out;
}
if (KDB_FLAG(CMD_INTERRUPT))
goto out;
}
@@
-86,9
+88,12
@@
out:
atomic_dec(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled);
}
atomic_dec(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled);
}
- for_each_tracing_cpu(cpu)
- if (iter.buffer_iter[cpu])
+ for_each_tracing_cpu(cpu)
{
+ if (iter.buffer_iter[cpu])
{
ring_buffer_read_finish(iter.buffer_iter[cpu]);
ring_buffer_read_finish(iter.buffer_iter[cpu]);
+ iter.buffer_iter[cpu] = NULL;
+ }
+ }
}
/*
}
/*