ethdev: change device info get callback to return int
authorIvan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Thu, 12 Sep 2019 16:42:28 +0000 (17:42 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 7 Oct 2019 12:45:35 +0000 (14:45 +0200)
Change eth_dev_infos_get_t return value from void to int.
Make eth_dev_infos_get_t implementations across all drivers to return
negative errno values if case of error conditions.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
59 files changed:
app/test/virtual_pmd.c
drivers/net/af_packet/rte_eth_af_packet.c
drivers/net/af_xdp/rte_eth_af_xdp.c
drivers/net/ark/ark_ethdev.c
drivers/net/atlantic/atl_ethdev.c
drivers/net/avp/avp_ethdev.c
drivers/net/axgbe/axgbe_ethdev.c
drivers/net/bnx2x/bnx2x_ethdev.c
drivers/net/bnxt/bnxt_ethdev.c
drivers/net/bonding/rte_eth_bond_pmd.c
drivers/net/cxgbe/cxgbe_ethdev.c
drivers/net/cxgbe/cxgbe_pfvf.h
drivers/net/dpaa/dpaa_ethdev.c
drivers/net/dpaa2/dpaa2_ethdev.c
drivers/net/e1000/em_ethdev.c
drivers/net/e1000/igb_ethdev.c
drivers/net/ena/ena_ethdev.c
drivers/net/enetc/enetc_ethdev.c
drivers/net/enic/enic_ethdev.c
drivers/net/failsafe/failsafe_ops.c
drivers/net/fm10k/fm10k_ethdev.c
drivers/net/hinic/hinic_pmd_ethdev.c
drivers/net/i40e/i40e_ethdev.c
drivers/net/i40e/i40e_ethdev_vf.c
drivers/net/i40e/i40e_vf_representor.c
drivers/net/iavf/iavf_ethdev.c
drivers/net/ice/ice_ethdev.c
drivers/net/ipn3ke/ipn3ke_representor.c
drivers/net/ixgbe/ixgbe_ethdev.c
drivers/net/ixgbe/ixgbe_vf_representor.c
drivers/net/kni/rte_eth_kni.c
drivers/net/liquidio/lio_ethdev.c
drivers/net/memif/rte_eth_memif.c
drivers/net/mlx4/mlx4.h
drivers/net/mlx4/mlx4_ethdev.c
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_ethdev.c
drivers/net/mvneta/mvneta_ethdev.c
drivers/net/mvpp2/mrvl_ethdev.c
drivers/net/netvsc/hn_ethdev.c
drivers/net/nfb/nfb_ethdev.c
drivers/net/nfp/nfp_net.c
drivers/net/null/rte_eth_null.c
drivers/net/octeontx/octeontx_ethdev.c
drivers/net/octeontx2/otx2_ethdev.h
drivers/net/octeontx2/otx2_ethdev_ops.c
drivers/net/pcap/rte_eth_pcap.c
drivers/net/qede/qede_ethdev.c
drivers/net/ring/rte_eth_ring.c
drivers/net/sfc/sfc_ethdev.c
drivers/net/softnic/rte_eth_softnic.c
drivers/net/szedata2/rte_eth_szedata2.c
drivers/net/tap/rte_eth_tap.c
drivers/net/thunderx/nicvf_ethdev.c
drivers/net/vhost/rte_eth_vhost.c
drivers/net/virtio/virtio_ethdev.c
drivers/net/vmxnet3/vmxnet3_ethdev.c
lib/librte_ethdev/rte_ethdev.c
lib/librte_ethdev/rte_ethdev_core.h

index 55c2bdb9820fc1db9b7480359c4df128d8d9f4be..e295891c060498e42bc3d1b5ced84ad5bb998679 100644 (file)
@@ -78,7 +78,7 @@ virtual_ethdev_configure_fail(struct rte_eth_dev *dev __rte_unused)
        return -1;
 }
 
-static void
+static int
 virtual_ethdev_info_get(struct rte_eth_dev *dev __rte_unused,
                struct rte_eth_dev_info *dev_info)
 {
@@ -91,6 +91,8 @@ virtual_ethdev_info_get(struct rte_eth_dev *dev __rte_unused,
        dev_info->max_tx_queues = (uint16_t)512;
 
        dev_info->min_rx_bufsize = 0;
+
+       return 0;
 }
 
 static int
index 6df09f282820d8b2c9a0acfc98cb5c1e500c0a04..66131b53e7a72b76c9047d654ba3bdc64591df99 100644 (file)
@@ -299,7 +299,7 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
        return 0;
 }
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct pmd_internals *internals = dev->data->dev_private;
@@ -310,6 +310,8 @@ eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->max_rx_queues = (uint16_t)internals->nb_queues;
        dev_info->max_tx_queues = (uint16_t)internals->nb_queues;
        dev_info->min_rx_bufsize = 0;
+
+       return 0;
 }
 
 static int
index 41ed5b2af493cecc0748c9e73f0e18ad76ee6cde..aa716f3195c91358604416d87a09c6323cb28d21 100644 (file)
@@ -403,7 +403,7 @@ eth_dev_configure(struct rte_eth_dev *dev)
        return 0;
 }
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct pmd_internals *internals = dev->data->dev_private;
@@ -421,6 +421,8 @@ eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->default_txportconf.nb_queues = 1;
        dev_info->default_rxportconf.ring_size = ETH_AF_XDP_DFLT_NUM_DESCS;
        dev_info->default_txportconf.ring_size = ETH_AF_XDP_DFLT_NUM_DESCS;
+
+       return 0;
 }
 
 static int
index 4c807f8ddcc2711ab426b3b8546f12afb15df07a..2b3f8e3bbfd4ff150b6d53190e20adbd2a7e0d0e 100644 (file)
@@ -31,8 +31,8 @@ static int eth_ark_dev_configure(struct rte_eth_dev *dev);
 static int eth_ark_dev_start(struct rte_eth_dev *dev);
 static void eth_ark_dev_stop(struct rte_eth_dev *dev);
 static void eth_ark_dev_close(struct rte_eth_dev *dev);
-static void eth_ark_dev_info_get(struct rte_eth_dev *dev,
-                                struct rte_eth_dev_info *dev_info);
+static int eth_ark_dev_info_get(struct rte_eth_dev *dev,
+                               struct rte_eth_dev_info *dev_info);
 static int eth_ark_dev_link_update(struct rte_eth_dev *dev,
                                   int wait_to_complete);
 static int eth_ark_dev_set_link_up(struct rte_eth_dev *dev);
@@ -715,7 +715,7 @@ eth_ark_dev_close(struct rte_eth_dev *dev)
        dev->data->mac_addrs = 0;
 }
 
-static void
+static int
 eth_ark_dev_info_get(struct rte_eth_dev *dev,
                     struct rte_eth_dev_info *dev_info)
 {
@@ -747,6 +747,8 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
                                ETH_LINK_SPEED_40G |
                                ETH_LINK_SPEED_50G |
                                ETH_LINK_SPEED_100G);
+
+       return 0;
 }
 
 static int
index 4a99699ad5e0717066646a0252000712e4199546..b056f8229a2831d86422ef83d2c06ffc620a0ec2 100644 (file)
@@ -117,7 +117,7 @@ static int eth_atl_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
        struct rte_pci_device *pci_dev);
 static int eth_atl_pci_remove(struct rte_pci_device *pci_dev);
 
-static void atl_dev_info_get(struct rte_eth_dev *dev,
+static int atl_dev_info_get(struct rte_eth_dev *dev,
                                struct rte_eth_dev_info *dev_info);
 
 int atl_logtype_init;
@@ -1074,7 +1074,7 @@ atl_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
        return 0;
 }
 
-static void
+static int
 atl_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
@@ -1115,6 +1115,8 @@ atl_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->speed_capa |= ETH_LINK_SPEED_100M;
        dev_info->speed_capa |= ETH_LINK_SPEED_2_5G;
        dev_info->speed_capa |= ETH_LINK_SPEED_5G;
+
+       return 0;
 }
 
 static const uint32_t *
