Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Convert beatic_irq_mask_lock to raw_spinlock

beatic_irq_mask_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>

authored by

Thomas Gleixner and committed by
Benjamin Herrenschmidt
5181e790 7d725bdc

+9 -9
+9 -9
arch/powerpc/platforms/cell/beat_interrupt.c
··· 30 30 #include "beat_wrapper.h" 31 31 32 32 #define MAX_IRQS NR_IRQS 33 - static DEFINE_SPINLOCK(beatic_irq_mask_lock); 33 + static DEFINE_RAW_SPINLOCK(beatic_irq_mask_lock); 34 34 static uint64_t beatic_irq_mask_enable[(MAX_IRQS+255)/64]; 35 35 static uint64_t beatic_irq_mask_ack[(MAX_IRQS+255)/64]; 36 36 ··· 65 65 { 66 66 unsigned long flags; 67 67 68 - spin_lock_irqsave(&beatic_irq_mask_lock, flags); 68 + raw_spin_lock_irqsave(&beatic_irq_mask_lock, flags); 69 69 beatic_irq_mask_enable[irq_plug/64] &= ~(1UL << (63 - (irq_plug%64))); 70 70 beatic_update_irq_mask(irq_plug); 71 - spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 71 + raw_spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 72 72 } 73 73 74 74 static void beatic_unmask_irq(unsigned int irq_plug) 75 75 { 76 76 unsigned long flags; 77 77 78 - spin_lock_irqsave(&beatic_irq_mask_lock, flags); 78 + raw_spin_lock_irqsave(&beatic_irq_mask_lock, flags); 79 79 beatic_irq_mask_enable[irq_plug/64] |= 1UL << (63 - (irq_plug%64)); 80 80 beatic_update_irq_mask(irq_plug); 81 - spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 81 + raw_spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 82 82 } 83 83 84 84 static void beatic_ack_irq(unsigned int irq_plug) 85 85 { 86 86 unsigned long flags; 87 87 88 - spin_lock_irqsave(&beatic_irq_mask_lock, flags); 88 + raw_spin_lock_irqsave(&beatic_irq_mask_lock, flags); 89 89 beatic_irq_mask_ack[irq_plug/64] &= ~(1UL << (63 - (irq_plug%64))); 90 90 beatic_update_irq_mask(irq_plug); 91 - spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 91 + raw_spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 92 92 } 93 93 94 94 static void beatic_end_irq(unsigned int irq_plug) ··· 103 103 104 104 printk(KERN_ERR "IRQ over-downcounted, plug %d\n", irq_plug); 105 105 } 106 - spin_lock_irqsave(&beatic_irq_mask_lock, flags); 106 + raw_spin_lock_irqsave(&beatic_irq_mask_lock, flags); 107 107 beatic_irq_mask_ack[irq_plug/64] |= 1UL << (63 - (irq_plug%64)); 108 108 beatic_update_irq_mask(irq_plug); 109 - spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 109 + raw_spin_unlock_irqrestore(&beatic_irq_mask_lock, flags); 110 110 } 111 111 112 112 static struct irq_chip beatic_pic = {