[PATCH 20/24] serial: rda: free the interrupt on shutdown

From: Greg Kroah-Hartman

Date: Tue Oct 27 2026 - 07:14:18 EST


From: Josef Bacik <josef@xxxxxxxxxxxxxx>

rda_uart_startup() requests the interrupt, and nothing ever frees it.
It is not shared, so once the port has been closed, the next startup
fails with -EBUSY and the port cannot be opened any more.

Free it in rda_uart_shutdown().

Fixes: c10b13325ced ("tty: serial: Add RDA8810PL UART driver")
Cc: stable <stable@xxxxxxxxxx>
Cc: Manivannan Sadhasivam <mani@xxxxxxxxxx>
Cc: Jiri Slaby <jirislaby@xxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: "Andreas Färber" <afaerber@xxxxxxx>
Cc: Olof Johansson <olof@xxxxxxxxx>
Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/tty/serial/rda-uart.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/tty/serial/rda-uart.c b/drivers/tty/serial/rda-uart.c
index 87fa30d68687..9c1785771cbb 100644
--- a/drivers/tty/serial/rda-uart.c
+++ b/drivers/tty/serial/rda-uart.c
@@ -471,6 +471,8 @@ static void rda_uart_shutdown(struct uart_port *port)
rda_uart_write(port, val, RDA_UART_CTRL);

uart_port_unlock_irqrestore(port, flags);
+
+ free_irq(port->irq, port);
}

static const char *rda_uart_type(struct uart_port *port)

--
2.56.0