]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Set a sensible default master start port for ehci companion controllers
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 14 May 2012 12:22:58 +0000 (13:22 +0100)
committerCole Robinson <crobinso@redhat.com>
Fri, 15 Jun 2012 14:58:24 +0000 (10:58 -0400)
The uhci1, uhci2, uhci3 companion controllers for ehci1 must
have a master start port set. Since this value is predictable
we should set it automatically if the app does not supply it
(cherry picked from commit 03b804a200e214e3faf264b16f41a640c1344962)

src/conf/domain_conf.c
tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.xml
tests/qemuxml2xmloutdata/qemuxml2xmlout-usb-ich9-ehci-addr.xml

index 85ef71b9f40cf50ffcf95ca0e202ba46c0200e72..2f9da71eec94c2c7b31980d32e0eb4c0ae935b04 100644 (file)
@@ -2775,6 +2775,28 @@ virDomainControllerDefParseXML(xmlNodePtr node,
         VIR_FREE(vectors);
         break;
     }
+    case VIR_DOMAIN_CONTROLLER_TYPE_USB: {
+        /* If the XML has a uhci1, uhci2, uhci3 controller and no
+         * master port was given, we should set a sensible one */
+        int masterPort = -1;
+        switch (def->model) {
+        case VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI1:
+            masterPort = 0;
+            break;
+        case VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI2:
+            masterPort = 2;
+            break;
+        case VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI3:
+            masterPort = 4;
+            break;
+        }
+        if (masterPort != -1 &&
+            def->info.mastertype == VIR_DOMAIN_CONTROLLER_MASTER_NONE) {
+            def->info.mastertype = VIR_DOMAIN_CONTROLLER_MASTER_USB;
+            def->info.master.usb.startport = masterPort;
+        }
+        break;
+    }
 
     default:
         break;
index 4849dbe90d555d99ea99450e47b1f536781946a5..0682d16ee95b97cd4b24694779cc07b511a13056 100644 (file)
     <controller type='usb' index='1' model='ich9-ehci1'>
     </controller>
 
-    <controller type='usb' index='0' model='ich9-uhci1'>
-      <master startport='0'/>
-    </controller>
-    <controller type='usb' index='1' model='ich9-uhci1'>
-      <master startport='0'/>
-    </controller>
+    <controller type='usb' index='0' model='ich9-uhci1'/>
+    <controller type='usb' index='1' model='ich9-uhci1'/>
     <controller type='usb' index='2' model='ich9-uhci1'>
       <master startport='0'/>
     </controller>
 
-    <controller type='usb' index='0' model='ich9-uhci3'>
-      <master startport='4'/>
-    </controller>
+    <controller type='usb' index='0' model='ich9-uhci3'/>
     <controller type='usb' index='1' model='ich9-uhci3'>
       <master startport='4'/>
     </controller>
       <master startport='4'/>
     </controller>
 
-    <controller type='usb' index='2' model='ich9-uhci2'>
-      <master startport='2'/>
-    </controller>
-    <controller type='usb' index='1' model='ich9-uhci2'>
-      <master startport='2'/>
-    </controller>
-    <controller type='usb' index='0' model='ich9-uhci2'>
-      <master startport='2'/>
-    </controller>
+    <controller type='usb' index='2' model='ich9-uhci2'/>
+    <controller type='usb' index='1' model='ich9-uhci2'/>
+    <controller type='usb' index='0' model='ich9-uhci2'/>
     <memballoon model='virtio'/>
   </devices>
 </domain>
index 2bb1661b4a862dae28d65105723406a9e1687d3d..8fb82dbefd2ca3a5d92567277ea37b2eac6c1eea 100644 (file)
@@ -1,8 +1,8 @@
 <domain type='qemu'>
   <name>QEMUGuest1</name>
   <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
-  <memory unit='KiB'>219136</memory>
-  <currentMemory unit='KiB'>219136</currentMemory>
+  <memory>219136</memory>
+  <currentMemory>219200</currentMemory>
   <vcpu>1</vcpu>
   <os>
     <type arch='i686' machine='pc'>hvm</type>