kvmtool/run: append cfg.kernel_cmdline at the end of real_cmdline
PATCH 1/1 kvmtool/run: append cfg.kernel_cmdline at the end of real_cmdline
This allows the user to always override the paramaters set by lkvm. Say, currently 'lkvm run -p ro' doesn't work.
To keep the current logic we need to change strstr("root=") to check cfg.kernel_cmdline, not real_cmdline. And perhaps we can even add a simple helper add_param(name, val) to make this all more consistent; it should only append "name=val" to real_cmdline if cfg.kernel_cmdline doesn't include this paramater.
Signed-off-by Oleg Nesterov <[email protected]>
--- builtin-run.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
builtin-run.c +6 -7
@@ -566,12 +566,6 @@ static struct kvm *kvm_cmd_run_init(int argc, const char **argv)memset (real_cmdline,0 ,sizeof (real_cmdline));kvm__arch_set_cmdline (real_cmdline, kvm->cfg.vnc || kvm->cfg.sdl || kvm->cfg.gtk); -if (strlen (real_cmdline) >0 ) -strcat (real_cmdline," " ); - -if (kvm->cfg.kernel_cmdline) -strlcat (real_cmdline, kvm->cfg.kernel_cmdline,sizeof (real_cmdline)); -if (!kvm->cfg.guest_name) {if (kvm->cfg.custom_rootfs) { kvm->cfg.guest_name = kvm->cfg.custom_rootfs_name;
@@ -611,10 +605,15 @@ static struct kvm *kvm_cmd_run_init(int argc, const char **argv)if (kvm_setup_guest_init (kvm->cfg.custom_rootfs_name))die ("Failed to setup init for guest." ); } - }else if (!strstr (real_cmdline,"root=" )) { + }else if (!strstr (kvm->cfg.kernel_cmdline,"root=" )) {strlcat (real_cmdline," root=/dev/vda rw " ,sizeof (real_cmdline)); } +if (kvm->cfg.kernel_cmdline) { +strcat (real_cmdline," " ); +strlcat (real_cmdline, kvm->cfg.kernel_cmdline,sizeof (real_cmdline)); + } + kvm->cfg.real_cmdline = real_cmdline; printf(" # %s run -k %s -m %Lu -c %d --name %s\n", KVM_BINARY_NAME,
Signature · 1 line
2.4.3