staging/lustre: Add __user attributes to libcfs_ioctl_get/popdata args
authorOleg Drokin <green@linuxhacker.ru>
Sun, 3 Jan 2016 17:05:37 +0000 (12:05 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Feb 2016 22:27:25 +0000 (14:27 -0800)
Just make clear which pointers are from userspace and which are not in
libcfs_ioctl_getdata/libcfs_ioctl_popdata and their callers.

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
drivers/staging/lustre/lustre/libcfs/linux/linux-module.c
drivers/staging/lustre/lustre/libcfs/module.c

index 3b16fcef1daddf1f619369f0af716bc51a4edb4e..0c31bf9b8e8d1aa8398044ad2d2d18e5e9505bac 100644 (file)
@@ -207,7 +207,7 @@ static inline int libcfs_ioctl_is_invalid(struct libcfs_ioctl_data *data)
 
 int libcfs_register_ioctl(struct libcfs_ioctl_handler *hand);
 int libcfs_deregister_ioctl(struct libcfs_ioctl_handler *hand);
-int libcfs_ioctl_getdata(char *buf, char *end, void *arg);
-int libcfs_ioctl_popdata(void *arg, void *buf, int size);
+int libcfs_ioctl_getdata(char *buf, char *end, void __user *arg);
+int libcfs_ioctl_popdata(void __user *arg, void *buf, int size);
 
 #endif /* __LIBCFS_IOCTL_H__ */
index eccfe8bd57a2daebed0cb16c1af1b5f9ae4f8be4..c089b044ef2eab81e567e47bf4956aef517c6f75 100644 (file)
@@ -40,7 +40,7 @@
 
 #define LNET_MINOR 240
 
-int libcfs_ioctl_getdata(char *buf, char *end, void *arg)
+int libcfs_ioctl_getdata(char *buf, char *end, void __user *arg)
 {
        struct libcfs_ioctl_hdr   *hdr;
        struct libcfs_ioctl_data  *data;
@@ -88,9 +88,9 @@ int libcfs_ioctl_getdata(char *buf, char *end, void *arg)
        return 0;
 }
 
-int libcfs_ioctl_popdata(void *arg, void *data, int size)
+int libcfs_ioctl_popdata(void __user *arg, void *data, int size)
 {
-       if (copy_to_user((char *)arg, data, size))
+       if (copy_to_user(arg, data, size))
                return -EFAULT;
        return 0;
 }
index af516a29c20e4a3ac603b683a2c4c66de6933957..d5a047bd0180cd2123b14431b598274294382326 100644 (file)
@@ -116,7 +116,7 @@ int libcfs_deregister_ioctl(struct libcfs_ioctl_handler *hand)
 EXPORT_SYMBOL(libcfs_deregister_ioctl);
 
 static int libcfs_ioctl_int(struct cfs_psdev_file *pfile, unsigned long cmd,
-                           void *arg, struct libcfs_ioctl_data *data)
+                           void __user *arg, struct libcfs_ioctl_data *data)
 {
        int err = -EINVAL;
 
@@ -157,7 +157,8 @@ static int libcfs_ioctl_int(struct cfs_psdev_file *pfile, unsigned long cmd,
        return err;
 }
 
-static int libcfs_ioctl(struct cfs_psdev_file *pfile, unsigned long cmd, void *arg)
+static int libcfs_ioctl(struct cfs_psdev_file *pfile, unsigned long cmd,
+                       void __user *arg)
 {
        char    *buf;
        struct libcfs_ioctl_data *data;