From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f193.google.com (mail-pf0-f193.google.com [209.85.192.193]) by dpdk.org (Postfix) with ESMTP id 93ACC1B393 for ; Tue, 16 Jan 2018 19:26:22 +0100 (CET) Received: by mail-pf0-f193.google.com with SMTP id y26so2558293pfi.10 for ; Tue, 16 Jan 2018 10:26:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7j/aTr/PUEbT/fotih/WMZP3i0wxsGOG7qvt8dYfnBw=; b=Bzek/B/NlYukuzfxk80l04Rp0mypQWG+d5P2IDqJVyAhV+0JJpwMur/kDdjpAWc5zW BbvyO5OxfKEMyEG2+Rr41y3mtRlh1dgNJyG8J3iONiqTSYggdXTgECTi+5UgodK2mX/z zkbA9HO3xRaqiRqWzTw5qV1zup63LNdItYQzaoA75nq85zdaCz+5hv0mdrvhmUNUIHGX JrXNHtYxwBlsASs/0HtNY4oYO/lVkzL7VOjCqK2GrfsGSnb+eNLPySyfdwgXG4xYifmO zkZRfs35R/ytkJCb5doaYii2oq2+PYrJGUzIEPLOx2+Mk4UP0xUuf5dLu9Z6AiCCF/RR igGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7j/aTr/PUEbT/fotih/WMZP3i0wxsGOG7qvt8dYfnBw=; b=eToXOa12upLbOaD124+Jzawz59S319ZJZDmWeUW0+AiUnrfvrhO7mI+d76LBPw3rCh BVkh0mibybChpxrJUQOcNk7La3is+Smz3ZmdCPhJg6lGnb2n9AmF1RHFRU8UgOaK+Aj9 hM7c64HzZwAR82AlH3fVBzsltbpcQ6sYZbdfoP58r3KLFsC1k19Q59yTcDr/Oh2y3SNg BUbyegF4LhEL2iWn5UYQC+pQE56GTGG5kfArfkZHTr7q9NMlSfxRz3BH7vGYMVp1wauK kR6WpLh5lrhwfL4jQ5CW2DK1CRsKtRD2Jdgti8+W4XpCKeUhNDudnfZjnFaxW0AXafFU IFBw== X-Gm-Message-State: AKGB3mJ0Z6uZhpWZQpEqJ7S8ylW/VzjHG8juOBFwpZc35UAvknA2jMWZ kAWpJ/u4+6iKIUS+i6chZOrv5Vil+Zw= X-Google-Smtp-Source: ACJfBovZjji8ol8kSj3sjjoZDXpKdaJO3hUXejAnNTa54Vsvz9LfN6P0eEFFY5vDRPrKBSrd5TGauA== X-Received: by 10.98.50.5 with SMTP id y5mr35480169pfy.60.1516127181451; Tue, 16 Jan 2018 10:26:21 -0800 (PST) Received: from xeon-e3.lan (204-195-18-133.wavecable.com. [204.195.18.133]) by smtp.gmail.com with ESMTPSA id x17sm3940497pge.50.2018.01.16.10.26.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Jan 2018 10:26:20 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Date: Tue, 16 Jan 2018 10:25:58 -0800 Message-Id: <20180116182558.6254-16-stephen@networkplumber.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180116182558.6254-1-stephen@networkplumber.org> References: <20180116182558.6254-1-stephen@networkplumber.org> Subject: [dpdk-dev] [PATCH v4 15/15] net/enic: use rte_eth_linkstatus_set 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: , X-List-Received-Date: Tue, 16 Jan 2018 18:26:22 -0000 This driver was not doing atomic update of link status information. And the return value was different than others. The hardware also does not do autonegotiation (at least on Linux). Signed-off-by: Stephen Hemminger --- drivers/net/enic/enic_ethdev.c | 5 ++--- drivers/net/enic/enic_main.c | 17 ++++++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index 669dbf3363fd..68b625468b63 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -446,10 +446,9 @@ static void enicpmd_dev_stop(struct rte_eth_dev *eth_dev) ENICPMD_FUNC_TRACE(); enic_disable(enic); + memset(&link, 0, sizeof(link)); - rte_atomic64_cmpset((uint64_t *)ð_dev->data->dev_link, - *(uint64_t *)ð_dev->data->dev_link, - *(uint64_t *)&link); + rte_eth_linkstatus_set(eth_dev, &link); } /* diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index 8af0ccd3cdcf..7674263c38cc 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -413,16 +413,15 @@ enic_free_consistent(void *priv, int enic_link_update(struct enic *enic) { struct rte_eth_dev *eth_dev = enic->rte_dev; - int ret; - int link_status = 0; + struct rte_eth_link link = { + .link_status = enic_get_link_status(enic), + .link_duplex = ETH_LINK_FULL_DUPLEX, + .link_speed = vnic_dev_port_speed(enic->vdev), + .link_autoneg = ETH_LINK_FIXED, + }; - link_status = enic_get_link_status(enic); - ret = (link_status == enic->link_status); - enic->link_status = link_status; - eth_dev->data->dev_link.link_status = link_status; - eth_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX; - eth_dev->data->dev_link.link_speed = vnic_dev_port_speed(enic->vdev); - return ret; + rte_eth_linkstatus_set(eth_dev, &link); + return 0; } static void -- 2.15.1