patch "serial: mvebu-uart: free the IRQ in ->shutdown()" added to tty-testing
This is a note to let you know that I've just added the patch titled
serial: mvebu-uart: free the IRQ in ->shutdown()
to my tty git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
in the tty-testing branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will be merged to the tty-next branch sometime soon, after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
Quoted 1 line
From
c2c1659b4f8f9e19fe82a4fd06cca4b3d59090ceMon Sep 17 00:00:00 2001
From: Thomas Petazzoni <[email protected]>
Date: Thu, 16 Jun 2016 16:48:52 +0200
Subject: serial: mvebu-uart: free the IRQ in ->shutdown()
As suggested by the serial port infrastructure documentation, the IRQ is requested in ->startup(). However, it is never freed in the ->shutdown() hook.
With simple systems that open the serial port once for all and always have at least one process that keep the serial port opened, there was no problem. But with a more complicated system (*cough* systemd *cough*), the serial port is opened/closed many times, which at some point no processes having the serial port open at all. Due to this ->startup() gets called again, tries to request_irq() again, which fails.
--- drivers/tty/serial/mvebu-uart.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/tty/serial/mvebu-uart.c +2 -0
@@ -300,6 +300,8 @@ static int mvebu_uart_startup(struct uart_port *port)static void mvebu_uart_shutdown (struct uart_port *port) {writel (0 , port->membase +UART_CTRL ); + +free_irq (port->irq, port); } static void mvebu_uart_set_termios(struct uart_port *port,
Signature · 1 line
2.9.0