Messages in this thread Patch in this message | | | From | Grant Likely <> | Date | Wed, 2 Feb 2011 07:15:12 -0700 | Subject | Re: [PATCH] spi: spidev: Add 32 bit compat ioctl() |
| |
On Wed, Feb 2, 2011 at 4:31 AM, Bernhard Walle <walle@corscience.de> wrote: > Add the compat_ioctl for operations on /dev/spi* so that 32 bit > userspace applications can access SPI. As far as I can see all data > structure are already prepared for that, so no additional conversion has > to be done. > > My use case is MIPS with N32 userspace ABI and toolchain, and that was > also the platform where I tested it successfully (Cavium Octeon). > > Signed-off-by: Bernhard Walle <walle@corscience.de> > --- > drivers/spi/spidev.c | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c > index 4e6245e..f80503b 100644 > --- a/drivers/spi/spidev.c > +++ b/drivers/spi/spidev.c > @@ -30,6 +30,7 @@ > #include <linux/errno.h> > #include <linux/mutex.h> > #include <linux/slab.h> > +#include <linux/compat.h> > > #include <linux/spi/spi.h> > #include <linux/spi/spidev.h> > @@ -471,6 +472,14 @@ spidev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) > return retval; > } > > +#ifdef CONFIG_COMPAT > +static long > +spidev_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) > +{ > + return spidev_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); > +} > +#endif /* CONFIG_COMPAT */
If you do the following... +#else /* CONFIG_COMPAT */ +#define spidev_compat_ioctl NULL +#endif /* CONFIG_COMPAT */
> + > static int spidev_open(struct inode *inode, struct file *filp) > { > struct spidev_data *spidev; > @@ -543,6 +552,9 @@ static const struct file_operations spidev_fops = { > .write = spidev_write, > .read = spidev_read, > .unlocked_ioctl = spidev_ioctl, > +#ifdef CONFIG_COMPAT > + .compat_ioctl = spidev_compat_ioctl, > +#endif
Then the #ifdef/#endif can be dropped here which is tidier.
g.
> .open = spidev_open, > .release = spidev_release, > .llseek = no_llseek, > -- > 1.7.1 > >
-- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |