mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-02 09:05:51 +00:00
powerpc/82xx: Convert pci_pic_lock to raw_spinlock
Interrupt controllers' hooks are executed in the atomic context, so they are not permitted to sleep (with RT kernels non-raw spinlocks are sleepable). So, pci_pic_lock has to be a real (non-sleepable) spinlock. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
7e026f72cf
commit
0e5d359cca
@ -24,7 +24,7 @@
|
||||
|
||||
#include "pq2.h"
|
||||
|
||||
static DEFINE_SPINLOCK(pci_pic_lock);
|
||||
static DEFINE_RAW_SPINLOCK(pci_pic_lock);
|
||||
|
||||
struct pq2ads_pci_pic {
|
||||
struct device_node *node;
|
||||
@ -45,12 +45,12 @@ static void pq2ads_pci_mask_irq(unsigned int virq)
|
||||
|
||||
if (irq != -1) {
|
||||
unsigned long flags;
|
||||
spin_lock_irqsave(&pci_pic_lock, flags);
|
||||
raw_spin_lock_irqsave(&pci_pic_lock, flags);
|
||||
|
||||
setbits32(&priv->regs->mask, 1 << irq);
|
||||
mb();
|
||||
|
||||
spin_unlock_irqrestore(&pci_pic_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&pci_pic_lock, flags);
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,9 +62,9 @@ static void pq2ads_pci_unmask_irq(unsigned int virq)
|
||||
if (irq != -1) {
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&pci_pic_lock, flags);
|
||||
raw_spin_lock_irqsave(&pci_pic_lock, flags);
|
||||
clrbits32(&priv->regs->mask, 1 << irq);
|
||||
spin_unlock_irqrestore(&pci_pic_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&pci_pic_lock, flags);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user