]> 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>
Thu, 14 Jun 2012 22:22:30 +0000 (18:22 -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)

(crobinso: Drop an element that wasn't backported to -maint branch.)

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

index 9d059044e45e822dd90dfa958fa57c425a626f4b..d886b60a84c948ff5f25debbb8f4db18336c50ca 100644 (file)
@@ -4035,6 +4035,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 bf35b5548bdde040158322298b554ec3e3424c1c..634d6c5e3271184e2f6dfb68b2b2bbf173399786 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 e7592e995a3d3470b978d25d72e0615669713a70..2bb1661b4a862dae28d65105723406a9e1687d3d 100644 (file)
@@ -3,7 +3,7 @@
   <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
   <memory unit='KiB'>219136</memory>
   <currentMemory unit='KiB'>219136</currentMemory>
-  <vcpu placement='static'>1</vcpu>
+  <vcpu>1</vcpu>
   <os>
     <type arch='i686' machine='pc'>hvm</type>
     <boot dev='hd'/>