@@ -1600,9 +1602,12 @@ static int
 atl_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 {
        struct rte_eth_dev_info dev_info;
+       int ret;
        uint32_t frame_size = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
 
-       atl_dev_info_get(dev, &dev_info);
+       ret = atl_dev_info_get(dev, &dev_info);
+       if (ret != 0)
+               return ret;
 
        if (mtu < RTE_ETHER_MIN_MTU || frame_size > dev_info.max_rx_pktlen)
                return -EINVAL;
index 504435edc22ffc6ab73e142f57b09918f5a590a2..c5801f319ac3f10c67cb33d386332ce560260cbc 100644 (file)
@@ -41,8 +41,8 @@ static int avp_dev_configure(struct rte_eth_dev *dev);
 static int avp_dev_start(struct rte_eth_dev *dev);
 static void avp_dev_stop(struct rte_eth_dev *dev);
 static void avp_dev_close(struct rte_eth_dev *dev);
-static void avp_dev_info_get(struct rte_eth_dev *dev,
-                            struct rte_eth_dev_info *dev_info);
+static int avp_dev_info_get(struct rte_eth_dev *dev,
+                           struct rte_eth_dev_info *dev_info);
 static int avp_vlan_offload_set(struct rte_eth_dev *dev, int mask);
 static int avp_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete);
 static void avp_dev_promiscuous_enable(struct rte_eth_dev *dev);
@@ -2185,7 +2185,7 @@ avp_dev_promiscuous_disable(struct rte_eth_dev *eth_dev)
        rte_spinlock_unlock(&avp->lock);
 }
 
-static void
+static int
 avp_dev_info_get(struct rte_eth_dev *eth_dev,
                 struct rte_eth_dev_info *dev_info)
 {
@@ -2200,6 +2200,8 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev,
                dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
                dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT;
        }
+
+       return 0;
 }
 
 static int
index 4fcede889daef03342de3840561f43e9ed039c0f..5a7da75126913d2de5fef0963d3d0a5a5a00f264 100644 (file)
@@ -24,7 +24,7 @@ static int axgbe_dev_link_update(struct rte_eth_dev *dev,
 static int axgbe_dev_stats_get(struct rte_eth_dev *dev,
                                struct rte_eth_stats *stats);
 static void axgbe_dev_stats_reset(struct rte_eth_dev *dev);
-static void axgbe_dev_info_get(struct rte_eth_dev *dev,
+static int  axgbe_dev_info_get(struct rte_eth_dev *dev,
                               struct rte_eth_dev_info *dev_info);
 
 /* The set of PCI devices this driver supports */
@@ -354,7 +354,7 @@ axgbe_dev_stats_reset(struct rte_eth_dev *dev)
        }
 }
 
-static void
+static int
 axgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct axgbe_port *pdata = dev->data->dev_private;
@@ -393,6 +393,8 @@ axgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->default_txconf = (struct rte_eth_txconf) {
                .tx_free_thresh = AXGBE_TX_FREE_THRESH,
        };
+
+       return 0;
 }
 
 static void axgbe_get_all_hw_features(struct axgbe_port *pdata)
index cda29e64fcaecde40529e637034093bcda065b2e..b7359514e53591746153cebb0ba532e4f30d1db0 100644 (file)
@@ -478,7 +478,7 @@ bnx2x_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
        return num;
 }
 
-static void
+static int
 bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct bnx2x_softc *sc = dev->data->dev_private;
@@ -494,6 +494,8 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->rx_desc_lim.nb_max = MAX_RX_AVAIL;
        dev_info->rx_desc_lim.nb_min = MIN_RX_SIZE_NONTPA;
        dev_info->tx_desc_lim.nb_max = MAX_TX_AVAIL;
+
+       return 0;
 }
 
 static int
index 6685ee7d907cbdd4adb65b8f1b17ecadbae23bad..b521a72963a6bccd8cf81df50143926bac64e734 100644 (file)
@@ -494,8 +494,8 @@ static int bnxt_init_nic(struct bnxt *bp)
  * Device configuration and status function
  */
 
-static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
-                                 struct rte_eth_dev_info *dev_info)
+static int bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
+                               struct rte_eth_dev_info *dev_info)
 {
        struct bnxt *bp = eth_dev->data->dev_private;
        uint16_t max_vnics, i, j, vpool, vrxq;
@@ -588,6 +588,8 @@ found:
 
        dev_info->vmdq_pool_base = 0;
        dev_info->vmdq_queue_base = 0;
+
+       return 0;
 }
 
 /* Configure the device based on the configuration provided */
@@ -1787,7 +1789,11 @@ static int bnxt_mtu_set_op(struct rte_eth_dev *eth_dev, uint16_t new_mtu)
        new_pkt_size = new_mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN +
                       VLAN_TAG_SIZE * BNXT_NUM_VLANS;
 
-       bnxt_dev_info_get_op(eth_dev, &dev_info);
+       rc = bnxt_dev_info_get_op(eth_dev, &dev_info);
+       if (rc != 0) {
+               PMD_DRV_LOG(ERR, "Error during getting ethernet device info\n");
+               return rc;
+       }
 
        if (new_mtu < RTE_ETHER_MIN_MTU || new_mtu > BNXT_MAX_MTU) {
                PMD_DRV_LOG(ERR, "MTU requested must be within (%d, %d)\n",
index a1b50141f9ecdbd037b485adfc956a5597e8ae0b..a994c9abd2c4b911879a9afefc83cbece8a9d5c6 100644 (file)
@@ -2115,7 +2115,7 @@ bond_ethdev_close(struct rte_eth_dev *dev)
 /* forward declaration */
 static int bond_ethdev_configure(struct rte_eth_dev *dev);
 
-static void
+static int
 bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct bond_dev_private *internals = dev->data->dev_private;
@@ -2151,7 +2151,7 @@ bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
                                        slave.port_id,
                                        strerror(-ret));
 
-                               return;
+                               return ret;
                        }
 
                        if (slave_info.max_rx_queues < max_nb_rx_queues)
@@ -2198,6 +2198,8 @@ bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads;
 
        dev_info->reta_size = internals->reta_size;
+
+       return 0;
 }
 
 static int
index efb458d4707c7dcdad05b81a029898264409dff5..19c2a3c4dbeed9059919e5294c9e987fa708c3cd 100644 (file)
@@ -111,7 +111,7 @@ uint16_t cxgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
        return work_done;
 }
 
-void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
+int cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
                        struct rte_eth_dev_info *device_info)
 {
        struct port_info *pi = eth_dev->data->dev_private;
@@ -146,6 +146,8 @@ void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
        device_info->rx_desc_lim = cxgbe_desc_lim;
        device_info->tx_desc_lim = cxgbe_desc_lim;
        cxgbe_get_speed_caps(pi, &device_info->speed_capa);
+
+       return 0;
 }
 
 void cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)
@@ -281,7 +283,9 @@ int cxgbe_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu)
        int err;
        uint16_t new_mtu = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
 
-       cxgbe_dev_info_get(eth_dev, &dev_info);
+       err = cxgbe_dev_info_get(eth_dev, &dev_info);
+       if (err != 0)
+               return err;
 
        /* Must accommodate at least RTE_ETHER_MIN_MTU */
        if (new_mtu < RTE_ETHER_MIN_MTU || new_mtu > dev_info.max_rx_pktlen)
@@ -587,7 +591,12 @@ int cxgbe_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
                  __func__, eth_dev->data->nb_rx_queues, queue_idx, nb_desc,
                  socket_id, mp);
 
-       cxgbe_dev_info_get(eth_dev, &dev_info);
+       err = cxgbe_dev_info_get(eth_dev, &dev_info);
+       if (err != 0) {
+               dev_err(adap, "%s: error during getting ethernet device info",
+                       __func__);
+               return err;
+       }
 
        /* Must accommodate at least RTE_ETHER_MIN_MTU */
        if ((pkt_len < dev_info.min_rx_bufsize) ||
index 03145cea6ddea45ae1c7d7541506cb97f2c1572a..011ec13860ea042288edba4748a8dc65430ba0c4 100644 (file)
@@ -10,8 +10,8 @@ void cxgbe_dev_rx_queue_release(void *q);
 void cxgbe_dev_tx_queue_release(void *q);
 void cxgbe_dev_stop(struct rte_eth_dev *eth_dev);
 void cxgbe_dev_close(struct rte_eth_dev *eth_dev);
-void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
-                       struct rte_eth_dev_info *device_info);
+int cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
+                      struct rte_eth_dev_info *device_info);
 void cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev);
 void cxgbe_dev_promiscuous_disable(struct rte_eth_dev *eth_dev);
 void cxgbe_dev_allmulticast_enable(struct rte_eth_dev *eth_dev);
index 7154fb9b4cf137cddf851e12c3c83fec1c1becee..25deadb9494740605ddfafcc007d9e01ad324374 100644 (file)
@@ -124,7 +124,7 @@ static const struct rte_dpaa_xstats_name_off dpaa_xstats_strings[] = {
 
 static struct rte_dpaa_driver rte_dpaa_pmd;
 
-static void
+static int
 dpaa_eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info);
 
 static inline void
