mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
serial: pmac_zilog: push received data to the port that received it
pmz_interrupt() drains both channels but, since commit2e124b4a39("TTY: switch tty_flip_buffer_push"), pushes the flip buffer of the port whose handler is running rather than the port that was drained. With both ports open, data received on the other port can be left in its flip buffer until something else pushes it, so its reader may not see it. Fixes:2e124b4a39("TTY: switch tty_flip_buffer_push") Cc: stable@vger.kernel.org Assisted-by: LLM Signed-off-by: Tim Douglas <me@timdoug.com> Link: https://patch.msgid.link/20261013013541.4535-2-me@timdoug.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
97f8520427
commit
f3dc727da3
|
|
@ -444,7 +444,7 @@ static irqreturn_t pmz_interrupt(int irq, void *dev_id)
|
|||
skip_a:
|
||||
uart_port_unlock(&uap_a->port);
|
||||
if (push)
|
||||
tty_flip_buffer_push(&uap->port.state->port);
|
||||
tty_flip_buffer_push(&uap_a->port.state->port);
|
||||
|
||||
if (!uap_b)
|
||||
goto out;
|
||||
|
|
@ -469,7 +469,7 @@ static irqreturn_t pmz_interrupt(int irq, void *dev_id)
|
|||
skip_b:
|
||||
uart_port_unlock(&uap_b->port);
|
||||
if (push)
|
||||
tty_flip_buffer_push(&uap->port.state->port);
|
||||
tty_flip_buffer_push(&uap_b->port.state->port);
|
||||
|
||||
out:
|
||||
return rc;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user