]> git.droids-corp.org - dpdk.git/commitdiff
net/virtio: introduce PCI device metadata
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Tue, 26 Jan 2021 10:16:01 +0000 (11:16 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 29 Jan 2021 17:16:09 +0000 (18:16 +0100)
This patch initiate refactoring of Virtio PCI, by introducing
a new device structure for PCI-specific metadata.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
drivers/net/virtio/virtio_ethdev.c
drivers/net/virtio/virtio_pci.c
drivers/net/virtio/virtio_pci.h

index 68f233356d09413e89331a3a27b41b1e6c91878d..5bbff2790fce02c81d610a282783d4ee2c58019a 100644 (file)
@@ -2154,7 +2154,7 @@ static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
        if (vdpa == 1)
                return 1;
 
-       return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct virtio_hw),
+       return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct virtio_pci_dev),
                eth_virtio_dev_init);
 }
 
index 1692268f304213f2a3e9457b79998118ab3daea7..345d73f86820b0cc2e22470754f4962e7ff1bafb 100644 (file)
@@ -689,6 +689,8 @@ next:
 int
 vtpci_init(struct rte_pci_device *dev, struct virtio_hw *hw)
 {
+       RTE_BUILD_BUG_ON(offsetof(struct virtio_pci_dev, hw) != 0);
+
        /*
         * Try if we can succeed reading virtio pci caps, which exists
         * only on modern pci device. If failed, we fallback to legacy
index d5ef74b1ee25a0af278f26134878a66ab2a567bb..6793d33d9f4cbc24b60c554393f237c665c161c8 100644 (file)
@@ -289,6 +289,11 @@ struct virtio_hw {
        struct virtqueue **vqs;
 };
 
+struct virtio_pci_dev {
+       struct virtio_hw hw;
+};
+
+#define virtio_pci_get_dev(hwp) container_of(hwp, struct virtio_pci_dev, hw)
 
 /*
  * While virtio_hw is stored in shared memory, this structure stores