Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

+8 -15
+2 -8
arch/s390/include/asm/lowcore.h
··· 152 152 __u32 ipib; /* 0x0e00 */ 153 153 __u32 ipib_checksum; /* 0x0e04 */ 154 154 __u32 vmcore_info; /* 0x0e08 */ 155 - 156 - /* 64 bit save area */ 157 - __u64 save_area_64; /* 0x0e0c */ 158 - __u8 pad_0x0e14[0x0f00-0x0e14]; /* 0x0e14 */ 155 + __u8 pad_0x0e0c[0x0f00-0x0e0c]; /* 0x0e0c */ 159 156 160 157 /* Extended facility list */ 161 158 __u64 stfle_fac_list[32]; /* 0x0f00 */ ··· 289 292 __u64 ipib; /* 0x0e00 */ 290 293 __u32 ipib_checksum; /* 0x0e08 */ 291 294 __u64 vmcore_info; /* 0x0e0c */ 292 - 293 - /* 64 bit save area */ 294 - __u64 save_area_64; /* 0x0e14 */ 295 - __u8 pad_0x0e1c[0x0f00-0x0e1c]; /* 0x0e1c */ 295 + __u8 pad_0x0e14[0x0f00-0x0e14]; /* 0x0e14 */ 296 296 297 297 /* Extended facility list */ 298 298 __u64 stfle_fac_list[32]; /* 0x0f00 */
-1
arch/s390/kernel/asm-offsets.c
··· 141 141 DEFINE(__LC_FPREGS_SAVE_AREA, offsetof(struct _lowcore, floating_pt_save_area)); 142 142 DEFINE(__LC_GPREGS_SAVE_AREA, offsetof(struct _lowcore, gpregs_save_area)); 143 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 144 #ifdef CONFIG_32BIT 146 145 DEFINE(SAVE_AREA_BASE, offsetof(struct _lowcore, extended_save_area_addr)); 147 146 #else /* CONFIG_32BIT */
+2 -2
arch/s390/kernel/entry.S
··· 853 853 # PSW restart interrupt handler 854 854 # 855 855 ENTRY(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 857 basr %r15,0 858 858 0: l %r15,.Lrestart_stack-0b(%r15) # load restart stack 859 859 l %r15,0(%r15) 860 860 ahi %r15,-SP_SIZE # make room for pt_regs 861 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 863 mvc SP_PSW(8,%r15),__LC_RST_OLD_PSW(%r0) # store restart old psw 864 864 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) # set backchain to 0 865 865 basr %r14,0
+2 -2
arch/s390/kernel/entry64.S
··· 869 869 # PSW restart interrupt handler 870 870 # 871 871 ENTRY(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 873 larl %r15,restart_stack # load restart stack 874 874 lg %r15,0(%r15) 875 875 aghi %r15,-SP_SIZE # make room for pt_regs 876 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 878 mvc SP_PSW(16,%r15),__LC_RST_OLD_PSW(%r0)# store restart old psw 879 879 xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) # set backchain to 0 880 880 brasl %r14,do_restart
+2 -2
arch/s390/kernel/reipl64.S
··· 17 17 # 18 18 ENTRY(store_status) 19 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 21 lghi %r1,SAVE_AREA_BASE 22 22 /* General purpose registers */ 23 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 25 stg %r2,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE+8(%r1) 26 26 /* Control registers */ 27 27 stctg %c0,%c15,__LC_CREGS_SAVE_AREA-SAVE_AREA_BASE(%r1)