From 60b7f7488a1bd70f39dd55939364d730f63018fd Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Thu, 24 Dec 2009 12:42:08 +0100 Subject: [PATCH] --- yaml --- r: 185275 b: refs/heads/master c: 54f328d0c7221675e3c1647e1918172fec1b92c9 h: refs/heads/master i: 185273: 3dbd586aaf79e3b75e9231150c2ba97c240c0ce9 185271: a12200547f0ce0ad8686b8288df270ac0110f94d v: v3 --- [refs] | 2 +- trunk/drivers/usb/serial/ftdi_sio.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 259883afa10b..e6fc360d9353 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4357369d024c709d91864af88f02d7ac08d0f470 +refs/heads/master: 54f328d0c7221675e3c1647e1918172fec1b92c9 diff --git a/trunk/drivers/usb/serial/ftdi_sio.c b/trunk/drivers/usb/serial/ftdi_sio.c index ec901ed5d93c..59b6cbf020a0 100644 --- a/trunk/drivers/usb/serial/ftdi_sio.c +++ b/trunk/drivers/usb/serial/ftdi_sio.c @@ -1181,22 +1181,28 @@ static int read_latency_timer(struct usb_serial_port *port) { struct ftdi_private *priv = usb_get_serial_port_data(port); struct usb_device *udev = port->serial->dev; - unsigned short latency = 0; + unsigned char *buf; int rv = 0; dbg("%s", __func__); + buf = kmalloc(1, GFP_KERNEL); + if (!buf) + return -ENOMEM; + rv = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), FTDI_SIO_GET_LATENCY_TIMER_REQUEST, FTDI_SIO_GET_LATENCY_TIMER_REQUEST_TYPE, 0, priv->interface, - (char *) &latency, 1, WDR_TIMEOUT); - + buf, 1, WDR_TIMEOUT); if (rv < 0) dev_err(&port->dev, "Unable to read latency timer: %i\n", rv); else - priv->latency = latency; + priv->latency = buf[0]; + + kfree(buf); + return rv; }