aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/relocate_kernel.S
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2011-07-24 04:48:19 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-07-24 04:48:21 -0400
commit144d634a21caff1d54cb4bb0d073774e88130045 (patch)
tree9eea288248189b899ee85ba346cf344e57dd402a /arch/s390/kernel/relocate_kernel.S
parent603d1a50acf252621a3598618b018b8123aaba64 (diff)
[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>
Diffstat (limited to 'arch/s390/kernel/relocate_kernel.S')
-rw-r--r--arch/s390/kernel/relocate_kernel.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/s390/kernel/relocate_kernel.S b/arch/s390/kernel/relocate_kernel.S
index 3b456b80bcee..c91d70aede91 100644
--- a/arch/s390/kernel/relocate_kernel.S
+++ b/arch/s390/kernel/relocate_kernel.S
@@ -8,6 +8,8 @@
8 * 8 *
9 */ 9 */
10 10
11#include <linux/linkage.h>
12
11/* 13/*
12 * moves the new kernel to its destination... 14 * moves the new kernel to its destination...
13 * %r2 = pointer to first kimage_entry_t 15 * %r2 = pointer to first kimage_entry_t
@@ -22,8 +24,7 @@
22 */ 24 */
23 25
24 .text 26 .text
25 .globl relocate_kernel 27ENTRY(relocate_kernel)
26 relocate_kernel:
27 basr %r13,0 # base address 28 basr %r13,0 # base address
28 .base: 29 .base:
29 stnsm sys_msk-.base(%r13),0xfb # disable DAT 30 stnsm sys_msk-.base(%r13),0xfb # disable DAT
@@ -112,6 +113,7 @@
112 .byte 0 113 .byte 0
113 .align 8 114 .align 8
114 relocate_kernel_end: 115 relocate_kernel_end:
116 .align 8
115 .globl relocate_kernel_len 117 .globl relocate_kernel_len
116 relocate_kernel_len: 118 relocate_kernel_len:
117 .quad relocate_kernel_end - relocate_kernel 119 .quad relocate_kernel_end - relocate_kernel