projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
82c04ff
)
kernel/watchdog.c:touch_softlockup_watchdog(): use raw_cpu_write()
author
Andrew Morton
<
[email protected]
>
Fri, 18 Apr 2014 22:07:12 +0000
(15:07 -0700)
committer
Linus Torvalds
<
[email protected]
>
Fri, 18 Apr 2014 23:40:08 +0000
(16:40 -0700)
Fix:
BUG: using __this_cpu_write() in preemptible [
00000000
] code: systemd-udevd/497
caller is __this_cpu_preempt_check+0x13/0x20
CPU: 3 PID: 497 Comm: systemd-udevd Tainted: G W 3.15.0-rc1 #9
Hardware name: Hewlett-Packard HP EliteBook 8470p/179B, BIOS 68ICF Ver. F.02 04/27/2012
Call Trace:
check_preemption_disabled+0xe1/0xf0
__this_cpu_preempt_check+0x13/0x20
touch_nmi_watchdog+0x28/0x40
Reported-by: Luis Henriques <
[email protected]
>
Tested-by: Luis Henriques <
[email protected]
>
Cc: Eric Piel <
[email protected]
>
Cc: Robert Moore <
[email protected]
>
Cc: Lv Zheng <
[email protected]
>
Cc: "Rafael J. Wysocki" <
[email protected]
>
Cc: Len Brown <
[email protected]
>
Cc: Christoph Lameter <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
kernel/watchdog.c
patch
|
blob
|
history
diff --git
a/kernel/watchdog.c
b/kernel/watchdog.c
index e90089fd78e003130e7ab788e409b3de62fd0c38..516203e665fcbddc8eb7f55fa7b5a2dd5634cfc5 100644
(file)
--- a/
kernel/watchdog.c
+++ b/
kernel/watchdog.c
@@
-138,7
+138,11
@@
static void __touch_watchdog(void)
void touch_softlockup_watchdog(void)
{
- __this_cpu_write(watchdog_touch_ts, 0);
+ /*
+ * Preemption can be enabled. It doesn't matter which CPU's timestamp
+ * gets zeroed here, so use the raw_ operation.
+ */
+ raw_cpu_write(watchdog_touch_ts, 0);
}
EXPORT_SYMBOL(touch_softlockup_watchdog);