On 07/14/2017 09:30 PM, Stephen Hemminger wrote:
While writing new driver, I 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 several drivers have
bugs in this are because they don't return the correct value.
Also, some drivers were not fully initializing all the space (including
padding).

This is compile test only at this point, I don't have any of the hardware
available (except virtio) to test.

Stephen Hemminger (14):
   ethdev: add link status read/write functions
   virtio: use eth_link_read/write (and bug fix)
   bnxt: use rte_link_update
   vmxnet3: use rte_eth_link_update
   dpaa2: use rte_eth_link_update
   nfp: use rte_eth_link_update
   e1000: use rte_eth_link_update
   ixgbe: use rte_eth_link_update
   sfc: use new rte_eth_link helpers
   i40e: use rte_eth_link_update (and bug fix)
   liquidio: use _rte_eth_link_update
   thunderx: use _rte_eth_link_update
   szedata: use _rte_eth_link_update
   enic: use _rte_eth_link_update

  drivers/net/bnxt/bnxt_ethdev.c          | 21 +-------
  drivers/net/dpaa2/dpaa2_ethdev.c        | 66 +++---------------------
  drivers/net/e1000/em_ethdev.c           | 70 ++------------------------
  drivers/net/e1000/igb_ethdev.c          | 71 ++------------------------
  drivers/net/enic/enic_ethdev.c          |  5 +-
  drivers/net/enic/enic_main.c            | 16 +++---
  drivers/net/i40e/i40e_ethdev.c          | 44 +++-------------
  drivers/net/i40e/i40e_ethdev_vf.c       | 19 +------
  drivers/net/ixgbe/ixgbe_ethdev.c        | 89 +++++----------------------------
  drivers/net/liquidio/lio_ethdev.c       | 76 +++++++---------------------
  drivers/net/nfp/nfp_net.c               | 74 +++------------------------
  drivers/net/sfc/sfc_ethdev.c            | 27 +++-------
  drivers/net/sfc/sfc_ev.c                | 23 ++-------
  drivers/net/szedata2/rte_eth_szedata2.c | 18 +++----
  drivers/net/thunderx/nicvf_ethdev.c     | 17 +------
  drivers/net/virtio/virtio_ethdev.c      | 54 +++-----------------
  drivers/net/vmxnet3/vmxnet3_ethdev.c    | 66 ++----------------------
  lib/librte_ether/rte_ethdev.c           | 36 +++++++++++++
  lib/librte_ether/rte_ethdev.h           | 28 +++++++++++
  19 files changed, 171 insertions(+), 649 deletions(-)


I've provided my comments to individual patches.

In general it is very good that it removes so much duplicated and
nontrivial code with atomtics. It raises many questions and I think
finally it will allow to clarify link status API for PMD maintainers and
users.

Andrew.

Reply via email to