Re: [patch 2.6.28-rc2] at91_mci: workaround lockdep

From: David Brownell
Date: Tue Oct 28 2008 - 13:31:31 EST


On Tuesday 28 October 2008, Peter Zijlstra wrote:
> On Mon, 2008-10-27 at 14:26 -0700, David Brownell wrote:
> > From: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
> >
> > Lockdep reported a problem in the at91_mci driver ... in this case, the
> > issue is with lockdep, not with the driver. ...
> >
> > When __flush_dcache_aliases() returns -- inlined into flush_dcache_page(),
> > above -- it re-enables IRQs ... since that evidently may only be called with
> > IRQs enabled. That's OK since the (unshared) IRQ handler doesn't ask for IRQs
> > to be disabled. Except ... that lockdep went and disabled them, then went on
> > to complains about the breakage *it* caused!
> >
> > 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 adressed here.

- Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/