On 08/01/2013 02:30 AM, Laine Stump wrote:
On 07/31/2013 10:14 PM, Cole Robinson wrote:
> Preferably what we'd do is not add any USB controller by default,
> but that goes against how the QEMU driver has historically acted for
> other architectures, so let's be consistent.
> ---
> src/conf/domain_conf.c | 18 ++++++++++++++++--
> 1 file changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index e3aec69..2308580 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -8801,6 +8801,16 @@ virDomainVideoDefaultRAM(virDomainDefPtr def,
> }
> }
>
> +static int
> +virDomainDefaultUSBControllerModel(virDomainDefPtr def)
> +{
> + /* Not entirely true, some ARM boards actually can support USB,
> + * and even versatilepb supports the pci-ohci
> + */
> + if (def->os.arch == VIR_ARCH_ARMV7L)
> + return VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE;
> + return -1;
> +}
>
We've been trying to put arch-specific stuff like this in the post-parse
callbacks that are defined in the hypervisors (e.g.
qemuDomainDefPostParse(), qemuDomainDeviceDefPostParse(), and bits in
qemu_command.c) rather than in the parser itself.
> int
> virDomainVideoDefaultType(virDomainDefPtr def)
> @@ -11720,9 +11730,13 @@ virDomainDefParseXML(xmlDocPtr xml,
>
> if (def->virtType == VIR_DOMAIN_VIRT_QEMU ||
> def->virtType == VIR_DOMAIN_VIRT_KQEMU ||
> - def->virtType == VIR_DOMAIN_VIRT_KVM)
> - if (virDomainDefMaybeAddController(def, VIR_DOMAIN_CONTROLLER_TYPE_USB, 0,
-1) < 0)
I'm thinking that if this needs to be different for different arches,
then it shouldn't be done here, it should be done in the hypervisor's
post-parse callback.
As done in this patch:
https://www.redhat.com/archives/libvir-list/2013-August/msg00141.html
It accomplishes the same thing (I added in armvl7 to it so you don't
have to add anything on).