"extra" defines extra parameters to be added to the kernel command line,
so append it accordingly.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>
diff -r 685972a898a8 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Mon May 17 17:37:56 2010 -0700
+++ b/tools/libxl/xl_cmdimpl.c Tue May 18 15:38:38 2010 -0700
@@ -502,14 +502,29 @@
if (!xlu_cfg_get_long (config, "viridian", &l))
b_info->u.hvm.viridian = l;
} else {
- char *cmdline;
- if (!xlu_cfg_get_string (config, "root", &buf)) {
- if (asprintf(&cmdline, "root=%s", buf) < 0) {
- fprintf(stderr, "Failed to allocate memory in asprintf\n");
- exit(1);
- }
- b_info->u.pv.cmdline = cmdline;
- }
+ char *cmdline;
+ const char *root, *extra;
+
+ root = NULL;
+ extra = "";
+
+ xlu_cfg_get_string (config, "root", &root);
+ xlu_cfg_get_string (config, "extra", &extra);
+
+ cmdline = NULL;
+
+ if (root) {
+ if (asprintf(&cmdline, "root=%s %s", root, extra) == -1)
+ cmdline = NULL;
+ } else
+ cmdline = strdup(extra);
+
+ if ((root || extra) && !cmdline) {
+ fprintf(stderr, "Failed to allocate memory for cmdline\n");
+ exit(1);
+ }
+
+ b_info->u.pv.cmdline = cmdline;
if (!xlu_cfg_get_string (config, "ramdisk", &buf))
b_info->u.pv.ramdisk = strdup(buf);
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|