]> xenbits.xensource.com Git - people/andrewcoop/seabios.git/commitdiff
virtio: fix virtio-pci
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 16 Sep 2016 11:01:46 +0000 (13:01 +0200)
committerKevin O'Connor <kevin@koconnor.net>
Fri, 16 Sep 2016 12:30:55 +0000 (08:30 -0400)
virtio-pci calls pci_enable_{io,mem}bar with the bar number,
but the functions expect the bar base register offset.

Reported-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
src/hw/virtio-pci.c

index 8efc826a91feb6df8ca3e3e81de5c648fd5d7845..e5c2c330420fc23f476c8ebfebce0c3860cff51c 100644 (file)
@@ -449,7 +449,7 @@ void vp_init_simple(struct vp_device *vp, struct pci_device *pci)
             switch (vp_cap->mode) {
             case VP_ACCESS_IO:
             {
-                u32 addr = pci_enable_iobar(pci, vp_cap->bar);
+                u32 addr = pci_enable_iobar(pci, base);
                 if (!addr)
                     return;
                 vp_cap->ioaddr = addr + offset;
@@ -458,7 +458,7 @@ void vp_init_simple(struct vp_device *vp, struct pci_device *pci)
             }
             case VP_ACCESS_MMIO:
             {
-                void *addr = pci_enable_membar(pci, vp_cap->bar);
+                void *addr = pci_enable_membar(pci, base);
                 if (!addr)
                     return;
                 vp_cap->memaddr = addr + offset;