Messages in this thread | | | From | Andi Kleen <> | Subject | Re: [PATCH for review] [109/145] x86_64: Convert modlist_lock to be a raw spinlock | Date | Sun, 13 Aug 2006 08:52:46 +0200 |
| |
On Sunday 13 August 2006 07:48, Andrew Morton wrote: > On Thu, 10 Aug 2006 21:37:07 +0200 (CEST) > Andi Kleen <ak@suse.de> wrote: > > > This is a preparationary patch for converting stacktrace over to the > > new dwarf2 unwinder. lockdep uses stacktrace and the new unwinder > > takes the modlist_lock so using a normal spinlock would cause a deadlock. > > Use a raw lock instead. > > > > It breaks the build on most architectures.
Hmm, I grepped and most architectures seem to have both __raw_spin_lock and local_save_flags. I didn't actually compile them because crosstool doesn't love me anymore since I use gcc 4.0.
What is the official portable interface to do a raw spinlock if this one doesn't work?
> > - spin_lock_irqsave(&modlist_lock, flags); > > + raw_local_save_flags(flags); > > + __raw_spin_lock(&modlist_lock); > > if (!__find_symbol(symbol, &owner, &crc, 1)) > > BUG(); > > module_put(owner); > > - spin_unlock_irqrestore(&modlist_lock, flags); > > + __raw_spin_unlock(&modlist_lock); > > + raw_local_irq_restore(flags); > > That looks fairly hacky. Wouldn't it be better to implement > raw_spin_lock_irqsave()?
Possible.
-Andi
- 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/
| |