@@ -330,8 +330,8 @@ dpaa_fw_version_get(struct rte_eth_dev *dev __rte_unused,
                return 0;
 }
 
-static void dpaa_eth_dev_info(struct rte_eth_dev *dev,
-                             struct rte_eth_dev_info *dev_info)
+static int dpaa_eth_dev_info(struct rte_eth_dev *dev,
+                            struct rte_eth_dev_info *dev_info)
 {
        struct dpaa_if *dpaa_intf = dev->data->dev_private;
 
@@ -346,13 +346,15 @@ static void dpaa_eth_dev_info(struct rte_eth_dev *dev,
        dev_info->max_vmdq_pools = ETH_16_POOLS;
        dev_info->flow_type_rss_offloads = DPAA_RSS_OFFLOAD_ALL;
 
-       if (dpaa_intf->fif->mac_type == fman_mac_1g)
+       if (dpaa_intf->fif->mac_type == fman_mac_1g) {
                dev_info->speed_capa = ETH_LINK_SPEED_1G;
-       else if (dpaa_intf->fif->mac_type == fman_mac_10g)
+       } else if (dpaa_intf->fif->mac_type == fman_mac_10g) {
                dev_info->speed_capa = (ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G);
-       else
+       } else {
                DPAA_PMD_ERR("invalid link_speed: %s, %d",
                             dpaa_intf->name, dpaa_intf->fif->mac_type);
+               return -EINVAL;
+       }
 
        dev_info->rx_offload_capa = dev_rx_offloads_sup |
                                        dev_rx_offloads_nodis;
@@ -360,6 +362,8 @@ static void dpaa_eth_dev_info(struct rte_eth_dev *dev,
                                        dev_tx_offloads_nodis;
        dev_info->default_rxportconf.burst_size = DPAA_DEF_RX_BURST_SIZE;
        dev_info->default_txportconf.burst_size = DPAA_DEF_TX_BURST_SIZE;
+
+       return 0;
 }
 
 static int dpaa_eth_link_update(struct rte_eth_dev *dev,
index dd6a78f9fe99da8d9a5da89e33989d9ff9d41f59..879bbc120d9905feee9d40afabf9b3937fda1ff1 100644 (file)
@@ -243,7 +243,7 @@ dpaa2_fw_version_get(struct rte_eth_dev *dev,
                return 0;
 }
 
-static void
+static int
 dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct dpaa2_dev_priv *priv = dev->data->dev_private;
@@ -269,6 +269,8 @@ dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->max_vfs = 0;
        dev_info->max_vmdq_pools = ETH_16_POOLS;
        dev_info->flow_type_rss_offloads = DPAA2_RSS_OFFLOAD_ALL;
+
+       return 0;
 }
 
 static int
index fd44924285079eee1bd8d0557d09a0f00b5b1bef..8850957902a984197252793d3de56379beae81d2 100644 (file)
@@ -44,7 +44,7 @@ static int eth_em_link_update(struct rte_eth_dev *dev,
 static int eth_em_stats_get(struct rte_eth_dev *dev,
                                struct rte_eth_stats *rte_stats);
 static void eth_em_stats_reset(struct rte_eth_dev *dev);
-static void eth_em_infos_get(struct rte_eth_dev *dev,
+static int eth_em_infos_get(struct rte_eth_dev *dev,
                                struct rte_eth_dev_info *dev_info);
 static int eth_em_flow_ctrl_get(struct rte_eth_dev *dev,
                                struct rte_eth_fc_conf *fc_conf);
@@ -1048,7 +1048,7 @@ em_get_max_pktlen(struct rte_eth_dev *dev)
        }
 }
 
-static void
+static int
 eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -1107,6 +1107,8 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->default_txportconf.nb_queues = 1;
        dev_info->default_txportconf.ring_size = 256;
        dev_info->default_rxportconf.ring_size = 256;
+
+       return 0;
 }
 
 /* return 0 means link status changed, -1 means not changed */
@@ -1776,8 +1778,12 @@ eth_em_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
        struct e1000_hw *hw;
        uint32_t frame_size;
        uint32_t rctl;
+       int ret;
+
+       ret = eth_em_infos_get(dev, &dev_info);
+       if (ret != 0)
+               return ret;
 
-       eth_em_infos_get(dev, &dev_info);
        frame_size = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN +
                VLAN_TAG_SIZE;
 
index fec2b4289aa84bed0440719f252cc7b09cc1b854..6172f9ac6443a3e4ed8daed1146eb06912491cbd 100644 (file)
@@ -102,10 +102,10 @@ static void eth_igb_stats_reset(struct rte_eth_dev *dev);
 static void eth_igb_xstats_reset(struct rte_eth_dev *dev);
 static int eth_igb_fw_version_get(struct rte_eth_dev *dev,
                                   char *fw_version, size_t fw_size);
-static void eth_igb_infos_get(struct rte_eth_dev *dev,
+static int eth_igb_infos_get(struct rte_eth_dev *dev,
                              struct rte_eth_dev_info *dev_info);
 static const uint32_t *eth_igb_supported_ptypes_get(struct rte_eth_dev *dev);
-static void eth_igbvf_infos_get(struct rte_eth_dev *dev,
+static int eth_igbvf_infos_get(struct rte_eth_dev *dev,
                                struct rte_eth_dev_info *dev_info);
 static int  eth_igb_flow_ctrl_get(struct rte_eth_dev *dev,
                                struct rte_eth_fc_conf *fc_conf);
@@ -2193,7 +2193,7 @@ eth_igb_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
                return 0;
 }
 
-static void
+static int
 eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -2255,7 +2255,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        default:
                /* Should not happen */
-               break;
+               return -EINVAL;
        }
        dev_info->hash_key_size = IGB_HKEY_MAX_INDEX * sizeof(uint32_t);
        dev_info->reta_size = ETH_RSS_RETA_SIZE_128;
@@ -2291,6 +2291,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->max_mtu = dev_info->max_rx_pktlen - E1000_ETH_OVERHEAD;
        dev_info->min_mtu = RTE_ETHER_MIN_MTU;
 
+       return 0;
 }
 
 static const uint32_t *
@@ -2320,7 +2321,7 @@ eth_igb_supported_ptypes_get(struct rte_eth_dev *dev)
        return NULL;
 }
 
-static void
+static int
 eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -2345,7 +2346,7 @@ eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
                break;
        default:
                /* Should not happen */
-               break;
+               return -EINVAL;
        }
 
        dev_info->rx_queue_offload_capa = igb_get_rx_queue_offloads_capa(dev);
@@ -2377,6 +2378,8 @@ eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        dev_info->rx_desc_lim = rx_desc_lim;
        dev_info->tx_desc_lim = tx_desc_lim;
+
+       return 0;
 }
 
 /* return 0 means link status changed, -1 means not changed */
@@ -2794,6 +2797,7 @@ eth_igb_lsc_interrupt_setup(struct rte_eth_dev *dev, uint8_t on)
 static int eth_igb_rxq_interrupt_setup(struct rte_eth_dev *dev)
 {
        uint32_t mask, regval;
+       int ret;
        struct e1000_hw *hw =
                E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
@@ -2802,7 +2806,9 @@ static int eth_igb_rxq_interrupt_setup(struct rte_eth_dev *dev)
        struct rte_eth_dev_info dev_info;
 
        memset(&dev_info, 0, sizeof(dev_info));
-       eth_igb_infos_get(dev, &dev_info);
+       ret = eth_igb_infos_get(dev, &dev_info);
+       if (ret != 0)
+               return ret;
 
        mask = (0xFFFFFFFF >> (32 - dev_info.max_rx_queues)) << misc_shift;
        regval = E1000_READ_REG(hw, E1000_EIMS);
@@ -3176,9 +3182,12 @@ igbvf_stop_adapter(struct rte_eth_dev *dev)
        u16 i;
        struct rte_eth_dev_info dev_info;
        struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+       int ret;
 
        memset(&dev_info, 0, sizeof(dev_info));
-       eth_igbvf_infos_get(dev, &dev_info);
+       ret = eth_igbvf_infos_get(dev, &dev_info);
+       if (ret != 0)
+               return;
 
        /* Clear interrupt mask to stop from interrupts being generated */
        igbvf_intr_disable(hw);
@@ -4475,6 +4484,7 @@ eth_igb_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
        struct e1000_hw *hw;
        struct rte_eth_dev_info dev_info;
        uint32_t frame_size = mtu + E1000_ETH_OVERHEAD;
+       int ret;
 
        hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
@@ -4483,7 +4493,9 @@ eth_igb_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
        if (hw->mac.type == e1000_82571)
                return -ENOTSUP;
 #endif
-       eth_igb_infos_get(dev, &dev_info);
+       ret = eth_igb_infos_get(dev, &dev_info);
+       if (ret != 0)
+               return ret;
 
        /* check that mtu is within the allowed range */
        if (mtu < RTE_ETHER_MIN_MTU ||
index 7d4a3b225e73cefd1be4fc96fe5e015a2c81f161..8fefacf45fa7201dd57ffff1611562984ae9af01 100644 (file)
@@ -227,8 +227,8 @@ static int ena_queue_start(struct ena_ring *ring);
 static int ena_queue_start_all(struct rte_eth_dev *dev,
                               enum ena_ring_type ring_type);
 static void ena_stats_restart(struct rte_eth_dev *dev);
-static void ena_infos_get(struct rte_eth_dev *dev,
-                         struct rte_eth_dev_info *dev_info);
+static int ena_infos_get(struct rte_eth_dev *dev,
+                        struct rte_eth_dev_info *dev_info);
 static int ena_rss_reta_update(struct rte_eth_dev *dev,
                               struct rte_eth_rss_reta_entry64 *reta_conf,
                               uint16_t reta_size);
@@ -1909,7 +1909,7 @@ static void ena_init_rings(struct ena_adapter *adapter)
        }
 }
 
