diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2012-10-11 12:14:58 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-12-13 10:46:47 -0500 |
commit | 7aa1c8f47e7e792d11f898cbdddaf6fa21ff08cc (patch) | |
tree | e34986c087ab7a9f91c8303eda7f13736e315905 /arch/mips/kernel/smp.c | |
parent | 98cdee0eae861e8d25c147a72c5f309e883f4ed8 (diff) |
MIPS: kdump: Add support
[ralf@linux-mips.org: Original patch by Maxim Uvarov <muvarov@gmail.com>
with plenty of further shining, polishing, debugging and testing by me.]
Signed-off-by: Maxim Uvarov <muvarov@gmail.com>
Cc: linux-mips@linux-mips.org
Cc: kexec@lists.infradead.org
Cc: horms@verge.net.au
Patchwork: https://patchwork.linux-mips.org/patch/1025/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/smp.c')
-rw-r--r-- | arch/mips/kernel/smp.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 9005bf9fb859..2e6374a589ec 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -386,3 +386,20 @@ void flush_tlb_one(unsigned long vaddr) | |||
386 | 386 | ||
387 | EXPORT_SYMBOL(flush_tlb_page); | 387 | EXPORT_SYMBOL(flush_tlb_page); |
388 | EXPORT_SYMBOL(flush_tlb_one); | 388 | EXPORT_SYMBOL(flush_tlb_one); |
389 | |||
390 | #if defined(CONFIG_KEXEC) | ||
391 | void (*dump_ipi_function_ptr)(void *) = NULL; | ||
392 | void dump_send_ipi(void (*dump_ipi_callback)(void *)) | ||
393 | { | ||
394 | int i; | ||
395 | int cpu = smp_processor_id(); | ||
396 | |||
397 | dump_ipi_function_ptr = dump_ipi_callback; | ||
398 | smp_mb(); | ||
399 | for_each_online_cpu(i) | ||
400 | if (i != cpu) | ||
401 | mp_ops->send_ipi_single(i, SMP_DUMP); | ||
402 | |||
403 | } | ||
404 | EXPORT_SYMBOL(dump_send_ipi); | ||
405 | #endif | ||