From: Jason Wessel on 8 Mar 2010 10:30 Commit e1108a63e10d344284011cccc06328b2cd3e5da3 ("usb_serial: Use the shutdown() operation") breaks the ability to use a usb console starting in 2.6.32. This was observed when using console=ttyUSB0,115200 as a boot argument with an FTDI device. The error is: ftdi_sio ttyUSB0: ftdi_submit_read_urb - failed submitting read urb, error -22 The handling of the ASYNCB_INITIALIZED changed in 2.6.32 such that in tty_port_shutdown() it always clears the flag if it is set. As a work around the usb console must reset this flag, in order for the hw to stay open. CC: Greg Kroah-Hartman <gregkh(a)suse.de> CC: Alan Cox <alan(a)linux.intel.com> CC: Alan Stern <stern(a)rowland.harvard.edu> CC: Oliver Neukum <oliver(a)neukum.org> CC: Andrew Morton <akpm(a)linux-foundation.org> CC: linux-usb(a)vger.kernel.org CC: linux-kernel(a)vger.kernel.org Signed-off-by: Jason Wessel <jason.wessel(a)windriver.com> --- drivers/usb/serial/usb-serial.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c @@ -287,10 +287,13 @@ static void serial_down(struct tty_port struct usb_serial_driver *drv = port->serial->type; /* * The console is magical. Do not hang up the console hardware - * or there will be tears. + * or there will be tears. If this is a console the initialized + * flag is reset. */ - if (port->console) + if (port->console) { + set_bit(ASYNCB_INITIALIZED, &port->port.flags); return; + } if (drv->close) drv->close(port); } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: workqueue changes for 2.6.34-rc1 Next: [PATCH] fs, binfmt_aout: Fix pointer warnings |