-static void ena_infos_get(struct rte_eth_dev *dev,
+static int ena_infos_get(struct rte_eth_dev *dev,
                          struct rte_eth_dev_info *dev_info)
 {
        struct ena_adapter *adapter;
@@ -1982,6 +1982,8 @@ static void ena_infos_get(struct rte_eth_dev *dev,
                                        adapter->max_tx_sgl_size);
        dev_info->tx_desc_lim.nb_mtu_seg_max = RTE_MIN(ENA_PKT_MAX_BUFS,
                                        adapter->max_tx_sgl_size);
+
+       return 0;
 }
 
 static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
index 6c5501acb3a14c9afabdd304281ba874bf0862b7..dec42b976389913835567b65cef4295d08e743e0 100644 (file)
@@ -144,7 +144,7 @@ enetc_hardware_init(struct enetc_eth_hw *hw)
        return 0;
 }
 
-static void
+static int
 enetc_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
                    struct rte_eth_dev_info *dev_info)
 {
@@ -168,6 +168,8 @@ enetc_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
                 DEV_RX_OFFLOAD_TCP_CKSUM |
                 DEV_RX_OFFLOAD_KEEP_CRC |
                 DEV_RX_OFFLOAD_JUMBO_FRAME);
+
+       return 0;
 }
 
 static int
index 06dc67122c2517c5e0b241449296af8e8e1dc98e..90fdeda901f294148dc15056c012b0158af6aa19 100644 (file)
@@ -500,7 +500,7 @@ static uint32_t speed_capa_from_pci_id(struct rte_eth_dev *eth_dev)
        return ETH_LINK_SPEED_10G;
 }
 
-static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
+static int enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
        struct rte_eth_dev_info *device_info)
 {
        struct enic *enic = pmd_priv(eth_dev);
@@ -555,6 +555,8 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
                .nb_queues = ENIC_DEFAULT_TX_RINGS,
        };
        device_info->speed_capa = speed_capa_from_pci_id(eth_dev);
+
+       return 0;
 }
 
 static const uint32_t *enicpmd_dev_supported_ptypes_get(struct rte_eth_dev *dev)
index c52958a3f8a1e51c50c7b9f0c0911ba1223ae09c..2683b8fe5dc75b19471070c88470baef2f566ac6 100644 (file)
@@ -860,7 +860,7 @@ fs_dev_merge_info(struct rte_eth_dev_info *info,
  *      all sub_devices and the default capabilities.
  *
  */
-static void
+static int
 fs_dev_infos_get(struct rte_eth_dev *dev,
                  struct rte_eth_dev_info *infos)
 {
@@ -937,10 +937,12 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
                ret = rte_eth_dev_info_get(PORT_ID(sdev), &sub_info);
                ret = fs_err(sdev, ret);
                if (ret != 0)
-                       return;
+                       return ret;
 
                fs_dev_merge_info(infos, &sub_info);
        }
+
+       return 0;
 }
 
 static const uint32_t *
index db4d72129d8bf67f8a54ed155766b0f9f6ce28b7..8cb7337ea50f8b4be6d2f19ed5ec578ef1eb74c1 100644 (file)
@@ -60,8 +60,8 @@ static void fm10k_set_tx_function(struct rte_eth_dev *dev);
 static int fm10k_check_ftag(struct rte_devargs *devargs);
 static int fm10k_link_update(struct rte_eth_dev *dev, int wait_to_complete);
 
-static void fm10k_dev_infos_get(struct rte_eth_dev *dev,
-                               struct rte_eth_dev_info *dev_info);
+static int fm10k_dev_infos_get(struct rte_eth_dev *dev,
+                              struct rte_eth_dev_info *dev_info);
 static uint64_t fm10k_get_rx_queue_offloads_capa(struct rte_eth_dev *dev);
 static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev);
 static uint64_t fm10k_get_tx_queue_offloads_capa(struct rte_eth_dev *dev);
@@ -1360,7 +1360,7 @@ fm10k_stats_reset(struct rte_eth_dev *dev)
        fm10k_rebind_hw_stats(hw, hw_stats);
 }
 
-static void
+static int
 fm10k_dev_infos_get(struct rte_eth_dev *dev,
        struct rte_eth_dev_info *dev_info)
 {
@@ -1438,6 +1438,8 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
        dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G |
                        ETH_LINK_SPEED_10G | ETH_LINK_SPEED_25G |
                        ETH_LINK_SPEED_40G | ETH_LINK_SPEED_100G;
+
+       return 0;
 }
 
 #ifdef RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE
index 044af9053c1efec0e877763e9e2611dae71ec6dd..17a3625d63462dd816a0b46062d442ca30bec6fd 100644 (file)
@@ -664,7 +664,7 @@ static void hinic_get_speed_capa(struct rte_eth_dev *dev, uint32_t *speed_capa)
  * @param info
  *   Pointer to Info structure output buffer.
  */
-static void
+static int
 hinic_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 {
        struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev);
@@ -697,6 +697,8 @@ hinic_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
        info->flow_type_rss_offloads = HINIC_RSS_OFFLOAD_ALL;
        info->rx_desc_lim = hinic_rx_desc_lim;
        info->tx_desc_lim = hinic_tx_desc_lim;
+
+       return 0;
 }
 
 static int hinic_config_rx_mode(struct hinic_nic_dev *nic_dev, u32 rx_mode_ctrl)
index 4e40b7ab5250f071dbc6b639da27962af1eb849c..390cb21964c79674e70f6ca4c98669ac7605e723 100644 (file)
@@ -239,8 +239,8 @@ static int i40e_dev_xstats_get_names(struct rte_eth_dev *dev,
 static void i40e_dev_stats_reset(struct rte_eth_dev *dev);
 static int i40e_fw_version_get(struct rte_eth_dev *dev,
                                char *fw_version, size_t fw_size);
-static void i40e_dev_info_get(struct rte_eth_dev *dev,
-                             struct rte_eth_dev_info *dev_info);
+static int i40e_dev_info_get(struct rte_eth_dev *dev,
+                            struct rte_eth_dev_info *dev_info);
 static int i40e_vlan_filter_set(struct rte_eth_dev *dev,
                                uint16_t vlan_id,
                                int on);
@@ -3483,7 +3483,7 @@ i40e_need_stop_lldp(struct rte_eth_dev *dev)
        return false;
 }
 
-static void
+static int
 i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
@@ -3620,6 +3620,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        }
        dev_info->default_rxportconf.burst_size = 32;
        dev_info->default_txportconf.burst_size = 32;
+
+       return 0;
 }
 
 static int
