diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index 736f1cecac..e0c3aa4998 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -488,6 +488,11 @@ int libxl__domain_device_construct_rdm(libxl__gc *gc, assert(xrdm); + rc = libxl__device_pci_setdefault(gc, DOMID_INVALID, + &d_config->pcidevs[i], false); + if (rc) + goto out; + for (n = 0; n < nr_entries; ++n) { bool new = true; diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 43e5885d1e..4891722a6b 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -1709,6 +1709,8 @@ _hidden void libxl__device_pci_add(libxl__egc *egc, uint32_t domid, libxl__ao_device *aodev); _hidden void libxl__device_pci_destroy_all(libxl__egc *egc, uint32_t domid, libxl__multidev *); +_hidden int libxl__device_pci_setdefault(libxl__gc *gc, uint32_t domid, + libxl_device_pci *pci, bool hotplug); _hidden bool libxl__is_igd_vga_passthru(libxl__gc *gc, const libxl_domain_config *d_config); diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c index f91bce07ec..3cf346c23e 100644 --- a/tools/libxl/libxl_pci.c +++ b/tools/libxl/libxl_pci.c @@ -1483,8 +1483,8 @@ static int libxl__device_pci_reset(libxl__gc *gc, unsigned int domain, unsigned return -1; } -static int libxl__device_pci_setdefault(libxl__gc *gc, uint32_t domid, - libxl_device_pci *pci, bool hotplug) +int libxl__device_pci_setdefault(libxl__gc *gc, uint32_t domid, + libxl_device_pci *pci, bool hotplug) { /* We'd like to force reserve rdm specific to a device by default.*/ if (pci->rdm_policy == LIBXL_RDM_RESERVE_POLICY_INVALID)