23 lines
1.4 KiB
Diff
23 lines
1.4 KiB
Diff
Index: xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
|
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
|
@@ -1310,8 +1310,15 @@ class XendDomainInfo:
|
|
frontpath = self.getDeviceController(deviceClass).frontendPath(dev)
|
|
backpath = xstransact.Read(frontpath, "backend")
|
|
thread.start_new_thread(self.getDeviceController(deviceClass).finishDeviceCleanup, (backpath, path))
|
|
-
|
|
- rc = self.getDeviceController(deviceClass).destroyDevice(devid, force)
|
|
+ if deviceClass =='vusb':
|
|
+ dev = self.getDeviceController(deviceClass).convertToDeviceNumber(devid)
|
|
+ state = self.getDeviceController(deviceClass).readBackend(dev, 'state')
|
|
+ if state == '1':
|
|
+ rc = self.getDeviceController(deviceClass).destroyDevice(devid, True)
|
|
+ else:
|
|
+ rc = self.getDeviceController(deviceClass).destroyDevice(devid, force)
|
|
+ else:
|
|
+ rc = self.getDeviceController(deviceClass).destroyDevice(devid, force)
|
|
if not force and rm_cfg:
|
|
# The backend path, other than the device itself,
|
|
# has to be passed because its accompanied frontend
|