index 7b1d485c6499a93fd702abed2bf41f8943fc8944..95b77428486a5977bd1f295c128dd4a543b028a0 100644 (file)
@@ -75,8 +75,8 @@ enum i40evf_aq_result {
 static int i40evf_dev_configure(struct rte_eth_dev *dev);
 static int i40evf_dev_start(struct rte_eth_dev *dev);
 static void i40evf_dev_stop(struct rte_eth_dev *dev);
-static void i40evf_dev_info_get(struct rte_eth_dev *dev,
-                               struct rte_eth_dev_info *dev_info);
+static int i40evf_dev_info_get(struct rte_eth_dev *dev,
+                              struct rte_eth_dev_info *dev_info);
 static int i40evf_dev_link_update(struct rte_eth_dev *dev,
                                  int wait_to_complete);
 static int i40evf_dev_stats_get(struct rte_eth_dev *dev,
@@ -2216,7 +2216,7 @@ i40evf_dev_allmulticast_disable(struct rte_eth_dev *dev)
                vf->promisc_multicast_enabled = FALSE;
 }
 
-static void
+static int
 i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
@@ -2292,6 +2292,8 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
                .nb_min = I40E_MIN_RING_DESC,
                .nb_align = I40E_ALIGN_RING_DESC,
        };
+
+       return 0;
 }
 
 static int
index 633dca6c3ae9a1763c7cc00ae0e8c74bf525eee4..652f0acccaca1abec8515e0cea35a1f330c59f97 100644 (file)
@@ -22,7 +22,7 @@ i40e_vf_representor_link_update(struct rte_eth_dev *ethdev,
        return i40e_dev_link_update(representor->adapter->eth_dev,
                wait_to_complete);
 }
-static void
+static int
 i40e_vf_representor_dev_infos_get(struct rte_eth_dev *ethdev,
        struct rte_eth_dev_info *dev_info)
 {
@@ -100,6 +100,8 @@ i40e_vf_representor_dev_infos_get(struct rte_eth_dev *ethdev,
                representor->adapter->eth_dev->device->name;
        dev_info->switch_info.domain_id = representor->switch_domain_id;
        dev_info->switch_info.port_id = representor->vf_id;
+
+       return 0;
 }
 
 static int
index 8f3907378cfffa2af3126059c61702661b2dfd08..99b1f43b826ddc283b80bdd7b1fa215c1b864aff 100644 (file)
@@ -37,7 +37,7 @@ static int iavf_dev_configure(struct rte_eth_dev *dev);
 static int iavf_dev_start(struct rte_eth_dev *dev);
 static void iavf_dev_stop(struct rte_eth_dev *dev);
 static void iavf_dev_close(struct rte_eth_dev *dev);
-static void iavf_dev_info_get(struct rte_eth_dev *dev,
+static int iavf_dev_info_get(struct rte_eth_dev *dev,
                             struct rte_eth_dev_info *dev_info);
 static const uint32_t *iavf_dev_supported_ptypes_get(struct rte_eth_dev *dev);
 static int iavf_dev_stats_get(struct rte_eth_dev *dev,
@@ -495,7 +495,7 @@ iavf_dev_stop(struct rte_eth_dev *dev)
        hw->adapter_stopped = 1;
 }
 
-static void
+static int
 iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
@@ -556,6 +556,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
                .nb_min = IAVF_MIN_RING_DESC,
                .nb_align = IAVF_ALIGN_RING_DESC,
        };
+
+       return 0;
 }
 
 static const uint32_t *
index 63997fdfbaad15ddb22a8d0cd096137c91bd654e..9d0e339a5d03a8bb7f2b305e48d1f28648bafcdc 100644 (file)
@@ -36,8 +36,8 @@ static int ice_dev_start(struct rte_eth_dev *dev);
 static void ice_dev_stop(struct rte_eth_dev *dev);
 static void ice_dev_close(struct rte_eth_dev *dev);
 static int ice_dev_reset(struct rte_eth_dev *dev);
-static void ice_dev_info_get(struct rte_eth_dev *dev,
-                            struct rte_eth_dev_info *dev_info);
+static int ice_dev_info_get(struct rte_eth_dev *dev,
+                           struct rte_eth_dev_info *dev_info);
 static int ice_link_update(struct rte_eth_dev *dev,
                           int wait_to_complete);
 static int ice_dev_set_link_up(struct rte_eth_dev *dev);
@@ -2105,7 +2105,7 @@ ice_dev_reset(struct rte_eth_dev *dev)
        return 0;
 }
 
-static void
+static int
 ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);
@@ -2225,6 +2225,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->default_txportconf.nb_queues = 1;
        dev_info->default_rxportconf.ring_size = ICE_BUF_SIZE_MIN;
        dev_info->default_txportconf.ring_size = ICE_BUF_SIZE_MIN;
+
+       return 0;
 }
 
 static inline int
index 8300cc38c4b38dcecdbdc41bf345b9ca5763652f..476d5e52bdb3e86216d22c216a03f9e30a71f418 100644 (file)
@@ -40,7 +40,7 @@ static rte_spinlock_t ipn3ke_link_notify_list_lk = RTE_SPINLOCK_INITIALIZER;
 static int
 ipn3ke_rpst_link_check(struct ipn3ke_rpst *rpst);
 
-static void
+static int
 ipn3ke_rpst_dev_infos_get(struct rte_eth_dev *ethdev,
        struct rte_eth_dev_info *dev_info)
 {
@@ -101,6 +101,8 @@ ipn3ke_rpst_dev_infos_get(struct rte_eth_dev *ethdev,
        dev_info->switch_info.name = ethdev->device->name;
        dev_info->switch_info.domain_id = rpst->switch_domain_id;
        dev_info->switch_info.port_id = rpst->port_id;
+
+       return 0;
 }
 
 static int
index 7eb3d0567b58b377a8ab31321b5e09611a42ba3e..0108db890b0aeeef5770edf09232c8f28dd0ffa5 100644 (file)
@@ -182,11 +182,11 @@ static int ixgbe_dev_queue_stats_mapping_set(struct rte_eth_dev *eth_dev,
                                             uint8_t is_rx);
 static int ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
                                 size_t fw_size);
-static void ixgbe_dev_info_get(struct rte_eth_dev *dev,
-                              struct rte_eth_dev_info *dev_info);
+static int ixgbe_dev_info_get(struct rte_eth_dev *dev,
+                             struct rte_eth_dev_info *dev_info);
 static const uint32_t *ixgbe_dev_supported_ptypes_get(struct rte_eth_dev *dev);
-static void ixgbevf_dev_info_get(struct rte_eth_dev *dev,
-                                struct rte_eth_dev_info *dev_info);
+static int ixgbevf_dev_info_get(struct rte_eth_dev *dev,
+                               struct rte_eth_dev_info *dev_info);
 static int ixgbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);
 
 static int ixgbe_vlan_filter_set(struct rte_eth_dev *dev,
@@ -3777,7 +3777,7 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
                return 0;
 }
 
-static void
+static int
 ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
@@ -3861,6 +3861,8 @@ ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->default_txportconf.nb_queues = 1;
        dev_info->default_rxportconf.ring_size = 256;
        dev_info->default_txportconf.ring_size = 256;
+
+       return 0;
 }
 
 static const uint32_t *
@@ -3902,7 +3904,7 @@ ixgbe_dev_supported_ptypes_get(struct rte_eth_dev *dev)
        return NULL;
 }
 
-static void
+static int
 ixgbevf_dev_info_get(struct rte_eth_dev *dev,
                     struct rte_eth_dev_info *dev_info)
 {
@@ -3954,6 +3956,8 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
 
        dev_info->rx_desc_lim = rx_desc_lim;
        dev_info->tx_desc_lim = tx_desc_lim;
+
+       return 0;
 }
 
 static int
@@ -5018,8 +5022,11 @@ ixgbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
        struct rte_eth_dev_info dev_info;
        uint32_t frame_size = mtu + IXGBE_ETH_OVERHEAD;
        struct rte_eth_dev_data *dev_data = dev->data;
+       int ret;
 
-       ixgbe_dev_info_get(dev, &dev_info);
+       ret = ixgbe_dev_info_get(dev, &dev_info);
+       if (ret != 0)
+               return ret;
 
        /* check that mtu is within the allowed range */
        if (mtu < RTE_ETHER_MIN_MTU || frame_size > dev_info.max_rx_pktlen)
index 2c01f6e33c2afaa8bf207df103369c76f7d4ea94..dbbef294ae92f5b7103d8aa10b40e3fc974cb376 100644 (file)
@@ -34,7 +34,7 @@ ixgbe_vf_representor_mac_addr_set(struct rte_eth_dev *ethdev,
                representor->vf_id, mac_addr);
 }
 
