From 1c92ce8487f6642621d52fadc499c9a76e4878f0 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Sat, 18 May 2013 22:21:13 +0000 Subject: [PATCH] parisc: use arch_spinlock_t instead of raw_spinlock_t in irqstacks We need to use arch_spinlock_t spinlocks instead of raw_spinlock_t spinlocks for irqstack protection else we will hit the "trylock failure on UP" error message with CONFIG_SMP=n and CONFIG_DEBUG_SPINLOCK=y. Since we can be called recursive here even on UP (we are in the irq handler which handles even irq bh) this spinlock error message is just wrong. Signed-off-by: Helge Deller --- arch/parisc/include/asm/processor.h | 2 +- arch/parisc/kernel/irq.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index cfbc43929cf6..b2dca96588f6 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h @@ -69,7 +69,7 @@ union irq_stack_union { unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)]; - raw_spinlock_t lock; + arch_spinlock_t lock; }; DECLARE_PER_CPU(union irq_stack_union, irq_stack_union); diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index 9c2d953f3de5..9ba8e5a47155 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c @@ -451,14 +451,14 @@ panic_check: #ifdef CONFIG_IRQSTACKS DEFINE_PER_CPU(union irq_stack_union, irq_stack_union) = { - .lock = __RAW_SPIN_LOCK_UNLOCKED((irq_stack_union).lock) + .lock = __ARCH_SPIN_LOCK_UNLOCKED, }; static void execute_on_irq_stack(void *func, unsigned long param1) { union irq_stack_union *union_ptr; unsigned long irq_stack; - raw_spinlock_t *irq_stack_in_use; + arch_spinlock_t *irq_stack_in_use; union_ptr = &per_cpu(irq_stack_union, smp_processor_id()); irq_stack = (unsigned long) &union_ptr->stack; @@ -470,7 +470,7 @@ static void execute_on_irq_stack(void *func, unsigned long param1) * the irq stack usage. */ irq_stack_in_use = &union_ptr->lock; - if (!raw_spin_trylock(irq_stack_in_use)) { + if (!arch_spin_trylock(irq_stack_in_use)) { void (*direct_call)(unsigned long p1) = func; /* We are using the IRQ stack already. @@ -485,7 +485,7 @@ static void execute_on_irq_stack(void *func, unsigned long param1) __inc_irq_stat(irq_stack_counter); /* free up irq stack usage. */ - do_raw_spin_unlock(irq_stack_in_use); + arch_spin_unlock(irq_stack_in_use); } asmlinkage void do_softirq(void) -- 2.39.5