cris: use simple_read_from_buffer()
authorAkinobu Mita <akinobu.mita@gmail.com>
Thu, 24 Jul 2008 04:28:46 +0000 (21:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 17:47:24 +0000 (10:47 -0700)
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/cris/kernel/profile.c

index 44f7b4f..9aa5711 100644 (file)
@@ -35,19 +35,16 @@ read_cris_profile(struct file *file, char __user *buf,
                  size_t count, loff_t *ppos)
 {
        unsigned long p = *ppos;
+       ssize_t ret;
 
-       if (p > SAMPLE_BUFFER_SIZE)
-               return 0;
+       ret = simple_read_from_buffer(buf, count, ppos, sample_buffer,
+                                               SAMPLE_BUFFER_SIZE);
+       if (ret < 0)
+               return ret;
 
-       if (p + count > SAMPLE_BUFFER_SIZE)
-               count = SAMPLE_BUFFER_SIZE - p;
-       if (copy_to_user(buf, sample_buffer + p,count))
-               return -EFAULT;
+       memset(sample_buffer + p, 0, ret);
 
-       memset(sample_buffer + p, 0, count);
-       *ppos += count;
-
-       return count;
+       return ret;
 }
 
 static ssize_t