Liang Li
384e301e35
pch_uart: fix a deadlock when pch_uart as console
...
When we use pch_uart as system console like 'console=ttyPCH0,115200',
then 'send break' to it. We'll encounter the deadlock on a cpu/core,
with interrupts disabled on the core. When we happen to have all irqs
affinity to cpu0 then the deadlock on cpu0 actually deadlock whole
system.
In pch_uart_interrupt, we have spin_lock_irqsave(&priv->lock, flags)
then call pch_uart_err_ir when break is received. Then the call to
dev_err would actually call to pch_console_write then we'll run into
another spin_lock(&priv->lock), with interrupts disabled.
So in the call sequence lead by pch_uart_interrupt, we should be
carefully to call functions that will 'print message to console' only
in case the uart port is not being used as serial console.
Signed-off-by: Liang Li <liang.li@windriver.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2013-01-20 16:03:20 -08:00
..
2013-01-04 23:10:29 +01:00
2013-01-03 15:57:02 -08:00
2013-01-03 15:57:03 -08:00
2013-01-03 15:57:04 -08:00
2013-01-03 15:57:16 -08:00
2013-01-06 00:36:17 +01:00
2013-01-08 07:31:49 -08:00
2013-01-03 15:57:15 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:16 -08:00
2013-01-03 15:57:16 -08:00
2013-01-18 16:15:27 -08:00
2013-01-08 18:53:56 -08:00
2013-01-03 15:57:15 -08:00
2013-01-03 15:57:16 -08:00
2013-01-03 13:11:19 +01:00
2013-01-03 13:11:06 +01:00
2013-01-03 15:57:02 -08:00
2013-01-03 15:57:16 -08:00
2013-01-08 18:53:56 -08:00
2013-01-09 08:43:56 -08:00
2012-11-27 06:44:10 -08:00
2012-12-13 12:00:02 -08:00
2013-01-03 15:57:16 -08:00
2013-01-03 15:57:16 -08:00
2013-01-08 16:08:10 -08:00
2013-01-03 15:57:16 -08:00
2013-01-03 15:57:16 -08:00
2012-11-21 12:46:40 -08:00
2013-01-03 15:57:16 -08:00
2012-11-28 11:41:36 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:03 -08:00
2013-01-03 13:11:05 +01:00
2013-01-03 15:57:03 -08:00
2013-01-03 15:57:15 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:14 -08:00
2013-01-18 16:15:27 -08:00
2012-12-14 14:42:53 -08:00
2013-01-18 16:15:27 -08:00
2013-01-02 17:58:41 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:14 -08:00
2012-12-21 17:08:06 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:14 -08:00
2013-01-03 15:57:14 -08:00
2013-01-03 15:57:14 -08:00
2013-01-18 16:15:27 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:03 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:16 -08:00
2012-12-19 10:58:53 +00:00
2013-01-03 15:57:16 -08:00
2013-01-03 15:57:03 -08:00
2012-12-26 10:43:06 -07:00
2012-12-12 11:45:16 -08:00
2013-01-08 18:53:56 -08:00
2013-01-03 15:57:03 -08:00
2013-01-03 13:10:53 +01:00
2013-01-08 18:53:56 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:16 -08:00
2012-12-12 18:07:07 -08:00
2012-12-19 08:19:07 -08:00
2012-12-11 13:13:55 -08:00
2013-01-03 15:57:04 -08:00
2013-01-03 15:57:16 -08:00
2013-01-03 15:57:16 -08:00
2013-01-04 16:11:48 -08:00
2013-01-18 16:15:27 -08:00
2013-01-03 15:57:03 -08:00
2013-01-03 15:57:01 -08:00
2013-01-03 15:57:16 -08:00
2013-01-03 15:57:16 -08:00
2012-12-19 15:11:41 +00:00
2013-01-08 07:31:49 -08:00
2013-01-18 16:15:27 -08:00
2012-12-15 14:25:10 -08:00
2013-01-03 15:57:02 -08:00
2013-01-20 16:03:20 -08:00
2012-12-12 12:05:15 -08:00
2013-01-18 16:15:27 -08:00
2012-11-26 15:58:43 -08:00
2012-12-07 13:43:51 -07:00
2012-12-15 14:25:10 -08:00
2013-01-08 18:53:56 -08:00
2012-12-18 09:58:09 -08:00
2013-01-03 15:57:01 -08:00
2013-01-03 15:57:01 -08:00
2013-01-03 15:57:01 -08:00
2013-01-02 12:07:05 +01:00
2013-01-03 15:57:01 -08:00
2013-01-03 15:57:01 -08:00