* [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers
@ 2009-11-16 0:26 Arnd Bergmann
2009-11-16 0:27 ` [PATCH 07/12] i2cdev: move compat_ioctl handling into driver Arnd Bergmann
2009-11-16 0:57 ` [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Neil Brown
0 siblings, 2 replies; 7+ messages in thread
From: Arnd Bergmann @ 2009-11-16 0:26 UTC (permalink / raw)
To: linux-kernel
Cc: linux-usb, user-mode-linux-user, Neil Brown, H. Peter Anvin,
Paul Clements, Andre Noll, Pavel Machek, linux-i2c, Jens Axboe,
Jan Blunck, Ian Kent, Nick Piggin, user-mode-linux-devel,
linux-scsi, Kay Sievers, Alon Bar-Lev, Alan Stern,
KOSAKI Motohiro, Doug Gilbert, David Vrabel, Alexey Dobriyan,
Arnd Bergmann, Jeff Dike, Oliver Neukum, linux-raid, Tejun
This is the second series of patches on compat_ioctl handling,
moving compat handlers into more drivers. Most of these
patches consist on a part that adds a compat_ioctl method
in one driver and another part removing the respective
section from fs/compat_ioctl.c. The fs/compat_ioctl.c
portion depends on other patches[1], but the driver code can
be applied independently.
If some of you feel responsible for the code I patched, please
look at my changes and if they are ok, either take them into
your tree or give me an Acked-by for them.
I have tested the patches for sg, usbdevfs and autofs, which
was easily done in qemu, but I'm lacking test cases for
most of the other ones.
Arnd <><
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Alon Bar-Lev <alon.barlev@gmail.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andre Noll <maan@systemlinux.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: autofs@linux.kernel.org
Cc: "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>
Cc: David S. Miller <davem@davemloft.net>
Cc: David Vrabel <david.vrabel@csr.com>
Cc: Doug Gilbert <dgilbert@interlog.com>
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ian Kent <raven@themaw.net>
Cc: James E.J. Bottomley <James.Bottomley@suse.de>
Cc: Jan Blunck <jblunck@suse.de>
Cc: "Jean Delvare (PC drivers, core)" <khali@linux-fr.org>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: linux-i2c@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-raid@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Neil Brown <neilb@suse.de>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Oliver Neukum <oliver@neukum.org>
Cc: Paul Clements <Paul.Clements@steeleye.com>
Cc: Pavel Machek <pavel@suse.cz>
Cc: Tejun Heo <tj@kernel.org>
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: user-mode-linux-user@lists.sourceforge.net
Cc: Wolfram Sang <w.sang@pengutronix.de>
Arnd Bergmann (12):
arch/um: handle compat_ioctl in tty line driver
scsi/sg: move compat_ioctl handling into sg driver
autofs/autofs4: move compat_ioctl handling into fs
raw: partly fix compat_ioctl handling on non-x86
nbd: add compat_ioctl method
smbfs: do compat_ioctl handling in place
i2cdev: move compat_ioctl handling into driver
md: move compat_ioctl handling into md.c
lp: move compat_ioctl handling into lp.c
usbdevfs: move compat_ioctl handling to devio.c
hamradio/mkiss: fix typo in compat_ioctl
compat_ioctl: remove unused handlers
arch/um/drivers/line.c | 6 +
arch/um/drivers/ssl.c | 1 +
arch/um/drivers/stdio_console.c | 1 +
arch/um/include/shared/line.h | 2 +
drivers/block/nbd.c | 7 +-
drivers/char/lp.c | 115 +++++++--
drivers/char/raw.c | 157 ++++++++++---
drivers/i2c/i2c-dev.c | 117 +++++++++
drivers/md/md.c | 23 ++
drivers/net/hamradio/mkiss.c | 2 +-
drivers/scsi/sg.c | 182 ++++++++++++++-
drivers/usb/core/devio.c | 110 ++++++++-
fs/autofs/root.c | 67 +++++-
fs/autofs4/root.c | 69 +++++-
fs/compat_ioctl.c | 504 +--------------------------------------
fs/smbfs/dir.c | 5 +-
fs/smbfs/file.c | 3 +-
fs/smbfs/ioctl.c | 48 ++++-
fs/smbfs/proto.h | 3 +-
include/linux/auto_fs.h | 1 +
include/linux/usbdevice_fs.h | 26 ++
kernel/trace/blktrace.c | 1 +
22 files changed, 856 insertions(+), 594 deletions(-)
[1] http://patchwork.kernel.org/bundle/arnd/compat-ioctl-cleanup/?state=*
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 07/12] i2cdev: move compat_ioctl handling into driver
2009-11-16 0:26 [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Arnd Bergmann
@ 2009-11-16 0:27 ` Arnd Bergmann
[not found] ` <1258331227-1694-8-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2009-11-16 0:57 ` [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Neil Brown
1 sibling, 1 reply; 7+ messages in thread
From: Arnd Bergmann @ 2009-11-16 0:27 UTC (permalink / raw)
To: linux-kernel
Cc: Arnd Bergmann, Jean Delvare (PC drivers, core),
Ben Dooks (embedded platforms), Wolfram Sang, linux-i2c
Doing all the compat_ioctl handling in the i2c driver itself
removes special cases from fs/compat_ioctl.c and makes it possible
to optimize this case better.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: "Jean Delvare (PC drivers, core)" <khali@linux-fr.org>
Cc: "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>
Cc: Wolfram Sang <w.sang@pengutronix.de>
Cc: linux-i2c@vger.kernel.org
---
drivers/i2c/i2c-dev.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++
fs/compat_ioctl.c | 119 -------------------------------------------------
2 files changed, 117 insertions(+), 119 deletions(-)
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
index 7e13d2d..fde0c9e 100644
--- a/drivers/i2c/i2c-dev.c
+++ b/drivers/i2c/i2c-dev.c
@@ -35,6 +35,7 @@
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <linux/smp_lock.h>
+#include <linux/compat.h>
#include <linux/jiffies.h>
#include <asm/uaccess.h>
@@ -439,6 +440,119 @@ static long i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return 0;
}
+#ifdef CONFIG_COMPAT
+struct i2c_msg32 {
+ u16 addr;
+ u16 flags;
+ u16 len;
+ compat_caddr_t buf;
+};
+
+struct i2c_rdwr_ioctl_data32 {
+ compat_caddr_t msgs; /* struct i2c_msg __user *msgs */
+ u32 nmsgs;
+};
+
+struct i2c_smbus_ioctl_data32 {
+ u8 read_write;
+ u8 command;
+ u32 size;
+ compat_caddr_t data; /* union i2c_smbus_data *data */
+};
+
+struct i2c_rdwr_aligned {
+ struct i2c_rdwr_ioctl_data cmd;
+ struct i2c_msg msgs[0];
+};
+
+static int compat_i2c_rdwr_ioctl(struct file *filp, unsigned int cmd,
+ struct i2c_rdwr_ioctl_data32 __user *udata)
+{
+ struct i2c_rdwr_aligned __user *tdata;
+ struct i2c_msg __user *tmsgs;
+ struct i2c_msg32 __user *umsgs;
+ compat_caddr_t datap;
+ int nmsgs, i;
+
+ if (get_user(nmsgs, &udata->nmsgs))
+ return -EFAULT;
+ if (nmsgs > I2C_RDRW_IOCTL_MAX_MSGS)
+ return -EINVAL;
+
+ if (get_user(datap, &udata->msgs))
+ return -EFAULT;
+ umsgs = compat_ptr(datap);
+
+ tdata = compat_alloc_user_space(sizeof(*tdata) +
+ nmsgs * sizeof(struct i2c_msg));
+ tmsgs = &tdata->msgs[0];
+
+ if (put_user(nmsgs, &tdata->cmd.nmsgs) ||
+ put_user(tmsgs, &tdata->cmd.msgs))
+ return -EFAULT;
+
+ for (i = 0; i < nmsgs; i++) {
+ if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
+ return -EFAULT;
+ if (get_user(datap, &umsgs[i].buf) ||
+ put_user(compat_ptr(datap), &tmsgs[i].buf))
+ return -EFAULT;
+ }
+ return i2cdev_ioctl(filp, cmd, (unsigned long)tdata);
+}
+
+static int compat_i2c_smbus_ioctl(struct file *filp, unsigned int cmd,
+ struct i2c_smbus_ioctl_data32 __user *udata)
+{
+ struct i2c_smbus_ioctl_data __user *tdata;
+ compat_caddr_t datap;
+
+ tdata = compat_alloc_user_space(sizeof(*tdata));
+ if (tdata == NULL)
+ return -ENOMEM;
+ if (!access_ok(VERIFY_WRITE, tdata, sizeof(*tdata)))
+ return -EFAULT;
+
+ if (!access_ok(VERIFY_READ, udata, sizeof(*udata)))
+ return -EFAULT;
+
+ if (__copy_in_user(&tdata->read_write, &udata->read_write, 2 * sizeof(u8)))
+ return -EFAULT;
+ if (__copy_in_user(&tdata->size, &udata->size, 2 * sizeof(u32)))
+ return -EFAULT;
+ if (__get_user(datap, &udata->data) ||
+ __put_user(compat_ptr(datap), &tdata->data))
+ return -EFAULT;
+
+ return i2cdev_ioctl(filp, cmd, (unsigned long)tdata);
+}
+
+static int compat_i2c_funcs(struct file *filp, unsigned int cmd,
+ compat_ulong_t __user *argp)
+{
+ struct i2c_client *client = filp->private_data;
+ compat_ulong_t funcs;
+ funcs = i2c_get_functionality(client->adapter);
+ return put_user(funcs, argp);
+}
+
+static long i2cdev_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
+{
+ void __user *argp = compat_ptr(arg);
+
+ switch (cmd) {
+ case I2C_FUNCS:
+ return compat_i2c_funcs(filp, cmd, argp);
+ case I2C_RDWR:
+ return compat_i2c_rdwr_ioctl(filp, cmd, argp);
+ case I2C_SMBUS:
+ return compat_i2c_smbus_ioctl(filp, cmd, argp);
+ }
+
+ return i2cdev_ioctl(filp, cmd, arg);
+}
+#endif /* CONFIG_COMPAT */
+
static int i2cdev_open(struct inode *inode, struct file *file)
{
unsigned int minor = iminor(inode);
@@ -501,6 +615,9 @@ static const struct file_operations i2cdev_fops = {
.read = i2cdev_read,
.write = i2cdev_write,
.unlocked_ioctl = i2cdev_ioctl,
+#ifdef CONFIG_COMPAT
+ .compat_ioctl = i2cdev_compat_ioctl,
+#endif
.open = i2cdev_open,
.release = i2cdev_release,
};
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index a762fb1..b419459 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -117,21 +117,6 @@
#include <asm/fbio.h>
#endif
-static int w_long(unsigned int fd, unsigned int cmd,
- compat_ulong_t __user *argp)
-{
- mm_segment_t old_fs = get_fs();
- int err;
- unsigned long val;
-
- set_fs (KERNEL_DS);
- err = sys_ioctl(fd, cmd, (unsigned long)&val);
- set_fs (old_fs);
- if (!err && put_user(val, argp))
- return -EFAULT;
- return err;
-}
-
struct compat_video_event {
int32_t type;
compat_time_t timestamp;
@@ -691,96 +676,6 @@ static int do_usbdevfs_discsignal(unsigned int fd, unsigned int cmd,
return err;
}
-/*
- * I2C layer ioctls
- */
-
-struct i2c_msg32 {
- u16 addr;
- u16 flags;
- u16 len;
- compat_caddr_t buf;
-};
-
-struct i2c_rdwr_ioctl_data32 {
- compat_caddr_t msgs; /* struct i2c_msg __user *msgs */
- u32 nmsgs;
-};
-
-struct i2c_smbus_ioctl_data32 {
- u8 read_write;
- u8 command;
- u32 size;
- compat_caddr_t data; /* union i2c_smbus_data *data */
-};
-
-struct i2c_rdwr_aligned {
- struct i2c_rdwr_ioctl_data cmd;
- struct i2c_msg msgs[0];
-};
-
-static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
- struct i2c_rdwr_ioctl_data32 __user *udata)
-{
- struct i2c_rdwr_aligned __user *tdata;
- struct i2c_msg __user *tmsgs;
- struct i2c_msg32 __user *umsgs;
- compat_caddr_t datap;
- int nmsgs, i;
-
- if (get_user(nmsgs, &udata->nmsgs))
- return -EFAULT;
- if (nmsgs > I2C_RDRW_IOCTL_MAX_MSGS)
- return -EINVAL;
-
- if (get_user(datap, &udata->msgs))
- return -EFAULT;
- umsgs = compat_ptr(datap);
-
- tdata = compat_alloc_user_space(sizeof(*tdata) +
- nmsgs * sizeof(struct i2c_msg));
- tmsgs = &tdata->msgs[0];
-
- if (put_user(nmsgs, &tdata->cmd.nmsgs) ||
- put_user(tmsgs, &tdata->cmd.msgs))
- return -EFAULT;
-
- for (i = 0; i < nmsgs; i++) {
- if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
- return -EFAULT;
- if (get_user(datap, &umsgs[i].buf) ||
- put_user(compat_ptr(datap), &tmsgs[i].buf))
- return -EFAULT;
- }
- return sys_ioctl(fd, cmd, (unsigned long)tdata);
-}
-
-static int do_i2c_smbus_ioctl(unsigned int fd, unsigned int cmd,
- struct i2c_smbus_ioctl_data32 __user *udata)
-{
- struct i2c_smbus_ioctl_data __user *tdata;
- compat_caddr_t datap;
-
- tdata = compat_alloc_user_space(sizeof(*tdata));
- if (tdata == NULL)
- return -ENOMEM;
- if (!access_ok(VERIFY_WRITE, tdata, sizeof(*tdata)))
- return -EFAULT;
-
- if (!access_ok(VERIFY_READ, udata, sizeof(*udata)))
- return -EFAULT;
-
- if (__copy_in_user(&tdata->read_write, &udata->read_write, 2 * sizeof(u8)))
- return -EFAULT;
- if (__copy_in_user(&tdata->size, &udata->size, 2 * sizeof(u32)))
- return -EFAULT;
- if (__get_user(datap, &udata->data) ||
- __put_user(compat_ptr(datap), &tdata->data))
- return -EFAULT;
-
- return sys_ioctl(fd, cmd, (unsigned long)tdata);
-}
-
#define RTC_IRQP_READ32 _IOR('p', 0x0b, compat_ulong_t)
#define RTC_IRQP_SET32 _IOW('p', 0x0c, compat_ulong_t)
#define RTC_EPOCH_READ32 _IOR('p', 0x0d, compat_ulong_t)
@@ -1341,13 +1236,6 @@ COMPATIBLE_IOCTL(USBDEVFS_SUBMITURB32)
COMPATIBLE_IOCTL(USBDEVFS_REAPURB32)
COMPATIBLE_IOCTL(USBDEVFS_REAPURBNDELAY32)
COMPATIBLE_IOCTL(USBDEVFS_CLEAR_HALT)
-/* i2c */
-COMPATIBLE_IOCTL(I2C_SLAVE)
-COMPATIBLE_IOCTL(I2C_SLAVE_FORCE)
-COMPATIBLE_IOCTL(I2C_TENBIT)
-COMPATIBLE_IOCTL(I2C_PEC)
-COMPATIBLE_IOCTL(I2C_RETRIES)
-COMPATIBLE_IOCTL(I2C_TIMEOUT)
/* hiddev */
COMPATIBLE_IOCTL(HIDIOCGVERSION)
COMPATIBLE_IOCTL(HIDIOCAPPLICATION)
@@ -1533,13 +1421,6 @@ static long do_ioctl_trans(int fd, unsigned int cmd,
return do_usbdevfs_bulk(fd, cmd, argp);
case USBDEVFS_DISCSIGNAL32:
return do_usbdevfs_discsignal(fd, cmd, argp);
- /* i2c */
- case I2C_FUNCS:
- return w_long(fd, cmd, argp);
- case I2C_RDWR:
- return do_i2c_rdwr_ioctl(fd, cmd, argp);
- case I2C_SMBUS:
- return do_i2c_smbus_ioctl(fd, cmd, argp);
/* Not implemented in the native kernel */
case RTC_IRQP_READ32:
case RTC_IRQP_SET32:
--
1.6.3.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers
2009-11-16 0:26 [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Arnd Bergmann
2009-11-16 0:27 ` [PATCH 07/12] i2cdev: move compat_ioctl handling into driver Arnd Bergmann
@ 2009-11-16 0:57 ` Neil Brown
2009-11-16 1:02 ` Arnd Bergmann
1 sibling, 1 reply; 7+ messages in thread
From: Neil Brown @ 2009-11-16 0:57 UTC (permalink / raw)
Cc: linux-usb, user-mode-linux-user, H. Peter Anvin, Paul Clements,
Wolfram Sang, Andre Noll, Pavel Machek, linux-i2c, Jens Axboe,
Jan Blunck, Ian Kent, Nick Piggin, user-mode-linux-devel,
linux-scsi, Kay Sievers, Alon Bar-Lev, Alan Stern,
KOSAKI Motohiro, Doug Gilbert, David Vrabel, Alexey Dobriyan,
Arnd Bergmann, Jeff Dike, Oliver Neukum, linux-raid
On Mon, 16 Nov 2009 00:26:55 +0000
Arnd Bergmann <arnd@arndb.de> wrote:
> This is the second series of patches on compat_ioctl handling,
> moving compat handlers into more drivers. Most of these
> patches consist on a part that adds a compat_ioctl method
> in one driver and another part removing the respective
> section from fs/compat_ioctl.c. The fs/compat_ioctl.c
> portion depends on other patches[1], but the driver code can
> be applied independently.
>
> If some of you feel responsible for the code I patched, please
> look at my changes and if they are ok, either take them into
> your tree or give me an Acked-by for them.
I would take the md ones into my tree, but I suspect that if
everyone did that we would end up with lots of conflicts in
fs/compat_ioctl.c.
So how about I just take the changes to md.c, and give you an:
Acked-by: NeilBrown <neilb@suse.de>
for the changes to fs/compat_ioctl.c
??
NeilBrown
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers
2009-11-16 0:57 ` [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Neil Brown
@ 2009-11-16 1:02 ` Arnd Bergmann
0 siblings, 0 replies; 7+ messages in thread
From: Arnd Bergmann @ 2009-11-16 1:02 UTC (permalink / raw)
To: Neil Brown
Cc: linux-usb, user-mode-linux-user, H. Peter Anvin, Paul Clements,
Wolfram Sang, Andre Noll, Pavel Machek, linux-i2c, Jens Axboe,
Jan Blunck, Ian Kent, Nick Piggin, linux-scsi, Kay Sievers,
Alon Bar-Lev, Alan Stern, KOSAKI Motohiro, Doug Gilbert,
David Vrabel, Alexey Dobriyan, user-mode-linux-devel, Jeff Dike,
Oliver Neukum, linux-raid, Tejun Heo
On Monday 16 November 2009, Neil Brown wrote:
> I would take the md ones into my tree, but I suspect that if
> everyone did that we would end up with lots of conflicts in
> fs/compat_ioctl.c.
>
> So how about I just take the changes to md.c, and give you an:
>
> Acked-by: NeilBrown <neilb@suse.de>
>
> for the changes to fs/compat_ioctl.c
> ??
Yes, that is exactly what I was trying to suggest. Thanks,
Arnd <><
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 07/12] i2cdev: move compat_ioctl handling into driver
[not found] ` <1258331227-1694-8-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
@ 2009-12-14 14:23 ` Jean Delvare
[not found] ` <20091214152307.5ba3ea4d-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Jean Delvare @ 2009-12-14 14:23 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
Ben Dooks (embedded platforms), Wolfram Sang,
linux-i2c-u79uwXL29TY76Z2rM5mHXA
Hi Arnd,
On Mon, 16 Nov 2009 00:27:02 +0000, Arnd Bergmann wrote:
> Doing all the compat_ioctl handling in the i2c driver itself
> removes special cases from fs/compat_ioctl.c and makes it possible
> to optimize this case better.
>
> Signed-off-by: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
> Cc: "Jean Delvare (PC drivers, core)" <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
> Cc: "Ben Dooks (embedded platforms)" <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
> Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> ---
> drivers/i2c/i2c-dev.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++
> fs/compat_ioctl.c | 119 -------------------------------------------------
> 2 files changed, 117 insertions(+), 119 deletions(-)
This patch no longer applies so I can't test it. I do not have any
objection about it though.
I'm also not sure what I am supposed to comment on. As far as I can
see, most of this patch is merely moving code from one file to another,
so there's little point in reviewing that code. Is there any part in
particular which needs my attention?
If you want to test your patch yourself, it is fairly easy using the
i2c-stub driver, which is a software-only i2c bus driver. Install the
i2c-tools package on your system, and then:
# modprobe i2c-stub chip_addr=0x6d
# modprobe i2c-dev
# i2cdetect -l
# i2cbus=$(i2cdetect -l | grep stub | cut -f1 | cut -d- -f2)
# i2cdetect -F $i2cbus
Functionalities implemented by /dev/i2c-x:
I2C no
SMBus Quick Command yes
SMBus Send Byte yes
SMBus Receive Byte yes
SMBus Write Byte yes
SMBus Read Byte yes
SMBus Write Word yes
SMBus Read Word yes
SMBus Process Call no
SMBus Block Write no
SMBus Block Read no
SMBus Block Process Call no
SMBus PEC no
I2C Block Write no
I2C Block Read no
# i2cset -y $i2cbus 0x6d 0x00 0x42 b
Value 0x42 written, readback matched
# i2cget -y $i2cbus 0x6d 0x00 b
0x42
#
The last 3 commands will generate i2c-dev ioctls.
--
Jean Delvare
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 07/12] i2cdev: move compat_ioctl handling into driver
[not found] ` <20091214152307.5ba3ea4d-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
@ 2009-12-14 15:31 ` Arnd Bergmann
2010-06-03 12:31 ` Jean Delvare
0 siblings, 1 reply; 7+ messages in thread
From: Arnd Bergmann @ 2009-12-14 15:31 UTC (permalink / raw)
To: Jean Delvare
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
Ben Dooks (embedded platforms), Wolfram Sang,
linux-i2c-u79uwXL29TY76Z2rM5mHXA
On Monday 14 December 2009, Jean Delvare wrote:
> This patch no longer applies so I can't test it. I do not have any
> objection about it though.
The patch is part of a longer series of patches moving code out
of fs/compat_ioctl.c. If you want to test it, you can just apply the
half adding it to i2c-dev.c and that version will be used.
That part has gained a trivial conflict against an #include cleanup.
> I'm also not sure what I am supposed to comment on. As far as I can
> see, most of this patch is merely moving code from one file to another,
> so there's little point in reviewing that code. Is there any part in
> particular which needs my attention?
No, nothing particular. I was just running the whole series by the
maintainers (or the closest approximation of that) in order to
collect Acked-by and/or have people include the patches in their
trees, especially the ones that I didn't have a test case for.
The patches I got an Ack for were merged now, and I'll repost
the rest after -rc1 to prepare them for the next merge window.
A good way to avoid conflicts would be if you take the i2c-dev.c
parts into a tree of yours and let me follow up with removing the
code from fs/compat_ioctl.c once your tree is merged.
If everyone does that, I can just remove half of fs/compat_ioctl.c
at once.
> If you want to test your patch yourself, it is fairly easy using the
> i2c-stub driver, which is a software-only i2c bus driver. Install the
> i2c-tools package on your system, and then:
>
> # modprobe i2c-stub chip_addr=0x6d
> # modprobe i2c-dev
> # i2cdetect -l
> # i2cbus=$(i2cdetect -l | grep stub | cut -f1 | cut -d- -f2)
> # i2cdetect -F $i2cbus
> Functionalities implemented by /dev/i2c-x:
> I2C no
> SMBus Quick Command yes
> SMBus Send Byte yes
> SMBus Receive Byte yes
> SMBus Write Byte yes
> SMBus Read Byte yes
> SMBus Write Word yes
> SMBus Read Word yes
> SMBus Process Call no
> SMBus Block Write no
> SMBus Block Read no
> SMBus Block Process Call no
> SMBus PEC no
> I2C Block Write no
> I2C Block Read no
> # i2cset -y $i2cbus 0x6d 0x00 0x42 b
> Value 0x42 written, readback matched
> # i2cget -y $i2cbus 0x6d 0x00 b
> 0x42
> #
>
> The last 3 commands will generate i2c-dev ioctls.
Ok, I'll try that, thanks!
Arnd <><
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 07/12] i2cdev: move compat_ioctl handling into driver
2009-12-14 15:31 ` Arnd Bergmann
@ 2010-06-03 12:31 ` Jean Delvare
0 siblings, 0 replies; 7+ messages in thread
From: Jean Delvare @ 2010-06-03 12:31 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-kernel, Ben Dooks (embedded platforms), Wolfram Sang,
linux-i2c
Hi Arnd,
On Mon, 14 Dec 2009 16:31:45 +0100, Arnd Bergmann wrote:
> On Monday 14 December 2009, Jean Delvare wrote:
> > This patch no longer applies so I can't test it. I do not have any
> > objection about it though.
>
> The patch is part of a longer series of patches moving code out
> of fs/compat_ioctl.c. If you want to test it, you can just apply the
> half adding it to i2c-dev.c and that version will be used.
>
> That part has gained a trivial conflict against an #include cleanup.
It was long ago, there are even more conflicts now.
> > I'm also not sure what I am supposed to comment on. As far as I can
> > see, most of this patch is merely moving code from one file to another,
> > so there's little point in reviewing that code. Is there any part in
> > particular which needs my attention?
>
> No, nothing particular. I was just running the whole series by the
> maintainers (or the closest approximation of that) in order to
> collect Acked-by and/or have people include the patches in their
> trees, especially the ones that I didn't have a test case for.
> The patches I got an Ack for were merged now, and I'll repost
> the rest after -rc1 to prepare them for the next merge window.
>
> A good way to avoid conflicts would be if you take the i2c-dev.c
> parts into a tree of yours and let me follow up with removing the
> code from fs/compat_ioctl.c once your tree is merged.
>
> If everyone does that, I can just remove half of fs/compat_ioctl.c
> at once.
>
> > If you want to test your patch yourself, it is fairly easy using the
> > i2c-stub driver, which is a software-only i2c bus driver. Install the
> > i2c-tools package on your system, and then:
> >
> > # modprobe i2c-stub chip_addr=0x6d
> > # modprobe i2c-dev
> > # i2cdetect -l
> > # i2cbus=$(i2cdetect -l | grep stub | cut -f1 | cut -d- -f2)
> > # i2cdetect -F $i2cbus
> > Functionalities implemented by /dev/i2c-x:
> > I2C no
> > SMBus Quick Command yes
> > SMBus Send Byte yes
> > SMBus Receive Byte yes
> > SMBus Write Byte yes
> > SMBus Read Byte yes
> > SMBus Write Word yes
> > SMBus Read Word yes
> > SMBus Process Call no
> > SMBus Block Write no
> > SMBus Block Read no
> > SMBus Block Process Call no
> > SMBus PEC no
> > I2C Block Write no
> > I2C Block Read no
> > # i2cset -y $i2cbus 0x6d 0x00 0x42 b
> > Value 0x42 written, readback matched
> > # i2cget -y $i2cbus 0x6d 0x00 b
> > 0x42
> > #
> >
> > The last 3 commands will generate i2c-dev ioctls.
>
> Ok, I'll try that, thanks!
Were you able to perform your tests? What's the status of your patch? I
can't do much without a patch which at least applies and builds.
--
Jean Delvare
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-06-03 12:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-16 0:26 [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Arnd Bergmann
2009-11-16 0:27 ` [PATCH 07/12] i2cdev: move compat_ioctl handling into driver Arnd Bergmann
[not found] ` <1258331227-1694-8-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2009-12-14 14:23 ` Jean Delvare
[not found] ` <20091214152307.5ba3ea4d-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-12-14 15:31 ` Arnd Bergmann
2010-06-03 12:31 ` Jean Delvare
2009-11-16 0:57 ` [uml-user] [PATCH 00/12] move compat_ioctl handling into drivers Neil Brown
2009-11-16 1:02 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox