From 1ca0f4b6037614dc9ac06f8ef58d0781d1661e5e Mon Sep 17 00:00:00 2001 From: Jiri Olsa Date: Tue, 7 Aug 2012 15:20:39 +0200 Subject: [PATCH] --- yaml --- r: 323663 b: refs/heads/master c: 5685e0ff45f5df67e79e9b052b6ffd501ff38c11 h: refs/heads/master i: 323661: f4311ef2b295e259fa81f548212a6b4427fce3fc 323659: 38eb32977c751fdac49b669f7cf6c3672536e146 323655: eb24ee39312078f8c326e8615d207f5d0fbc2086 323647: 7775746dd024669cf9306c2ca9875885a41b312f v: v3 --- [refs] | 2 +- trunk/include/linux/perf_event.h | 2 ++ trunk/kernel/events/internal.h | 4 ++++ trunk/kernel/events/ring_buffer.c | 6 ++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7ed24a11e528..ec399a3775eb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 91d7753a45f8525dc75b6be01e427dc1c378dc16 +refs/heads/master: 5685e0ff45f5df67e79e9b052b6ffd501ff38c11 diff --git a/trunk/include/linux/perf_event.h b/trunk/include/linux/perf_event.h index d41394a1af36..8a73f75beb16 100644 --- a/trunk/include/linux/perf_event.h +++ b/trunk/include/linux/perf_event.h @@ -1321,6 +1321,8 @@ extern int perf_output_begin(struct perf_output_handle *handle, extern void perf_output_end(struct perf_output_handle *handle); extern unsigned int perf_output_copy(struct perf_output_handle *handle, const void *buf, unsigned int len); +extern unsigned int perf_output_skip(struct perf_output_handle *handle, + unsigned int len); extern int perf_swevent_get_recursion_context(void); extern void perf_swevent_put_recursion_context(int rctx); extern void perf_event_enable(struct perf_event *event); diff --git a/trunk/kernel/events/internal.h b/trunk/kernel/events/internal.h index 7fd5408493d2..ce7bdfc1d045 100644 --- a/trunk/kernel/events/internal.h +++ b/trunk/kernel/events/internal.h @@ -114,6 +114,10 @@ static inline int memcpy_common(void *dst, const void *src, size_t n) DEFINE_OUTPUT_COPY(__output_copy, memcpy_common) +#define MEMCPY_SKIP(dst, src, n) (n) + +DEFINE_OUTPUT_COPY(__output_skip, MEMCPY_SKIP) + #ifndef arch_perf_out_copy_user #define arch_perf_out_copy_user __copy_from_user_inatomic #endif diff --git a/trunk/kernel/events/ring_buffer.c b/trunk/kernel/events/ring_buffer.c index b4c2ad3dee7a..23cb34ff3973 100644 --- a/trunk/kernel/events/ring_buffer.c +++ b/trunk/kernel/events/ring_buffer.c @@ -188,6 +188,12 @@ unsigned int perf_output_copy(struct perf_output_handle *handle, return __output_copy(handle, buf, len); } +unsigned int perf_output_skip(struct perf_output_handle *handle, + unsigned int len) +{ + return __output_skip(handle, NULL, len); +} + void perf_output_end(struct perf_output_handle *handle) { perf_output_put_handle(handle);