]> xenbits.xensource.com Git - seabios.git/commitdiff
virtio: pass struct pci_device to vp_init_simple
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 25 Jun 2015 08:24:27 +0000 (10:24 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 1 Jul 2015 07:37:29 +0000 (09:37 +0200)
... instead of the bdf only.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
src/hw/virtio-blk.c
src/hw/virtio-pci.c
src/hw/virtio-pci.h
src/hw/virtio-scsi.c

index 3a71510dce752dff665648273547e2e5e60773fd..1a13129491cb94c3135688173819f208cdad20ba 100644 (file)
@@ -113,7 +113,7 @@ init_virtio_blk(struct pci_device *pci)
     vdrive->drive.type = DTYPE_VIRTIO_BLK;
     vdrive->drive.cntl_id = bdf;
 
-    vp_init_simple(&vdrive->vp, bdf);
+    vp_init_simple(&vdrive->vp, pci);
     if (vp_find_vq(&vdrive->vp, 0, &vdrive->vq) < 0 ) {
         dprintf(1, "fail to find vq for virtio-blk %x:%x\n",
                 pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf));
index f648328760ba74061315078695882b40a1f81579..9428d04a544828721987ee353d4758d911e8c00d 100644 (file)
@@ -85,13 +85,13 @@ fail:
    return -1;
 }
 
-void vp_init_simple(struct vp_device *vp, u16 bdf)
+void vp_init_simple(struct vp_device *vp, struct pci_device *pci)
 {
-    vp->ioaddr = pci_config_readl(bdf, PCI_BASE_ADDRESS_0) &
+    vp->ioaddr = pci_config_readl(pci->bdf, PCI_BASE_ADDRESS_0) &
         PCI_BASE_ADDRESS_IO_MASK;
 
     vp_reset(vp);
-    pci_config_maskw(bdf, PCI_COMMAND, 0, PCI_COMMAND_MASTER);
+    pci_config_maskw(pci->bdf, PCI_COMMAND, 0, PCI_COMMAND_MASTER);
     vp_set_status(vp, VIRTIO_CONFIG_S_ACKNOWLEDGE |
                   VIRTIO_CONFIG_S_DRIVER );
 }
index c1caf67e6fb6c8ce70e153146b2eb43d9a97194a..85e623f0bb8ad3dd4ab1d3723e87059d1fe05e55 100644 (file)
@@ -106,8 +106,9 @@ static inline void vp_del_vq(struct vp_device *vp, int queue_index)
    outl(0, ioaddr + VIRTIO_PCI_QUEUE_PFN);
 }
 
+struct pci_device;
 struct vring_virtqueue;
-void vp_init_simple(struct vp_device *vp, u16 bdf);
+void vp_init_simple(struct vp_device *vp, struct pci_device *pci);
 int vp_find_vq(struct vp_device *vp, int queue_index,
                struct vring_virtqueue **p_vq);
 #endif /* _VIRTIO_PCI_H_ */
index eb7eb8170f7bfcb4c9152bcf5c18aee27ba9f2f2..8073c774a6d276b988feaa2bd98bf9053fb44ddf 100644 (file)
@@ -150,7 +150,7 @@ init_virtio_scsi(struct pci_device *pci)
         warn_noalloc();
         return;
     }
-    vp_init_simple(vp, bdf);
+    vp_init_simple(vp, pci);
     if (vp_find_vq(vp, 2, &vq) < 0 ) {
         dprintf(1, "fail to find vq for virtio-scsi %x:%x\n",
                 pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf));