Lines Matching refs:rdwr_pa
242 struct i2c_msg *rdwr_pa; in i2cdev_ioctl_rdrw() local
256 rdwr_pa = memdup_user(rdwr_arg.msgs, in i2cdev_ioctl_rdrw()
258 if (IS_ERR(rdwr_pa)) in i2cdev_ioctl_rdrw()
259 return PTR_ERR(rdwr_pa); in i2cdev_ioctl_rdrw()
263 kfree(rdwr_pa); in i2cdev_ioctl_rdrw()
270 if (rdwr_pa[i].len > 8192) { in i2cdev_ioctl_rdrw()
275 data_ptrs[i] = (u8 __user *)rdwr_pa[i].buf; in i2cdev_ioctl_rdrw()
276 rdwr_pa[i].buf = memdup_user(data_ptrs[i], rdwr_pa[i].len); in i2cdev_ioctl_rdrw()
277 if (IS_ERR(rdwr_pa[i].buf)) { in i2cdev_ioctl_rdrw()
278 res = PTR_ERR(rdwr_pa[i].buf); in i2cdev_ioctl_rdrw()
293 if (rdwr_pa[i].flags & I2C_M_RECV_LEN) { in i2cdev_ioctl_rdrw()
294 if (!(rdwr_pa[i].flags & I2C_M_RD) || in i2cdev_ioctl_rdrw()
295 rdwr_pa[i].buf[0] < 1 || in i2cdev_ioctl_rdrw()
296 rdwr_pa[i].len < rdwr_pa[i].buf[0] + in i2cdev_ioctl_rdrw()
302 rdwr_pa[i].len = rdwr_pa[i].buf[0]; in i2cdev_ioctl_rdrw()
308 kfree(rdwr_pa[j].buf); in i2cdev_ioctl_rdrw()
310 kfree(rdwr_pa); in i2cdev_ioctl_rdrw()
314 res = i2c_transfer(client->adapter, rdwr_pa, rdwr_arg.nmsgs); in i2cdev_ioctl_rdrw()
316 if (res >= 0 && (rdwr_pa[i].flags & I2C_M_RD)) { in i2cdev_ioctl_rdrw()
317 if (copy_to_user(data_ptrs[i], rdwr_pa[i].buf, in i2cdev_ioctl_rdrw()
318 rdwr_pa[i].len)) in i2cdev_ioctl_rdrw()
321 kfree(rdwr_pa[i].buf); in i2cdev_ioctl_rdrw()
324 kfree(rdwr_pa); in i2cdev_ioctl_rdrw()