]> git.baikalelectronics.ru Git - kernel.git/commit
parisc: fix irq stack on UP and SMP
authorHelge Deller <deller@gmx.de>
Fri, 24 May 2013 21:27:35 +0000 (21:27 +0000)
committerHelge Deller <deller@gmx.de>
Fri, 24 May 2013 21:29:01 +0000 (23:29 +0200)
commitf495bf8f402fab385840f10250488a727f5276db
treebcc82f90634f689e629ed692f2fa6f1654d3cbbf
parent4d516441e1f4157b165c08202e6aa1b96ac6e602
parisc: fix irq stack on UP and SMP

The logic to detect if the irq stack was already in use with
raw_spin_trylock() is wrong, because it will generate a "trylock failure
on UP" error message with CONFIG_SMP=n and CONFIG_DEBUG_SPINLOCK=y.

arch_spin_trylock() can't be used either since in the CONFIG_SMP=n case
no atomic protection is given and we are reentrant here. A mutex didn't
worked either and brings more overhead by turning off interrupts.

So, let's use the fastest path for parisc which is the ldcw instruction.

Counting how often the irq stack was used is pretty useless, so just
drop this piece of code.

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/include/asm/hardirq.h
arch/parisc/include/asm/processor.h
arch/parisc/kernel/irq.c