On Sun, Oct 18, 2020 at 09:42:04AM +0100, Russell King wrote: > Commit 293f89959483 ("tty: serial: 21285: stop using the unused[] > variable from struct uart_port") introduced a bug which stops the > transmit interrupt being disabled when there are no characters to > transmit - disabling the transmit interrupt at the interrupt controller > is the only way to stop an interrupt storm. If this interrupt is not > disabled when there are no transmit characters, we end up with an > interrupt storm which prevents the machine making forward progress. > > Fixes: 293f89959483 ("tty: serial: 21285: stop using the unused[] variable from struct uart_port") > Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx> > --- > drivers/tty/serial/21285.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/tty/serial/21285.c b/drivers/tty/serial/21285.c > index 718e010fcb04..09baef4ccc39 100644 > --- a/drivers/tty/serial/21285.c > +++ b/drivers/tty/serial/21285.c > @@ -50,25 +50,25 @@ static const char serial21285_name[] = "Footbridge UART"; > > static bool is_enabled(struct uart_port *port, int bit) > { > - unsigned long private_data = (unsigned long)port->private_data; > + unsigned long *private_data = (unsigned long *)&port->private_data; > > - if (test_bit(bit, &private_data)) > + if (test_bit(bit, private_data)) > return true; > return false; > } > > static void enable(struct uart_port *port, int bit) > { > - unsigned long private_data = (unsigned long)port->private_data; > + unsigned long *private_data = (unsigned long *)&port->private_data; > > - set_bit(bit, &private_data); > + set_bit(bit, private_data); > } > > static void disable(struct uart_port *port, int bit) > { > - unsigned long private_data = (unsigned long)port->private_data; > + unsigned long *private_data = (unsigned long *)&port->private_data; > > - clear_bit(bit, &private_data); > + clear_bit(bit, private_data); > } > > #define is_tx_enabled(port) is_enabled(port, tx_enabled_bit) > -- > 2.20.1 > Sorry about this, my fault. I'll merge this after 5.10-rc1 is out, thanks for the fix. greg k-h