diff options
Diffstat (limited to 'kernel/timer.c')
-rw-r--r-- | kernel/timer.c | 12 |
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; |