diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2006-08-27 13:26:34 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-09-20 15:58:35 +0200 |
commit | b36e4758dc1b9ff1f6d97e951edba22366230d11 (patch) | |
tree | 3419ae3d588bdc1ecc51748c63077cb18ac974c3 /kernel/fork.c | |
parent | [ARM] Add ARM irqtrace support (diff) | |
download | linux-b36e4758dc1b9ff1f6d97e951edba22366230d11.tar.xz linux-b36e4758dc1b9ff1f6d97e951edba22366230d11.zip |
[ARM] Fix kernel/fork.c for lockdep on ARM
ARM has interrupts enabled over context switches (iow, has
__ARCH_WANT_INTERRUPTS_ON_CTXSW defined.) The lockdep code in fork.c
assumes that interrupts are always disabled. Fix this wrong
assumption by making the initialisation of 'p->hardirqs_enabled'
depend on __ARCH_WANT_INTERRUPTS_ON_CTXSW.
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index f9b014e3e700..8f76adf1c6a6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1056,7 +1056,11 @@ static struct task_struct *copy_process(unsigned long clone_flags, #endif #ifdef CONFIG_TRACE_IRQFLAGS p->irq_events = 0; +#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW + p->hardirqs_enabled = 1; +#else p->hardirqs_enabled = 0; +#endif p->hardirq_enable_ip = 0; p->hardirq_enable_event = 0; p->hardirq_disable_ip = _THIS_IP_; |