[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 2 Feb 2011 10:37:14 +0100
From: Arnd Bergmann <arnd@...db.de>
To: Grant Likely <grant.likely@...retlab.ca>
Cc: Bernhard Walle <walle@...science.de>,
dbrownell@...rs.sourceforge.net,
spi-devel-general@...ts.sourceforge.net,
linux-kernel@...r.kernel.org, akpm@...ux-foundation.org
Subject: Re: [PATCH] spi: spidev: Add 32 bit compat ioctl()
On Wednesday 02 February 2011, Grant Likely wrote:
> On Tue, Feb 01, 2011 at 10:02:46AM +0100, Bernhard Walle 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@...science.de>
>
> Arnd, can you please give your opinion on this one? I haven't fully
> got my head around the subtleties of 32/64 bit file_operations.
The patch is correct on everything except s390, which does not have SPI.
The only thing that is missing for s390 is a pointer conversion of the ioctl
argument, like:
static long
compat_spidev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
return spidev_ioctl(filp, cmd, (unsigned long)compat_ptr(arg));
}
Some years ago, I proposed adding a common
#ifdef CONFIG_COMPAT
long generic_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
if (!file->unlocked_ioctl)
return -ENOTTY;
return filp->f_ops->unlocked_ioctl(filp, cmd, (unsigned long)compat_ptr(arg));
}
#else
#define generic_compat_ioctl NULL
#endif
for this purpose, but it never made it in. Maybe I should try again.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists