projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[firefly-linux-kernel-4.4.55.git]
/
kernel
/
softlockup.c
diff --git
a/kernel/softlockup.c
b/kernel/softlockup.c
index 01b6522fd92bc0b28f7df00eb66876a389b34908..c828c2339cc9e8a8992df52f31756f8894c7f6b1 100644
(file)
--- a/
kernel/softlockup.c
+++ b/
kernel/softlockup.c
@@
-49,12
+49,17
@@
static unsigned long get_timestamp(int this_cpu)
return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */
}
return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */
}
-
void
touch_softlockup_watchdog(void)
+
static void __
touch_softlockup_watchdog(void)
{
int this_cpu = raw_smp_processor_id();
__raw_get_cpu_var(touch_timestamp) = get_timestamp(this_cpu);
}
{
int this_cpu = raw_smp_processor_id();
__raw_get_cpu_var(touch_timestamp) = get_timestamp(this_cpu);
}
+
+void touch_softlockup_watchdog(void)
+{
+ __raw_get_cpu_var(touch_timestamp) = 0;
+}
EXPORT_SYMBOL(touch_softlockup_watchdog);
void touch_all_softlockup_watchdogs(void)
EXPORT_SYMBOL(touch_softlockup_watchdog);
void touch_all_softlockup_watchdogs(void)
@@
-80,7
+85,7
@@
void softlockup_tick(void)
unsigned long now;
if (touch_timestamp == 0) {
unsigned long now;
if (touch_timestamp == 0) {
- touch_softlockup_watchdog();
+
__
touch_softlockup_watchdog();
return;
}
return;
}
@@
-95,7
+100,7
@@
void softlockup_tick(void)
/* do not print during early bootup: */
if (unlikely(system_state != SYSTEM_RUNNING)) {
/* do not print during early bootup: */
if (unlikely(system_state != SYSTEM_RUNNING)) {
- touch_softlockup_watchdog();
+
__
touch_softlockup_watchdog();
return;
}
return;
}
@@
-214,7
+219,7
@@
static int watchdog(void *__bind_cpu)
sched_setscheduler(current, SCHED_FIFO, ¶m);
/* initialize timestamp */
sched_setscheduler(current, SCHED_FIFO, ¶m);
/* initialize timestamp */
- touch_softlockup_watchdog();
+
__
touch_softlockup_watchdog();
set_current_state(TASK_INTERRUPTIBLE);
/*
set_current_state(TASK_INTERRUPTIBLE);
/*
@@
-223,7
+228,7
@@
static int watchdog(void *__bind_cpu)
* debug-printout triggers in softlockup_tick().
*/
while (!kthread_should_stop()) {
* debug-printout triggers in softlockup_tick().
*/
while (!kthread_should_stop()) {
- touch_softlockup_watchdog();
+
__
touch_softlockup_watchdog();
schedule();
if (kthread_should_stop())
schedule();
if (kthread_should_stop())