From ce65e697c67ba1a357d806eed05957b3d43f562c Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Fri, 13 Jun 2014 18:06:25 -0700 Subject: [PATCH] virtio: simplify the hardware structure 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 Acked-by: Alan Carew --- lib/librte_pmd_virtio/virtio_ethdev.c | 12 +++++------- lib/librte_pmd_virtio/virtio_pci.c | 4 ++-- lib/librte_pmd_virtio/virtio_pci.h | 13 ++----------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c b/lib/librte_pmd_virtio/virtio_ethdev.c index 22a9186522..b9f552938e 100644 --- a/lib/librte_pmd_virtio/virtio_ethdev.c +++ b/lib/librte_pmd_virtio/virtio_ethdev.c @@ -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]; diff --git a/lib/librte_pmd_virtio/virtio_pci.c b/lib/librte_pmd_virtio/virtio_pci.c index 386d8e07b2..ca9c74822a 100644 --- a/lib/librte_pmd_virtio/virtio_pci.c +++ b/lib/librte_pmd_virtio/virtio_pci.c @@ -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; diff --git a/lib/librte_pmd_virtio/virtio_pci.h b/lib/librte_pmd_virtio/virtio_pci.h index a787fd2325..373f9dcbfc 100644 --- a/lib/librte_pmd_virtio/virtio_pci.h +++ b/lib/librte_pmd_virtio/virtio_pci.h @@ -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]; }; -- 2.20.1