mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 17:24:17 +08:00
hvc_console: Do not set low_latency when using interrupts
hvc_console is setting low_latency unconditionally, but some clients are interrupt driven and will call hvc_poll from irq context. This will cause tty_flip_buffer_push to be called from irq context, and it very clearly states it must not be called from IRQ when low_latency is specified. Looking back through history: v2.6.16-rc1 via33f0f88f1c
[PATCH] TTY layer buffering revamp added this new api. v2.6.16-rc3 via8977d929e4
[PATCH] tty buffering stall fix claims to fix a stall discovered with hvc_console v2.6.16-rc5 viafb5c594c2a
[PATCH] Fix race condition in hvc console. said set this flag to avoid a stall problem, and was merged through the powerpc arch tree. Without searching for email discussions, it would appear to be an overlapping "fix", but one that did not consider all users. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
c21f7a527f
commit
da9dc13289
@ -318,7 +318,8 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
|
||||
} /* else count == 0 */
|
||||
|
||||
tty->driver_data = hp;
|
||||
tty->low_latency = 1; /* Makes flushes to ldisc synchronous. */
|
||||
if (!hp->irq_requested)
|
||||
tty->low_latency = 1; /* Makes flushes to ldisc synchronous. */
|
||||
|
||||
hp->tty = tty;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user