projects
/
platform
/
kernel
/
linux-exynos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b6fce73
)
tty/serial/8250: Touch NMI watchdog in wait_for_xmitr
author
Jiri Olsa
<jolsa@kernel.org>
Wed, 21 Sep 2016 14:43:15 +0000
(16:43 +0200)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 22 Sep 2016 09:45:08 +0000
(11:45 +0200)
First loop in wait_for_xmitr could also trigger NMI
watchdog in case reading from the port is slow:
PID: 0 TASK:
ffffffff819c1460
CPU: 0 COMMAND: "swapper/0"
#0 [
ffff88019f405e58
] crash_nmi_callback at
ffffffff8104d382
#1 [
ffff88019f405e68
] nmi_handle at
ffffffff8168ead9
#2 [
ffff88019f405eb0
] do_nmi at
ffffffff8168ec53
#3 [
ffff88019f405ef0
] end_repeat_nmi at
ffffffff8168df13
[exception RIP: delay_tsc+50]
RIP:
ffffffff81325642
RSP:
ffff88019f403bb0
RFLAGS:
00000083
RAX:
00000000000005c8
RBX:
ffffffff81f83000
RCX:
0000024e4fb88a8b
RDX:
0000024e4fb89053
RSI:
0000000000000000
RDI:
00000000000007d1
RBP:
ffff88019f403bb0
R8:
000000000000000a
R9:
0000000000000000
R10:
0000000000000000
R11:
ffff88019f403ad6
R12:
000000000000250f
R13:
0000000000000020
R14:
ffffffff81d360c7
R15:
0000000000000047
ORIG_RAX:
ffffffffffffffff
CS: 0010 SS: 0018
--- <NMI exception stack> ---
#4 [
ffff88019f403bb0
] delay_tsc at
ffffffff81325642
#5 [
ffff88019f403bb8
] __const_udelay at
ffffffff813255a8
#6 [
ffff88019f403bc8
] wait_for_xmitr at
ffffffff81404390
#7 [
ffff88019f403bf0
] serial8250_console_putchar at
ffffffff8140455c
#8 [
ffff88019f403c10
] uart_console_write at
ffffffff813ff00a
#9 [
ffff88019f403c40
] serial8250_console_write at
ffffffff814044ae
#10 [
ffff88019f403c88
] call_console_drivers.constprop.15 at
ffffffff81086b01
#11 [
ffff88019f403cb0
] console_unlock at
ffffffff8108842f
#12 [
ffff88019f403ce8
] vprintk_emit at
ffffffff81088834
#13 [
ffff88019f403d58
] vprintk_default at
ffffffff81088ba9
#14 [
ffff88019f403d68
] printk at
ffffffff8167f034
Adding touch_nmi_watchdog call to the first loop as well.
Reported-by: Chunyu Hu <chuhu@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_port.c
patch
|
blob
|
history
diff --git
a/drivers/tty/serial/8250/8250_port.c
b/drivers/tty/serial/8250/8250_port.c
index
ae3a104
..
28d29fa
100644
(file)
--- a/
drivers/tty/serial/8250/8250_port.c
+++ b/
drivers/tty/serial/8250/8250_port.c
@@
-1982,6
+1982,7
@@
static void wait_for_xmitr(struct uart_8250_port *up, int bits)
if (--tmout == 0)
break;
udelay(1);
+ touch_nmi_watchdog();
}
/* Wait up to 1s for flow control if necessary */