diff options
| author | Doug Brown <doug@schmorgal.com> | 2024-06-06 22:56:31 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-07-05 10:33:59 +0300 |
| commit | 2ab254507c87b8ce6787caa31154e089a640dc20 (patch) | |
| tree | bd81852f0fbc668ec5a0f0eec0ace9d80c63ca70 /include | |
| parent | 6b80ccc0acc840e5085e63bd8f31dae8d82ff558 (diff) | |
| download | linux-2ab254507c87b8ce6787caa31154e089a640dc20.tar.xz | |
Revert "serial: core: only stop transmit when HW fifo is empty"
commit c5603e2a621dac10c5e21cc430848ebcfa6c7e01 upstream.
This reverts commit 7bfb915a597a301abb892f620fe5c283a9fdbd77.
This commit broke pxa and omap-serial, because it inhibited them from
calling stop_tx() if their TX FIFOs weren't completely empty. This
resulted in these two drivers hanging during transmits because the TX
interrupt would stay enabled, and a new TX interrupt would never fire.
Cc: stable@vger.kernel.org
Fixes: 7bfb915a597a ("serial: core: only stop transmit when HW fifo is empty")
Signed-off-by: Doug Brown <doug@schmorgal.com>
Link: https://lore.kernel.org/r/20240606195632.173255-2-doug@schmorgal.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/serial_core.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 5da5eb719f61..5a826b308e3a 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -787,8 +787,7 @@ enum UART_TX_FLAGS { if (pending < WAKEUP_CHARS) { \ uart_write_wakeup(__port); \ \ - if (!((flags) & UART_TX_NOSTOP) && pending == 0 && \ - __port->ops->tx_empty(__port)) \ + if (!((flags) & UART_TX_NOSTOP) && pending == 0) \ __port->ops->stop_tx(__port); \ } \ \ |
