From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7379BA2E1B for ; Tue, 3 Sep 2019 15:58:18 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BD0B71E9F5; Tue, 3 Sep 2019 15:58:07 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id CF1331E882 for ; Tue, 3 Sep 2019 15:57:55 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 1D6C8BC0084; Tue, 3 Sep 2019 13:57:54 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 3 Sep 2019 06:57:48 -0700 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 3 Sep 2019 06:57:47 -0700 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id x83DvklV000379; Tue, 3 Sep 2019 14:57:46 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 222A81613D1; Tue, 3 Sep 2019 14:57:46 +0100 (BST) From: Andrew Rybchenko To: Thomas Monjalon , Ferruh Yigit , Jan Viktorin , Aaron Conole CC: , Ivan Ilchenko Date: Tue, 3 Sep 2019 14:56:34 +0100 Message-ID: <1567519051-28189-1-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566915962-5472-1-git-send-email-arybchenko@solarflare.com> References: <1566915962-5472-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24886.005 X-TM-AS-Result: No-0.027200-4.000000-10 X-TMASE-MatchedRID: C9beEZxSJdQjdXbalIVNEomfV7NNMGm+p56t1EEQ41r5+tteD5RzhfDM YDo1FKKM2i0E1lPDhirfrd9voQGByVqzqw/UFRAtq0reih3E9rEvV5f7P0HVDIu6fTXJM2TrK00 KIIuRTRNGjk/QOKmZVYhJUX5c5pgUN9Ukp8r5tE74AIbmhYnu0v6lpfpte41habJxhiIFjJmFYP hO0Nx/NBZvXPLNjljLDm7dEh+WD8mKQsBMcfAIqWI5Hlv2xZ2jV447DNvw38YINpIFnbd6mhBt1 M0BDusKRshMHFySWyrfT4ottW0PSt4bgXBxaoBL574P0n6l3f0Ea8g1x8eqF3a8yAYtCMPWIQ+L dPSbXXd224SgGT5J7z0amN1dasLJdQPKQ2mZbU67l1cSUGtXL1uiHQC7x/FTsxJhANDpW52l18m wtrgYBppKaj9OqFNS3MkFZ1gae2oMKx2SOBoCpvw4wQxTs7JmnKpQna4coUBjLp8Cm8vwF0VAwj 2kpubMzChniH3lAV7vcnIVT5xVc6+/EguYor8cFEUknJ/kEl7dB/CxWTRRuwihQpoXbuXFtnU2z MHK5R3nOYGN5TnDNrLwvl+gSxlPm7i6EfT/ea0B7bfT9vJC29nhaMUX0Dmgm4ocrNIC1vZ94lDG 0bjI3rP0zLiXJjWAD1y8R38S3l1URzkirO0Q1F5h9KQWrq4BvuMTr7CQJJ6eqD9WtJkSIw== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--0.027200-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24886.005 X-MDID: 1567519075-oBcu42BW-Pgu Subject: [dpdk-dev] [PATCH v2 00/54] ethdev: change rte_eth_dev_info_get() return value to int X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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/ 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(-) -- 1.8.3.1