From edb4cb72c631c5e588af40794830c5bb5d6a927a Mon Sep 17 00:00:00 2001 From: Sedat Dilek Date: Wed, 30 Sep 2015 08:20:15 +0200 Subject: [PATCH] timer: lockdep: Add WARN_ON(irqs_disabled()) to del_timer_sync() --- kernel/locking/lockdep.c | 1 + kernel/time/timer.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index 8acfbf773e06..8b29b3dd518f 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -2410,6 +2410,7 @@ void print_irqtrace_events(struct task_struct *curr) printk("softirqs last disabled at (%u): ", curr->softirq_disable_event); print_ip_sym(curr->softirq_disable_ip); } +EXPORT_SYMBOL(print_irqtrace_events); static int HARDIRQ_verbose(struct lock_class *class) { diff --git a/kernel/time/timer.c b/kernel/time/timer.c index 84190f02b521..f434b2dce642 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -1082,6 +1082,9 @@ int del_timer_sync(struct timer_list *timer) #ifdef CONFIG_LOCKDEP unsigned long flags; + if(WARN_ON(irqs_disabled())) + print_irqtrace_events(current); + /* * If lockdep gives a backtrace here, please reference * the synchronization rules above. -- 2.5.3