.. | .. |
---|
15 | 15 | #include <linux/sched/task_stack.h> |
---|
16 | 16 | #include <linux/init.h> |
---|
17 | 17 | #include <linux/export.h> |
---|
| 18 | +#include <linux/kexec.h> |
---|
18 | 19 | |
---|
19 | 20 | #include <asm/mmu_context.h> |
---|
20 | 21 | #include <asm/time.h> |
---|
.. | .. |
---|
283 | 284 | #ifdef CONFIG_HOTPLUG_CPU |
---|
284 | 285 | |
---|
285 | 286 | /* State of each CPU. */ |
---|
286 | | -DEFINE_PER_CPU(int, cpu_state); |
---|
| 287 | +static DEFINE_PER_CPU(int, cpu_state); |
---|
287 | 288 | |
---|
288 | 289 | static int octeon_cpu_disable(void) |
---|
289 | 290 | { |
---|
.. | .. |
---|
412 | 413 | |
---|
413 | 414 | #endif /* CONFIG_HOTPLUG_CPU */ |
---|
414 | 415 | |
---|
415 | | -const struct plat_smp_ops octeon_smp_ops = { |
---|
| 416 | +static const struct plat_smp_ops octeon_smp_ops = { |
---|
416 | 417 | .send_ipi_single = octeon_send_ipi_single, |
---|
417 | 418 | .send_ipi_mask = octeon_send_ipi_mask, |
---|
418 | 419 | .init_secondary = octeon_init_secondary, |
---|
.. | .. |
---|
423 | 424 | #ifdef CONFIG_HOTPLUG_CPU |
---|
424 | 425 | .cpu_disable = octeon_cpu_disable, |
---|
425 | 426 | .cpu_die = octeon_cpu_die, |
---|
| 427 | +#endif |
---|
| 428 | +#ifdef CONFIG_KEXEC |
---|
| 429 | + .kexec_nonboot_cpu = kexec_nonboot_cpu_jump, |
---|
426 | 430 | #endif |
---|
427 | 431 | }; |
---|
428 | 432 | |
---|
.. | .. |
---|
501 | 505 | .cpu_disable = octeon_cpu_disable, |
---|
502 | 506 | .cpu_die = octeon_cpu_die, |
---|
503 | 507 | #endif |
---|
| 508 | +#ifdef CONFIG_KEXEC |
---|
| 509 | + .kexec_nonboot_cpu = kexec_nonboot_cpu_jump, |
---|
| 510 | +#endif |
---|
504 | 511 | }; |
---|
505 | 512 | |
---|
506 | 513 | void __init octeon_setup_smp(void) |
---|