[MIPS] lockdep: fix TRACE_IRQFLAGS_SUPPORT

In handle_sys and its variants, we must reload some registers which
might be clobbered by trace_hardirqs_on().
Also we must make sure trace_hardirqs_on() called in kernel level (not
exception level).

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Atsushi Nemoto
2006-09-26 23:43:40 +09:00
committed by Ralf Baechle
parent d834c16516
commit eae6c0da9d
5 changed files with 29 additions and 15 deletions

View File

@@ -28,18 +28,7 @@
NESTED(handle_sys, PT_SIZE, sp)
.set noat
SAVE_SOME
#ifdef CONFIG_TRACE_IRQFLAGS
TRACE_IRQS_ON
#ifdef CONFIG_64BIT
LONG_L $8, PT_R8(sp)
LONG_L $9, PT_R9(sp)
#endif
LONG_L $7, PT_R7(sp)
LONG_L $6, PT_R6(sp)
LONG_L $5, PT_R5(sp)
LONG_L $4, PT_R4(sp)
LONG_L $2, PT_R2(sp)
#endif
TRACE_IRQS_ON_RELOAD
STI
.set at

View File

@@ -34,7 +34,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
*/
.set noat
SAVE_SOME
TRACE_IRQS_ON
TRACE_IRQS_ON_RELOAD
STI
.set at
#endif

View File

@@ -33,7 +33,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
#ifndef CONFIG_MIPS32_O32
.set noat
SAVE_SOME
TRACE_IRQS_ON
TRACE_IRQS_ON_RELOAD
STI
.set at
#endif

View File

@@ -28,7 +28,7 @@
NESTED(handle_sys, PT_SIZE, sp)
.set noat
SAVE_SOME
TRACE_IRQS_ON
TRACE_IRQS_ON_RELOAD
STI
.set at
ld t1, PT_EPC(sp) # skip syscall on return