Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754621Ab1BHOQ5 (ORCPT ); Tue, 8 Feb 2011 09:16:57 -0500 Received: from bombadil.infradead.org ([18.85.46.34]:47433 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754489Ab1BHOQ4 (ORCPT ); Tue, 8 Feb 2011 09:16:56 -0500 Subject: Re: lockdep: possible reason: unannotated irqs-off. (was: Re: Linux 2.6.38-rc4) From: Peter Zijlstra To: Yong Zhang Cc: Borislav Petkov , Linus Torvalds , Linux Kernel Mailing List , x86@kernel.org, tglx , Ingo Molnar , Andrew Morton In-Reply-To: <1297172906.13327.104.camel@laptop> References: <20110208101730.GB7020@liondog.tnic> <1297161712.13327.100.camel@laptop> <20110208121108.GA4824@zhy> <20110208133457.GA5813@zhy> <1297172906.13327.104.camel@laptop> Content-Type: text/plain; charset="UTF-8" Date: Tue, 08 Feb 2011 15:18:00 +0100 Message-ID: <1297174680.13327.107.camel@laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1831 Lines: 53 On Tue, 2011-02-08 at 14:48 +0100, Peter Zijlstra wrote: > > Well that and modifying softirq bits for a lockdep annotation really > feels wrong. How about we revert it for this release and try again later? --- Subject: lockdep, timer: Revert the del_timer_sync() annotation Both attempts at trying to allow softirq usage failed, revert for this release and try again later. Signed-off-by: Peter Zijlstra --- kernel/timer.c | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/kernel/timer.c b/kernel/timer.c index 343ff27..c848cd8 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -959,7 +959,7 @@ EXPORT_SYMBOL(try_to_del_timer_sync); * * Synchronization rules: Callers must prevent restarting of the timer, * otherwise this function is meaningless. It must not be called from - * hardirq contexts. The caller must not hold locks which would prevent + * interrupt contexts. The caller must not hold locks which would prevent * completion of the timer's handler. The timer's handler must not call * add_timer_on(). Upon exit the timer is not queued and the handler is * not running on any CPU. @@ -971,12 +971,10 @@ int del_timer_sync(struct timer_list *timer) #ifdef CONFIG_LOCKDEP unsigned long flags; - raw_local_irq_save(flags); - local_bh_disable(); + local_irq_save(flags); lock_map_acquire(&timer->lockdep_map); lock_map_release(&timer->lockdep_map); - _local_bh_enable(); - raw_local_irq_restore(flags); + local_irq_restore(flags); #endif /* * don't use it in hardirq context, because it -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/