[tip:perf/urgent] perf: Fix incorrect copy_from_user() usage

From: tip-bot for John Blackwood
Date: Tue Oct 12 2010 - 09:09:14 EST


Commit-ID: ad0cf3478de8677f720ee06393b3147819568d6a
Gitweb: http://git.kernel.org/tip/ad0cf3478de8677f720ee06393b3147819568d6a
Author: John Blackwood <john.blackwood@xxxxxxxx>
AuthorDate: Tue, 28 Sep 2010 18:03:11 -0400
Committer: Ingo Molnar <mingo@xxxxxxx>
CommitDate: Tue, 12 Oct 2010 11:45:01 +0200

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@xxxxxxxx>
Signed-off-by: Joe Korty <joe.korty@xxxxxxxx>
Acked-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
LKML-Reference: <20100928220311.GA18145@xxxxxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
kernel/perf_event.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index db5b560..b98bed3 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,
static int perf_event_period(struct perf_event *event, u64 __user *arg)
{
struct perf_event_context *ctx = event->ctx;
- unsigned long size;
int ret = 0;
u64 value;

if (!event->attr.sample_period)
return -EINVAL;

- size = copy_from_user(&value, arg, sizeof(value));
- if (size != sizeof(value))
+ if (copy_from_user(&value, arg, sizeof(value)))
return -EFAULT;

if (!value)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/