[S390] fix s390 assembler code alignments
The alignment is missing for various global symbols in s390 assembly code. With a recent gcc and an instruction like stgrl this can lead to a specification exception if the instruction uses such a mis-aligned address. Specify the alignment explicitely and while add it define __ALIGN for s390 and use the ENTRY define to save some lines of code. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:

committed by
Martin Schwidefsky

parent
603d1a50ac
commit
144d634a21
@@ -9,8 +9,8 @@
|
||||
* Heiko Carstens <heiko.carstens@de.ibm.com>
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/ptrace.h>
|
||||
@@ -197,8 +197,7 @@ STACK_SIZE = 1 << STACK_SHIFT
|
||||
* Returns:
|
||||
* gpr2 = prev
|
||||
*/
|
||||
.globl __switch_to
|
||||
__switch_to:
|
||||
ENTRY(__switch_to)
|
||||
basr %r1,0
|
||||
0: l %r4,__THREAD_info(%r2) # get thread_info of prev
|
||||
l %r5,__THREAD_info(%r3) # get thread_info of next
|
||||
@@ -224,8 +223,7 @@ __critical_start:
|
||||
* are executed with interrupts enabled.
|
||||
*/
|
||||
|
||||
.globl system_call
|
||||
system_call:
|
||||
ENTRY(system_call)
|
||||
stpt __LC_SYNC_ENTER_TIMER
|
||||
sysc_saveall:
|
||||
SAVE_ALL_SVC __LC_SVC_OLD_PSW,__LC_SAVE_AREA
|
||||
@@ -388,8 +386,7 @@ sysc_tracenogo:
|
||||
#
|
||||
# a new process exits the kernel with ret_from_fork
|
||||
#
|
||||
.globl ret_from_fork
|
||||
ret_from_fork:
|
||||
ENTRY(ret_from_fork)
|
||||
l %r13,__LC_SVC_NEW_PSW+4
|
||||
l %r12,__LC_THREAD_INFO # load pointer to thread_info struct
|
||||
tm SP_PSW+1(%r15),0x01 # forking a kernel thread ?
|
||||
@@ -405,8 +402,7 @@ ret_from_fork:
|
||||
# kernel_execve function needs to deal with pt_regs that is not
|
||||
# at the usual place
|
||||
#
|
||||
.globl kernel_execve
|
||||
kernel_execve:
|
||||
ENTRY(kernel_execve)
|
||||
stm %r12,%r15,48(%r15)
|
||||
lr %r14,%r15
|
||||
l %r13,__LC_SVC_NEW_PSW+4
|
||||
@@ -438,8 +434,7 @@ kernel_execve:
|
||||
* Program check handler routine
|
||||
*/
|
||||
|
||||
.globl pgm_check_handler
|
||||
pgm_check_handler:
|
||||
ENTRY(pgm_check_handler)
|
||||
/*
|
||||
* First we need to check for a special case:
|
||||
* Single stepping an instruction that disables the PER event mask will
|
||||
@@ -565,8 +560,7 @@ kernel_per:
|
||||
* IO interrupt handler routine
|
||||
*/
|
||||
|
||||
.globl io_int_handler
|
||||
io_int_handler:
|
||||
ENTRY(io_int_handler)
|
||||
stck __LC_INT_CLOCK
|
||||
stpt __LC_ASYNC_ENTER_TIMER
|
||||
SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+16
|
||||
@@ -703,8 +697,7 @@ io_notify_resume:
|
||||
* External interrupt handler routine
|
||||
*/
|
||||
|
||||
.globl ext_int_handler
|
||||
ext_int_handler:
|
||||
ENTRY(ext_int_handler)
|
||||
stck __LC_INT_CLOCK
|
||||
stpt __LC_ASYNC_ENTER_TIMER
|
||||
SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16
|
||||
@@ -731,8 +724,7 @@ __critical_end:
|
||||
* Machine check handler routines
|
||||
*/
|
||||
|
||||
.globl mcck_int_handler
|
||||
mcck_int_handler:
|
||||
ENTRY(mcck_int_handler)
|
||||
stck __LC_MCCK_CLOCK
|
||||
spt __LC_CPU_TIMER_SAVE_AREA # revalidate cpu timer
|
||||
lm %r0,%r15,__LC_GPREGS_SAVE_AREA # revalidate gprs
|
||||
@@ -818,8 +810,7 @@ mcck_return:
|
||||
*/
|
||||
#ifdef CONFIG_SMP
|
||||
__CPUINIT
|
||||
.globl restart_int_handler
|
||||
restart_int_handler:
|
||||
ENTRY(restart_int_handler)
|
||||
basr %r1,0
|
||||
restart_base:
|
||||
spt restart_vtime-restart_base(%r1)
|
||||
@@ -848,8 +839,7 @@ restart_vtime:
|
||||
/*
|
||||
* If we do not run with SMP enabled, let the new CPU crash ...
|
||||
*/
|
||||
.globl restart_int_handler
|
||||
restart_int_handler:
|
||||
ENTRY(restart_int_handler)
|
||||
basr %r1,0
|
||||
restart_base:
|
||||
lpsw restart_crash-restart_base(%r1)
|
||||
|
Reference in New Issue
Block a user