ftdi-sio regression patch for jaunty

Jim Paris jim at jtan.com
Fri Jul 24 03:56:20 UTC 2009


Hi,

2.6.28 kernels (only) have a reference counting bug in ftdi_sio that
frequently renders /dev/ttyUSBn devices useless when they're closed,
fixed only by a reboot.  The bug was fixed in 2.6.29 by a9fec7102f.
Please consider applying it to your 2.6.28 kernels.

(Should fix Ubuntu bugs #376128, #397499)

-jim

commit a9fec7102f01f6464b19e13ffd9d8c48663379ad
Author: Jim Paris <jim at jtan.com>
Date:   Thu Jan 15 13:31:07 2009 +0000

    ftdi_sio: fix kref leak
    
    Commit 4a90f09b20f4622dcbff1f0e1e6bae1704f8ad8c added kref stuff to
    ftdi_sio, but missed tty_kref_put at one exit point in
    ftdi_process_read.
    
    Signed-off-by: Jim Paris <jim at jtan.com>
    Signed-off-by: Alan Cox <alan at redhat.com>
    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index ef6cfa5..c70a8f6 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -2030,7 +2030,7 @@ static void ftdi_process_read(struct work_struct *work)
 			spin_unlock_irqrestore(&priv->rx_lock, flags);
 			dbg("%s - deferring remainder until unthrottled",
 					__func__);
-			return;
+			goto out;
 		}
 		spin_unlock_irqrestore(&priv->rx_lock, flags);
 		/* if the port is closed stop trying to read */





More information about the kernel-team mailing list