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

çåï [Xen-devel][PATCH]add usb-ver format check to avoid usb-list error and incorrect usb-ver saved into config file



oh, sorry, I've posted the wrong patch. Make an update here.
 
Add usb-ver format check to "usb-hc-create" to fix the bug that incorrect usb-ver saved into config file and usb-list error.
 
diff -r 8992134dcfd0 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Wed Aug 04 19:24:17 2010 +0100
+++ b/tools/python/xen/xm/main.py Mon Aug 09 09:57:54 2010 +0800
@@ -225,8 +225,8 @@
     'usb-list'    :  ('<Domain>',
                         'List domain\'s attachment state of all virtual port .'),
     'usb-list-assignable-devices' : ('', 'List all the assignable usb devices'),
-    'usb-hc-create'  :  ('<Domain> <USBSpecVer> <NumberOfPorts>',
-                        'Create a domain\'s new virtual USB host controller.'),
+    'usb-hc-create'  :  ('<Domain> <USBSpecVer> <NumberOfPorts>\n       ## <USBSpecVer>: 2 (for USB2.0), 1 (for USB1.1)',
+                         'Create a domain\'s new virtual USB host controller.'),
     'usb-hc-destroy'  :  ('<Domain> <DevId>',
                         'Destroy a domain\'s virtual USB host controller.'),
 
@@ -3064,6 +3064,9 @@
     ver = args[1]
     num = args[2]
     vusb_config = ['vusb']
+    if not re.match('^\d{1}$', ver):
+        err("Invalid usb-ver format '%s'" % ver)
+        usage('usb-hc-create')
     vusb_config.append(['usb-ver', str(ver)])
     vusb_config.append(['num-ports', str(num)])
     port_config = ['port']


>>> "Chun Yan Liu" <cyliu@xxxxxxxxxx> 2010/8/6 18:46 >>>
Add usb-ver format check to "usb-hc-create".
 
In original file, "usb-hc-create" allows usb-ver parameter as "2/2.0/2.0aaa". In low level hc create, it only uses the integer part (that is "2"), so there is no problem. But 2/2.0/2.0aaa will be saved into VM config.
After that, while doing "usb-list", it cannot handle "2.0/2.0aaa" and will cause error like this:.
Idx BE  state usb-ver  BE-path
Error: Invalid argument.
Usage: xm usb-list <Domain>

To avoid this, we need either change "usb-list" code or "usb-hc-create" code.
This patch adds usb-ver format check to "usb-hc-create", do not allow 2.0/2.0aaa format. And add description in its HELP.
 
diff -r 8992134dcfd0 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Wed Aug 04 19:24:17 2010 +0100
+++ b/tools/python/xen/xm/main.py Fri Aug 06 18:02:33 2010 +0800
@@ -225,8 +225,8 @@
     'usb-list'    :  ('<Domain>',
                         'List domain\'s attachment state of all virtual port .'),
     'usb-list-assignable-devices' : ('', 'List all the assignable usb devices'),
-    'usb-hc-create'  :  ('<Domain> <USBSpecVer> <NumberOfPorts>',
-                        'Create a domain\'s new virtual USB host controller.'),
+    'usb-hc-create'  :  ('<Domain> <USBSpecVer> <NumberOfPorts>\n       ## <USBSpecVer>: 2 (for USB2.0), 1 (for USB1.1)',
+                         'Create a domain\'s new virtual USB host controller.'),
     'usb-hc-destroy'  :  ('<Domain> <DevId>',
                         'Destroy a domain\'s virtual USB host controller.'),
 
@@ -3064,6 +3064,8 @@
     ver = args[1]
     num = args[2]
     vusb_config = ['vusb']
+    if not re.match('^\d{1}$', ver):
+ print "Invalid usb-ver format '%s'" % ver
     vusb_config.append(['usb-ver', str(ver)])
     vusb_config.append(['num-ports', str(num)])
     port_config = ['port']


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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