Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney...
[pandora-kernel.git] / arch / cris / kernel / profile.c
index aad0a9e..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
@@ -75,9 +72,9 @@ __init init_cris_profile(void)
 
        sample_buffer_pos = sample_buffer;
 
-       entry = create_proc_entry("system_profile", S_IWUSR | S_IRUGO, NULL);
+       entry = proc_create("system_profile", S_IWUSR | S_IRUGO, NULL,
+                           &cris_proc_profile_operations);
        if (entry) {
-               entry->proc_fops = &cris_proc_profile_operations;
                entry->size = SAMPLE_BUFFER_SIZE;
        }
        prof_running = 1;