powerpc: Convert ipic_lock to raw_spinlock
ipic_lock needs to be a real spinlock in RT. Convert it to raw_spinlock. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
committed by
Benjamin Herrenschmidt
parent
6b9c9b8a66
commit
a9e8bf21cd
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
static struct ipic * primary_ipic;
|
static struct ipic * primary_ipic;
|
||||||
static struct irq_chip ipic_level_irq_chip, ipic_edge_irq_chip;
|
static struct irq_chip ipic_level_irq_chip, ipic_edge_irq_chip;
|
||||||
static DEFINE_SPINLOCK(ipic_lock);
|
static DEFINE_RAW_SPINLOCK(ipic_lock);
|
||||||
|
|
||||||
static struct ipic_info ipic_info[] = {
|
static struct ipic_info ipic_info[] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
@@ -530,13 +530,13 @@ static void ipic_unmask_irq(unsigned int virq)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
spin_lock_irqsave(&ipic_lock, flags);
|
raw_spin_lock_irqsave(&ipic_lock, flags);
|
||||||
|
|
||||||
temp = ipic_read(ipic->regs, ipic_info[src].mask);
|
temp = ipic_read(ipic->regs, ipic_info[src].mask);
|
||||||
temp |= (1 << (31 - ipic_info[src].bit));
|
temp |= (1 << (31 - ipic_info[src].bit));
|
||||||
ipic_write(ipic->regs, ipic_info[src].mask, temp);
|
ipic_write(ipic->regs, ipic_info[src].mask, temp);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ipic_lock, flags);
|
raw_spin_unlock_irqrestore(&ipic_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ipic_mask_irq(unsigned int virq)
|
static void ipic_mask_irq(unsigned int virq)
|
||||||
@@ -546,7 +546,7 @@ static void ipic_mask_irq(unsigned int virq)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
spin_lock_irqsave(&ipic_lock, flags);
|
raw_spin_lock_irqsave(&ipic_lock, flags);
|
||||||
|
|
||||||
temp = ipic_read(ipic->regs, ipic_info[src].mask);
|
temp = ipic_read(ipic->regs, ipic_info[src].mask);
|
||||||
temp &= ~(1 << (31 - ipic_info[src].bit));
|
temp &= ~(1 << (31 - ipic_info[src].bit));
|
||||||
@@ -556,7 +556,7 @@ static void ipic_mask_irq(unsigned int virq)
|
|||||||
* for nearly all cases. */
|
* for nearly all cases. */
|
||||||
mb();
|
mb();
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ipic_lock, flags);
|
raw_spin_unlock_irqrestore(&ipic_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ipic_ack_irq(unsigned int virq)
|
static void ipic_ack_irq(unsigned int virq)
|
||||||
@@ -566,7 +566,7 @@ static void ipic_ack_irq(unsigned int virq)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
spin_lock_irqsave(&ipic_lock, flags);
|
raw_spin_lock_irqsave(&ipic_lock, flags);
|
||||||
|
|
||||||
temp = 1 << (31 - ipic_info[src].bit);
|
temp = 1 << (31 - ipic_info[src].bit);
|
||||||
ipic_write(ipic->regs, ipic_info[src].ack, temp);
|
ipic_write(ipic->regs, ipic_info[src].ack, temp);
|
||||||
@@ -575,7 +575,7 @@ static void ipic_ack_irq(unsigned int virq)
|
|||||||
* for nearly all cases. */
|
* for nearly all cases. */
|
||||||
mb();
|
mb();
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ipic_lock, flags);
|
raw_spin_unlock_irqrestore(&ipic_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ipic_mask_irq_and_ack(unsigned int virq)
|
static void ipic_mask_irq_and_ack(unsigned int virq)
|
||||||
@@ -585,7 +585,7 @@ static void ipic_mask_irq_and_ack(unsigned int virq)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
spin_lock_irqsave(&ipic_lock, flags);
|
raw_spin_lock_irqsave(&ipic_lock, flags);
|
||||||
|
|
||||||
temp = ipic_read(ipic->regs, ipic_info[src].mask);
|
temp = ipic_read(ipic->regs, ipic_info[src].mask);
|
||||||
temp &= ~(1 << (31 - ipic_info[src].bit));
|
temp &= ~(1 << (31 - ipic_info[src].bit));
|
||||||
@@ -598,7 +598,7 @@ static void ipic_mask_irq_and_ack(unsigned int virq)
|
|||||||
* for nearly all cases. */
|
* for nearly all cases. */
|
||||||
mb();
|
mb();
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ipic_lock, flags);
|
raw_spin_unlock_irqrestore(&ipic_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
|
static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
|
||||||
|
Reference in New Issue
Block a user