To use this driver with 32 bit userspace applications on 64 bit
kernels a compat_ioctl is needed.

Signed-off-by: Lars Poeschel <poesc...@lemonage.de>
---
 drivers/tty/n_gsm.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 2afe5fce68e3..0a3c9665e015 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -2607,6 +2607,14 @@ static int gsmld_ioctl(struct tty_struct *tty, struct 
file *file,
        }
 }
 
+#ifdef CONFIG_COMPAT
+static long gsmld_compat_ioctl(struct tty_struct *tty, struct file *file,
+                      unsigned int cmd, unsigned long arg)
+{
+       return gsmld_ioctl(tty, file, cmd, arg);
+}
+#endif
+
 /*
  *     Network interface
  *
@@ -2818,6 +2826,9 @@ static struct tty_ldisc_ops tty_ldisc_packet = {
        .flush_buffer    = gsmld_flush_buffer,
        .read            = gsmld_read,
        .write           = gsmld_write,
+#ifdef CONFIG_COMPAT
+       .compat_ioctl    = gsmld_compat_ioctl,
+#endif
        .ioctl           = gsmld_ioctl,
        .poll            = gsmld_poll,
        .receive_buf     = gsmld_receive_buf,
-- 
2.13.2

Reply via email to