aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/entry64.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r--arch/s390/kernel/entry64.S35
1 files changed, 12 insertions, 23 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index ab596a865300..7a0fd426ca92 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -9,8 +9,8 @@
9 * Heiko Carstens <heiko.carstens@de.ibm.com> 9 * Heiko Carstens <heiko.carstens@de.ibm.com>
10 */ 10 */
11 11
12#include <linux/linkage.h>
13#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/linkage.h>
14#include <asm/cache.h> 14#include <asm/cache.h>
15#include <asm/errno.h> 15#include <asm/errno.h>
16#include <asm/ptrace.h> 16#include <asm/ptrace.h>
@@ -219,8 +219,7 @@ _TIF_EXIT_SIE = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING)
219 * Returns: 219 * Returns:
220 * gpr2 = prev 220 * gpr2 = prev
221 */ 221 */
222 .globl __switch_to 222ENTRY(__switch_to)
223__switch_to:
224 lg %r4,__THREAD_info(%r2) # get thread_info of prev 223 lg %r4,__THREAD_info(%r2) # get thread_info of prev
225 lg %r5,__THREAD_info(%r3) # get thread_info of next 224 lg %r5,__THREAD_info(%r3) # get thread_info of next
226 tm __TI_flags+7(%r4),_TIF_MCCK_PENDING # machine check pending? 225 tm __TI_flags+7(%r4),_TIF_MCCK_PENDING # machine check pending?
@@ -245,8 +244,7 @@ __critical_start:
245 * are executed with interrupts enabled. 244 * are executed with interrupts enabled.
246 */ 245 */
247 246
248 .globl system_call 247ENTRY(system_call)
249system_call:
250 stpt __LC_SYNC_ENTER_TIMER 248 stpt __LC_SYNC_ENTER_TIMER
251sysc_saveall: 249sysc_saveall:
252 SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA 250 SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA
@@ -408,8 +406,7 @@ sysc_tracenogo:
408# 406#
409# a new process exits the kernel with ret_from_fork 407# a new process exits the kernel with ret_from_fork
410# 408#
411 .globl ret_from_fork 409ENTRY(ret_from_fork)
412ret_from_fork:
413 lg %r13,__LC_SVC_NEW_PSW+8 410 lg %r13,__LC_SVC_NEW_PSW+8
414 lg %r12,__LC_THREAD_INFO # load pointer to thread_info struct 411 lg %r12,__LC_THREAD_INFO # load pointer to thread_info struct
415 tm SP_PSW+1(%r15),0x01 # forking a kernel thread ? 412 tm SP_PSW+1(%r15),0x01 # forking a kernel thread ?
@@ -424,8 +421,7 @@ ret_from_fork:
424# kernel_execve function needs to deal with pt_regs that is not 421# kernel_execve function needs to deal with pt_regs that is not
425# at the usual place 422# at the usual place
426# 423#
427 .globl kernel_execve 424ENTRY(kernel_execve)
428kernel_execve:
429 stmg %r12,%r15,96(%r15) 425 stmg %r12,%r15,96(%r15)
430 lgr %r14,%r15 426 lgr %r14,%r15
431 aghi %r15,-SP_SIZE 427 aghi %r15,-SP_SIZE
@@ -455,8 +451,7 @@ kernel_execve:
455 * Program check handler routine 451 * Program check handler routine
456 */ 452 */
457 453
458 .globl pgm_check_handler 454ENTRY(pgm_check_handler)
459pgm_check_handler:
460/* 455/*
461 * First we need to check for a special case: 456 * First we need to check for a special case:
462 * Single stepping an instruction that disables the PER event mask will 457 * Single stepping an instruction that disables the PER event mask will
@@ -584,8 +579,7 @@ kernel_per:
584/* 579/*
585 * IO interrupt handler routine 580 * IO interrupt handler routine
586 */ 581 */
587 .globl io_int_handler 582ENTRY(io_int_handler)
588io_int_handler:
589 stck __LC_INT_CLOCK 583 stck __LC_INT_CLOCK
590 stpt __LC_ASYNC_ENTER_TIMER 584 stpt __LC_ASYNC_ENTER_TIMER
591 SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+40 585 SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+40
@@ -719,8 +713,7 @@ io_notify_resume:
719/* 713/*
720 * External interrupt handler routine 714 * External interrupt handler routine
721 */ 715 */
722 .globl ext_int_handler 716ENTRY(ext_int_handler)
723ext_int_handler:
724 stck __LC_INT_CLOCK 717 stck __LC_INT_CLOCK
725 stpt __LC_ASYNC_ENTER_TIMER 718 stpt __LC_ASYNC_ENTER_TIMER
726 SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+40 719 SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+40
@@ -749,8 +742,7 @@ __critical_end:
749/* 742/*
750 * Machine check handler routines 743 * Machine check handler routines
751 */ 744 */
752 .globl mcck_int_handler 745ENTRY(mcck_int_handler)
753mcck_int_handler:
754 stck __LC_MCCK_CLOCK 746 stck __LC_MCCK_CLOCK
755 la %r1,4095 # revalidate r1 747 la %r1,4095 # revalidate r1
756 spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # revalidate cpu timer 748 spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # revalidate cpu timer
@@ -836,8 +828,7 @@ mcck_done:
836 */ 828 */
837#ifdef CONFIG_SMP 829#ifdef CONFIG_SMP
838 __CPUINIT 830 __CPUINIT
839 .globl restart_int_handler 831ENTRY(restart_int_handler)
840restart_int_handler:
841 basr %r1,0 832 basr %r1,0
842restart_base: 833restart_base:
843 spt restart_vtime-restart_base(%r1) 834 spt restart_vtime-restart_base(%r1)
@@ -864,8 +855,7 @@ restart_vtime:
864/* 855/*
865 * If we do not run with SMP enabled, let the new CPU crash ... 856 * If we do not run with SMP enabled, let the new CPU crash ...
866 */ 857 */
867 .globl restart_int_handler 858ENTRY(restart_int_handler)
868restart_int_handler:
869 basr %r1,0 859 basr %r1,0
870restart_base: 860restart_base:
871 lpswe restart_crash-restart_base(%r1) 861 lpswe restart_crash-restart_base(%r1)
@@ -1055,8 +1045,7 @@ cleanup_io_restore_insn:
1055 * %r2 pointer to sie control block 1045 * %r2 pointer to sie control block
1056 * %r3 guest register save area 1046 * %r3 guest register save area
1057 */ 1047 */
1058 .globl sie64a 1048ENTRY(sie64a)
1059sie64a:
1060 stmg %r6,%r14,__SF_GPRS(%r15) # save kernel registers 1049 stmg %r6,%r14,__SF_GPRS(%r15) # save kernel registers
1061 stg %r2,__SF_EMPTY(%r15) # save control block pointer 1050 stg %r2,__SF_EMPTY(%r15) # save control block pointer
1062 stg %r3,__SF_EMPTY+8(%r15) # save guest register save area 1051 stg %r3,__SF_EMPTY+8(%r15) # save guest register save area