|
@@ -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,16 @@ 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));
|
|
|
+}
|
|
|
+#else
|
|
|
+#define spidev_compat_ioctl NULL
|
|
|
+#endif /* CONFIG_COMPAT */
|
|
|
+
|
|
|
static int spidev_open(struct inode *inode, struct file *filp)
|
|
|
{
|
|
|
struct spidev_data *spidev;
|
|
@@ -543,6 +554,7 @@ static const struct file_operations spidev_fops = {
|
|
|
.write = spidev_write,
|
|
|
.read = spidev_read,
|
|
|
.unlocked_ioctl = spidev_ioctl,
|
|
|
+ .compat_ioctl = spidev_compat_ioctl,
|
|
|
.open = spidev_open,
|
|
|
.release = spidev_release,
|
|
|
.llseek = no_llseek,
|