summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPradeep Goudagunta <pgoudagunta@nvidia.com>2011-08-26 16:06:11 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-08-29 17:25:37 -0700
commit9ce011627ad7255153cf78d2c7e5b09a21d16101 (patch)
tree8b1ab362e7ac9178d6d1457a9b29fe7e85b4c7f3 /drivers
parenta4a6a3d58d59a8409a7059c50f038d716cacfc09 (diff)
serial: tegra: Avoid schedule while atomic error
Avoid schedule while atomic error backtrace while setting termios, by giving back lock taken before calling api which internally requests mutex lock. Bug 867218 Change-Id: I43afed41856c0b23324a1a5280c7e7963600d2e3 Reviewed-on: http://git-master/r/49431 Tested-by: Pradeep Goudagunta <pgoudagunta@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/serial/tegra_hsuart.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/serial/tegra_hsuart.c b/drivers/serial/tegra_hsuart.c
index bfe25108162a..3709162e67dd 100644
--- a/drivers/serial/tegra_hsuart.c
+++ b/drivers/serial/tegra_hsuart.c
@@ -1240,7 +1240,9 @@ static void tegra_set_termios(struct uart_port *u, struct ktermios *termios,
/* Baud rate. */
baud = uart_get_baud_rate(u, termios, oldtermios, 200, 4000000);
+ spin_unlock_irqrestore(&u->lock, flags);
tegra_set_baudrate(t, baud);
+ spin_lock_irqsave(&u->lock, flags);
/* Flow control */
if (termios->c_cflag & CRTSCTS) {