diff options
author | Pradeep Goudagunta <pgoudagunta@nvidia.com> | 2011-08-26 16:06:11 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-08-29 17:25:37 -0700 |
commit | 9ce011627ad7255153cf78d2c7e5b09a21d16101 (patch) | |
tree | 8b1ab362e7ac9178d6d1457a9b29fe7e85b4c7f3 /drivers | |
parent | a4a6a3d58d59a8409a7059c50f038d716cacfc09 (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.c | 2 |
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) { |