aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/entry64.S
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2007-10-11 16:11:12 -0400
committerPeter Zijlstra <a.p.zijlstra@chello.nl>2007-10-11 16:11:12 -0400
commit523b44cff279c42c79f7bda709e2fefc30f20a59 (patch)
tree544c308d3e5e397b5b101968d617185e4cfdb291 /arch/s390/kernel/entry64.S
parent10cd706d180b62a61aace5b440247c8785026ac1 (diff)
lockdep: s390: connect the sysexit hook
Run the lockdep_sys_exit hook before returning to user space. Reviewed-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r--arch/s390/kernel/entry64.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index 9c0d5cc8269d..05e26d1fdf40 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -66,9 +66,14 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \
66 .macro TRACE_IRQS_OFF 66 .macro TRACE_IRQS_OFF
67 brasl %r14,trace_hardirqs_off 67 brasl %r14,trace_hardirqs_off
68 .endm 68 .endm
69
70 .macro LOCKDEP_SYS_EXIT
71 brasl %r14,lockdep_sys_exit
72 .endm
69#else 73#else
70#define TRACE_IRQS_ON 74#define TRACE_IRQS_ON
71#define TRACE_IRQS_OFF 75#define TRACE_IRQS_OFF
76#define LOCKDEP_SYS_EXIT
72#endif 77#endif
73 78
74 .macro STORE_TIMER lc_offset 79 .macro STORE_TIMER lc_offset
@@ -255,6 +260,7 @@ sysc_return:
255 jno sysc_leave 260 jno sysc_leave
256 tm __TI_flags+7(%r9),_TIF_WORK_SVC 261 tm __TI_flags+7(%r9),_TIF_WORK_SVC
257 jnz sysc_work # there is work to do (signals etc.) 262 jnz sysc_work # there is work to do (signals etc.)
263 LOCKDEP_SYS_EXIT
258sysc_leave: 264sysc_leave:
259 RESTORE_ALL __LC_RETURN_PSW,1 265 RESTORE_ALL __LC_RETURN_PSW,1
260 266
@@ -278,6 +284,7 @@ sysc_work:
278 jo sysc_restart 284 jo sysc_restart
279 tm __TI_flags+7(%r9),_TIF_SINGLE_STEP 285 tm __TI_flags+7(%r9),_TIF_SINGLE_STEP
280 jo sysc_singlestep 286 jo sysc_singlestep
287 LOCKDEP_SYS_EXIT
281 j sysc_leave 288 j sysc_leave
282 289
283# 290#
@@ -558,6 +565,7 @@ io_return:
558#endif 565#endif
559 tm __TI_flags+7(%r9),_TIF_WORK_INT 566 tm __TI_flags+7(%r9),_TIF_WORK_INT
560 jnz io_work # there is work to do (signals etc.) 567 jnz io_work # there is work to do (signals etc.)
568 LOCKDEP_SYS_EXIT
561io_leave: 569io_leave:
562 RESTORE_ALL __LC_RETURN_PSW,0 570 RESTORE_ALL __LC_RETURN_PSW,0
563io_done: 571io_done:
@@ -605,6 +613,7 @@ io_work_loop:
605 jo io_reschedule 613 jo io_reschedule
606 tm __TI_flags+7(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK) 614 tm __TI_flags+7(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
607 jnz io_sigpending 615 jnz io_sigpending
616 LOCKDEP_SYS_EXIT
608 j io_leave 617 j io_leave
609 618
610# 619#