[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3 of 3] xl, check a PCI device is assignable before adding it to a domU
tools/libxl/libxl_pci.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) This prevents PCI devices from being added multiply to the same domain or multiple different domains simultaneously. diff -r 214733749470 -r dbfc4f30efe2 tools/libxl/libxl_pci.c --- a/tools/libxl/libxl_pci.c Tue Jul 27 17:17:31 2010 +0100 +++ b/tools/libxl/libxl_pci.c Tue Jul 27 17:18:44 2010 +0100 @@ -334,8 +334,17 @@ int libxl_device_pci_add(struct libxl_ct char *state, *vdevfn; int rc, hvm; int stubdomid = 0; + libxl_device_pci *assigned; + int num_assigned; - /* TODO: check if the device can be assigned */ + assigned = get_all_assigned_devices(ctx, &num_assigned); + if ( is_assigned(assigned, num_assigned, pcidev->domain, + pcidev->bus, pcidev->dev, pcidev->func) ) { + XL_LOG(ctx, XL_LOG_ERROR, "PCI device already attached to a domain"); + free(assigned); + return ERROR_FAIL; + } + free(assigned); libxl_device_pci_reset(ctx, pcidev->domain, pcidev->bus, pcidev->dev, pcidev->func); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |