Hi!
From: Al Viro viro@zeniv.linux.org.uk
[ Upstream commit 27230e51349fde075598c1b59d15e1ff802f3f6e ]
compat_ptr() for pointer-taking ones...
Signed-off-by: Al Viro viro@zeniv.linux.org.uk Signed-off-by: Sasha Levin sashal@kernel.org
+++ b/drivers/tty/synclink_gt.c @@ -1186,14 +1186,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;
@@ -1213,18 +1212,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);
break;rc = ioctl(tty, cmd, (unsigned long)compat_ptr(arg));
- default:
}rc = ioctl(tty, cmd, arg);
Ok, so this used to only pass select calls to ioctl() and now it passes everything thanks to default: marking. I guess that's suitable for mainline, but is it also suitable for -stable?
Best regards, Pavel