Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / arch / s390 / kernel / entry.S
index 5d40fce..f43d2ee 100644 (file)
@@ -278,7 +278,8 @@ sysc_return:
        bnz     BASED(sysc_work)  # there is work to do (signals etc.)
 sysc_restore:
 #ifdef CONFIG_TRACE_IRQFLAGS
-       la      %r1,BASED(sysc_restore_trace_psw)
+       la      %r1,BASED(sysc_restore_trace_psw_addr)
+       l       %r1,0(%r1)
        lpsw    0(%r1)
 sysc_restore_trace:
        TRACE_IRQS_CHECK
@@ -289,10 +290,15 @@ sysc_leave:
 sysc_done:
 
 #ifdef CONFIG_TRACE_IRQFLAGS
+sysc_restore_trace_psw_addr:
+       .long sysc_restore_trace_psw
+
+       .section .data,"aw",@progbits
        .align  8
        .globl  sysc_restore_trace_psw
 sysc_restore_trace_psw:
        .long   0, sysc_restore_trace + 0x80000000
+       .previous
 #endif
 
 #
@@ -606,7 +612,8 @@ io_return:
        bnz     BASED(io_work)          # there is work to do (signals etc.)
 io_restore:
 #ifdef CONFIG_TRACE_IRQFLAGS
-       la      %r1,BASED(io_restore_trace_psw)
+       la      %r1,BASED(io_restore_trace_psw_addr)
+       l       %r1,0(%r1)
        lpsw    0(%r1)
 io_restore_trace:
        TRACE_IRQS_CHECK
@@ -617,10 +624,15 @@ io_leave:
 io_done:
 
 #ifdef CONFIG_TRACE_IRQFLAGS
+io_restore_trace_psw_addr:
+       .long io_restore_trace_psw
+
+       .section .data,"aw",@progbits
        .align  8
        .globl  io_restore_trace_psw
 io_restore_trace_psw:
        .long   0, io_restore_trace + 0x80000000
+       .previous
 #endif
 
 #