From: Shijith Thotton <shijith.thotton@caviumnetworks.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: dev@dpdk.org, Stephen Hemminger <sthemmin@microsoft.com>
Subject: Re: [RFC 11/14] liquidio: use _rte_eth_link_update
Date: Tue, 18 Jul 2017 15:47:29 +0530 [thread overview]
Message-ID: <20170718101727.GA31042@localhost.localdomain> (raw)
In-Reply-To: <20170714183027.16021-12-stephen@networkplumber.org>
On Fri, Jul 14, 2017 at 11:30:24AM -0700, Stephen Hemminger wrote:
> Use the new link update API, and cleanup the logic in the the
> link update routine.
>
> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
> ---
> drivers/net/liquidio/lio_ethdev.c | 76 ++++++++++-----------------------------
> 1 file changed, 19 insertions(+), 57 deletions(-)
>
> diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
> index 479936a52ff9..95dc7232601e 100644
> --- a/drivers/net/liquidio/lio_ethdev.c
> +++ b/drivers/net/liquidio/lio_ethdev.c
> @@ -888,32 +888,6 @@ lio_dev_vlan_filter_set(struct rte_eth_dev *eth_dev, uint16_t vlan_id, int on)
> return 0;
> }
>
> -/**
> - * Atomically writes the link status information into global
> - * structure rte_eth_dev.
> - *
> - * @param eth_dev
> - * - Pointer to the structure rte_eth_dev to read from.
> - * - Pointer to the buffer to be saved with the link status.
> - *
> - * @return
> - * - On success, zero.
> - * - On failure, negative value.
> - */
> -static inline int
> -lio_dev_atomic_write_link_status(struct rte_eth_dev *eth_dev,
> - struct rte_eth_link *link)
> -{
> - struct rte_eth_link *dst = ð_dev->data->dev_link;
> - struct rte_eth_link *src = link;
> -
> - if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst,
> - *(uint64_t *)src) == 0)
> - return -1;
> -
> - return 0;
> -}
> -
> static uint64_t
> lio_hweight64(uint64_t w)
> {
> @@ -933,45 +907,33 @@ lio_dev_link_update(struct rte_eth_dev *eth_dev,
> int wait_to_complete __rte_unused)
> {
> struct lio_device *lio_dev = LIO_DEV(eth_dev);
> - struct rte_eth_link link, old;
> + struct rte_eth_link link;
>
> /* Initialize */
> - link.link_status = ETH_LINK_DOWN;
> - link.link_speed = ETH_SPEED_NUM_NONE;
> - link.link_duplex = ETH_LINK_HALF_DUPLEX;
> - memset(&old, 0, sizeof(old));
> -
> + memset(&link, 0, sizeof(link));
> /* Return what we found */
> if (lio_dev->linfo.link.s.link_up == 0) {
> - /* Interface is down */
> - if (lio_dev_atomic_write_link_status(eth_dev, &link))
> - return -1;
> - if (link.link_status == old.link_status)
> - return -1;
> - return 0;
> - }
> -
> - link.link_status = ETH_LINK_UP; /* Interface is up */
> - link.link_duplex = ETH_LINK_FULL_DUPLEX;
> - switch (lio_dev->linfo.link.s.speed) {
> - case LIO_LINK_SPEED_10000:
> - link.link_speed = ETH_SPEED_NUM_10G;
> - break;
> - case LIO_LINK_SPEED_25000:
> - link.link_speed = ETH_SPEED_NUM_25G;
> - break;
> - default:
> + link.link_status = ETH_LINK_DOWN;
> link.link_speed = ETH_SPEED_NUM_NONE;
> link.link_duplex = ETH_LINK_HALF_DUPLEX;
> - }
> -
> - if (lio_dev_atomic_write_link_status(eth_dev, &link))
> - return -1;
> + } else {
> + link.link_status = ETH_LINK_UP; /* Interface is up */
> + link.link_duplex = ETH_LINK_FULL_DUPLEX;
> + switch (lio_dev->linfo.link.s.speed) {
> + case LIO_LINK_SPEED_10000:
> + link.link_speed = ETH_SPEED_NUM_10G;
> + break;
> + case LIO_LINK_SPEED_25000:
> + link.link_speed = ETH_SPEED_NUM_25G;
> + break;
> + default:
> + link.link_speed = ETH_SPEED_NUM_NONE;
> + link.link_duplex = ETH_LINK_HALF_DUPLEX;
> + }
>
> - if (link.link_status == old.link_status)
> - return -1;
> + }
>
> - return 0;
> + return _rte_eth_link_update(eth_dev, &link);
> }
>
> /**
> --
> 2.11.0
>
Tested-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Thanks,
Shijith
next prev parent reply other threads:[~2017-07-18 10:17 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-14 18:30 [RFC 00/14] link status API improvement and bugfixes Stephen Hemminger
2017-07-14 18:30 ` [RFC 01/14] ethdev: add link status read/write functions Stephen Hemminger
2017-07-16 13:26 ` Andrew Rybchenko
2017-07-17 15:58 ` Stephen Hemminger
2017-07-17 16:12 ` Andrew Rybchenko
2017-07-17 16:21 ` Stephen Hemminger
2017-07-17 16:31 ` Andrew Rybchenko
2017-10-11 8:32 ` Yang, Qiming
2017-10-13 15:12 ` Stephen Hemminger
2018-01-05 14:24 ` Thomas Monjalon
2018-01-05 20:15 ` Stephen Hemminger
2017-07-14 18:30 ` [RFC 02/14] virtio: use eth_link_read/write (and bug fix) Stephen Hemminger
2017-07-16 12:33 ` Andrew Rybchenko
2017-07-17 16:01 ` Stephen Hemminger
2017-07-17 16:14 ` ***Spam*** " Andrew Rybchenko
2017-07-17 16:28 ` Stephen Hemminger
2018-01-05 15:04 ` Thomas Monjalon
2017-07-14 18:30 ` [RFC 03/14] bnxt: use rte_link_update Stephen Hemminger
2017-07-14 18:30 ` [RFC 04/14] vmxnet3: use rte_eth_link_update Stephen Hemminger
2017-07-14 18:30 ` [RFC 05/14] dpaa2: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 06/14] nfp: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 07/14] e1000: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 08/14] ixgbe: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 09/14] sfc: use new rte_eth_link helpers Stephen Hemminger
2017-07-16 13:48 ` Andrew Rybchenko
2017-07-17 16:02 ` Stephen Hemminger
2017-07-17 16:19 ` Andrew Rybchenko
2017-07-14 18:30 ` [RFC 10/14] i40e: use rte_eth_link_update (and bug fix) Stephen Hemminger
2017-07-14 18:30 ` [RFC 11/14] liquidio: use _rte_eth_link_update Stephen Hemminger
2017-07-18 10:17 ` Shijith Thotton [this message]
2017-07-14 18:30 ` [RFC 12/14] thunderx: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 13/14] szedata: " Stephen Hemminger
2017-07-16 12:46 ` Andrew Rybchenko
2017-07-14 18:30 ` [RFC 14/14] enic: " Stephen Hemminger
2017-07-16 13:55 ` [RFC 00/14] link status API improvement and bugfixes Andrew Rybchenko
2018-01-05 14:29 ` Thomas Monjalon
2018-01-05 20:18 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170718101727.GA31042@localhost.localdomain \
--to=shijith.thotton@caviumnetworks.com \
--cc=dev@dpdk.org \
--cc=stephen@networkplumber.org \
--cc=sthemmin@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.