From 77d20b6d9234653574ef7dc23599b5cbf6a3aa24 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Wed, 20 Oct 2010 15:57:33 -0700 Subject: [PATCH] --- yaml --- r: 224026 b: refs/heads/master c: 466bd3030973910118ca601da8072be97a1e2209 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/timer.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b148af2d9ef7..33b60249f2c9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1118e2cd33d47254854e1ba3ba8e32802ff14fdf +refs/heads/master: 466bd3030973910118ca601da8072be97a1e2209 diff --git a/trunk/kernel/timer.c b/trunk/kernel/timer.c index 612de0306e79..483e54ba5c93 100644 --- a/trunk/kernel/timer.c +++ b/trunk/kernel/timer.c @@ -974,7 +974,11 @@ int del_timer_sync(struct timer_list *timer) lock_map_release(&timer->lockdep_map); local_bh_enable(); #endif - + /* + * don't use it in hardirq context, because it + * could lead to deadlock. + */ + WARN_ON(in_irq()); for (;;) { int ret = try_to_del_timer_sync(timer); if (ret >= 0)