Commit dc4f36c8 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

[PATCH] I2C: fix up sparse warnings in the i2c-dev driver

parent 043d475a
...@@ -122,7 +122,7 @@ static ssize_t show_dev(struct class_device *class_dev, char *buf) ...@@ -122,7 +122,7 @@ static ssize_t show_dev(struct class_device *class_dev, char *buf)
} }
static CLASS_DEVICE_ATTR(dev, S_IRUGO, show_dev, NULL); static CLASS_DEVICE_ATTR(dev, S_IRUGO, show_dev, NULL);
static ssize_t i2cdev_read (struct file *file, char *buf, size_t count, static ssize_t i2cdev_read (struct file *file, char __user *buf, size_t count,
loff_t *offset) loff_t *offset)
{ {
char *tmp; char *tmp;
...@@ -147,7 +147,7 @@ static ssize_t i2cdev_read (struct file *file, char *buf, size_t count, ...@@ -147,7 +147,7 @@ static ssize_t i2cdev_read (struct file *file, char *buf, size_t count,
return ret; return ret;
} }
static ssize_t i2cdev_write (struct file *file, const char *buf, size_t count, static ssize_t i2cdev_write (struct file *file, const char __user *buf, size_t count,
loff_t *offset) loff_t *offset)
{ {
int ret; int ret;
...@@ -211,12 +211,12 @@ int i2cdev_ioctl (struct inode *inode, struct file *file, unsigned int cmd, ...@@ -211,12 +211,12 @@ int i2cdev_ioctl (struct inode *inode, struct file *file, unsigned int cmd,
return 0; return 0;
case I2C_FUNCS: case I2C_FUNCS:
funcs = i2c_get_functionality(client->adapter); funcs = i2c_get_functionality(client->adapter);
return (copy_to_user((unsigned long *)arg,&funcs, return (copy_to_user((unsigned long __user *)arg, &funcs,
sizeof(unsigned long)))?-EFAULT:0; sizeof(unsigned long)))?-EFAULT:0;
case I2C_RDWR: case I2C_RDWR:
if (copy_from_user(&rdwr_arg, if (copy_from_user(&rdwr_arg,
(struct i2c_rdwr_ioctl_data *)arg, (struct i2c_rdwr_ioctl_data __user *)arg,
sizeof(rdwr_arg))) sizeof(rdwr_arg)))
return -EFAULT; return -EFAULT;
...@@ -284,7 +284,7 @@ int i2cdev_ioctl (struct inode *inode, struct file *file, unsigned int cmd, ...@@ -284,7 +284,7 @@ int i2cdev_ioctl (struct inode *inode, struct file *file, unsigned int cmd,
case I2C_SMBUS: case I2C_SMBUS:
if (copy_from_user(&data_arg, if (copy_from_user(&data_arg,
(struct i2c_smbus_ioctl_data *) arg, (struct i2c_smbus_ioctl_data __user *) arg,
sizeof(struct i2c_smbus_ioctl_data))) sizeof(struct i2c_smbus_ioctl_data)))
return -EFAULT; return -EFAULT;
if ((data_arg.size != I2C_SMBUS_BYTE) && if ((data_arg.size != I2C_SMBUS_BYTE) &&
......
...@@ -34,13 +34,13 @@ struct i2c_smbus_ioctl_data { ...@@ -34,13 +34,13 @@ struct i2c_smbus_ioctl_data {
__u8 read_write; __u8 read_write;
__u8 command; __u8 command;
__u32 size; __u32 size;
union i2c_smbus_data *data; union i2c_smbus_data __user *data;
}; };
/* This is the structure as used in the I2C_RDWR ioctl call */ /* This is the structure as used in the I2C_RDWR ioctl call */
struct i2c_rdwr_ioctl_data { struct i2c_rdwr_ioctl_data {
struct i2c_msg *msgs; /* pointers to i2c_msgs */ struct i2c_msg __user *msgs; /* pointers to i2c_msgs */
__u32 nmsgs; /* number of i2c_msgs */ __u32 nmsgs; /* number of i2c_msgs */
}; };
#endif /* _LINUX_I2C_DEV_H */ #endif /* _LINUX_I2C_DEV_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment