diff options
Diffstat (limited to 'drivers/oprofile/cpu_buffer.c')
| -rw-r--r-- | drivers/oprofile/cpu_buffer.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c index a83c3db7d18f..c93d3d2640ab 100644 --- a/drivers/oprofile/cpu_buffer.c +++ b/drivers/oprofile/cpu_buffer.c | |||
| @@ -64,6 +64,8 @@ int alloc_cpu_buffers(void) | |||
| 64 | b->head_pos = 0; | 64 | b->head_pos = 0; | 
| 65 | b->sample_received = 0; | 65 | b->sample_received = 0; | 
| 66 | b->sample_lost_overflow = 0; | 66 | b->sample_lost_overflow = 0; | 
| 67 | b->backtrace_aborted = 0; | ||
| 68 | b->sample_invalid_eip = 0; | ||
| 67 | b->cpu = i; | 69 | b->cpu = i; | 
| 68 | INIT_DELAYED_WORK(&b->work, wq_sync_buffer); | 70 | INIT_DELAYED_WORK(&b->work, wq_sync_buffer); | 
| 69 | } | 71 | } | 
| @@ -175,6 +177,11 @@ static int log_sample(struct oprofile_cpu_buffer * cpu_buf, unsigned long pc, | |||
| 175 | 177 | ||
| 176 | cpu_buf->sample_received++; | 178 | cpu_buf->sample_received++; | 
| 177 | 179 | ||
| 180 | if (pc == ESCAPE_CODE) { | ||
| 181 | cpu_buf->sample_invalid_eip++; | ||
| 182 | return 0; | ||
| 183 | } | ||
| 184 | |||
| 178 | if (nr_available_slots(cpu_buf) < 3) { | 185 | if (nr_available_slots(cpu_buf) < 3) { | 
| 179 | cpu_buf->sample_lost_overflow++; | 186 | cpu_buf->sample_lost_overflow++; | 
| 180 | return 0; | 187 | return 0; | 
