diff options
| -rw-r--r-- | kernel/perf_event.c | 4 | ||||
| -rw-r--r-- | kernel/trace/ring_buffer.c | 2 | ||||
| -rw-r--r-- | tools/perf/perf.h | 12 |
3 files changed, 14 insertions, 4 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index db5b56064687..b98bed3d8182 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
| @@ -2202,15 +2202,13 @@ static void perf_event_for_each(struct perf_event *event, | |||
| 2202 | static int perf_event_period(struct perf_event *event, u64 __user *arg) | 2202 | static int perf_event_period(struct perf_event *event, u64 __user *arg) |
| 2203 | { | 2203 | { |
| 2204 | struct perf_event_context *ctx = event->ctx; | 2204 | struct perf_event_context *ctx = event->ctx; |
| 2205 | unsigned long size; | ||
| 2206 | int ret = 0; | 2205 | int ret = 0; |
| 2207 | u64 value; | 2206 | u64 value; |
| 2208 | 2207 | ||
| 2209 | if (!event->attr.sample_period) | 2208 | if (!event->attr.sample_period) |
| 2210 | return -EINVAL; | 2209 | return -EINVAL; |
| 2211 | 2210 | ||
| 2212 | size = copy_from_user(&value, arg, sizeof(value)); | 2211 | if (copy_from_user(&value, arg, sizeof(value))) |
| 2213 | if (size != sizeof(value)) | ||
| 2214 | return -EFAULT; | 2212 | return -EFAULT; |
| 2215 | 2213 | ||
| 2216 | if (!value) | 2214 | if (!value) |
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 492197e2f86c..bca96377fd4e 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
| @@ -405,7 +405,7 @@ static inline int test_time_stamp(u64 delta) | |||
| 405 | #define BUF_MAX_DATA_SIZE (BUF_PAGE_SIZE - (sizeof(u32) * 2)) | 405 | #define BUF_MAX_DATA_SIZE (BUF_PAGE_SIZE - (sizeof(u32) * 2)) |
| 406 | 406 | ||
| 407 | /* Max number of timestamps that can fit on a page */ | 407 | /* Max number of timestamps that can fit on a page */ |
| 408 | #define RB_TIMESTAMPS_PER_PAGE (BUF_PAGE_SIZE / RB_LEN_TIME_STAMP) | 408 | #define RB_TIMESTAMPS_PER_PAGE (BUF_PAGE_SIZE / RB_LEN_TIME_EXTEND) |
| 409 | 409 | ||
| 410 | int ring_buffer_print_page_header(struct trace_seq *s) | 410 | int ring_buffer_print_page_header(struct trace_seq *s) |
| 411 | { | 411 | { |
diff --git a/tools/perf/perf.h b/tools/perf/perf.h index ef7aa0a0c526..95aaf565c704 100644 --- a/tools/perf/perf.h +++ b/tools/perf/perf.h | |||
| @@ -73,6 +73,18 @@ void get_term_dimensions(struct winsize *ws); | |||
| 73 | #define cpu_relax() asm volatile("":::"memory") | 73 | #define cpu_relax() asm volatile("":::"memory") |
| 74 | #endif | 74 | #endif |
| 75 | 75 | ||
| 76 | #ifdef __mips__ | ||
| 77 | #include "../../arch/mips/include/asm/unistd.h" | ||
| 78 | #define rmb() asm volatile( \ | ||
| 79 | ".set mips2\n\t" \ | ||
| 80 | "sync\n\t" \ | ||
| 81 | ".set mips0" \ | ||
| 82 | : /* no output */ \ | ||
| 83 | : /* no input */ \ | ||
| 84 | : "memory") | ||
| 85 | #define cpu_relax() asm volatile("" ::: "memory") | ||
| 86 | #endif | ||
| 87 | |||
| 76 | #include <time.h> | 88 | #include <time.h> |
| 77 | #include <unistd.h> | 89 | #include <unistd.h> |
| 78 | #include <sys/types.h> | 90 | #include <sys/types.h> |
