Messages in this thread | | | Date | Wed, 16 Feb 2011 00:03:30 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH] fix pgd_lock deadlock |
| |
On Tue, 15 Feb 2011, Andrea Arcangeli wrote:
> On Tue, Feb 15, 2011 at 09:26:35PM +0100, Thomas Gleixner wrote: > > Another thing. You check for in_interrupt(), but what makes sure that > > the code which takes pgd_lock is never taken with interrupts disabled > > except during early boot ? > > It's perfectly fine to take pgd_lock with irq disabled, as long as you > don't pretend to take the page_table_lock too after that. So that's > not a concern. > > I removed _irqsave from all pgd_lock, and I doubt there's any code > protected by pgd_lock that runs with irq disabled, but if there is, > it's still ok and it especially shouldn't have used _irqsave. > > The only real issue here to sort out, is if pgd_lock is ever taken > from irq or not, and to me it looks like in_interrupt() should trigger > if it is ever taken from irq, so it won't go unnoticed for long if > this isn't ok.
I assume you run it with a lockdep enabled kernel as well, right ?
Thanks,
tglx
| |