From: Jason Andryuk Date: Thu, 7 Apr 2022 07:10:15 +0000 (+0200) Subject: xl: Fix global pci options X-Git-Tag: xen-RELEASE-4.14.5~12 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=294d12c8426713a9e99f8112a8192da871f2013a;p=xen.git xl: Fix global pci options commit babde47a3fed "introduce a 'passthrough' configuration option to xl.cfg..." moved the pci list parsing ahead of the global pci option parsing. This broke the global pci configuration options since they need to be set first so that looping over the pci devices assigns their values. Move the global pci options ahead of the pci list to restore their function. Fixes: babde47a3fed ("introduce a 'passthrough' configuration option to xl.cfg...") Signed-off-by: Jason Andryuk Acked-by: Anthony PERARD master commit: e45ad0b1b0bd6a43f59aaf4a6f86d88783c630e5 master date: 2022-03-31 19:48:12 +0100 --- diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c index 61b4ef7b7e..34ac20773d 100644 --- a/tools/xl/xl_parse.c +++ b/tools/xl/xl_parse.c @@ -1467,6 +1467,32 @@ void parse_config_data(const char *config_source, exit(1); } + /* To be reworked (automatically enabled) once the auto ballooning + * after guest starts is done (with PCI devices passed in). */ + if (c_info->type == LIBXL_DOMAIN_TYPE_PV) { + xlu_cfg_get_defbool(config, "e820_host", &b_info->u.pv.e820_host, 0); + } + + if (!xlu_cfg_get_long (config, "pci_msitranslate", &l, 0)) + pci_msitranslate = l; + + if (!xlu_cfg_get_long (config, "pci_power_mgmt", &l, 0)) + pci_power_mgmt = l; + + if (!xlu_cfg_get_long (config, "pci_permissive", &l, 0)) + pci_permissive = l; + + if (!xlu_cfg_get_long (config, "pci_seize", &l, 0)) + pci_seize = l; + + if (!xlu_cfg_get_string(config, "rdm", &buf, 0)) { + libxl_rdm_reserve rdm; + if (!xlu_rdm_parse(config, &rdm, buf)) { + b_info->u.hvm.rdm.strategy = rdm.strategy; + b_info->u.hvm.rdm.policy = rdm.policy; + } + } + if (!xlu_cfg_get_list (config, "pci", &pcis, 0, 0)) { d_config->num_pcidevs = 0; d_config->pcidevs = NULL; @@ -2323,32 +2349,6 @@ skip_vfb: } } - if (!xlu_cfg_get_long (config, "pci_msitranslate", &l, 0)) - pci_msitranslate = l; - - if (!xlu_cfg_get_long (config, "pci_power_mgmt", &l, 0)) - pci_power_mgmt = l; - - if (!xlu_cfg_get_long (config, "pci_permissive", &l, 0)) - pci_permissive = l; - - if (!xlu_cfg_get_long (config, "pci_seize", &l, 0)) - pci_seize = l; - - /* To be reworked (automatically enabled) once the auto ballooning - * after guest starts is done (with PCI devices passed in). */ - if (c_info->type == LIBXL_DOMAIN_TYPE_PV) { - xlu_cfg_get_defbool(config, "e820_host", &b_info->u.pv.e820_host, 0); - } - - if (!xlu_cfg_get_string(config, "rdm", &buf, 0)) { - libxl_rdm_reserve rdm; - if (!xlu_rdm_parse(config, &rdm, buf)) { - b_info->u.hvm.rdm.strategy = rdm.strategy; - b_info->u.hvm.rdm.policy = rdm.policy; - } - } - if (!xlu_cfg_get_list(config, "usbctrl", &usbctrls, 0, 0)) { d_config->num_usbctrls = 0; d_config->usbctrls = NULL;