From 8d7a87b20e43fa82feed36abd41abf4f02444c73 Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Thu, 6 Oct 2011 17:26:18 +0100 Subject: [PATCH] libxl: create pci backend only when there are pci devices. Creating empty pci entries made Linux DomUs under NetBSD Dom0 wait a very long time for devices to initialize during kernel boot. Signed-off-by: Roger Pau Monne Acked-by: Ian Jackson Committed-by: Ian Jackson --- tools/libxl/libxl_create.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index c97819af0e..e1e3258fbb 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -588,12 +588,14 @@ static int do_domain_create(libxl__gc *gc, libxl_domain_config *d_config, for (i = 0; i < d_config->num_pcidevs; i++) libxl__device_pci_add(gc, domid, &d_config->pcidevs[i], 1); - ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs, - d_config->num_pcidevs); - if (ret < 0) { - LIBXL__LOG(ctx, LIBXL__LOG_ERROR, - "libxl_create_pci_backend failed: %d", ret); - goto error_out; + if (d_config->num_pcidevs > 0) { + ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs, + d_config->num_pcidevs); + if (ret < 0) { + LIBXL__LOG(ctx, LIBXL__LOG_ERROR, + "libxl_create_pci_backend failed: %d", ret); + goto error_out; + } } if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV && -- 2.30.2