Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1273463
| From | Soren Brinkmann <soren.brinkmann@xilinx.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATH RESEND v2 07/10] tty: xuartps: Acquire port lock for shutdown |
| Date | 2015-11-19 21:20 +0100 |
| Message-ID | <qwDQv-5IW-41@gated-at.bofh.it> (permalink) |
| References | <qwDGO-5Ex-27@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Shutting down the UART port can happen while console operations are in
progress. Holding the port lock serializes these operations and avoids
the UART HW to be disabled in the middle of console prints.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
---
drivers/tty/serial/xilinx_uartps.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index 5efd1b9d220f..7fd226d65496 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -823,6 +823,9 @@ static int cdns_uart_startup(struct uart_port *port)
static void cdns_uart_shutdown(struct uart_port *port)
{
int status;
+ unsigned long flags;
+
+ spin_lock_irqsave(&port->lock, flags);
/* Disable interrupts */
status = readl(port->membase + CDNS_UART_IMR_OFFSET);
@@ -832,6 +835,9 @@ static void cdns_uart_shutdown(struct uart_port *port)
/* Disable the TX and RX */
writel(CDNS_UART_CR_TX_DIS | CDNS_UART_CR_RX_DIS,
port->membase + CDNS_UART_CR_OFFSET);
+
+ spin_unlock_irqrestore(&port->lock, flags);
+
free_irq(port->irq, port);
}
--
2.6.3.3.g9bb996a
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATH RESEND v2 00/10] tty: xuartps: Fix lock ups Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Peter Hurley <peter@hurleysoftware.com> - 2015-11-20 13:20 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Sören Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-20 16:30 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Peter Hurley <peter@hurleysoftware.com> - 2015-11-20 17:40 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Sören Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-20 18:00 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Peter Hurley <peter@hurleysoftware.com> - 2015-11-20 18:20 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Sören Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-20 18:30 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Michal Simek <michal.simek@xilinx.com> - 2015-11-23 08:10 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Peter Hurley <peter@hurleysoftware.com> - 2015-11-23 21:10 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Michal Simek <michal.simek@xilinx.com> - 2015-11-24 08:50 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Sören Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-20 18:10 +0100
Re: [PATH RESEND v2 03/10] tty: xuartps: Always enable transmitter in start_tx Peter Hurley <peter@hurleysoftware.com> - 2015-11-20 18:20 +0100
[PATH RESEND v2 05/10] tty: xuartps: Improve startup function Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 08/10] tty: xuartps: Move RX path into helper function Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 06/10] tty: xuartps: Keep lock for whole ISR Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 09/10] tty: xuartps: Only handle RX IRQs when RX is enabled Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 10/10] tty: xuartps: Cleanup: Reformat if-else Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 07/10] tty: xuartps: Acquire port lock for shutdown Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 01/10] tty: xuartps: Beautify read-modify writes Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
[PATH RESEND v2 02/10] tty: xuartps: Use spinlock to serialize HW access Soren Brinkmann <soren.brinkmann@xilinx.com> - 2015-11-19 21:20 +0100
csiph-web