qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 07/22] virtio: find version 1.0 virtio capabi


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH v2 07/22] virtio: find version 1.0 virtio capabilities
Date: Wed, 01 Jul 2015 14:24:02 +0200

  Hi,

> Hmm this seems to violate this rule in the spec:
> 
> 
>       The driver SHOULD use the first instance of each virtio structure type
>       they can support.
> 
> "can support" here means that bios was able to allocate
> it during enumeration.
> 
> For example there could be both IO and memory, in this order
> you need to check that IO/memory got enabled (in theory,
> also that they are within parent bridge's windows - used
> by some guests, but
> seabios doesn't disable memmory/io in this strange way).

Yes, seabios always allocates both mem and io.
So this incremental fix ...

@@ -234,7 +234,7 @@ void vp_init_simple(struct vp_device *vp, struct
pci_device *pci)
             vp_cap = NULL;
             break;
         }
-        if (vp_cap) {
+        if (vp_cap && !vp_cap->cap) {
             vp_cap->cap = cap;
             vp_cap->bar = pci_config_readb(pci->bdf, cap +
                                            offsetof(struct
virtio_pci_cap, bar));

... makes seabios use the first not the last and should do the trick,
right?

cheers,
  Gerd





reply via email to

[Prev in Thread] Current Thread [Next in Thread]