X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=kernel%2Fkexec.c;h=18ff0b91d6d2539435f2b19b1695d64750fe29a5;hb=94956df9f7bb872d2fef673f6d0903d9c6d1590c;hp=ac738781d35686601e793a6901f7d677086357c0;hpb=82e180598b54873553fb1d285fb0c90fc54f8f23;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git diff --git a/kernel/kexec.c b/kernel/kexec.c index ac73878..18ff0b9 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -1537,7 +1537,7 @@ void vmcoreinfo_append_str(const char *fmt, ...) size_t r; va_start(args, fmt); - r = vsnprintf(buf, sizeof(buf), fmt, args); + r = vscnprintf(buf, sizeof(buf), fmt, args); va_end(args); r = min(r, vmcoreinfo_max_size - vmcoreinfo_size); @@ -1682,6 +1682,14 @@ int kernel_kexec(void) kexec_in_progress = true; kernel_restart_prepare(NULL); migrate_to_reboot_cpu(); + + /* + * migrate_to_reboot_cpu() disables CPU hotplug assuming that + * no further code needs to use CPU hotplug (which is true in + * the reboot case). However, the kexec path depends on using + * CPU hotplug again; so re-enable it here. + */ + cpu_hotplug_enable(); printk(KERN_EMERG "Starting new kernel\n"); machine_shutdown(); }