diff options
-rw-r--r-- | arch/s390/kernel/early.c | 4 | ||||
-rw-r--r-- | arch/s390/power/swsusp_asm64.S | 13 |
2 files changed, 10 insertions, 7 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index f9b144049dc9..8d15314381e0 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
@@ -210,7 +210,7 @@ static noinline __init void detect_machine_type(void) | |||
210 | machine_flags |= MACHINE_FLAG_VM; | 210 | machine_flags |= MACHINE_FLAG_VM; |
211 | } | 211 | } |
212 | 212 | ||
213 | static void early_pgm_check_handler(void) | 213 | static __init void early_pgm_check_handler(void) |
214 | { | 214 | { |
215 | unsigned long addr; | 215 | unsigned long addr; |
216 | const struct exception_table_entry *fixup; | 216 | const struct exception_table_entry *fixup; |
@@ -222,7 +222,7 @@ static void early_pgm_check_handler(void) | |||
222 | S390_lowcore.program_old_psw.addr = fixup->fixup | PSW_ADDR_AMODE; | 222 | S390_lowcore.program_old_psw.addr = fixup->fixup | PSW_ADDR_AMODE; |
223 | } | 223 | } |
224 | 224 | ||
225 | void setup_lowcore_early(void) | 225 | static noinline __init void setup_lowcore_early(void) |
226 | { | 226 | { |
227 | psw_t psw; | 227 | psw_t psw; |
228 | 228 | ||
diff --git a/arch/s390/power/swsusp_asm64.S b/arch/s390/power/swsusp_asm64.S index 76d688da32fa..e27bd3164897 100644 --- a/arch/s390/power/swsusp_asm64.S +++ b/arch/s390/power/swsusp_asm64.S | |||
@@ -40,11 +40,11 @@ swsusp_arch_suspend: | |||
40 | /* Store prefix register on stack */ | 40 | /* Store prefix register on stack */ |
41 | stpx __SF_EMPTY(%r15) | 41 | stpx __SF_EMPTY(%r15) |
42 | 42 | ||
43 | /* Setup base register for lowcore (absolute 0) */ | 43 | /* Save prefix register contents for lowcore */ |
44 | llgf %r1,__SF_EMPTY(%r15) | 44 | llgf %r4,__SF_EMPTY(%r15) |
45 | 45 | ||
46 | /* Get pointer to save area */ | 46 | /* Get pointer to save area */ |
47 | aghi %r1,0x1000 | 47 | lghi %r1,0x1000 |
48 | 48 | ||
49 | /* Store registers */ | 49 | /* Store registers */ |
50 | mvc 0x318(4,%r1),__SF_EMPTY(%r15) /* move prefix to lowcore */ | 50 | mvc 0x318(4,%r1),__SF_EMPTY(%r15) /* move prefix to lowcore */ |
@@ -79,8 +79,11 @@ swsusp_arch_suspend: | |||
79 | xc __SF_EMPTY(4,%r15),__SF_EMPTY(%r15) | 79 | xc __SF_EMPTY(4,%r15),__SF_EMPTY(%r15) |
80 | spx __SF_EMPTY(%r15) | 80 | spx __SF_EMPTY(%r15) |
81 | 81 | ||
82 | /* Setup lowcore */ | 82 | lghi %r2,0 |
83 | brasl %r14,setup_lowcore_early | 83 | lghi %r3,2*PAGE_SIZE |
84 | lghi %r5,2*PAGE_SIZE | ||
85 | 1: mvcle %r2,%r4,0 | ||
86 | jo 1b | ||
84 | 87 | ||
85 | /* Save image */ | 88 | /* Save image */ |
86 | brasl %r14,swsusp_save | 89 | brasl %r14,swsusp_save |