-static void
+static int
 ixgbe_vf_representor_dev_infos_get(struct rte_eth_dev *ethdev,
        struct rte_eth_dev_info *dev_info)
 {
@@ -76,6 +76,8 @@ ixgbe_vf_representor_dev_infos_get(struct rte_eth_dev *ethdev,
                representor->pf_ethdev->device->name;
        dev_info->switch_info.domain_id = representor->switch_domain_id;
        dev_info->switch_info.port_id = representor->vf_id;
+
+       return 0;
 }
 
 static int ixgbe_vf_representor_dev_configure(
index 515c0aa14db8311dad3cef66f08641cd8182bfcb..5e1623d2508c3aed9ffae9192cd373ee553245c0 100644 (file)
@@ -200,7 +200,7 @@ eth_kni_dev_configure(struct rte_eth_dev *dev __rte_unused)
        return 0;
 }
 
-static void
+static int
 eth_kni_dev_info(struct rte_eth_dev *dev __rte_unused,
                struct rte_eth_dev_info *dev_info)
 {
@@ -209,6 +209,8 @@ eth_kni_dev_info(struct rte_eth_dev *dev __rte_unused,
        dev_info->max_rx_queues = KNI_MAX_QUEUE_PER_PORT;
        dev_info->max_tx_queues = KNI_MAX_QUEUE_PER_PORT;
        dev_info->min_rx_bufsize = 0;
+
+       return 0;
 }
 
 static int
index c25dab00c76ea3111c2eab113198a480ff7d8998..d97e357e3c3d36acfbe418012d4ff159fecbf511 100644 (file)
@@ -367,7 +367,7 @@ lio_dev_stats_reset(struct rte_eth_dev *eth_dev)
        }
 }
 
-static void
+static int
 lio_dev_info_get(struct rte_eth_dev *eth_dev,
                 struct rte_eth_dev_info *devinfo)
 {
@@ -393,6 +393,7 @@ lio_dev_info_get(struct rte_eth_dev *eth_dev,
                devinfo->speed_capa = ETH_LINK_SPEED_10G;
                lio_dev_err(lio_dev,
                            "Unknown CN23XX subsystem device id. Setting 10G as default link speed.\n");
+               return -EINVAL;
        }
 
        devinfo->max_rx_queues = lio_dev->max_rx_queues;
@@ -423,6 +424,7 @@ lio_dev_info_get(struct rte_eth_dev *eth_dev,
                                           ETH_RSS_NONFRAG_IPV6_TCP     |
                                           ETH_RSS_IPV6_EX              |
                                           ETH_RSS_IPV6_TCP_EX);
+       return 0;
 }
 
 static int
index a59f809671373293a93095c0f7dc798d28483749..0d4360e5c2e1b72432fd1b678cf72d46262c6966 100644 (file)
@@ -164,7 +164,7 @@ memif_mp_request_regions(struct rte_eth_dev *dev)
        return memif_connect(dev);
 }
 
-static void
+static int
 memif_dev_info(struct rte_eth_dev *dev __rte_unused, struct rte_eth_dev_info *dev_info)
 {
        dev_info->max_mac_addrs = 1;
@@ -172,6 +172,8 @@ memif_dev_info(struct rte_eth_dev *dev __rte_unused, struct rte_eth_dev_info *de
        dev_info->max_rx_queues = ETH_MEMIF_MAX_NUM_Q_PAIRS;
        dev_info->max_tx_queues = ETH_MEMIF_MAX_NUM_Q_PAIRS;
        dev_info->min_rx_bufsize = 0;
+
+       return 0;
 }
 
 static memif_ring_t *
index 982357716946390cb4d5ed498f199b4ddba6eb57..7730b530afb82a7c982dca54205552e1c5b4f7fa 100644 (file)
@@ -219,8 +219,8 @@ int mlx4_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on);
 int mlx4_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats);
 void mlx4_stats_reset(struct rte_eth_dev *dev);
 int mlx4_fw_version_get(struct rte_eth_dev *dev, char *fw_ver, size_t fw_size);
-void mlx4_dev_infos_get(struct rte_eth_dev *dev,
-                       struct rte_eth_dev_info *info);
+int mlx4_dev_infos_get(struct rte_eth_dev *dev,
+                      struct rte_eth_dev_info *info);
 int mlx4_link_update(struct rte_eth_dev *dev, int wait_to_complete);
 int mlx4_flow_ctrl_get(struct rte_eth_dev *dev,
                       struct rte_eth_fc_conf *fc_conf);
index 5d28c0116d21f3612b2320788e16ab889bee99ae..623ebd88cbfdea9a46b5e6a6d821f550262ba537 100644 (file)
@@ -611,7 +611,7 @@ mlx4_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr)
  * @param[out] info
  *   Info structure output buffer.
  */
-void
+int
 mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 {
        struct mlx4_priv *priv = dev->data->dev_private;
@@ -645,6 +645,8 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
                        ETH_LINK_SPEED_40G |
                        ETH_LINK_SPEED_56G;
        info->flow_type_rss_offloads = mlx4_conv_rss_types(priv, 0, 1);
+
+       return 0;
 }
 
 /**
index 7982490180c669fe296c469c5570e24197135ff9..5482eb7b49fc1605ddff8c81cbd5d639ff30cc7a 100644 (file)
@@ -690,7 +690,7 @@ int mlx5_get_mtu(struct rte_eth_dev *dev, uint16_t *mtu);
 int mlx5_set_flags(struct rte_eth_dev *dev, unsigned int keep,
                   unsigned int flags);
 int mlx5_dev_configure(struct rte_eth_dev *dev);
-void mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info);
+int mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info);
 int mlx5_read_clock(struct rte_eth_dev *dev, uint64_t *clock);
 int mlx5_fw_version_get(struct rte_eth_dev *dev, char *fw_ver, size_t fw_size);
 const uint32_t *mlx5_dev_supported_ptypes_get(struct rte_eth_dev *dev);
index c68e77388de53790b418656ef942beb0e8015e0e..ad53721f2d8ee5b252c0c04e27ed5d138e894055 100644 (file)
@@ -542,7 +542,7 @@ mlx5_set_txlimit_params(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
  * @param[out] info
  *   Info structure output buffer.
  */
-void
+int
 mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 {
        struct mlx5_priv *priv = dev->data->dev_private;
@@ -600,6 +600,8 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
                        break;
                }
        }
+
+       return 0;
 }
 
 /**
index a8def8fc4e9dc03d7d326df74700f2a86617c7f4..3ba0ac76e209b1aeadfb8b1ceedd9717ec2ad2de 100644 (file)
@@ -153,7 +153,7 @@ mvneta_dev_configure(struct rte_eth_dev *dev)
  * @param info
  *   Info structure output buffer.
  */
-static void
+static int
 mvneta_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
                   struct rte_eth_dev_info *info)
 {
@@ -187,6 +187,8 @@ mvneta_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
        info->default_txconf.offloads = 0;
 
        info->max_rx_pktlen = MVNETA_PKT_SIZE_MAX;
+
+       return 0;
 }
 
 /**
index 810a703fc35e96b719af457838aa4d6a19e2146c..345c24404de4fd58fc73a31794002ce27a4ecdb7 100644 (file)
@@ -1422,7 +1422,7 @@ mrvl_xstats_get_names(struct rte_eth_dev *dev __rte_unused,
  * @param info
  *   Info structure output buffer.
  */
-static void
+static int
 mrvl_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
                   struct rte_eth_dev_info *info)
 {
@@ -1457,6 +1457,8 @@ mrvl_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
        info->default_rxconf.rx_drop_en = 1;
 
        info->max_rx_pktlen = MRVL_PKT_SIZE_MAX;
+
+       return 0;
 }
 
 /**
index 2a90d674e9549e48edee41992b009121f22e2adb..7353211c129e2d361f3e79a28977e0f77b1687aa 100644 (file)
@@ -238,10 +238,11 @@ hn_dev_link_update(struct rte_eth_dev *dev,
        return rte_eth_linkstatus_set(dev, &link);
 }
 
-static void hn_dev_info_get(struct rte_eth_dev *dev,
-                           struct rte_eth_dev_info *dev_info)
+static int hn_dev_info_get(struct rte_eth_dev *dev,
+                          struct rte_eth_dev_info *dev_info)
 {
        struct hn_data *hv = dev->data->dev_private;
+       int rc;
 
        dev_info->speed_capa = ETH_LINK_SPEED_10G;
        dev_info->min_rx_bufsize = HN_MIN_RX_BUF_SIZE;
@@ -255,8 +256,15 @@ static void hn_dev_info_get(struct rte_eth_dev *dev,
        dev_info->max_rx_queues = hv->max_queues;
        dev_info->max_tx_queues = hv->max_queues;
 
-       hn_rndis_get_offload(hv, dev_info);
-       hn_vf_info_get(hv, dev_info);
+       rc = hn_rndis_get_offload(hv, dev_info);
+       if (rc != 0)
+               return rc;
+
+       rc = hn_vf_info_get(hv, dev_info);
+       if (rc != 0)
+               return rc;
+
+       return 0;
 }
 
 static int hn_rss_reta_update(struct rte_eth_dev *dev,
index f4093d43d828f4ebdf48b2b50b3d4f951b844aa7..b039ab6fc273defcfbc56fba2c047512e29eb1f3 100644 (file)
@@ -188,7 +188,7 @@ nfb_eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
  * @param[out] info
  *   Info structure output buffer.
  */
