perf: Fix incorrect copy_from_user() usage

perf events: repair incorrect use of copy_from_user

This makes the perf_event_period() return 0 instead of
-EFAULT on success.

Signed-off-by: John Blackwood<john.blackwood@ccur.com>
Signed-off-by: Joe Korty <joe.korty@ccur.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20100928220311.GA18145@tsunami.ccur.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
John Blackwood 2010-09-28 18:03:11 -04:00 committed by Ingo Molnar
parent 29979aa8bd
commit ad0cf3478d
1 changed files with 1 additions and 3 deletions

View File

@ -2202,15 +2202,13 @@ static void perf_event_for_each(struct perf_event *event,
static int perf_event_period(struct perf_event *event, u64 __user *arg) static int perf_event_period(struct perf_event *event, u64 __user *arg)
{ {
struct perf_event_context *ctx = event->ctx; struct perf_event_context *ctx = event->ctx;
unsigned long size;
int ret = 0; int ret = 0;
u64 value; u64 value;
if (!event->attr.sample_period) if (!event->attr.sample_period)
return -EINVAL; return -EINVAL;
size = copy_from_user(&value, arg, sizeof(value)); if (copy_from_user(&value, arg, sizeof(value)))
if (size != sizeof(value))
return -EFAULT; return -EFAULT;
if (!value) if (!value)