diff options
Diffstat (limited to 'arch/s390/kernel/setup.c')
-rw-r--r-- | arch/s390/kernel/setup.c | 103 |
1 files changed, 1 insertions, 102 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index cbdf3fb05e81..fcebf645618a 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -126,75 +126,6 @@ void __cpuinit cpu_init(void) | |||
126 | } | 126 | } |
127 | 127 | ||
128 | /* | 128 | /* |
129 | * VM halt and poweroff setup routines | ||
130 | */ | ||
131 | char vmhalt_cmd[128] = ""; | ||
132 | char vmpoff_cmd[128] = ""; | ||
133 | static char vmpanic_cmd[128] = ""; | ||
134 | |||
135 | static void strncpy_skip_quote(char *dst, char *src, int n) | ||
136 | { | ||
137 | int sx, dx; | ||
138 | |||
139 | dx = 0; | ||
140 | for (sx = 0; src[sx] != 0; sx++) { | ||
141 | if (src[sx] == '"') continue; | ||
142 | dst[dx++] = src[sx]; | ||
143 | if (dx >= n) break; | ||
144 | } | ||
145 | } | ||
146 | |||
147 | static int __init vmhalt_setup(char *str) | ||
148 | { | ||
149 | strncpy_skip_quote(vmhalt_cmd, str, 127); | ||
150 | vmhalt_cmd[127] = 0; | ||
151 | return 1; | ||
152 | } | ||
153 | |||
154 | __setup("vmhalt=", vmhalt_setup); | ||
155 | |||
156 | static int __init vmpoff_setup(char *str) | ||
157 | { | ||
158 | strncpy_skip_quote(vmpoff_cmd, str, 127); | ||
159 | vmpoff_cmd[127] = 0; | ||
160 | return 1; | ||
161 | } | ||
162 | |||
163 | __setup("vmpoff=", vmpoff_setup); | ||
164 | |||
165 | static int vmpanic_notify(struct notifier_block *self, unsigned long event, | ||
166 | void *data) | ||
167 | { | ||
168 | if (MACHINE_IS_VM && strlen(vmpanic_cmd) > 0) | ||
169 | cpcmd(vmpanic_cmd, NULL, 0, NULL); | ||
170 | |||
171 | return NOTIFY_OK; | ||
172 | } | ||
173 | |||
174 | #define PANIC_PRI_VMPANIC 0 | ||
175 | |||
176 | static struct notifier_block vmpanic_nb = { | ||
177 | .notifier_call = vmpanic_notify, | ||
178 | .priority = PANIC_PRI_VMPANIC | ||
179 | }; | ||
180 | |||
181 | static int __init vmpanic_setup(char *str) | ||
182 | { | ||
183 | static int register_done __initdata = 0; | ||
184 | |||
185 | strncpy_skip_quote(vmpanic_cmd, str, 127); | ||
186 | vmpanic_cmd[127] = 0; | ||
187 | if (!register_done) { | ||
188 | register_done = 1; | ||
189 | atomic_notifier_chain_register(&panic_notifier_list, | ||
190 | &vmpanic_nb); | ||
191 | } | ||
192 | return 1; | ||
193 | } | ||
194 | |||
195 | __setup("vmpanic=", vmpanic_setup); | ||
196 | |||
197 | /* | ||
198 | * condev= and conmode= setup parameter. | 129 | * condev= and conmode= setup parameter. |
199 | */ | 130 | */ |
200 | 131 | ||
@@ -308,38 +239,6 @@ static void __init setup_zfcpdump(unsigned int console_devno) | |||
308 | static inline void setup_zfcpdump(unsigned int console_devno) {} | 239 | static inline void setup_zfcpdump(unsigned int console_devno) {} |
309 | #endif /* CONFIG_ZFCPDUMP */ | 240 | #endif /* CONFIG_ZFCPDUMP */ |
310 | 241 | ||
311 | #ifdef CONFIG_SMP | ||
312 | void (*_machine_restart)(char *command) = machine_restart_smp; | ||
313 | void (*_machine_halt)(void) = machine_halt_smp; | ||
314 | void (*_machine_power_off)(void) = machine_power_off_smp; | ||
315 | #else | ||
316 | /* | ||
317 | * Reboot, halt and power_off routines for non SMP. | ||
318 | */ | ||
319 | static void do_machine_restart_nonsmp(char * __unused) | ||
320 | { | ||
321 | do_reipl(); | ||
322 | } | ||
323 | |||
324 | static void do_machine_halt_nonsmp(void) | ||
325 | { | ||
326 | if (MACHINE_IS_VM && strlen(vmhalt_cmd) > 0) | ||
327 | __cpcmd(vmhalt_cmd, NULL, 0, NULL); | ||
328 | signal_processor(smp_processor_id(), sigp_stop_and_store_status); | ||
329 | } | ||
330 | |||
331 | static void do_machine_power_off_nonsmp(void) | ||
332 | { | ||
333 | if (MACHINE_IS_VM && strlen(vmpoff_cmd) > 0) | ||
334 | __cpcmd(vmpoff_cmd, NULL, 0, NULL); | ||
335 | signal_processor(smp_processor_id(), sigp_stop_and_store_status); | ||
336 | } | ||
337 | |||
338 | void (*_machine_restart)(char *command) = do_machine_restart_nonsmp; | ||
339 | void (*_machine_halt)(void) = do_machine_halt_nonsmp; | ||
340 | void (*_machine_power_off)(void) = do_machine_power_off_nonsmp; | ||
341 | #endif | ||
342 | |||
343 | /* | 242 | /* |
344 | * Reboot, halt and power_off stubs. They just call _machine_restart, | 243 | * Reboot, halt and power_off stubs. They just call _machine_restart, |
345 | * _machine_halt or _machine_power_off. | 244 | * _machine_halt or _machine_power_off. |
@@ -913,7 +812,7 @@ setup_arch(char **cmdline_p) | |||
913 | 812 | ||
914 | parse_early_param(); | 813 | parse_early_param(); |
915 | 814 | ||
916 | setup_ipl_info(); | 815 | setup_ipl(); |
917 | setup_memory_end(); | 816 | setup_memory_end(); |
918 | setup_addressing_mode(); | 817 | setup_addressing_mode(); |
919 | setup_memory(); | 818 | setup_memory(); |