From: Al Viro <v...@zeniv.linux.org.uk>

compat_ptr() for pointer-taking ones...

Signed-off-by: Al Viro <v...@zeniv.linux.org.uk>
---
 drivers/tty/synclink_gt.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
index b8287a010336..e8a9047de451 100644
--- a/drivers/tty/synclink_gt.c
+++ b/drivers/tty/synclink_gt.c
@@ -1185,14 +1185,13 @@ static long slgt_compat_ioctl(struct tty_struct *tty,
                         unsigned int cmd, unsigned long arg)
 {
        struct slgt_info *info = tty->driver_data;
-       int rc = -ENOIOCTLCMD;
+       int rc;
 
        if (sanity_check(info, tty->name, "compat_ioctl"))
                return -ENODEV;
        DBGINFO(("%s compat_ioctl() cmd=%08X\n", info->device_name, cmd));
 
        switch (cmd) {
-
        case MGSL_IOCSPARAMS32:
                rc = set_params32(info, compat_ptr(arg));
                break;
@@ -1212,18 +1211,11 @@ static long slgt_compat_ioctl(struct tty_struct *tty,
        case MGSL_IOCWAITGPIO:
        case MGSL_IOCGXSYNC:
        case MGSL_IOCGXCTRL:
-       case MGSL_IOCSTXIDLE:
-       case MGSL_IOCTXENABLE:
-       case MGSL_IOCRXENABLE:
-       case MGSL_IOCTXABORT:
-       case TIOCMIWAIT:
-       case MGSL_IOCSIF:
-       case MGSL_IOCSXSYNC:
-       case MGSL_IOCSXCTRL:
-               rc = ioctl(tty, cmd, arg);
+               rc = ioctl(tty, cmd, (unsigned long)compat_ptr(arg));
                break;
+       default:
+               rc = ioctl(tty, cmd, arg);
        }
-
        DBGINFO(("%s compat_ioctl() cmd=%08X rc=%d\n", info->device_name, cmd, 
rc));
        return rc;
 }
-- 
2.11.0

Reply via email to