diff options
-rw-r--r-- | drivers/char/ppdev.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index c03d998731ea..9e98d0153148 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c | |||
@@ -69,6 +69,7 @@ | |||
69 | #include <linux/ppdev.h> | 69 | #include <linux/ppdev.h> |
70 | #include <linux/mutex.h> | 70 | #include <linux/mutex.h> |
71 | #include <linux/uaccess.h> | 71 | #include <linux/uaccess.h> |
72 | #include <linux/compat.h> | ||
72 | 73 | ||
73 | #define PP_VERSION "ppdev: user-space parallel port driver" | 74 | #define PP_VERSION "ppdev: user-space parallel port driver" |
74 | #define CHRDEV "ppdev" | 75 | #define CHRDEV "ppdev" |
@@ -670,6 +671,14 @@ static long pp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
670 | return ret; | 671 | return ret; |
671 | } | 672 | } |
672 | 673 | ||
674 | #ifdef CONFIG_COMPAT | ||
675 | static long pp_compat_ioctl(struct file *file, unsigned int cmd, | ||
676 | unsigned long arg) | ||
677 | { | ||
678 | return pp_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); | ||
679 | } | ||
680 | #endif | ||
681 | |||
673 | static int pp_open (struct inode * inode, struct file * file) | 682 | static int pp_open (struct inode * inode, struct file * file) |
674 | { | 683 | { |
675 | unsigned int minor = iminor(inode); | 684 | unsigned int minor = iminor(inode); |
@@ -779,6 +788,9 @@ static const struct file_operations pp_fops = { | |||
779 | .write = pp_write, | 788 | .write = pp_write, |
780 | .poll = pp_poll, | 789 | .poll = pp_poll, |
781 | .unlocked_ioctl = pp_ioctl, | 790 | .unlocked_ioctl = pp_ioctl, |
791 | #ifdef CONFIG_COMPAT | ||
792 | .compat_ioctl = pp_compat_ioctl, | ||
793 | #endif | ||
782 | .open = pp_open, | 794 | .open = pp_open, |
783 | .release = pp_release, | 795 | .release = pp_release, |
784 | }; | 796 | }; |