aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/events
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2014-09-09 00:48:07 -0400
committerIngo Molnar <mingo@kernel.org>2014-09-09 00:48:07 -0400
commitbdea534db894ea19320f470ce2e63b1d9de96a15 (patch)
tree8ec2a0a93d9bb5e7205253c67aa624b9ec227477 /kernel/events
parent39b5a56ec0be5effe9b7d0f18cb27724bf2e5d47 (diff)
parent2ce7598c9a453e0acd0e07be7be3f5eb39608ebd (diff)
Merge tag 'v3.17-rc4' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/events')
-rw-r--r--kernel/events/core.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index d8cb4d21a346..01bd42ed516c 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -41,6 +41,7 @@
41#include <linux/cgroup.h> 41#include <linux/cgroup.h>
42#include <linux/module.h> 42#include <linux/module.h>
43#include <linux/mman.h> 43#include <linux/mman.h>
44#include <linux/compat.h>
44 45
45#include "internal.h" 46#include "internal.h"
46 47
@@ -3821,6 +3822,26 @@ static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
3821 return 0; 3822 return 0;
3822} 3823}
3823 3824
3825#ifdef CONFIG_COMPAT
3826static long perf_compat_ioctl(struct file *file, unsigned int cmd,
3827 unsigned long arg)
3828{
3829 switch (_IOC_NR(cmd)) {
3830 case _IOC_NR(PERF_EVENT_IOC_SET_FILTER):
3831 case _IOC_NR(PERF_EVENT_IOC_ID):
3832 /* Fix up pointer size (usually 4 -> 8 in 32-on-64-bit case */
3833 if (_IOC_SIZE(cmd) == sizeof(compat_uptr_t)) {
3834 cmd &= ~IOCSIZE_MASK;
3835 cmd |= sizeof(void *) << IOCSIZE_SHIFT;
3836 }
3837 break;
3838 }
3839 return perf_ioctl(file, cmd, arg);
3840}
3841#else
3842# define perf_compat_ioctl NULL
3843#endif
3844
3824int perf_event_task_enable(void) 3845int perf_event_task_enable(void)
3825{ 3846{
3826 struct perf_event *event; 3847 struct perf_event *event;
@@ -4326,7 +4347,7 @@ static const struct file_operations perf_fops = {
4326 .read = perf_read, 4347 .read = perf_read,
4327 .poll = perf_poll, 4348 .poll = perf_poll,
4328 .unlocked_ioctl = perf_ioctl, 4349 .unlocked_ioctl = perf_ioctl,
4329 .compat_ioctl = perf_ioctl, 4350 .compat_ioctl = perf_compat_ioctl,
4330 .mmap = perf_mmap, 4351 .mmap = perf_mmap,
4331 .fasync = perf_fasync, 4352 .fasync = perf_fasync,
4332}; 4353};