diff options
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r-- | arch/s390/kernel/ipl.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 39badb9ca0b3..5c8651f36509 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -2074,7 +2074,8 @@ static void do_reset_calls(void) | |||
2074 | 2074 | ||
2075 | u32 dump_prefix_page; | 2075 | u32 dump_prefix_page; |
2076 | 2076 | ||
2077 | void s390_reset_system(void (*func)(void *), void *data) | 2077 | void s390_reset_system(void (*fn_pre)(void), |
2078 | void (*fn_post)(void *), void *data) | ||
2078 | { | 2079 | { |
2079 | struct _lowcore *lc; | 2080 | struct _lowcore *lc; |
2080 | 2081 | ||
@@ -2112,7 +2113,11 @@ void s390_reset_system(void (*func)(void *), void *data) | |||
2112 | /* Store status at absolute zero */ | 2113 | /* Store status at absolute zero */ |
2113 | store_status(); | 2114 | store_status(); |
2114 | 2115 | ||
2116 | /* Call function before reset */ | ||
2117 | if (fn_pre) | ||
2118 | fn_pre(); | ||
2115 | do_reset_calls(); | 2119 | do_reset_calls(); |
2116 | if (func) | 2120 | /* Call function after reset */ |
2117 | func(data); | 2121 | if (fn_post) |
2122 | fn_post(data); | ||
2118 | } | 2123 | } |