X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fboot.c;h=3de7d28e3310979d2003c2f23078e7f7826cd9b9;hp=04c32a188414e4f59f14285d72f87f32f35b2798;hb=614843c3975578a9e5ee8451d00e6974c8326f75;hpb=0dca9e11c5bacd76a12b2e52a263ca7bd94b9a00 diff --git a/discover/boot.c b/discover/boot.c index 04c32a1..3de7d28 100644 --- a/discover/boot.c +++ b/discover/boot.c @@ -62,7 +62,7 @@ static int kexec_load(struct boot_task *boot_task) struct process *process; char *s_initrd = NULL; char *s_args = NULL; - const char *argv[7]; + const char *argv[8]; char *s_dtb = NULL; const char **p; int result; @@ -94,7 +94,7 @@ static int kexec_load(struct boot_task *boot_task) process = process_create(boot_task); if (!process) { - pb_log("%s: failed to create process\n", __func__); + pb_log_fn("failed to create process\n"); return -1; } @@ -107,38 +107,42 @@ static int kexec_load(struct boot_task *boot_task) *p++ = pb_system_apps.kexec; /* 1 */ *p++ = "-l"; /* 2 */ + if (pb_log_get_debug()) { + *p++ = "--debug"; /* 3 */ + } + if (local_initrd) { s_initrd = talloc_asprintf(boot_task, "--initrd=%s", local_initrd); assert(s_initrd); - *p++ = s_initrd; /* 3 */ + *p++ = s_initrd; /* 4 */ } if (local_dtb) { s_dtb = talloc_asprintf(boot_task, "--dtb=%s", local_dtb); assert(s_dtb); - *p++ = s_dtb; /* 4 */ + *p++ = s_dtb; /* 5 */ } s_args = talloc_asprintf(boot_task, "--append=%s", boot_task->args ?: "\"\""); assert(s_args); - *p++ = s_args; /* 5 */ + *p++ = s_args; /* 6 */ - *p++ = local_image; /* 6 */ - *p++ = NULL; /* 7 */ + *p++ = local_image; /* 7 */ + *p++ = NULL; /* 8 */ result = process_run_sync(process); if (result) { - pb_log("%s: failed to run process\n", __func__); + pb_log_fn("failed to run process\n"); goto abort_kexec; } result = process->exit_status; if (result) { - pb_log("%s: failed: (%d)\n", __func__, result); + pb_log_fn("failed: (%d)\n", result); update_status(boot_task->status_fn, boot_task->status_arg, STATUS_ERROR, "%s", process->stdout_buf); } @@ -170,7 +174,7 @@ static int kexec_reboot(struct boot_task *task) } if (result) - pb_log("%s: failed: (%d)\n", __func__, result); + pb_log_fn("failed: (%d)\n", result); /* okay, kexec -e -f */ if (result) { @@ -179,7 +183,7 @@ static int kexec_reboot(struct boot_task *task) } if (result) - pb_log("%s: failed: (%d)\n", __func__, result); + pb_log_fn("failed: (%d)\n", result); return result; @@ -423,7 +427,7 @@ static void boot_process(struct load_url_result *result, void *data) _("Performing kexec load")); rc = kexec_load(task); - pb_log("%s: kexec_load returned %d\n", __func__, rc); + pb_log_fn("kexec_load returned %d\n", rc); if (rc == KEXEC_LOAD_DECRYPTION_FALURE) { update_status(task->status_fn, task->status_arg, STATUS_ERROR, _("Decryption failed")); @@ -526,7 +530,7 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, } else if (opt && opt->boot_image) { image = opt->boot_image->url; } else { - pb_log("%s: no image specified\n", __func__); + pb_log_fn("no image specified\n"); update_status(status_fn, status_arg, STATUS_INFO, _("Boot failed: no image specified")); return NULL;