Monitor patches for 2016-03-16

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJW6SurAAoJEDhwtADrkYZTcgEQALTCfO4CRw6vDbHMufu2hQri
 fV6yZRBSY4Sv/XghX6RRxfKxzK5ayB/zG27aGYJJLd0I1M9FYY+uUsSMQFfSoqTl
 QivOxGcH7+dmA5cJrR8mYmbEuQyvJKIMw6peAUQ3v6jaRR0N8O/nlAQmLnA1SK/n
 v278lkJ3gs0QzVYVUMytw+XtVwa2jtzQyiJqG0ERZn9NpKoeFKn1HN2+JMU3c2Sa
 Cl3sU+1Dw21IF24R/KTZQw4CE+4Gfy0wmVFRYRVSoGW6i5fZKeNX231X93Dix4vc
 nXaZ+hSoS01nWVYgGs4Vr1muGxgwa+0vmyj+Yly0wAvCD0WxMuqYlGtD+lxPRdbC
 Y8op0dszgvc6HIIGZp/y4HYxmTG57jZx63kL6zxysIlc5oB62lZFRHNZoHipupvr
 3Vkz1JqDQaHiQePblPPYS8QJU553CMZfvMP4emo+pXl8BPhT1ZGhFNnaHEsk0EFd
 EJQQEgQUrWlHOMCGVkuVm9w312bdLGle+y3OHqexqe3IMfpGIWJcKp/kn7OSNI9k
 HKp9OxG4wbx2PqTBkxoM1bEJxOku2fnGHxtd5X6X0Aza25hpXU5Xh0m8DOJGHoeZ
 jjjcpL8KRqEYZw2rZWzHYdqLuQaFKvtsM9Fu+bYm6pD+aUGggjyFOUzPfCt0NYF6
 XJdflOX71joz9k7NgMr5
 =GUPL
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2016-03-16' into staging

Monitor patches for 2016-03-16

# gpg: Signature made Wed 16 Mar 2016 09:47:23 GMT using RSA key ID EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>"

* remotes/armbru/tags/pull-monitor-2016-03-16:
  qdev-monitor: add missing aliases for virtio device classes
  qdev-monitor: sort alias table by typename
  qdev-monitor: improve error message when alias device is unavailable

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
master
Peter Maydell 2016-03-16 10:38:14 +00:00
commit cad0b273e5
1 changed files with 34 additions and 8 deletions

View File

@ -39,19 +39,39 @@ typedef struct QDevAlias
uint32_t arch_mask;
} QDevAlias;
/* Please keep this table sorted by typename. */
static const QDevAlias qdev_alias_table[] = {
{ "virtio-blk-pci", "virtio-blk", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-net-pci", "virtio-net", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-serial-pci", "virtio-serial", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "e1000", "e1000-82540em" },
{ "ich9-ahci", "ahci" },
{ "kvm-pci-assign", "pci-assign" },
{ "lsi53c895a", "lsi" },
{ "virtio-9p-ccw", "virtio-9p", QEMU_ARCH_S390X },
{ "virtio-9p-pci", "virtio-9p", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-balloon-ccw", "virtio-balloon", QEMU_ARCH_S390X },
{ "virtio-balloon-pci", "virtio-balloon",
QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-blk-ccw", "virtio-blk", QEMU_ARCH_S390X },
{ "virtio-blk-pci", "virtio-blk", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-gpu-ccw", "virtio-gpu", QEMU_ARCH_S390X },
{ "virtio-gpu-pci", "virtio-gpu", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-input-host-ccw", "virtio-input-host", QEMU_ARCH_S390X },
{ "virtio-input-host-pci", "virtio-input-host",
QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-keyboard-ccw", "virtio-keyboard", QEMU_ARCH_S390X },
{ "virtio-keyboard-pci", "virtio-keyboard",
QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-mouse-ccw", "virtio-mouse", QEMU_ARCH_S390X },
{ "virtio-mouse-pci", "virtio-mouse", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-net-ccw", "virtio-net", QEMU_ARCH_S390X },
{ "virtio-net-pci", "virtio-net", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-rng-ccw", "virtio-rng", QEMU_ARCH_S390X },
{ "virtio-rng-pci", "virtio-rng", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-scsi-ccw", "virtio-scsi", QEMU_ARCH_S390X },
{ "virtio-scsi-pci", "virtio-scsi", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-serial-ccw", "virtio-serial", QEMU_ARCH_S390X },
{ "lsi53c895a", "lsi" },
{ "ich9-ahci", "ahci" },
{ "kvm-pci-assign", "pci-assign" },
{ "e1000", "e1000-82540em" },
{ "virtio-serial-pci", "virtio-serial", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ "virtio-tablet-ccw", "virtio-tablet", QEMU_ARCH_S390X },
{ "virtio-tablet-pci", "virtio-tablet", QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
{ }
};
@ -188,6 +208,7 @@ static DeviceClass *qdev_get_device_class(const char **driver, Error **errp)
{
ObjectClass *oc;
DeviceClass *dc;
const char *original_name = *driver;
oc = object_class_by_name(*driver);
if (!oc) {
@ -200,7 +221,12 @@ static DeviceClass *qdev_get_device_class(const char **driver, Error **errp)
}
if (!object_class_dynamic_cast(oc, TYPE_DEVICE)) {
error_setg(errp, "'%s' is not a valid device model name", *driver);
if (*driver != original_name) {
error_setg(errp, "'%s' (alias '%s') is not a valid device model"
" name", original_name, *driver);
} else {
error_setg(errp, "'%s' is not a valid device model name", *driver);
}
return NULL;
}