From d6f20a2dfa94e51777e7fb08bd745d3f623a1d61 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 14 May 2012 13:22:58 +0100 Subject: [PATCH] Set a sensible default master start port for ehci companion controllers 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 | 22 +++++++++++++++++ .../qemuxml2argv-usb-ich9-ehci-addr.xml | 24 +++++-------------- .../qemuxml2xmlout-usb-ich9-ehci-addr.xml | 4 ++-- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 85ef71b9f4..2f9da71eec 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -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; diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.xml b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.xml index 4849dbe90d..0682d16ee9 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.xml @@ -19,19 +19,13 @@ - - - - - - + + - - - + @@ -39,15 +33,9 @@ - - - - - - - - - + + + diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-usb-ich9-ehci-addr.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-usb-ich9-ehci-addr.xml index 2bb1661b4a..8fb82dbefd 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-usb-ich9-ehci-addr.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-usb-ich9-ehci-addr.xml @@ -1,8 +1,8 @@ QEMUGuest1 c7a5fdbd-edaf-9455-926a-d65c16db1809 - 219136 - 219136 + 219136 + 219200 1 hvm -- GitLab