diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2009-11-17 10:46:45 -0500 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2009-12-14 17:55:33 -0500 |
| commit | 239007b8440abff689632f50cdf0f2b9e895b534 (patch) | |
| tree | 569cab843af4a999d6d868ec9a824530d2bfa733 /arch/powerpc/sysdev | |
| parent | 9f5a5621e78cf48d86682a71ceb3fcdbde38b222 (diff) | |
genirq: Convert irq_desc.lock to raw_spinlock
Convert locks which cannot be sleeping locks in preempt-rt to
raw_spinlocks.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/powerpc/sysdev')
| -rw-r--r-- | arch/powerpc/sysdev/fsl_msi.c | 4 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/uic.c | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c index 62e50258cdef..c6e11b077108 100644 --- a/arch/powerpc/sysdev/fsl_msi.c +++ b/arch/powerpc/sysdev/fsl_msi.c | |||
| @@ -173,7 +173,7 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
| 173 | u32 intr_index; | 173 | u32 intr_index; |
| 174 | u32 have_shift = 0; | 174 | u32 have_shift = 0; |
| 175 | 175 | ||
| 176 | spin_lock(&desc->lock); | 176 | raw_spin_lock(&desc->lock); |
| 177 | if ((msi_data->feature & FSL_PIC_IP_MASK) == FSL_PIC_IP_IPIC) { | 177 | if ((msi_data->feature & FSL_PIC_IP_MASK) == FSL_PIC_IP_IPIC) { |
| 178 | if (desc->chip->mask_ack) | 178 | if (desc->chip->mask_ack) |
| 179 | desc->chip->mask_ack(irq); | 179 | desc->chip->mask_ack(irq); |
| @@ -225,7 +225,7 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
| 225 | break; | 225 | break; |
| 226 | } | 226 | } |
| 227 | unlock: | 227 | unlock: |
| 228 | spin_unlock(&desc->lock); | 228 | raw_spin_unlock(&desc->lock); |
| 229 | } | 229 | } |
| 230 | 230 | ||
| 231 | static int __devinit fsl_of_msi_probe(struct of_device *dev, | 231 | static int __devinit fsl_of_msi_probe(struct of_device *dev, |
diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c index 7d10074b3304..6f220a913e42 100644 --- a/arch/powerpc/sysdev/uic.c +++ b/arch/powerpc/sysdev/uic.c | |||
| @@ -225,12 +225,12 @@ void uic_irq_cascade(unsigned int virq, struct irq_desc *desc) | |||
| 225 | int src; | 225 | int src; |
| 226 | int subvirq; | 226 | int subvirq; |
| 227 | 227 | ||
| 228 | spin_lock(&desc->lock); | 228 | raw_spin_lock(&desc->lock); |
| 229 | if (desc->status & IRQ_LEVEL) | 229 | if (desc->status & IRQ_LEVEL) |
| 230 | desc->chip->mask(virq); | 230 | desc->chip->mask(virq); |
| 231 | else | 231 | else |
| 232 | desc->chip->mask_ack(virq); | 232 | desc->chip->mask_ack(virq); |
| 233 | spin_unlock(&desc->lock); | 233 | raw_spin_unlock(&desc->lock); |
| 234 | 234 | ||
| 235 | msr = mfdcr(uic->dcrbase + UIC_MSR); | 235 | msr = mfdcr(uic->dcrbase + UIC_MSR); |
| 236 | if (!msr) /* spurious interrupt */ | 236 | if (!msr) /* spurious interrupt */ |
| @@ -242,12 +242,12 @@ void uic_irq_cascade(unsigned int virq, struct irq_desc *desc) | |||
| 242 | generic_handle_irq(subvirq); | 242 | generic_handle_irq(subvirq); |
| 243 | 243 | ||
| 244 | uic_irq_ret: | 244 | uic_irq_ret: |
| 245 | spin_lock(&desc->lock); | 245 | raw_spin_lock(&desc->lock); |
| 246 | if (desc->status & IRQ_LEVEL) | 246 | if (desc->status & IRQ_LEVEL) |
| 247 | desc->chip->ack(virq); | 247 | desc->chip->ack(virq); |
| 248 | if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask) | 248 | if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask) |
| 249 | desc->chip->unmask(virq); | 249 | desc->chip->unmask(virq); |
| 250 | spin_unlock(&desc->lock); | 250 | raw_spin_unlock(&desc->lock); |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | static struct uic * __init uic_init_one(struct device_node *node) | 253 | static struct uic * __init uic_init_one(struct device_node *node) |
