On Thu, 2010-03-11 at 10:57 +0800, Wu Zhangjin wrote: > From: Wu Zhangjin <wuzhangjin@xxxxxxxxx> > > Changes from the old version: > o Using raw spinlock instead of spinlock as suggested by David Daney. [...] > --- a/arch/mips/pci/ops-loongson2.c > +++ b/arch/mips/pci/ops-loongson2.c > @@ -180,15 +180,21 @@ struct pci_ops loongson_pci_ops = { > }; > > #ifdef CONFIG_CS5536 > +DEFINE_RAW_SPINLOCK(msr_lock); > + > void _rdmsr(u32 msr, u32 *hi, u32 *lo) > { > struct pci_bus bus = { > .number = PCI_BUS_CS5536 > }; > u32 devfn = PCI_DEVFN(PCI_IDSEL_CS5536, 0); > + unsigned long flags; > + > + spin_lock_irqsave(&msr_lock, flags); Please ignore this patch for the operations should be raw_ too. Regards, Wu Zhangjin