aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2011-10-30 10:16:45 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-10-30 10:16:42 -0400
commit0edc8faa769095e98a5a5adc28db982f99f0d663 (patch)
tree61828b450ece8375d58ba1279ccb0aaaa74e0c52 /arch
parentdab7a7b1538fec48790a321a58180adae79a3f3c (diff)
[S390] lowcore cleanup
Remove the save_area_64 field from the 0xe00 - 0xf00 area in the lowcore. Use a free slot in the save_area array instead. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/include/asm/lowcore.h10
-rw-r--r--arch/s390/kernel/asm-offsets.c1
-rw-r--r--arch/s390/kernel/entry.S4
-rw-r--r--arch/s390/kernel/entry64.S4
-rw-r--r--arch/s390/kernel/reipl64.S4
5 files changed, 8 insertions, 15 deletions
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h
index 4f990a5e5b59..9e13c7d56cc1 100644
--- a/arch/s390/include/asm/lowcore.h
+++ b/arch/s390/include/asm/lowcore.h
@@ -152,10 +152,7 @@ struct _lowcore {
152 __u32 ipib; /* 0x0e00 */ 152 __u32 ipib; /* 0x0e00 */
153 __u32 ipib_checksum; /* 0x0e04 */ 153 __u32 ipib_checksum; /* 0x0e04 */
154 __u32 vmcore_info; /* 0x0e08 */ 154 __u32 vmcore_info; /* 0x0e08 */
155 155 __u8 pad_0x0e0c[0x0f00-0x0e0c]; /* 0x0e0c */
156 /* 64 bit save area */
157 __u64 save_area_64; /* 0x0e0c */
158 __u8 pad_0x0e14[0x0f00-0x0e14]; /* 0x0e14 */
159 156
160 /* Extended facility list */ 157 /* Extended facility list */
161 __u64 stfle_fac_list[32]; /* 0x0f00 */ 158 __u64 stfle_fac_list[32]; /* 0x0f00 */
@@ -292,10 +289,7 @@ struct _lowcore {
292 __u64 ipib; /* 0x0e00 */ 289 __u64 ipib; /* 0x0e00 */
293 __u32 ipib_checksum; /* 0x0e08 */ 290 __u32 ipib_checksum; /* 0x0e08 */
294 __u64 vmcore_info; /* 0x0e0c */ 291 __u64 vmcore_info; /* 0x0e0c */
295 292 __u8 pad_0x0e14[0x0f00-0x0e14]; /* 0x0e14 */
296 /* 64 bit save area */
297 __u64 save_area_64; /* 0x0e14 */
298 __u8 pad_0x0e1c[0x0f00-0x0e1c]; /* 0x0e1c */
299 293
300 /* Extended facility list */ 294 /* Extended facility list */
301 __u64 stfle_fac_list[32]; /* 0x0f00 */ 295 __u64 stfle_fac_list[32]; /* 0x0f00 */
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index 2b45591e1582..1140035b1cd8 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -141,7 +141,6 @@ int main(void)
141 DEFINE(__LC_FPREGS_SAVE_AREA, offsetof(struct _lowcore, floating_pt_save_area)); 141 DEFINE(__LC_FPREGS_SAVE_AREA, offsetof(struct _lowcore, floating_pt_save_area));
142 DEFINE(__LC_GPREGS_SAVE_AREA, offsetof(struct _lowcore, gpregs_save_area)); 142 DEFINE(__LC_GPREGS_SAVE_AREA, offsetof(struct _lowcore, gpregs_save_area));
143 DEFINE(__LC_CREGS_SAVE_AREA, offsetof(struct _lowcore, cregs_save_area)); 143 DEFINE(__LC_CREGS_SAVE_AREA, offsetof(struct _lowcore, cregs_save_area));
144 DEFINE(__LC_SAVE_AREA_64, offsetof(struct _lowcore, save_area_64));
145#ifdef CONFIG_32BIT 144#ifdef CONFIG_32BIT
146 DEFINE(SAVE_AREA_BASE, offsetof(struct _lowcore, extended_save_area_addr)); 145 DEFINE(SAVE_AREA_BASE, offsetof(struct _lowcore, extended_save_area_addr));
147#else /* CONFIG_32BIT */ 146#else /* CONFIG_32BIT */
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 02ec8fe7d03f..195387ab7c98 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -853,13 +853,13 @@ restart_go:
853# PSW restart interrupt handler 853# PSW restart interrupt handler
854# 854#
855ENTRY(psw_restart_int_handler) 855ENTRY(psw_restart_int_handler)
856 st %r15,__LC_SAVE_AREA_64(%r0) # save r15 856 st %r15,__LC_SAVE_AREA+48(%r0) # save r15
857 basr %r15,0 857 basr %r15,0
8580: l %r15,.Lrestart_stack-0b(%r15) # load restart stack 8580: l %r15,.Lrestart_stack-0b(%r15) # load restart stack
859 l %r15,0(%r15) 859 l %r15,0(%r15)
860 ahi %r15,-SP_SIZE # make room for pt_regs 860 ahi %r15,-SP_SIZE # make room for pt_regs
861 stm %r0,%r14,SP_R0(%r15) # store gprs %r0-%r14 to stack 861 stm %r0,%r14,SP_R0(%r15) # store gprs %r0-%r14 to stack
862 mvc SP_R15(4,%r15),__LC_SAVE_AREA_64(%r0)# store saved %r15 to stack 862 mvc SP_R15(4,%r15),__LC_SAVE_AREA+48(%r0)# store saved %r15 to stack
863 mvc SP_PSW(8,%r15),__LC_RST_OLD_PSW(%r0) # store restart old psw 863 mvc SP_PSW(8,%r15),__LC_RST_OLD_PSW(%r0) # store restart old psw
864 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) # set backchain to 0 864 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) # set backchain to 0
865 basr %r14,0 865 basr %r14,0
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index 713da0760538..3257f7f55551 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -869,12 +869,12 @@ restart_go:
869# PSW restart interrupt handler 869# PSW restart interrupt handler
870# 870#
871ENTRY(psw_restart_int_handler) 871ENTRY(psw_restart_int_handler)
872 stg %r15,__LC_SAVE_AREA_64(%r0) # save r15 872 stg %r15,__LC_SAVE_AREA+120(%r0) # save r15
873 larl %r15,restart_stack # load restart stack 873 larl %r15,restart_stack # load restart stack
874 lg %r15,0(%r15) 874 lg %r15,0(%r15)
875 aghi %r15,-SP_SIZE # make room for pt_regs 875 aghi %r15,-SP_SIZE # make room for pt_regs
876 stmg %r0,%r14,SP_R0(%r15) # store gprs %r0-%r14 to stack 876 stmg %r0,%r14,SP_R0(%r15) # store gprs %r0-%r14 to stack
877 mvc SP_R15(8,%r15),__LC_SAVE_AREA_64(%r0)# store saved %r15 to stack 877 mvc SP_R15(8,%r15),__LC_SAVE_AREA+120(%r0)# store saved %r15 to stack
878 mvc SP_PSW(16,%r15),__LC_RST_OLD_PSW(%r0)# store restart old psw 878 mvc SP_PSW(16,%r15),__LC_RST_OLD_PSW(%r0)# store restart old psw
879 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) # set backchain to 0 879 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) # set backchain to 0
880 brasl %r14,do_restart 880 brasl %r14,do_restart
diff --git a/arch/s390/kernel/reipl64.S b/arch/s390/kernel/reipl64.S
index a0f5b686a3cd..732a793ec53a 100644
--- a/arch/s390/kernel/reipl64.S
+++ b/arch/s390/kernel/reipl64.S
@@ -17,11 +17,11 @@
17# 17#
18ENTRY(store_status) 18ENTRY(store_status)
19 /* Save register one and load save area base */ 19 /* Save register one and load save area base */
20 stg %r1,__LC_SAVE_AREA_64(%r0) 20 stg %r1,__LC_SAVE_AREA+120(%r0)
21 lghi %r1,SAVE_AREA_BASE 21 lghi %r1,SAVE_AREA_BASE
22 /* General purpose registers */ 22 /* General purpose registers */
23 stmg %r0,%r15,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 23 stmg %r0,%r15,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1)
24 lg %r2,__LC_SAVE_AREA_64(%r0) 24 lg %r2,__LC_SAVE_AREA+120(%r0)
25 stg %r2,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE+8(%r1) 25 stg %r2,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE+8(%r1)
26 /* Control registers */ 26 /* Control registers */
27 stctg %c0,%c15,__LC_CREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 27 stctg %c0,%c15,__LC_CREGS_SAVE_AREA-SAVE_AREA_BASE(%r1)