提交 44a0c019 编写于 作者: J Jon Povey 提交者: Greg Kroah-Hartman

USB: g_serial: don't set low_latency flag

No longer set low_latency flag as it causes this warning backtrace:

  WARNING: at kernel/mutex.c:207 __mutex_lock_slowpath+0x6c/0x288()

Fix associated locking and wakeups.
Signed-off-by: NJon Povey <jon.povey@racelogic.co.uk>
Cc: Maulik Mankad <x0082077@ti.com>
Cc: stable <stable@kernel.org>
Acked-by: NDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 93416253
...@@ -536,17 +536,11 @@ static void gs_rx_push(unsigned long _port) ...@@ -536,17 +536,11 @@ static void gs_rx_push(unsigned long _port)
list_move(&req->list, &port->read_pool); list_move(&req->list, &port->read_pool);
} }
/* Push from tty to ldisc; this is immediate with low_latency, and /* Push from tty to ldisc; without low_latency set this is handled by
* may trigger callbacks to this driver ... so drop the spinlock. * a workqueue, so we won't get callbacks and can hold port_lock
*/ */
if (tty && do_push) { if (tty && do_push) {
spin_unlock_irq(&port->port_lock);
tty_flip_buffer_push(tty); tty_flip_buffer_push(tty);
wake_up_interruptible(&tty->read_wait);
spin_lock_irq(&port->port_lock);
/* tty may have been closed */
tty = port->port_tty;
} }
...@@ -784,11 +778,6 @@ static int gs_open(struct tty_struct *tty, struct file *file) ...@@ -784,11 +778,6 @@ static int gs_open(struct tty_struct *tty, struct file *file)
port->open_count = 1; port->open_count = 1;
port->openclose = false; port->openclose = false;
/* low_latency means ldiscs work in tasklet context, without
* needing a workqueue schedule ... easier to keep up.
*/
tty->low_latency = 1;
/* if connected, start the I/O stream */ /* if connected, start the I/O stream */
if (port->port_usb) { if (port->port_usb) {
struct gserial *gser = port->port_usb; struct gserial *gser = port->port_usb;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册