linux/arch/sh/include
Stuart Menefy fd78a76aef sh: Rework irqflags tracing to fix up CONFIG_PROVE_LOCKING.
This cleans up the irqflags tracing code quite a bit and ties it
in to various missing callsites that caused an imbalance when
CONFIG_PROVE_LOCKING was enabled.

Previously this was catching on:

 987 #ifdef CONFIG_PROVE_LOCKING
 988     DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
 989     DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
 990 #endif
 991     retval = -EAGAIN;

with hardirqs being doubly enabled, and subsequently bailing out
with the following call trace:

	Call trace:
	[<88035224>] __lock_acquire+0x616/0x6a6
	[<88015a8c>] do_fork+0xf8/0x2b0
	[<880331ec>] trace_hardirqs_on_caller+0xd4/0x114
	[<88241074>] _spin_unlock_irq+0x20/0x64
	[<88035224>] __lock_acquire+0x616/0x6a6
	[<8800386c>] kernel_thread+0x48/0x70
	[<88024ecc>] ____call_usermodehelper+0x0/0x110
	[<88024ecc>] ____call_usermodehelper+0x0/0x110
	[<88003894>] kernel_thread_helper+0x0/0x14
	[<88024bac>] __call_usermodehelper+0x38/0x70
	[<88025dc0>] worker_thread+0x150/0x274
	[<88035b9c>] lock_release+0x0/0x198
	[<88024b74>] __call_usermodehelper+0x0/0x70
	[<88028cf0>] autoremove_wake_function+0x0/0x30
	[<88028bf2>] kthread+0x3e/0x70
	[<88025c70>] worker_thread+0x0/0x274
	[<8800389c>] kernel_thread_helper+0x8/0x14
	[<88028bb4>] kthread+0x0/0x70
	[<88003894>] kernel_thread_helper+0x0/0x14

Reported-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2009-07-29 23:01:24 +09:00
..
asm sh: Rework irqflags tracing to fix up CONFIG_PROVE_LOCKING. 2009-07-29 23:01:24 +09:00
cpu-common/cpu sh: Allow SH-3 and SH-5 to use common headers. 2008-07-29 22:52:49 +09:00
cpu-sh2/cpu SH2(A) cache update 2008-08-04 16:33:47 +09:00
cpu-sh2a/cpu sh: Fix UBC setup and registers for SH2A 2009-05-09 00:09:21 +09:00
cpu-sh3/cpu sh: remove old TMU driver 2009-05-12 19:53:14 +09:00
cpu-sh4/cpu sh: hwblk support for sh7723 2009-07-20 04:23:44 +09:00
cpu-sh5/cpu sh: Kill off unused SH-5 irq_describe cruft. 2009-05-07 18:17:20 +09:00
mach-common/mach sh: Add support mtd mapping for highlander 2009-06-16 16:49:03 +09:00
mach-dreamcast/mach sh: pci: Tidy up the dreamcast PCI support. 2009-04-20 20:22:05 +09:00
mach-landisk/mach sh: migrate to arch/sh/include/ 2008-07-29 08:09:44 +09:00
mach-se/mach sh: ms7724se: Add sh_eth support 2009-06-26 16:24:02 +09:00
mach-sh03/mach sh: migrate to arch/sh/include/ 2008-07-29 08:09:44 +09:00