sh: Make the atomic functions safe for irqsoff tracing
authorMatt Fleming <matt@console-pimps.org>
Sat, 13 Jun 2009 21:23:27 +0000 (22:23 +0100)
committerPaul Mundt <lethal@linux-sh.org>
Sun, 14 Jun 2009 15:31:17 +0000 (00:31 +0900)
commit0c50f6f38399685d0c9ef0f5ffd6c4955e31cb26
tree7709bc7ab43998a08028b744ecc1a3626568bb11
parent3767f3f1ee11da55760616a2c68a09c02babdd9b
sh: Make the atomic functions safe for irqsoff tracing

The irqsoff tracer uses the atomic_* functions internally, but the
implementations of those functions in arch/sh/include/asm/atomic-irq.h
disable irqs to achieve atomicity. A continuous loop ensues where we
disable interrupts, trace the interrupt disabling, call atomic_*
functions, disable interrupts, trace the interrupt disabling, etc..

The simplest solution to all this is to just convert uses of
local_irq_save()/local_irq_restore() the raw_* equivalents because the
raw_* equivalents don't call trace_hardirqs_on()/trace_hardirqs_off().

Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/include/asm/atomic-irq.h