From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sn1nam01on0101.outbound.protection.outlook.com ([104.47.32.101]:52800 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728330AbeIOGrP (ORCPT ); Sat, 15 Sep 2018 02:47:15 -0400 From: Sasha Levin To: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: Yunsheng Lin , Peng Li , Salil Mehta , "David S . Miller" , Sasha Levin Subject: [PATCH AUTOSEL 4.18 26/92] net: hns3: Fix for reset_level default assignment probelm Date: Sat, 15 Sep 2018 01:30:08 +0000 Message-ID: <20180915012944.179481-26-alexander.levin@microsoft.com> References: <20180915012944.179481-1-alexander.levin@microsoft.com> In-Reply-To: <20180915012944.179481-1-alexander.levin@microsoft.com> Content-Language: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: From: Yunsheng Lin [ Upstream commit 82b5321460005ac5d34996e17f5a51a4004a1e14 ] handle->reset_level is assigned to HNAE3_NONE_RESET when client is initialized, if a tx timeout happens right after initialization, then handle->reset_level is not resetted to HNAE3_FUNC_RESET in hclge_reset_event, which will cause reset event not properly handled problem. This patch fixes it by setting handle->reset_level properly when client is initialized. Fixes: 6d4c3981a8d8 ("net: hns3: Changes to make enet watchdog timeout func= common for PF/VF") Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Salil Mehta Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/= ethernet/hisilicon/hns3/hns3_enet.c index 25a73bb2e642..bcec3a779407 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -3081,7 +3081,6 @@ static int hns3_client_init(struct hnae3_handle *hand= le) priv->dev =3D &pdev->dev; priv->netdev =3D netdev; priv->ae_handle =3D handle; - priv->ae_handle->reset_level =3D HNAE3_NONE_RESET; priv->ae_handle->last_reset_time =3D jiffies; priv->tx_timeout_count =3D 0; =20 @@ -3102,6 +3101,11 @@ static int hns3_client_init(struct hnae3_handle *han= dle) /* Carrier off reporting is important to ethtool even BEFORE open */ netif_carrier_off(netdev); =20 + if (handle->flags & HNAE3_SUPPORT_VF) + handle->reset_level =3D HNAE3_VF_RESET; + else + handle->reset_level =3D HNAE3_FUNC_RESET; + ret =3D hns3_get_ring_config(priv); if (ret) { ret =3D -ENOMEM; --=20 2.17.1