summaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 9fa35a63b..5457c450b 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -238,7 +238,17 @@ int del_timer_sync(struct timer_list * timer)
if (!running)
return ret;
- timer_synchronize(timer);
+
+ {
+ int count = 50*1000*1000;
+ while (timer_is_running(timer) && --count)
+ ;
+ if (count == 0) {
+ printk( "del_timer_sync(%p): deadlock! Called from %p\n",
+ timer, __builtin_return_address(0));
+ printk("See http://www.uow.edu.au/~andrewm/linux/deadlock.html\n");
+ }
+ }
}
return ret;