-static void
+static int
 nfb_eth_dev_info(struct rte_eth_dev *dev,
        struct rte_eth_dev_info *dev_info)
 {
@@ -197,6 +197,8 @@ nfb_eth_dev_info(struct rte_eth_dev *dev,
        dev_info->max_rx_queues = dev->data->nb_rx_queues;
        dev_info->max_tx_queues = dev->data->nb_tx_queues;
        dev_info->speed_capa = ETH_LINK_SPEED_100G;
+
+       return 0;
 }
 
 /**
index f1a3ef2f926e68b5df89bd5d77e7e900373a8beb..3d5b99c943e205dff6006922b1a4b10b85f71742 100644 (file)
@@ -81,8 +81,8 @@ static int nfp_net_configure(struct rte_eth_dev *dev);
 static void nfp_net_dev_interrupt_handler(void *param);
 static void nfp_net_dev_interrupt_delayed_handler(void *param);
 static int nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);
-static void nfp_net_infos_get(struct rte_eth_dev *dev,
-                             struct rte_eth_dev_info *dev_info);
+static int nfp_net_infos_get(struct rte_eth_dev *dev,
+                            struct rte_eth_dev_info *dev_info);
 static int nfp_net_init(struct rte_eth_dev *eth_dev);
 static int nfp_net_link_update(struct rte_eth_dev *dev, int wait_to_complete);
 static void nfp_net_promisc_enable(struct rte_eth_dev *dev);
@@ -1204,7 +1204,7 @@ nfp_net_stats_reset(struct rte_eth_dev *dev)
                nn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_DISCARDS);
 }
 
-static void
+static int
 nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct nfp_net_hw *hw;
@@ -1275,6 +1275,8 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G |
                               ETH_LINK_SPEED_25G | ETH_LINK_SPEED_40G |
                               ETH_LINK_SPEED_50G | ETH_LINK_SPEED_100G;
+
+       return 0;
 }
 
 static const uint32_t *
index 0c60d241ac19bcb9b7af910fc78b2d6c5efab763..aec0cab8f97397908f81528727c9b84ff5de2980 100644 (file)
@@ -259,14 +259,14 @@ eth_mtu_set(struct rte_eth_dev *dev __rte_unused, uint16_t mtu __rte_unused)
        return 0;
 }
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev,
                struct rte_eth_dev_info *dev_info)
 {
        struct pmd_internals *internals;
 
        if ((dev == NULL) || (dev_info == NULL))
-               return;
+               return -EINVAL;
 
        internals = dev->data->dev_private;
        dev_info->max_mac_addrs = 1;
@@ -276,6 +276,8 @@ eth_dev_info(struct rte_eth_dev *dev,
        dev_info->min_rx_bufsize = 0;
        dev_info->reta_size = internals->reta_size;
        dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads;
+
+       return 0;
 }
 
 static int
index 27eed47bb0cb67f7803544a1f9c3ef868446a908..1faa7b7c6bad8cd6f94d22565b9a199bc43ff025 100644 (file)
@@ -569,7 +569,7 @@ octeontx_dev_default_mac_addr_set(struct rte_eth_dev *dev,
        return ret;
 }
 
-static void
+static int
 octeontx_dev_info(struct rte_eth_dev *dev,
                struct rte_eth_dev_info *dev_info)
 {
@@ -600,6 +600,8 @@ octeontx_dev_info(struct rte_eth_dev *dev,
 
        dev_info->rx_offload_capa = OCTEONTX_RX_OFFLOADS;
        dev_info->tx_offload_capa = OCTEONTX_TX_OFFLOADS;
+
+       return 0;
 }
 
 static void
index 7b15d6bc863fdb7c8f7dee92188eab50f65010cf..5de0a1d4d103d52e0938f8c39e037fb8e8264c89 100644 (file)
@@ -357,8 +357,8 @@ otx2_eth_pmd_priv(struct rte_eth_dev *eth_dev)
 }
 
 /* Ops */
-void otx2_nix_info_get(struct rte_eth_dev *eth_dev,
-                      struct rte_eth_dev_info *dev_info);
+int otx2_nix_info_get(struct rte_eth_dev *eth_dev,
+                     struct rte_eth_dev_info *dev_info);
 int otx2_nix_dev_filter_ctrl(struct rte_eth_dev *eth_dev,
                             enum rte_filter_type filter_type,
                             enum rte_filter_op filter_op, void *arg);
index 7c6532b6fc0c41c11668902e9a3c3b620dc20863..024c295aa6730171fbf15374a47125d461efcc6b 100644 (file)
@@ -403,7 +403,7 @@ otx2_nix_get_module_eeprom(struct rte_eth_dev *eth_dev,
        return 0;
 }
 
-void
+int
 otx2_nix_info_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *devinfo)
 {
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
@@ -467,4 +467,6 @@ otx2_nix_info_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *devinfo)
 
        devinfo->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
                                RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;
+
+       return 0;
 }
index 5489010b64c207c670c95cca094afa1be20d3b77..50a0655a33238c8d255d1cecaae75db455734743 100644 (file)
@@ -652,7 +652,7 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
        return 0;
 }
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev,
                struct rte_eth_dev_info *dev_info)
 {
@@ -664,6 +664,8 @@ eth_dev_info(struct rte_eth_dev *dev,
        dev_info->max_rx_queues = dev->data->nb_rx_queues;
        dev_info->max_tx_queues = dev->data->nb_tx_queues;
        dev_info->min_rx_bufsize = 0;
+
+       return 0;
 }
 
 static int
index 8064735dbe8998b5712699a25f88cda62e71ef96..d2e3d36d62dd3131429f119971282280a2e79555 100644 (file)
@@ -1246,7 +1246,7 @@ static const struct rte_eth_desc_lim qede_tx_desc_lim = {
        .nb_mtu_seg_max = ETH_TX_MAX_BDS_PER_NON_LSO_PACKET
 };
 
-static void
+static int
 qede_dev_info_get(struct rte_eth_dev *eth_dev,
                  struct rte_eth_dev_info *dev_info)
 {
@@ -1330,6 +1330,8 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
        if (link.adv_speed & NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_BB_100G)
                speed_cap |= ETH_LINK_SPEED_100G;
        dev_info->speed_capa = speed_cap;
+
+       return 0;
 }
 
 /* return 0 means link status changed, -1 means not changed */
@@ -2185,7 +2187,11 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
        int i, rc;
 
        PMD_INIT_FUNC_TRACE(edev);
-       qede_dev_info_get(dev, &dev_info);
+       rc = qede_dev_info_get(dev, &dev_info);
+       if (rc != 0) {
+               DP_ERR(edev, "Error during getting ethernet device info\n");
+               return rc;
+       }
        max_rx_pkt_len = mtu + QEDE_MAX_ETHER_HDR_LEN;
        frame_size = max_rx_pkt_len;
        if (mtu < RTE_ETHER_MIN_MTU || frame_size > dev_info.max_rx_pktlen) {
index 634da63211d30e79fece7f959813131face6b1f8..686246032ee95ebdeb2262de3754228c957153cc 100644 (file)
@@ -151,7 +151,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 }
 
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev,
             struct rte_eth_dev_info *dev_info)
 {
@@ -162,6 +162,8 @@ eth_dev_info(struct rte_eth_dev *dev,
        dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues;
        dev_info->max_tx_queues = (uint16_t)internals->max_tx_queues;
        dev_info->min_rx_bufsize = 0;
+
+       return 0;
 }
 
 static int
index 1f78a3d8adc8d8f33f1fdc7cbb3894ea7bcbd946..013b6bbd63b8dd168ae6d4c73124335cab9790b1 100644 (file)
@@ -86,7 +86,7 @@ sfc_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
                return 0;
 }
 
