* [Qemu-devel] [PATCH] s390x: fix s390 virtio aliases
@ 2012-05-18 0:43 Alexander Graf
[not found] ` <4FC74B1D.9000707@de.ibm.com>
0 siblings, 1 reply; 2+ messages in thread
From: Alexander Graf @ 2012-05-18 0:43 UTC (permalink / raw)
To: qemu-devel Developers
Cc: Christian Borntraeger, Anthony Liguori, Paolo Bonzini
Some of the virtio devices have the same frontend name, but actually
implement different devices behind the scenes through aliases.
The indicator which device type to use is the architecture. On s390, we
want s390 virtio devices. On everything else, we want PCI devices.
Reflect this in the alias selection code. This way we fix commands like
-device virtio-blk on s390x which with this patch applied select the
correct virtio-blk-s390 device rather than virtio-blk-pci.
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/qdev-monitor.c | 27 ++++++++++++++++++++-------
1 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c
index eed781d..405697e 100644
--- a/hw/qdev-monitor.c
+++ b/hw/qdev-monitor.c
@@ -20,6 +20,7 @@
#include "qdev.h"
#include "monitor.h"
#include "qmp-commands.h"
+#include "arch_init.h"
/*
* Aliases were a bad idea from the start. Let's keep them
@@ -29,16 +30,18 @@ typedef struct QDevAlias
{
const char *typename;
const char *alias;
+ uint32_t arch_mask;
} QDevAlias;
static const QDevAlias qdev_alias_table[] = {
- { "virtio-blk-pci", "virtio-blk" },
- { "virtio-net-pci", "virtio-net" },
- { "virtio-serial-pci", "virtio-serial" },
- { "virtio-balloon-pci", "virtio-balloon" },
- { "virtio-blk-s390", "virtio-blk" },
- { "virtio-net-s390", "virtio-net" },
- { "virtio-serial-s390", "virtio-serial" },
+ { "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 },
+ { "virtio-balloon-pci", "virtio-balloon",
+ QEMU_ARCH_ALL & ~QEMU_ARCH_S390X },
+ { "virtio-blk-s390", "virtio-blk", QEMU_ARCH_S390X },
+ { "virtio-net-s390", "virtio-net", QEMU_ARCH_S390X },
+ { "virtio-serial-s390", "virtio-serial", QEMU_ARCH_S390X },
{ "lsi53c895a", "lsi" },
{ "ich9-ahci", "ahci" },
{ }
@@ -50,6 +53,11 @@ static const char *qdev_class_get_alias(DeviceClass *dc)
int i;
for (i = 0; qdev_alias_table[i].typename; i++) {
+ if (qdev_alias_table[i].arch_mask &&
+ !(qdev_alias_table[i].arch_mask & arch_type)) {
+ continue;
+ }
+
if (strcmp(qdev_alias_table[i].typename, typename) == 0) {
return qdev_alias_table[i].alias;
}
@@ -110,6 +118,11 @@ static const char *find_typename_by_alias(const char *alias)
int i;
for (i = 0; qdev_alias_table[i].alias; i++) {
+ if (qdev_alias_table[i].arch_mask &&
+ !(qdev_alias_table[i].arch_mask & arch_type)) {
+ continue;
+ }
+
if (strcmp(qdev_alias_table[i].alias, alias) == 0) {
return qdev_alias_table[i].typename;
}
--
1.6.0.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] s390x: fix s390 virtio aliases
[not found] ` <4FC74B1D.9000707@de.ibm.com>
@ 2012-06-08 11:44 ` Alexander Graf
0 siblings, 0 replies; 2+ messages in thread
From: Alexander Graf @ 2012-06-08 11:44 UTC (permalink / raw)
To: Christian Borntraeger
Cc: Paolo Bonzini, Anthony Liguori, qemu-devel Developers
On 31.05.2012, at 12:42, Christian Borntraeger wrote:
> On 18/05/12 02:43, Alexander Graf wrote:
>> Some of the virtio devices have the same frontend name, but actually
>> implement different devices behind the scenes through aliases.
>>
>> The indicator which device type to use is the architecture. On s390, we
>> want s390 virtio devices. On everything else, we want PCI devices.
>>
>> Reflect this in the alias selection code. This way we fix commands like
>> -device virtio-blk on s390x which with this patch applied select the
>> correct virtio-blk-s390 device rather than virtio-blk-pci.
>>
>> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>
> Ping.
> Just in case:
> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
>
Hrm. Did I forget to push this one out? Ugh.
We're probably going to do a 1.1.1 soon anyway, right? :)
Alex
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-06-08 11:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-18 0:43 [Qemu-devel] [PATCH] s390x: fix s390 virtio aliases Alexander Graf
[not found] ` <4FC74B1D.9000707@de.ibm.com>
2012-06-08 11:44 ` Alexander Graf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).