On 16. 04. 19, 16:53, Fuqian Huang wrote:
> --- a/drivers/tty/rocket.c
> +++ b/drivers/tty/rocket.c
...
> -/*  IOCTL call handler into the driver */
> -static int rp_ioctl(struct tty_struct *tty,
> -                 unsigned int cmd, unsigned long arg)
> -{
> -     struct r_port *info = tty->driver_data;
> -     void __user *argp = (void __user *)arg;
> -     int ret = 0;
> -
> -     if (cmd != RCKP_GET_PORTS && rocket_paranoia_check(info, "rp_ioctl"))
> -             return -ENXIO;
> -
> -     switch (cmd) {
> -     case RCKP_GET_STRUCT:
> -             if (copy_to_user(argp, info, sizeof (struct r_port)))
> -                     ret = -EFAULT;
> -             break;

I am not sure what Greg meant, but I had only this particular ioctl on
mind when I was writing about removal. The other ones might be used _in
theory_. Even though they are not exposed to userspace either. So if
they are not source of potential issues, I would keep them:

> -     case RCKP_GET_CONFIG:
> -             ret = get_config(info, argp);
> -             break;
> -     case RCKP_SET_CONFIG:
> -             ret = set_config(tty, info, argp);
> -             break;
> -     case RCKP_GET_PORTS:
> -             ret = get_ports(info, argp);
> -             break;
> -     case RCKP_RESET_RM2:
> -             ret = reset_rm2(info, argp);
> -             break;
> -     case RCKP_GET_VERSION:
> -             ret = get_version(info, argp);
> -             break;
> -     default:
> -             ret = -ENOIOCTLCMD;
> -     }
> -     return ret;
> -}

thanks,
-- 
js
suse labs

Reply via email to