When a firmware file is provided, kvmtool is not responsible for loading a kernel image. There is no reason for looking for a default kernel image when loading a firmware. Signed-off-by: Julien Thierry <julien.thierry@xxxxxxx> Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx> --- builtin-run.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/builtin-run.c b/builtin-run.c index 443c10b..82e2b2e 100644 --- a/builtin-run.c +++ b/builtin-run.c @@ -512,12 +512,13 @@ static struct kvm *kvm_cmd_run_init(int argc, const char **argv) kvm->nr_disks = kvm->cfg.image_count; - if (!kvm->cfg.kernel_filename) + if (!kvm->cfg.kernel_filename && !kvm->cfg.firmware_filename) { kvm->cfg.kernel_filename = find_kernel(); - if (!kvm->cfg.kernel_filename) { - kernel_usage_with_options(); - return ERR_PTR(-EINVAL); + if (!kvm->cfg.kernel_filename) { + kernel_usage_with_options(); + return ERR_PTR(-EINVAL); + } } kvm->cfg.vmlinux_filename = find_vmlinux(); @@ -639,10 +640,17 @@ static struct kvm *kvm_cmd_run_init(int argc, const char **argv) kvm->cfg.real_cmdline = real_cmdline; - printf(" # %s run -k %s -m %Lu -c %d --name %s\n", KVM_BINARY_NAME, - kvm->cfg.kernel_filename, - (unsigned long long)kvm->cfg.ram_size / 1024 / 1024, - kvm->cfg.nrcpus, kvm->cfg.guest_name); + if (kvm->cfg.kernel_filename) { + printf(" # %s run -k %s -m %Lu -c %d --name %s\n", KVM_BINARY_NAME, + kvm->cfg.kernel_filename, + (unsigned long long)kvm->cfg.ram_size / 1024 / 1024, + kvm->cfg.nrcpus, kvm->cfg.guest_name); + } else if (kvm->cfg.firmware_filename) { + printf(" # %s run --firmware %s -m %Lu -c %d --name %s\n", KVM_BINARY_NAME, + kvm->cfg.firmware_filename, + (unsigned long long)kvm->cfg.ram_size / 1024 / 1024, + kvm->cfg.nrcpus, kvm->cfg.guest_name); + } if (init_list__init(kvm) < 0) die ("Initialisation failed"); -- 1.9.1