Add 'discard' request handling
[linux-2.6.git] / arch / cris / kernel / profile.c
index 44f7b4f794760dcaebf8cae38f114a39739e4d6f..9aa571169bcc5ea1f9847ab8bea143ccadfc6f14 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