[PATCH v2] serial: imx: fix tx statemachine deadlock
Greg KH
gregkh at linuxfoundation.org
Fri Nov 24 05:03:25 PST 2023
On Fri, Nov 24, 2023 at 09:58:19AM -0300, Fabio Estevam wrote:
> Hi Paul,
>
> On Fri, Nov 24, 2023 at 9:55 AM Paul Geurts <paul_geurts at live.nl> wrote:
> >
> > When using the serial port as RS485 port, the tx statemachine is used to
> > control the RTS pin to drive the RS485 transceiver TX_EN pin. When the
> > TTY port is closed in the middle of a transmission (for instance during
> > userland application crash), imx_uart_shutdown disables the interface
> > and disables the Transmission Complete interrupt. afer that,
> > imx_uart_stop_tx bails on an incomplete transmission, to be retriggered
> > by the TC interrupt. This interrupt is disabled and therefore the tx
> > statemachine never transitions out of SEND. The statemachine is in
> > deadlock now, and the TX_EN remains low, making the interface useless.
> >
> > imx_uart_stop_tx now checks for incomplete transmission AND whether TC
> > interrupts are enabled before bailing to be retriggered. This makes sure
> > the state machine handling is reached, and is properly set to
> > WAIT_AFTER_SEND.
> >
> > Fixes: cb1a60923609 serial: imx: implement rts delaying for rs485
>
> One nit: the correct format for the Fixes tag is:
>
> Fixes: cb1a60923609 ("serial: imx: implement rts delaying for rs485")
>
> And no blank line is needed between the Fixes and Signed-off-by line.
It's not really a "nit", our tools will complain if this is in the wrong
format as so many things depend on this being correct.
Paul, can you make a v3 with this change?
And really, this should have been v3 anyway, as the difference being you
added a changelog from v2 :)
thanks,
greg k-h
More information about the linux-arm-kernel
mailing list