Merge branch 'pm-cpufreq'
[platform/adaptation/renesas_rcar/renesas_kernel.git] / fs / sysfs / file.c
index d2bb7ed..15ef5eb 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/list.h>
 #include <linux/mutex.h>
 #include <linux/limits.h>
-#include <asm/uaccess.h>
+#include <linux/uaccess.h>
 
 #include "sysfs.h"
 
@@ -45,8 +45,8 @@ struct sysfs_open_dirent {
 struct sysfs_buffer {
        size_t                  count;
        loff_t                  pos;
-       char                    * page;
-       const struct sysfs_ops  * ops;
+       char                    *page;
+       const struct sysfs_ops  *ops;
        struct mutex            mutex;
        int                     needs_read_fill;
        int                     event;
@@ -59,16 +59,16 @@ struct sysfs_buffer {
  *     @buffer:        data buffer for file.
  *
  *     Allocate @buffer->page, if it hasn't been already, then call the
- *     kobject's show() method to fill the buffer with this attribute's 
- *     data. 
+ *     kobject's show() method to fill the buffer with this attribute's
+ *     data.
  *     This is called only once, on the file's first read unless an error
  *     is returned.
  */
-static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer)
+static int fill_read_buffer(struct dentry *dentry, struct sysfs_buffer *buffer)
 {
        struct sysfs_dirent *attr_sd = dentry->d_fsdata;
        struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;
-       const struct sysfs_ops * ops = buffer->ops;
+       const struct sysfs_ops *ops = buffer->ops;
        int ret = 0;
        ssize_t count;
 
@@ -106,7 +106,7 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer
 }
 
 /**
- *     sysfs_read_file - read an attribute. 
+ *     sysfs_read_file - read an attribute.
  *     @file:  file pointer.
  *     @buf:   buffer to fill.
  *     @count: number of bytes to read.
@@ -127,12 +127,12 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer
 static ssize_t
 sysfs_read_file(struct file *file, char __user *buf, size_t count, loff_t *ppos)
 {
-       struct sysfs_buffer * buffer = file->private_data;
+       struct sysfs_buffer *buffer = file->private_data;
        ssize_t retval = 0;
 
        mutex_lock(&buffer->mutex);
        if (buffer->needs_read_fill || *ppos == 0) {
-               retval = fill_read_buffer(file->f_path.dentry,buffer);
+               retval = fill_read_buffer(file->f_path.dentry, buffer);
                if (retval)
                        goto out;
        }
@@ -154,9 +154,8 @@ out:
  *     Allocate @buffer->page if it hasn't been already, then
  *     copy the user-supplied buffer into it.
  */
-
-static int 
-fill_write_buffer(struct sysfs_buffer * buffer, const char __user * buf, size_t count)
+static int fill_write_buffer(struct sysfs_buffer *buffer,
+                            const char __user *buf, size_t count)
 {
        int error;
 
@@ -167,7 +166,7 @@ fill_write_buffer(struct sysfs_buffer * buffer, const char __user * buf, size_t
 
        if (count >= PAGE_SIZE)
                count = PAGE_SIZE - 1;
-       error = copy_from_user(buffer->page,buf,count);
+       error = copy_from_user(buffer->page, buf, count);
        buffer->needs_read_fill = 1;
        /* if buf is assumed to contain a string, terminate it by \0,
           so e.g. sscanf() can scan the string easily */
@@ -183,16 +182,15 @@ fill_write_buffer(struct sysfs_buffer * buffer, const char __user * buf, size_t
  *     @count:         number of bytes
  *
  *     Get the correct pointers for the kobject and the attribute we're
- *     dealing with, then call the store() method for the attribute, 
+ *     dealing with, then call the store() method for the attribute,
  *     passing the buffer that we acquired in fill_write_buffer().
  */
-
-static int
-flush_write_buffer(struct dentry * dentry, struct sysfs_buffer * buffer, size_t count)
+static int flush_write_buffer(struct dentry *dentry,
+                             struct sysfs_buffer *buffer, size_t count)
 {
        struct sysfs_dirent *attr_sd = dentry->d_fsdata;
        struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;
-       const struct sysfs_ops * ops = buffer->ops;
+       const struct sysfs_ops *ops = buffer->ops;
        int rc;
 
        /* need attr_sd for attr and ops, its parent for kobj */
@@ -219,15 +217,14 @@ flush_write_buffer(struct dentry * dentry, struct sysfs_buffer * buffer, size_t
  *     then push it to the kobject in flush_write_buffer().
  *     There is no easy way for us to know if userspace is only doing a partial
  *     write, so we don't support them. We expect the entire buffer to come
- *     on the first write. 
+ *     on the first write.
  *     Hint: if you're writing a value, first read the file, modify only the
- *     the value you're changing, then write entire buffer back. 
+ *     the value you're changing, then write entire buffer back.
  */
-
-static ssize_t
-sysfs_write_file(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
+static ssize_t sysfs_write_file(struct file *file, const char __user *buf,
+                               size_t count, loff_t *ppos)
 {
-       struct sysfs_buffer * buffer = file->private_data;
+       struct sysfs_buffer *buffer = file->private_data;
        ssize_t len;
 
        mutex_lock(&buffer->mutex);
@@ -339,13 +336,14 @@ static int sysfs_open_file(struct inode *inode, struct file *file)
        if (kobj->ktype && kobj->ktype->sysfs_ops)
                ops = kobj->ktype->sysfs_ops;
        else {
-               WARN(1, KERN_ERR "missing sysfs attribute operations for "
-                      "kobject: %s\n", kobject_name(kobj));
+               WARN(1, KERN_ERR
+                    "missing sysfs attribute operations for kobject: %s\n",
+                    kobject_name(kobj));
                goto err_out;
        }
 
        /* File needs write support.
-        * The inode's perms must say it's ok, 
+        * The inode's perms must say it's ok,
         * and we must have a store method.
         */
        if (file->f_mode & FMODE_WRITE) {
@@ -420,7 +418,7 @@ static int sysfs_release(struct inode *inode, struct file *filp)
  */
 static unsigned int sysfs_poll(struct file *filp, poll_table *wait)
 {
-       struct sysfs_buffer * buffer = filp->private_data;
+       struct sysfs_buffer *buffer = filp->private_data;
        struct sysfs_dirent *attr_sd = filp->f_path.dentry->d_fsdata;
        struct sysfs_open_dirent *od = attr_sd->s_attr.open;
 
@@ -518,8 +516,9 @@ static int sysfs_attr_ns(struct kobject *kobj, const struct attribute *attr,
        ns = ops->namespace(kobj, attr);
 out:
        if (err) {
-               WARN(1, KERN_ERR "missing sysfs namespace attribute operation for "
-                    "kobject: %s\n", kobject_name(kobj));
+               WARN(1, KERN_ERR
+                    "missing sysfs namespace attribute operation for kobject: %s\n",
+                    kobject_name(kobj));
        }
        *pns = ns;
        return err;
@@ -566,17 +565,17 @@ int sysfs_add_file(struct sysfs_dirent *dir_sd, const struct attribute *attr,
 
 /**
  *     sysfs_create_file - create an attribute file for an object.
- *     @kobj:  object we're creating for. 
+ *     @kobj:  object we're creating for.
  *     @attr:  attribute descriptor.
  */
-
-int sysfs_create_file(struct kobject * kobj, const struct attribute * attr)
+int sysfs_create_file(struct kobject *kobj, const struct attribute *attr)
 {
        BUG_ON(!kobj || !kobj->sd || !attr);
 
        return sysfs_add_file(kobj->sd, attr, SYSFS_KOBJ_ATTR);
 
 }
+EXPORT_SYMBOL_GPL(sysfs_create_file);
 
 int sysfs_create_files(struct kobject *kobj, const struct attribute **ptr)
 {
@@ -590,6 +589,7 @@ int sysfs_create_files(struct kobject *kobj, const struct attribute **ptr)
                        sysfs_remove_file(kobj, ptr[i]);
        return err;
 }
+EXPORT_SYMBOL_GPL(sysfs_create_files);
 
 /**
  * sysfs_add_file_to_group - add an attribute file to a pre-existing group.
@@ -654,7 +654,6 @@ int sysfs_chmod_file(struct kobject *kobj, const struct attribute *attr,
 }
 EXPORT_SYMBOL_GPL(sysfs_chmod_file);
 
-
 /**
  *     sysfs_remove_file - remove an object attribute.
  *     @kobj:  object we're acting for.
@@ -662,8 +661,7 @@ EXPORT_SYMBOL_GPL(sysfs_chmod_file);
  *
  *     Hash the attribute name and kill the victim.
  */
-
-void sysfs_remove_file(struct kobject * kobj, const struct attribute * attr)
+void sysfs_remove_file(struct kobject *kobj, const struct attribute *attr)
 {
        const void *ns;
 
@@ -672,13 +670,15 @@ void sysfs_remove_file(struct kobject * kobj, const struct attribute * attr)
 
        sysfs_hash_and_remove(kobj->sd, ns, attr->name);
 }
+EXPORT_SYMBOL_GPL(sysfs_remove_file);
 
-void sysfs_remove_files(struct kobject * kobj, const struct attribute **ptr)
+void sysfs_remove_files(struct kobject *kobj, const struct attribute **ptr)
 {
        int i;
        for (i = 0; ptr[i]; i++)
                sysfs_remove_file(kobj, ptr[i]);
 }
+EXPORT_SYMBOL_GPL(sysfs_remove_files);
 
 /**
  * sysfs_remove_file_from_group - remove an attribute file from a group.
@@ -793,9 +793,3 @@ int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
        return 0;
 }
 EXPORT_SYMBOL_GPL(sysfs_schedule_callback);
-
-
-EXPORT_SYMBOL_GPL(sysfs_create_file);
-EXPORT_SYMBOL_GPL(sysfs_remove_file);
-EXPORT_SYMBOL_GPL(sysfs_remove_files);
-EXPORT_SYMBOL_GPL(sysfs_create_files);