Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f621b843 authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman
Browse files

USB: funsoft: Fix termios



Funsoft has a bogus ioctl handler doing bogus termios handling in a bogus
manner. Fortunately we can simply delete all the bogus bits and get the
right default behaviour !

Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent d9c56362
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -24,26 +24,6 @@ static struct usb_device_id id_table [] = {
};
MODULE_DEVICE_TABLE(usb, id_table);

static int funsoft_ioctl(struct usb_serial_port *port, struct file *file,
			 unsigned int cmd, unsigned long arg)
{
	struct ktermios t;

	dbg("%s - port %d, cmd 0x%04x", __FUNCTION__, port->number, cmd);

	if (cmd == TCSETSF) {
		if (user_termios_to_kernel_termios(&t, (struct termios __user *)arg))
			return -EFAULT;

		dbg("%s - iflag:%x oflag:%x cflag:%x lflag:%x", __FUNCTION__,
		    t.c_iflag, t.c_oflag, t.c_cflag, t.c_lflag);

		if (!(t.c_lflag & ICANON))
			return -EINVAL;
	}
	return -ENOIOCTLCMD;
}

static struct usb_driver funsoft_driver = {
	.name =		"funsoft",
	.probe =	usb_serial_probe,
@@ -63,7 +43,6 @@ static struct usb_serial_driver funsoft_device = {
	.num_bulk_in =		NUM_DONT_CARE,
	.num_bulk_out =		NUM_DONT_CARE,
	.num_ports =		1,
	.ioctl =		funsoft_ioctl,
};

static int __init funsoft_init(void)