[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xl: prevent attempts to remove non-attached pci pass-through devices
# HG changeset patch # User Gianni Tedesco <gianni.tedesco@xxxxxxxxxx> # Date 1280928283 -3600 # Node ID b92dfdc284ddf1c5be14526cb74f5f5571f5eef1 # Parent 3eec4c068649c8012fd93b41334d655bf122b3b7 xl: prevent attempts to remove non-attached pci pass-through devices Signed-off-by: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> --- tools/libxl/libxl_pci.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff -r 3eec4c068649 -r b92dfdc284dd tools/libxl/libxl_pci.c --- a/tools/libxl/libxl_pci.c Wed Aug 04 14:24:19 2010 +0100 +++ b/tools/libxl/libxl_pci.c Wed Aug 04 14:24:43 2010 +0100 @@ -564,12 +564,20 @@ int libxl_device_pci_add(libxl_ctx *ctx, int libxl_device_pci_remove(libxl_ctx *ctx, uint32_t domid, libxl_device_pci *pcidev) { + libxl_device_pci *assigned; char *path; char *state; - int hvm, rc; + int hvm, rc, num; int stubdomid = 0; - /* TODO: check if the device can be detached */ + if ( !libxl_device_pci_list_assigned(ctx, &assigned, domid, &num) ) { + if ( !is_assigned(assigned, num, pcidev->domain, + pcidev->bus, pcidev->dev, pcidev->func) ) { + XL_LOG(ctx, XL_LOG_ERROR, "PCI device not attached to this domain"); + return ERROR_INVAL; + } + } + libxl_device_pci_remove_xenstore(ctx, domid, pcidev); hvm = is_hvm(ctx, domid); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |