From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: [PATCH v7 00/15] common linkstatus functions Date: Mon, 22 Jan 2018 15:54:43 -0800 Message-ID: <20180122235458.28562-1-stephen@networkplumber.org> Cc: Stephen Hemminger To: dev@dpdk.org Return-path: Received: from mail-pg0-f44.google.com (mail-pg0-f44.google.com [74.125.83.44]) by dpdk.org (Postfix) with ESMTP id E610FA499 for ; Tue, 23 Jan 2018 00:55:02 +0100 (CET) Received: by mail-pg0-f44.google.com with SMTP id m20so8342579pgc.11 for ; Mon, 22 Jan 2018 15:55:02 -0800 (PST) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" While reviewing drivers, noticed a lot of unnecessary duplication of code in drivers for handling the eth_dev link status information. While consolidating this, it also became obvious that some drivers behave differently for no good reason. It also was a good chance to introduce atomic exchange primitives in EAL because there are other places using cmpset where not necessary (such as bonding). Mostly only compile tested only, don't have all of the hardware available (except ixgbe and virtio) to test. v7 - add exchange functions for PPC64 - move linkstatus helpers to rte_ethdev_driver - rebase to 18.02 Stephen Hemminger (15): eal: introduce atomic exchange operation ethdev: add linkstatus get/set helper functions net/virtio: use eth_linkstatus_set net/vmxnet3: use rte_eth_linkstatus_set net/dpaa2: use rte_eth_linkstatus_set net/nfp: use rte_eth_linkstatus functions net/e1000: use rte_eth_linkstatus helpers net/ixgbe: use rte_eth_linkstatus functions net/sfc: use new rte_eth_linkstatus functions net/i40e: use rte_eth_linkstatus functions net/liquidio: use rte_eth_linkstatus_set net/thunderx: use rte_eth_linkstatus_set net/szedata: use _rte_eth_linkstatus_set net/octeontx: use rte_eth_linkstatus_set net/enic: use rte_eth_linkstatus_set drivers/net/dpaa2/dpaa2_ethdev.c | 75 ++--------------- drivers/net/e1000/em_ethdev.c | 69 ++-------------- drivers/net/e1000/igb_ethdev.c | 70 ++-------------- drivers/net/enic/enic_ethdev.c | 5 +- drivers/net/enic/enic_main.c | 17 ++-- drivers/net/i40e/i40e_ethdev.c | 43 ++-------- drivers/net/i40e/i40e_ethdev_vf.c | 18 +--- drivers/net/ixgbe/ixgbe_ethdev.c | 96 ++++------------------ drivers/net/liquidio/lio_ethdev.c | 53 ++---------- drivers/net/nfp/nfp_net.c | 77 ++--------------- drivers/net/octeontx/octeontx_ethdev.c | 17 +--- drivers/net/sfc/sfc_ethdev.c | 21 +---- drivers/net/sfc/sfc_ev.c | 20 +---- drivers/net/szedata2/rte_eth_szedata2.c | 19 ++--- drivers/net/thunderx/nicvf_ethdev.c | 48 +++++------ drivers/net/virtio/virtio_ethdev.c | 65 +++------------ drivers/net/vmxnet3/vmxnet3_ethdev.c | 86 ++++--------------- .../common/include/arch/ppc_64/rte_atomic.h | 21 ++++- .../common/include/arch/x86/rte_atomic.h | 24 ++++++ .../common/include/arch/x86/rte_atomic_32.h | 12 +++ .../common/include/arch/x86/rte_atomic_64.h | 12 +++ lib/librte_eal/common/include/generic/rte_atomic.h | 78 ++++++++++++++++++ lib/librte_ether/rte_ethdev.c | 22 +---- lib/librte_ether/rte_ethdev_driver.h | 61 ++++++++++++++ 24 files changed, 338 insertions(+), 691 deletions(-) -- 2.15.1