diff options
Diffstat (limited to 'trace-ftrace.c')
-rw-r--r-- | trace-ftrace.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/trace-ftrace.c b/trace-ftrace.c index 7be0ed6..d050738 100644 --- a/trace-ftrace.c +++ b/trace-ftrace.c | |||
@@ -354,7 +354,6 @@ trace_stack_handler(struct trace_seq *s, struct record *record, | |||
354 | unsigned long long addr; | 354 | unsigned long long addr; |
355 | const char *func; | 355 | const char *func; |
356 | void *data = record->data; | 356 | void *data = record->data; |
357 | int i; | ||
358 | 357 | ||
359 | field = pevent_find_any_field(event, "caller"); | 358 | field = pevent_find_any_field(event, "caller"); |
360 | if (!field) { | 359 | if (!field) { |
@@ -366,9 +365,9 @@ trace_stack_handler(struct trace_seq *s, struct record *record, | |||
366 | 365 | ||
367 | long_size_check(finfo); | 366 | long_size_check(finfo); |
368 | 367 | ||
369 | for (i = 0; i < field->size; i += finfo->long_size) { | 368 | for (data += field->offset; data < record->data + record->size; |
370 | addr = pevent_read_number(event->pevent, | 369 | data += finfo->long_size) { |
371 | data + field->offset + i, finfo->long_size); | 370 | addr = pevent_read_number(event->pevent, data, finfo->long_size); |
372 | 371 | ||
373 | if ((finfo->long_size == 8 && addr == (unsigned long long)-1) || | 372 | if ((finfo->long_size == 8 && addr == (unsigned long long)-1) || |
374 | ((int)addr == -1)) | 373 | ((int)addr == -1)) |