Andrew Rybchenko <arybche...@solarflare.com> writes:

> It is the first patch series to get rid of void returning functions
> in ethdev in accordance with deprecation notice [1].
>
> Functions which return void are bad since they do not provide explicit
> information to the caller if everything is OK or not. It was bugs in
> rte_eth_dev_info_get() recently which kept device information
> uninitialized if port ID is invalid.
>
> The patch series updates rte_eth_dev_info_get() straightforward
> to simply return error if port ID is invalid or driver does not
> provide corresponding callback. In the future default callback
> which fills in generic non driver specific information could be
> added to help secondary processes cases when driver has no
> callback in secondary process. Also the idea to make the callback
> mandatory should be considered.
>
> Patches to update examples are kept separately to simplify review,
> but could be squashed on apply since logically it is the same
> change in all applicable examples.
>
> [1] https://patches.dpdk.org/patch/56969/

Some errors with the series:

   https://travis-ci.com/ovsrobot/dpdk/builds/125755853

> v2:
>  - add a patch to change dev_infos_get prototype to return int as well
>  - fix issue with ring_pmd_autotest (just inverted assert condition)
>  - add missing net/failsafe patch
>  - fix net/netsvc patch in accordance with review notes from Stephen
>  - fix app/testpmd patch in accordance with review notes from Ferruh
>  - add net/bnxt ack
>
> Andrew Rybchenko (1):
>   ethdev: remove redundunt device info cleanup before get
>
> Ivan Ilchenko (53):
>   ethdev: change rte_eth_dev_info_get() return value to int
>   app/testpmd: check status of getting ethdev info
>   app/eventdev: check status of getting ethdev info
>   kni: check status of getting ethdev info
>   latency: check status of getting ethdev info
>   pdump: check status of getting ethdev info
>   ring: check status of getting ethdev info
>   app/procinfo: check status of getting ethdev info
>   app/test: check status of getting ethdev info in bonding
>   app/test: check ethdev info get result in event Rx adapter
>   net/bnxt: check status of getting ethdev info
>   net/bonding: check status of getting ethdev info
>   net/failsafe: check status of getting ethdev info
>   net/netvsc: check status of getting ethdev info
>   net/softnic: check status of getting ethdev info
>   ethdev: change eth_dev_infos_get_t to return int
>   examples/rxtx_callbacks: check status of getting ethdev info
>   examples/l3fwd: check status of getting ethdev info
>   examples/qos_meter: check status of getting ethdev info
>   examples/ip_frag: check status of getting ethdev info
>   examples/performance-thread: check dev info get result
>   examples/vmdq: check status of getting ethdev info
>   examples/distributor: check status of getting ethdev info
>   examples/l3fwd-acl: check status of getting ethdev info
>   examples/vm_power: check status of getting ethdev info
>   examples/qos_sched: check status of getting ethdev info
>   examples/flow_filtering: check status of getting ethdev info
>   examples/l3fwd-power: check status of getting ethdev info
>   examples/l2fwd: check status of getting ethdev info
>   examples/skeleton: check status of getting ethdev info
>   examples/vmdq_dcb: check status of getting ethdev info
>   examples/ipv4_multicast: check status of getting ethdev info
>   examples/l2fwd-jobstats: check status of getting ethdev info
>   examples/bond: check status of getting ethdev info
>   examples/eventdev: check status of getting ethdev info
>   examples/ip_reassembly: check status of getting ethdev info
>   examples/vhost: check status of getting ethdev info
>   examples/ptpclient: check status of getting ethdev info
>   examples/link_status_interrupt: check dev info get result
>   examples/tep_termination: check dev info get result
>   examples/server_node_efd: check dev info get result
>   examples/flow_classify: check status of getting ethdev info
>   examples/packet_ordering: check dev info get result
>   examples/l2fwd-crypto: check status of getting ethdev info
>   examples/multi_process: check status of getting ethdev info
>   examples/ipsec-secgw: check status of getting ethdev info
>   examples/netmap_compat: check status of getting ethdev info
>   examples/l2fwd-keepalive: check dev info get result
>   examples/ip_pipeline: check status of getting ethdev info
>   examples/load_balancer: check status of getting ethdev info
>   examples/kni: check status of getting ethdev info
>   examples/ethtool: check status of getting ethdev info
>   examples/exception_path: check status of getting ethdev info
>
>  app/proc-info/main.c                            |  15 ++-
>  app/test-eventdev/test_perf_common.c            |   8 +-
>  app/test-eventdev/test_pipeline_common.c        |   9 +-
>  app/test-pmd/cmdline.c                          | 124 
> +++++++++++++++++++-----
>  app/test-pmd/cmdline_flow.c                     |   5 +-
>  app/test-pmd/config.c                           |  80 ++++++++++++---
>  app/test-pmd/parameters.c                       |   8 +-
>  app/test-pmd/testpmd.c                          |  40 ++++++--
>  app/test-pmd/testpmd.h                          |   3 +
>  app/test-pmd/util.c                             |  28 +++++-
>  app/test/test_event_eth_rx_adapter.c            |   4 +-
>  app/test/test_kni.c                             |  27 +++++-
>  app/test/test_link_bonding_rssconf.c            |  33 ++++++-
>  app/test/test_pmd_ring.c                        |   9 +-
>  app/test/virtual_pmd.c                          |   4 +-
>  doc/guides/rel_notes/deprecation.rst            |   1 -
>  doc/guides/rel_notes/release_19_11.rst          |   5 +-
>  drivers/net/af_packet/rte_eth_af_packet.c       |   4 +-
>  drivers/net/af_xdp/rte_eth_af_xdp.c             |   4 +-
>  drivers/net/ark/ark_ethdev.c                    |   8 +-
>  drivers/net/atlantic/atl_ethdev.c               |  11 ++-
>  drivers/net/avp/avp_ethdev.c                    |   8 +-
>  drivers/net/axgbe/axgbe_ethdev.c                |   6 +-
>  drivers/net/bnx2x/bnx2x_ethdev.c                |   4 +-
>  drivers/net/bnxt/bnxt_ethdev.c                  |  12 ++-
>  drivers/net/bnxt/rte_pmd_bnxt.c                 | 122 ++++++++++++++++++++---
>  drivers/net/bonding/rte_eth_bond_api.c          |  10 +-
>  drivers/net/bonding/rte_eth_bond_pmd.c          |  40 +++++++-
>  drivers/net/cxgbe/cxgbe_ethdev.c                |  15 ++-
>  drivers/net/cxgbe/cxgbe_pfvf.h                  |   4 +-
>  drivers/net/dpaa/dpaa_ethdev.c                  |  16 +--
>  drivers/net/dpaa2/dpaa2_ethdev.c                |   4 +-
>  drivers/net/e1000/em_ethdev.c                   |  12 ++-
>  drivers/net/e1000/igb_ethdev.c                  |  30 ++++--
>  drivers/net/ena/ena_ethdev.c                    |   8 +-
>  drivers/net/enetc/enetc_ethdev.c                |   4 +-
>  drivers/net/enic/enic_ethdev.c                  |   4 +-
>  drivers/net/failsafe/failsafe_ops.c             |   9 +-
>  drivers/net/fm10k/fm10k_ethdev.c                |   8 +-
>  drivers/net/hinic/hinic_pmd_ethdev.c            |   4 +-
>  drivers/net/i40e/i40e_ethdev.c                  |   8 +-
>  drivers/net/i40e/i40e_ethdev_vf.c               |   8 +-
>  drivers/net/i40e/i40e_vf_representor.c          |   4 +-
>  drivers/net/iavf/iavf_ethdev.c                  |   6 +-
>  drivers/net/ice/ice_ethdev.c                    |   8 +-
>  drivers/net/ipn3ke/ipn3ke_representor.c         |   4 +-
>  drivers/net/ixgbe/ixgbe_ethdev.c                |  21 ++--
>  drivers/net/ixgbe/ixgbe_vf_representor.c        |   4 +-
>  drivers/net/kni/rte_eth_kni.c                   |   4 +-
>  drivers/net/liquidio/lio_ethdev.c               |   4 +-
>  drivers/net/memif/rte_eth_memif.c               |   4 +-
>  drivers/net/mlx4/mlx4.h                         |   4 +-
>  drivers/net/mlx4/mlx4_ethdev.c                  |   4 +-
>  drivers/net/mlx5/mlx5.h                         |   2 +-
>  drivers/net/mlx5/mlx5_ethdev.c                  |   4 +-
>  drivers/net/mvneta/mvneta_ethdev.c              |   4 +-
>  drivers/net/mvpp2/mrvl_ethdev.c                 |   4 +-
>  drivers/net/netvsc/hn_ethdev.c                  |  16 ++-
>  drivers/net/netvsc/hn_var.h                     |   2 +-
>  drivers/net/netvsc/hn_vf.c                      |  15 ++-
>  drivers/net/nfb/nfb_ethdev.c                    |   4 +-
>  drivers/net/nfp/nfp_net.c                       |   8 +-
>  drivers/net/null/rte_eth_null.c                 |   6 +-
>  drivers/net/octeontx/octeontx_ethdev.c          |   4 +-
>  drivers/net/octeontx2/otx2_ethdev.h             |   4 +-
>  drivers/net/octeontx2/otx2_ethdev_ops.c         |   4 +-
>  drivers/net/pcap/rte_eth_pcap.c                 |   4 +-
>  drivers/net/qede/qede_ethdev.c                  |  10 +-
>  drivers/net/ring/rte_eth_ring.c                 |   4 +-
>  drivers/net/sfc/sfc_ethdev.c                    |   4 +-
>  drivers/net/softnic/rte_eth_softnic.c           |   4 +-
>  drivers/net/softnic/rte_eth_softnic_link.c      |   5 +-
>  drivers/net/szedata2/rte_eth_szedata2.c         |   4 +-
>  drivers/net/tap/rte_eth_tap.c                   |   4 +-
>  drivers/net/thunderx/nicvf_ethdev.c             |   4 +-
>  drivers/net/vhost/rte_eth_vhost.c               |   6 +-
>  drivers/net/virtio/virtio_ethdev.c              |   6 +-
>  drivers/net/vmxnet3/vmxnet3_ethdev.c            |   8 +-
>  examples/bond/main.c                            |  14 ++-
>  examples/distributor/main.c                     |   8 +-
>  examples/ethtool/ethtool-app/main.c             |   8 +-
>  examples/ethtool/lib/rte_ethtool.c              |  21 +++-
>  examples/eventdev_pipeline/main.c               |   8 +-
>  examples/exception_path/main.c                  |   7 +-
>  examples/flow_classify/flow_classify.c          |   8 +-
>  examples/flow_filtering/main.c                  |   7 +-
>  examples/ip_fragmentation/main.c                |  14 ++-
>  examples/ip_pipeline/kni.c                      |   5 +-
>  examples/ip_pipeline/link.c                     |   3 +-
>  examples/ip_reassembly/main.c                   |   7 +-
>  examples/ipsec-secgw/ipsec-secgw.c              |   6 +-
>  examples/ipsec-secgw/ipsec.c                    |   9 +-
>  examples/ipsec-secgw/sa.c                       |  10 +-
>  examples/ipv4_multicast/main.c                  |   7 +-
>  examples/kni/main.c                             |  26 ++++-
>  examples/l2fwd-crypto/main.c                    |   9 +-
>  examples/l2fwd-jobstats/main.c                  |   8 +-
>  examples/l2fwd-keepalive/main.c                 |   8 +-
>  examples/l2fwd/main.c                           |   8 +-
>  examples/l3fwd-acl/main.c                       |  22 ++++-
>  examples/l3fwd-power/main.c                     |  22 ++++-
>  examples/l3fwd/main.c                           |  14 ++-
>  examples/link_status_interrupt/main.c           |   8 +-
>  examples/load_balancer/init.c                   |   7 +-
>  examples/multi_process/symmetric_mp/main.c      |   8 +-
>  examples/netmap_compat/lib/compat_netmap.c      |   9 +-
>  examples/packet_ordering/main.c                 |   8 +-
>  examples/performance-thread/l3fwd-thread/main.c |  15 ++-
>  examples/ptpclient/ptpclient.c                  |   9 +-
>  examples/qos_meter/main.c                       |  16 ++-
>  examples/qos_sched/init.c                       |   8 +-
>  examples/rxtx_callbacks/main.c                  |   9 +-
>  examples/server_node_efd/server/init.c          |   5 +-
>  examples/skeleton/basicfwd.c                    |   8 +-
>  examples/tep_termination/vxlan_setup.c          |   6 +-
>  examples/vhost/main.c                           |   9 +-
>  examples/vm_power_manager/main.c                |   8 +-
>  examples/vmdq/main.c                            |  16 ++-
>  examples/vmdq_dcb/main.c                        |  18 +++-
>  lib/librte_ethdev/rte_ethdev.c                  |  71 ++++++++++----
>  lib/librte_ethdev/rte_ethdev.h                  |   6 +-
>  lib/librte_ethdev/rte_ethdev_core.h             |   4 +-
>  lib/librte_latencystats/rte_latencystats.c      |  23 ++++-
>  lib/librte_pdump/rte_pdump.c                    |   9 +-
>  124 files changed, 1221 insertions(+), 291 deletions(-)

Reply via email to