Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp428989pxb; Wed, 3 Mar 2021 06:52:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJwfLPlUqfs8A1aBvIwn2cTp+uUnbRDzH/D3zLVJSeq+iUb+5A9W1CKNu0LLb05qZyzzUl+B X-Received: by 2002:a05:6402:3096:: with SMTP id de22mr25650190edb.141.1614783169255; Wed, 03 Mar 2021 06:52:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614783169; cv=none; d=google.com; s=arc-20160816; b=a4bY4sr3coBCvU19kcBa3YiLcvd/3WkF2CXVVP+aHGmA0cmhJnwyCMGDQKZziPuC72 rJQfuhfxu5CCNK7/EK1ZPnArB1CEcJPdFo3GMrAGTeyk5ZBC4Ool1Qw4gKR+VgkO7ymi mTGe4/UmyoFCqnJM6IjIG462tMT6PlJlgCJV7To4lkV4xPG2m15visaxbLhtBWHatW6d cPnv3hAn/WkevG40kyODO6ksqxe0dCDZlMImjzkMieU2bmMwFPMzqjcOvhhe+UXGyw7X 2Daw/Np3wYa1xYytiU8wOMcTosndmamo6oacdfCOWOV9fdhLRZpMMYoKI5Cg7UgVB8Y6 i5GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=uoGTuDdPHqYVUgAs5SXsunGcI9qKsKP9e1tA5bK6gYo=; b=y7X7HrTTaxlVUDDOxJm3DbTIlNUiCEfV3D9DJSl6RmMDyHRpEml+qe/ITVh0/6VO+x fBBM/t1a7NuANMbSB5ggPbaIFXdhzAgo8vvudy+vOx6AeHr2HsoTsGFZJsDN3/iLu2p1 eCli8S6GlKDlI3jURAtDN5PweNJ9G2YD+t82aqlWfpbCpRtHnBsl1P6Tvp9nB1DfTqaj kOefURHWVzZhcBNDtXItCSjHrOTCsD9BWzjHAZhxnBuDCLsP6zVWEoj3k+FQYtmrLpXH ogPSh+pdCfqg1O96nJLfBYo63ISWQJbPhl3i5Fs94j1Ccrv7qxsdNGMDEnru1VNA2gEm HwMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=WUN2lAf3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e5si8882638edy.342.2021.03.03.06.51.24; Wed, 03 Mar 2021 06:52:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=WUN2lAf3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241177AbhCAWOT (ORCPT + 99 others); Mon, 1 Mar 2021 17:14:19 -0500 Received: from mail.kernel.org ([198.145.29.99]:54074 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238009AbhCAR3f (ORCPT ); Mon, 1 Mar 2021 12:29:35 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7D4FA64F17; Mon, 1 Mar 2021 16:51:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614617506; bh=h/ahHGcCpAX6MwdeY8klbkWIk/Rn4/lgwePmgYLOPLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WUN2lAf3Xfr30zBUMRYlz6zGyNZ0zslnsiempTGSNP26W4Hwsf0T7KpMM2Ul5PHxl zpsDSWhMmvkGOTVnbiultBQhgEK91w7vfnrTIpK0ieJoQ5WbZMmxuX0nxTpk1K7xQr nsaxVx5FMYnc0592u4YjfsjXsg7oS6BzA/Kqfe+A= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sudheesh Mavila , Shyam Sundar S K , Tom Lendacky , "David S. Miller" , Sasha Levin Subject: [PATCH 5.4 067/340] net: amd-xgbe: Reset link when the link never comes back Date: Mon, 1 Mar 2021 17:10:11 +0100 Message-Id: <20210301161051.620098931@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161048.294656001@linuxfoundation.org> References: <20210301161048.294656001@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Shyam Sundar S K [ Upstream commit 84fe68eb67f9499309cffd97c1ba269de125ff14 ] Normally, auto negotiation and reconnect should be automatically done by the hardware. But there seems to be an issue where auto negotiation has to be restarted manually. This happens because of link training and so even though still connected to the partner the link never "comes back". This needs an auto-negotiation restart. Also, a change in xgbe-mdio is needed to get ethtool to recognize the link down and get the link change message. This change is only required in a backplane connection mode. Fixes: abf0a1c2b26a ("amd-xgbe: Add support for SFP+ modules") Co-developed-by: Sudheesh Mavila Signed-off-by: Sudheesh Mavila Signed-off-by: Shyam Sundar S K Acked-by: Tom Lendacky Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 2 +- drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c index 4d5506d928973..156a0bc8ab01d 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c @@ -1345,7 +1345,7 @@ static void xgbe_phy_status(struct xgbe_prv_data *pdata) &an_restart); if (an_restart) { xgbe_phy_config_aneg(pdata); - return; + goto adjust_link; } if (pdata->phy.link) { diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c index f024db6d90158..387d3aeebf237 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c @@ -2601,6 +2601,14 @@ static int xgbe_phy_link_status(struct xgbe_prv_data *pdata, int *an_restart) if (reg & MDIO_STAT1_LSTATUS) return 1; + if (pdata->phy.autoneg == AUTONEG_ENABLE && + phy_data->port_mode == XGBE_PORT_MODE_BACKPLANE) { + if (!test_bit(XGBE_LINK_INIT, &pdata->dev_state)) { + netif_carrier_off(pdata->netdev); + *an_restart = 1; + } + } + /* No link, attempt a receiver reset cycle */ if (phy_data->rrc_count++ > XGBE_RRC_FREQUENCY) { phy_data->rrc_count = 0; -- 2.27.0