From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: [PATCH] xl: recognize the "extra" entry in the domain config file Date: Tue, 18 May 2010 15:41:16 -0700 Message-ID: <4BF3178C.5040909@goop.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen-devel Cc: Vincent Hanquez , Ian Jackson , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org "extra" defines extra parameters to be added to the kernel command line, so append it accordingly. Signed-off-by: Jeremy Fitzhardinge 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); }