diff options
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r-- | arch/s390/kernel/entry64.S | 35 |
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 | 222 | ENTRY(__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 | 247 | ENTRY(system_call) |
249 | system_call: | ||
250 | stpt __LC_SYNC_ENTER_TIMER | 248 | stpt __LC_SYNC_ENTER_TIMER |
251 | sysc_saveall: | 249 | sysc_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 | 409 | ENTRY(ret_from_fork) |
412 | ret_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 | 424 | ENTRY(kernel_execve) |
428 | kernel_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 | 454 | ENTRY(pgm_check_handler) |
459 | pgm_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 | 582 | ENTRY(io_int_handler) |
588 | io_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 | 716 | ENTRY(ext_int_handler) |
723 | ext_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 | 745 | ENTRY(mcck_int_handler) |
753 | mcck_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 | 831 | ENTRY(restart_int_handler) |
840 | restart_int_handler: | ||
841 | basr %r1,0 | 832 | basr %r1,0 |
842 | restart_base: | 833 | restart_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 | 858 | ENTRY(restart_int_handler) |
868 | restart_int_handler: | ||
869 | basr %r1,0 | 859 | basr %r1,0 |
870 | restart_base: | 860 | restart_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 | 1048 | ENTRY(sie64a) |
1059 | sie64a: | ||
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 |