git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Linux 3.2.80
[pandora-kernel.git]
/
kernel
/
watchdog.c
diff --git
a/kernel/watchdog.c
b/kernel/watchdog.c
index
36491cd
..
a8bc4d9
100644
(file)
--- a/
kernel/watchdog.c
+++ b/
kernel/watchdog.c
@@
-113,7
+113,7
@@
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 */
}
-static u
nsigned long
get_sample_period(void)
+static u
64
get_sample_period(void)
{
/*
* convert watchdog_thresh from seconds to ns
{
/*
* convert watchdog_thresh from seconds to ns
@@
-121,7
+121,7
@@
static unsigned long get_sample_period(void)
* increment before the hardlockup detector generates
* a warning
*/
* increment before the hardlockup detector generates
* a warning
*/
- return get_softlockup_thresh() * (NSEC_PER_SEC / 5);
+ return get_softlockup_thresh() * (
(u64)
NSEC_PER_SEC / 5);
}
/* Commands for resetting the watchdog */
}
/* Commands for resetting the watchdog */
@@
-321,7
+321,7
@@
static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
*/
static int watchdog(void *unused)
{
*/
static int watchdog(void *unused)
{
- st
atic st
ruct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };
+ struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };
struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer);
sched_setscheduler(current, SCHED_FIFO, ¶m);
struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer);
sched_setscheduler(current, SCHED_FIFO, ¶m);
@@
-350,7
+350,8
@@
static int watchdog(void *unused)
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
-
+ param.sched_priority = 0;
+ sched_setscheduler(current, SCHED_NORMAL, ¶m);
return 0;
}
return 0;
}
@@
-438,7
+439,7
@@
static int watchdog_enable(int cpu)
/* create the watchdog thread */
if (!p) {
/* create the watchdog thread */
if (!p) {
- p = kthread_create
(watchdog, (void *)(unsigned long)cpu
, "watchdog/%d", cpu);
+ p = kthread_create
_on_node(watchdog, NULL, cpu_to_node(cpu)
, "watchdog/%d", cpu);
if (IS_ERR(p)) {
printk(KERN_ERR "softlockup watchdog for %i failed\n", cpu);
if (!err) {
if (IS_ERR(p)) {
printk(KERN_ERR "softlockup watchdog for %i failed\n", cpu);
if (!err) {
@@
-480,6
+481,8
@@
static void watchdog_disable(int cpu)
}
}
}
}
+/* sysctl functions */
+#ifdef CONFIG_SYSCTL
static void watchdog_enable_all_cpus(void)
{
int cpu;
static void watchdog_enable_all_cpus(void)
{
int cpu;
@@
-509,8
+512,6
@@
static void watchdog_disable_all_cpus(void)
}
}
-/* sysctl functions */
-#ifdef CONFIG_SYSCTL
/*
* proc handler for /proc/sys/kernel/nmi_watchdog,watchdog_thresh
*/
/*
* proc handler for /proc/sys/kernel/nmi_watchdog,watchdog_thresh
*/