[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] libxl: remove existence check for PCI device hotplug



commit b923a13761eaf9b2b9689b0ce57dd1be55458274
Author:     Wei Liu <wei.liu2@xxxxxxxxxx>
AuthorDate: Mon Nov 17 12:10:34 2014 +0000
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Thu Nov 20 15:25:33 2014 +0000

    libxl: remove existence check for PCI device hotplug
    
    The existence check is to make sure a device is not added to a guest
    multiple times.
    
    PCI device backend path has different rules from vif, disk etc. For
    example:
    /local/domain/0/backend/pci/9/0/dev-1/0000:03:10.1
    /local/domain/0/backend/pci/9/0/key-1/0000:03:10.1
    /local/domain/0/backend/pci/9/0/dev-2/0000:03:10.2
    /local/domain/0/backend/pci/9/0/key-2/0000:03:10.2
    
    The devid for PCI devices is hardcoded 0. libxl__device_exists only
    checks up to /local/.../9/0 so it always returns true even the device is
    assignable.
    
    Remove invocation of libxl__device_exists. We're sure at this point that
    the PCI device is assignable (hence no xenstore entry or JSON entry).
    The check is done before hand. For HVM guest it's done by calling
    xc_test_assign_device and for PV guest it's done by calling
    pciback_dev_is_assigned.
    
    Reported-by: Li, Liang Z <liang.z.li@xxxxxxxxx>
    Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
    Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    Cc: Konrad Wilk <konrad.wilk@xxxxxxxxxx>
    Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 tools/libxl/libxl_pci.c |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
index 9f40100..316643c 100644
--- a/tools/libxl/libxl_pci.c
+++ b/tools/libxl/libxl_pci.c
@@ -175,14 +175,6 @@ static int libxl__device_pci_add_xenstore(libxl__gc *gc, 
uint32_t domid, libxl_d
         rc = libxl__xs_transaction_start(gc, &t);
         if (rc) goto out;
 
-        rc = libxl__device_exists(gc, t, device);
-        if (rc < 0) goto out;
-        if (rc == 1) {
-            LOG(ERROR, "device already exists in xenstore");
-            rc = ERROR_DEVICE_EXISTS;
-            goto out;
-        }
-
         rc = libxl__set_domain_configuration(gc, domid, &d_config);
         if (rc) goto out;
 
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.