virtio: simplify the hardware structure
authorStephen Hemminger <stephen@networkplumber.org>
Sat, 14 Jun 2014 01:06:25 +0000 (18:06 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 22 Jul 2014 13:00:01 +0000 (15:00 +0200)
The host_features are never used after negotiation.
The PCI information is unused (and available in rte_pci if needed).

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Alan Carew <alan.carew@intel.com>
lib/librte_pmd_virtio/virtio_ethdev.c
lib/librte_pmd_virtio/virtio_pci.c
lib/librte_pmd_virtio/virtio_pci.h

index 22a9186..b9f5529 100644 (file)
@@ -559,7 +559,7 @@ virtio_get_hwaddr(struct virtio_hw *hw)
 static void
 virtio_negotiate_features(struct virtio_hw *hw)
 {
-       uint32_t guest_features, mask;
+       uint32_t host_features, mask;
 
        mask = VIRTIO_NET_F_CTRL_RX | VIRTIO_NET_F_CTRL_VLAN;
        mask |= VIRTIO_NET_F_CSUM | VIRTIO_NET_F_GUEST_CSUM;
@@ -578,20 +578,20 @@ virtio_negotiate_features(struct virtio_hw *hw)
        mask |= VIRTIO_RING_F_INDIRECT_DESC;
 
        /* Prepare guest_features: feature that driver wants to support */
-       guest_features = VTNET_FEATURES & ~mask;
+       hw->guest_features = VTNET_FEATURES & ~mask;
        PMD_INIT_LOG(DEBUG, "guest_features before negotiate = %x",
                guest_features);
 
        /* Read device(host) feature bits */
-       hw->host_features = VIRTIO_READ_REG_4(hw, VIRTIO_PCI_HOST_FEATURES);
+       host_features = VIRTIO_READ_REG_4(hw, VIRTIO_PCI_HOST_FEATURES);
        PMD_INIT_LOG(DEBUG, "host_features before negotiate = %x",
-               hw->host_features);
+               host_features);
 
        /*
         * Negotiate features: Subset of device feature bits are written back
         * guest feature bits.
         */
-       hw->guest_features = vtpci_negotiate_features(hw, guest_features);
+       hw->guest_features = vtpci_negotiate_features(hw, host_features);
        PMD_INIT_LOG(DEBUG, "features after negotiate = %x",
                hw->guest_features);
 }
@@ -754,8 +754,6 @@ eth_virtio_dev_init(__rte_unused struct eth_driver *eth_drv,
 
        pci_dev = eth_dev->pci_dev;
 
-       hw->device_id = pci_dev->id.device_id;
-       hw->vendor_id = pci_dev->id.vendor_id;
 #ifdef RTE_EXEC_ENV_LINUXAPP
        {
                char dirname[PATH_MAX];
index 386d8e0..ca9c748 100644 (file)
@@ -82,14 +82,14 @@ vtpci_write_dev_config(struct virtio_hw *hw, uint64_t offset,
 }
 
 uint32_t
-vtpci_negotiate_features(struct virtio_hw *hw, uint32_t guest_features)
+vtpci_negotiate_features(struct virtio_hw *hw, uint32_t host_features)
 {
        uint32_t features;
        /*
         * Limit negotiated features to what the driver, virtqueue, and
         * host all support.
         */
-       features = (hw->host_features) & guest_features;
+       features = host_features & hw->guest_features;
 
        VIRTIO_WRITE_REG_4(hw, VIRTIO_PCI_GUEST_FEATURES, features);
        return features;
index a787fd2..373f9dc 100644 (file)
@@ -162,21 +162,12 @@ struct virtqueue;
 #define VIRTIO_MAX_VIRTQUEUES 8
 
 struct virtio_hw {
+       struct virtqueue *cvq;
        uint32_t    io_base;
-       uint32_t    host_features;
        uint32_t    guest_features;
-
-       struct virtqueue *cvq;
-
-       uint16_t    vtnet_hdr_size;
-
        uint32_t    max_tx_queues;
        uint32_t    max_rx_queues;
-       uint16_t    device_id;
-       uint16_t    vendor_id;
-       uint16_t    subsystem_device_id;
-       uint16_t    subsystem_vendor_id;
-       uint8_t     revision_id;
+       uint16_t    vtnet_hdr_size;
        uint8_t     use_msix;
        uint8_t     mac_addr[ETHER_ADDR_LEN];
 };