lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1191654445-17135-1-git-send-email-bernie@codewiz.org>
Date:	Sat,  6 Oct 2007 03:07:25 -0400
From:	Bernardo Innocenti <bernie@...ewiz.org>
To:	Greg Kroah-Hartman <gregkh@...e.de>
Cc:	Richard Smith <richard@...top.org>,
	Andres Salomon <dilinger@...top.org>,
	linux-usb-devel@...ts.sourceforge.net,
	linux-kernel@...r.kernel.org, Francesco Sacchi <batt@...eler.com>,
	Bernardo Innocenti <bernie@...ewiz.org>
Subject: [PATCH] ftdi_sio: fix FT232RL support for TIOCMGET

From: Francesco Sacchi <batt@...eler.com>

Reading serial port status lines was broken on the FT232RL since when it
has been detected as a separate chip (2.6.22+).  Previously, it would work
because it was just handled as an FT232BM.

Additionally, we were also forgetting to remove the dev_attr_latency_timer
sysfs file in the FT232RL case.

Note by Bernardo Innocenti: the ftdi_sio maintainer appears to have stepped
down, so I'm sending this to Greg Kroah-Hartman as the generic USB serial
maintainer.  Please, let me know if this is not appropriate.

Signed-Off-By: Francesco Sacchi <batt@...eler.com>
Signed-Off-By: Bernardo Innocenti <bernie@...ewiz.org>

---
 drivers/usb/serial/ftdi_sio.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 2d04585..940b0c4 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -892,7 +892,7 @@ static __u32 get_ftdi_divisor(struct usb_serial_port * port)
 		break;
 	case FT232BM: /* FT232BM chip */
 	case FT2232C: /* FT2232C chip */
-	case FT232RL:
+	case FT232RL: /* FT232RL chip */
 		if (baud <= 3000000) {
 			div_value = ftdi_232bm_baud_to_divisor(baud);
 		} else {
@@ -1169,7 +1169,9 @@ static void remove_sysfs_attrs(struct usb_serial_port *port)
 	/* XXX see create_sysfs_attrs */
 	if (priv->chip_type != SIO) {
 		device_remove_file(&port->dev, &dev_attr_event_char);
-		if (priv->chip_type == FT232BM || priv->chip_type == FT2232C) {
+		if (priv->chip_type == FT232BM ||
+		    priv->chip_type == FT2232C ||
+		    priv->chip_type == FT232RL) {
 			device_remove_file(&port->dev, &dev_attr_latency_timer);
 		}
 	}
@@ -2102,6 +2104,7 @@ static int ftdi_tiocmget (struct usb_serial_port *port, struct file *file)
 	case FT8U232AM:
 	case FT232BM:
 	case FT2232C:
+	case FT232RL:
 		/* the 8U232AM returns a two byte value (the sio is a 1 byte value) - in the same
 		   format as the data returned from the in point */
 		if ((ret = usb_control_msg(port->serial->dev,
-- 
1.5.2.3

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