diff options
author | Dan Willemsen <dwillemsen@nvidia.com> | 2011-09-02 11:22:07 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:48:43 -0800 |
commit | 52247c9ba652ac5600aca390df6dc93fe8641ec3 (patch) | |
tree | aa59e48462d8d639b7d5717a98b3b1834e38cd57 /drivers | |
parent | 05528315dd7aa9b44b289033a21a5ba108bd9755 (diff) |
fixup 5b659f7 serial: tegra: Add check for uart state before access
This was a bad merge - this code goes in tegra_uart_set_mctrl, not
tegra_set_mctrl
Bug 870346
Change-Id: Icd7d723b55113b61968b9a5729283b20c81797f2
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Reviewed-on: http://git-master/r/50542
Reviewed-by: Pradeep Goudagunta <pgoudagunta@nvidia.com>
Tested-by: Venu Byravarasu <vbyravarasu@nvidia.com>
Rebase-Id: Rc2b15fa4d970dbb7e7e8d9fc078f70587455c5d1
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/tty/serial/tegra_hsuart.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/tty/serial/tegra_hsuart.c b/drivers/tty/serial/tegra_hsuart.c index 9b24f2d9adda..4da1957486b2 100644 --- a/drivers/tty/serial/tegra_hsuart.c +++ b/drivers/tty/serial/tegra_hsuart.c @@ -937,10 +937,6 @@ static void tegra_set_mctrl(struct uart_port *u, unsigned int mctrl) dev_dbg(u->dev, "tegra_set_mctrl called with %d\n", mctrl); t = container_of(u, struct tegra_uart_port, uport); - if (t->uart_state != TEGRA_UART_OPENED) { - dev_err(t->uport.dev, "Uart is in invalid state\n"); - return; - } mcr = t->mcr_shadow; if (mctrl & TIOCM_RTS) { @@ -1517,6 +1513,11 @@ void tegra_uart_set_mctrl(struct uart_port *uport, unsigned int mctrl) struct tegra_uart_port *t; t = container_of(uport, struct tegra_uart_port, uport); + if (t->uart_state != TEGRA_UART_OPENED) { + dev_err(t->uport.dev, "Uart is in invalid state\n"); + return; + } + spin_lock_irqsave(&uport->lock, flags); if (mctrl & TIOCM_RTS) { t->rts_active = true; |