From: David Brownell <david-b@pacbell.net>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Pierre Ossman <drzeus-mmc@drzeus.cx>,
lkml <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>,
Russell King <rmk@arm.linux.org.uk>,
Nicolas Ferre <nicolas.ferre@rfo.atmel.com>,
Andrew Victor <linux@maxim.org.za>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [patch 2.6.28-rc2] at91_mci: workaround lockdep
Date: Tue, 28 Oct 2008 12:41:24 -0700 [thread overview]
Message-ID: <200810281241.25006.david-b@pacbell.net> (raw)
In-Reply-To: <1225215416.15763.32.camel@lappy.programming.kicks-ass.net>
On Tuesday 28 October 2008, Peter Zijlstra wrote:
> > > > Workaround: depend on LOCKDEP=n ...
> > >
> > > In all previous such cases it was deemed the IRQ handler should deal
> > > with whatever it gets.
> >
> > In which case I'll wait until someone changes that IRQ handler (or that
> > ARM MM utility, or lockdep), and give up using AT91 platforms for sanity
> > testing kernel changes; lockdep is important, when it doesn't lie.
> >
> > I do think that lockdep should warn when that it's ignoring such driver
> > requests, however. I seem to have been tripping over it a lot lately,
> > and knowing that IRQ handlers were using strange modes would have saved
> > a bunch of time from being wasted.
> >
> > Threaded IRQ handlers are going to need to rely even more on running
> > with IRQs enabled ... not to mention needing to sleep. So it's clear
> > to me that there *are* lockdep issues yet to be addressed here.
>
> Sure, care so send a patch fixing those? :-)
Here's one for the warning; that's the only one straightforward enough
to justify detouring from Real Work. Plus, the IRQ threading patches
aren't that near a merge queue yet. ;)
- Dave
========================== CUT HERE
From: David Brownell <dbrownell@users.sourceforge.net>
When lockdep turns on IRQF_DISABLED, emit a warning to make it
easier to track down problems this introduces in drivers that
expect handlers to run with IRQs enabled.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
kernel/irq/manage.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -681,7 +681,11 @@ int request_irq(unsigned int irq, irq_ha
/*
* Lockdep wants atomic interrupt handlers:
*/
- irqflags |= IRQF_DISABLED;
+ if (!(irqflags & IRQF_DISABLED)) {
+ pr_warning("IRQ %d/%s: lockdep sets IRQF_DISABLED\n",
+ irq, devname);
+ irqflags |= IRQF_DISABLED;
+ }
#endif
/*
* Sanity-check: shared interrupts must pass in a real dev-ID,
next prev parent reply other threads:[~2008-10-28 20:13 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-27 21:26 [patch 2.6.28-rc2] at91_mci: workaround lockdep David Brownell
2008-10-28 17:04 ` Peter Zijlstra
2008-10-28 17:22 ` David Brownell
2008-10-28 17:36 ` Peter Zijlstra
2008-10-28 19:41 ` David Brownell [this message]
2008-10-29 7:20 ` David Brownell
2008-11-03 13:47 ` Nicolas Ferre
2008-11-17 9:28 ` Nicolas Ferre
2008-11-19 18:45 ` Pierre Ossman
2008-11-20 15:02 ` Nicolas Ferre
2008-11-20 15:42 ` Pierre Ossman
2008-11-23 14:26 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200810281241.25006.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=drzeus-mmc@drzeus.cx \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@maxim.org.za \
--cc=mingo@elte.hu \
--cc=nicolas.ferre@rfo.atmel.com \
--cc=peterz@infradead.org \
--cc=rmk@arm.linux.org.uk \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.