-static void
+static int
 sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        const struct sfc_adapter_priv *sap = sfc_adapter_priv_by_eth_dev(dev);
@@ -184,6 +184,8 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        dev_info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
                             RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;
+
+       return 0;
 }
 
 static const uint32_t *
index e3ad241618cce8bc86472d710acba27850c2f4db..11723778fddbb6f2e761d12b2764716b31f518ac 100644 (file)
@@ -86,13 +86,15 @@ static int pmd_softnic_logtype;
        rte_log(RTE_LOG_ ## level, pmd_softnic_logtype, \
                "%s(): " fmt "\n", __func__, ##args)
 
-static void
+static int
 pmd_dev_infos_get(struct rte_eth_dev *dev __rte_unused,
        struct rte_eth_dev_info *dev_info)
 {
        dev_info->max_rx_pktlen = UINT32_MAX;
        dev_info->max_rx_queues = UINT16_MAX;
        dev_info->max_tx_queues = UINT16_MAX;
+
+       return 0;
 }
 
 static int
index 99d5ca5ac0aea74688aa5ef5034f5674fddeeb1f..ca066a3d3d2f1bdbc9f7f53f9f7aa815085b66be 100644 (file)
@@ -1044,7 +1044,7 @@ eth_dev_configure(struct rte_eth_dev *dev)
        return 0;
 }
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev,
                struct rte_eth_dev_info *dev_info)
 {
@@ -1061,6 +1061,8 @@ eth_dev_info(struct rte_eth_dev *dev,
        dev_info->rx_queue_offload_capa = 0;
        dev_info->tx_queue_offload_capa = 0;
        dev_info->speed_capa = ETH_LINK_SPEED_100G;
+
+       return 0;
 }
 
 static int
index 64bd049110e17ee97232987c85307ec85a4d7c54..f85458c3cdb61b9625e091b14e77f435bbca9e6b 100644 (file)
@@ -915,7 +915,7 @@ tap_dev_speed_capa(void)
        return capa;
 }
 
-static void
+static int
 tap_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct pmd_internals *internals = dev->data->dev_private;
@@ -939,6 +939,8 @@ tap_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
         * functions together and not in partial combinations
         */
        dev_info->flow_type_rss_offloads = ~TAP_RSS_HF_MASK;
+
+       return 0;
 }
 
 static int
index 56769ef85975b2adb50a4595fafcef0e3c8646a5..f3ba07ae3785f0ee1b703694a40ec310257cb82f 100644 (file)
@@ -1393,7 +1393,7 @@ nicvf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
        return 0;
 }
 
-static void
+static int
 nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct nicvf *nic = nicvf_pmd_priv(dev);
@@ -1440,6 +1440,8 @@ nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
                        DEV_TX_OFFLOAD_UDP_CKSUM          |
                        DEV_TX_OFFLOAD_TCP_CKSUM,
        };
+
+       return 0;
 }
 
 static nicvf_iova_addr_t
index a4892d7a0d9a5ce01434767409ccee1f9cdccf4c..74cc7361b26b4c4be4806beb005134fedb2f395b 100644 (file)
@@ -1054,7 +1054,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
        return 0;
 }
 
-static void
+static int
 eth_dev_info(struct rte_eth_dev *dev,
             struct rte_eth_dev_info *dev_info)
 {
@@ -1063,7 +1063,7 @@ eth_dev_info(struct rte_eth_dev *dev,
        internal = dev->data->dev_private;
        if (internal == NULL) {
                VHOST_LOG(ERR, "Invalid device specified\n");
-               return;
+               return -ENODEV;
        }
 
        dev_info->max_mac_addrs = 1;
@@ -1075,6 +1075,8 @@ eth_dev_info(struct rte_eth_dev *dev,
        dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
                                DEV_TX_OFFLOAD_VLAN_INSERT;
        dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
+
+       return 0;
 }
 
 static int
index f96588b9dac190a26e3546d1cd63bed97086938f..8fe9dcebdaff5274c1efc90700eba63eef25e42c 100644 (file)
@@ -45,7 +45,7 @@ static void virtio_dev_promiscuous_enable(struct rte_eth_dev *dev);
 static void virtio_dev_promiscuous_disable(struct rte_eth_dev *dev);
 static void virtio_dev_allmulticast_enable(struct rte_eth_dev *dev);
 static void virtio_dev_allmulticast_disable(struct rte_eth_dev *dev);
-static void virtio_dev_info_get(struct rte_eth_dev *dev,
+static int virtio_dev_info_get(struct rte_eth_dev *dev,
                                struct rte_eth_dev_info *dev_info);
 static int virtio_dev_link_update(struct rte_eth_dev *dev,
        int wait_to_complete);
@@ -2394,7 +2394,7 @@ virtio_dev_vlan_offload_set(struct rte_eth_dev *dev, int mask)
        return 0;
 }
 
-static void
+static int
 virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        uint64_t tso_mask, host_features;
@@ -2436,6 +2436,8 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
                (1ULL << VIRTIO_NET_F_HOST_TSO6);
        if ((host_features & tso_mask) == tso_mask)
                dev_info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO;
+
+       return 0;
 }
 
 /*
index 9cd5eb65be14136faa9f7ad1ff32d57f1a03e1bc..551c51194370099856e4758aa241463414a40c61 100644 (file)
@@ -82,8 +82,8 @@ static int vmxnet3_dev_xstats_get_names(struct rte_eth_dev *dev,
                                        unsigned int n);
 static int vmxnet3_dev_xstats_get(struct rte_eth_dev *dev,
                                  struct rte_eth_xstat *xstats, unsigned int n);
-static void vmxnet3_dev_info_get(struct rte_eth_dev *dev,
-                                struct rte_eth_dev_info *dev_info);
+static int vmxnet3_dev_info_get(struct rte_eth_dev *dev,
+                               struct rte_eth_dev_info *dev_info);
 static const uint32_t *
 vmxnet3_dev_supported_ptypes_get(struct rte_eth_dev *dev);
 static int vmxnet3_dev_vlan_filter_set(struct rte_eth_dev *dev,
@@ -1149,7 +1149,7 @@ vmxnet3_dev_stats_reset(struct rte_eth_dev *dev)
        }
 }
 
-static void
+static int
 vmxnet3_dev_info_get(struct rte_eth_dev *dev __rte_unused,
                     struct rte_eth_dev_info *dev_info)
 {
@@ -1186,6 +1186,8 @@ vmxnet3_dev_info_get(struct rte_eth_dev *dev __rte_unused,
        dev_info->rx_queue_offload_capa = 0;
        dev_info->tx_offload_capa = VMXNET3_TX_OFFLOAD_CAP;
        dev_info->tx_queue_offload_capa = 0;
+
+       return 0;
 }
 
 static const uint32_t *
index 42b1d6e30ad319e58bda5a2406481baec18384d2..30b0c7803f9aa72c7dcd0b311c96ba16495db2fc 100644 (file)
@@ -2559,6 +2559,7 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
                .nb_seg_max = UINT16_MAX,
                .nb_mtu_seg_max = UINT16_MAX,
        };
+       int diag;
 
        /*
         * Init dev_info before port_id check since caller does not have
@@ -2576,7 +2577,13 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
        dev_info->max_mtu = UINT16_MAX;
 
        RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_infos_get, -ENOTSUP);
-       (*dev->dev_ops->dev_infos_get)(dev, dev_info);
+       diag = (*dev->dev_ops->dev_infos_get)(dev, dev_info);
+       if (diag != 0) {
+               /* Cleanup already filled in device information */
+               memset(dev_info, 0, sizeof(struct rte_eth_dev_info));
+               return eth_err(port_id, diag);
+       }
+
        dev_info->driver_name = dev->device->driver->name;
        dev_info->nb_rx_queues = dev->data->nb_rx_queues;
        dev_info->nb_tx_queues = dev->data->nb_tx_queues;
index 2922d5b7cc952dbcb4cee2579256d8b7316e938a..2394b32c836e95f17bf022094356aac1aef8029e 100644 (file)
@@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct rte_eth_dev *dev,
                                             uint8_t is_rx);
 /**< @internal Set a queue statistics mapping for a tx/rx queue of an Ethernet device. */
 
-typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev,
-                                   struct rte_eth_dev_info *dev_info);
+typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev,
+                                  struct rte_eth_dev_info *dev_info);
 /**< @internal Get specific information of an Ethernet device. */
 
 typedef const uint32_t *(*eth_dev_supported_ptypes_get_t)(struct rte_eth_dev *dev);