Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4015267pxb; Tue, 2 Mar 2021 04:46:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXS+eNWvQpPwvtU0iyCU2DG2yV74xb8if5NStL9pUa60CjY1xmsmwFn+l6lkIt3VHk3ZYF X-Received: by 2002:a17:907:3d8d:: with SMTP id he13mr20833196ejc.448.1614689172917; Tue, 02 Mar 2021 04:46:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614689172; cv=none; d=google.com; s=arc-20160816; b=mHh+bcMjq2dnHs1p1o4jFwbEC5KpkwSUqCAOG43lJUFBQmfl4NUKKw/+pAKX1hD4tX KyHemI2gPycYt/GBz4WabbpiDiCkpsr06Y+K5jrxLixOVzjIVEj/TzP2qBxGA34xiN1o FbfPyJEZ5AYMYqz9qDmrEQSk0LmXaqaEV83up0wAADBkItd/x5PXdk/Z39iEDM2mz0lc lpsurx7pgUBxJz4JRGa54j/6N0tSo8nPewVbB33hlsxbMcTjl3/bn4lehRAn9mspe0s9 B+Xb2fPiyFnIO3ZtF3dUPWCWcExGDaVKLsJ9UBnVYAdsYX+XM2/HhjKKat0hteLCb+vJ NisQ== 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=1MrO2mFtCWHICNiOFpP7vEIEQvIO6dcKCO+7605INDA=; b=VY9v3HfkHN+u9m5lykwHdLfEq9MO63ia/G0XMJSLHWkJh1FmV421mFNuYLEDfBp0FA a7KFUGXqHJt89CLsFRLQxOAno5VLoBQKRC8xbVg/ejcWrabCTDl55oSLsP+UpkqWJiak 2R8l/WE+SNz/5bkX/INJwwYsAAorZ1pzR1bsG4fDCl4EQ4tFTuEWPMDZCHBVx0hTQG8u agwDVyaqoLC+p9rVC8jk/6d82vDZQd6KbbrAdD6rJY+m+LDACvEjUZeV/CVX+tH7092Y qeQ7x/ooEagd93qTC0qgdGtyMixXA1UdHHHbcrufyJgCsV9gWiOW/WSH57zhaO8F+i6N anwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="kAN+/V3U"; 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 m21si10934841ejx.725.2021.03.02.04.45.50; Tue, 02 Mar 2021 04:46:12 -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="kAN+/V3U"; 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 S1443143AbhCBCTB (ORCPT + 99 others); Mon, 1 Mar 2021 21:19:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:55188 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240425AbhCATpM (ORCPT ); Mon, 1 Mar 2021 14:45:12 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id A7BCB6521F; Mon, 1 Mar 2021 17:23:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614619388; bh=pl2Q7hvzPUKUqWDnY4IvMXgXiT4MrI8eYry386xtx6A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kAN+/V3UfMC9y6aY7QcLX4oV8x8fkK8HlvbQ+9xylbDkV2upoBL/Naq6b5fD4I6mR g9ffHkvSTxb3CFyjRjygLaRWN5cFdSBF7za8w2fc2+fVjrXVUfvu4c3T8zcqYgCTfZ 5v6pxYtEqs1US7VWja/Mr75ANeFAfSNOGAvlMorQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Przemyslaw Patynowski , Mateusz Palczewski , Sylwester Dziedziuch , Aleksandr Loktionov , Tony Brelinski , Tony Nguyen , Sasha Levin Subject: [PATCH 5.10 437/663] i40e: Fix addition of RX filters after enabling FW LLDP agent Date: Mon, 1 Mar 2021 17:11:25 +0100 Message-Id: <20210301161203.516685812@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161141.760350206@linuxfoundation.org> References: <20210301161141.760350206@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: Mateusz Palczewski [ Upstream commit 28b1208e7a7fa3ddc9345b022bb93e53d9dcc28a ] Fix addition of VLAN filter for PF after enabling FW LLDP agent. Changing LLDP Agent causes FW to re-initialize per NVM settings. Remove default PF filter and move "Enable/Disable" to currently used reset flag. Without this patch PF would try to add MAC VLAN filter with default switch filter present. This causes AQ error and sets promiscuous mode on. Fixes: c65e78f87f81 ("i40e: Further implementation of LLDP") Signed-off-by: Przemyslaw Patynowski Signed-off-by: Mateusz Palczewski Reviewed-by: Sylwester Dziedziuch Reviewed-by: Aleksandr Loktionov Tested-by: Tony Brelinski Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 16 +++++++++------- drivers/net/ethernet/intel/i40e/i40e_main.c | 9 ++++----- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c index 26ba1f3eb2d85..9e81f85ee2d8d 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c @@ -4878,7 +4878,7 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags) enum i40e_admin_queue_err adq_err; struct i40e_vsi *vsi = np->vsi; struct i40e_pf *pf = vsi->back; - bool is_reset_needed; + u32 reset_needed = 0; i40e_status status; u32 i, j; @@ -4923,9 +4923,11 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags) flags_complete: changed_flags = orig_flags ^ new_flags; - is_reset_needed = !!(changed_flags & (I40E_FLAG_VEB_STATS_ENABLED | - I40E_FLAG_LEGACY_RX | I40E_FLAG_SOURCE_PRUNING_DISABLED | - I40E_FLAG_DISABLE_FW_LLDP)); + if (changed_flags & I40E_FLAG_DISABLE_FW_LLDP) + reset_needed = I40E_PF_RESET_AND_REBUILD_FLAG; + if (changed_flags & (I40E_FLAG_VEB_STATS_ENABLED | + I40E_FLAG_LEGACY_RX | I40E_FLAG_SOURCE_PRUNING_DISABLED)) + reset_needed = BIT(__I40E_PF_RESET_REQUESTED); /* Before we finalize any flag changes, we need to perform some * checks to ensure that the changes are supported and safe. @@ -5057,7 +5059,7 @@ flags_complete: case I40E_AQ_RC_EEXIST: dev_warn(&pf->pdev->dev, "FW LLDP agent is already running\n"); - is_reset_needed = false; + reset_needed = 0; break; case I40E_AQ_RC_EPERM: dev_warn(&pf->pdev->dev, @@ -5086,8 +5088,8 @@ flags_complete: /* Issue reset to cause things to take effect, as additional bits * are added we will need to create a mask of bits requiring reset */ - if (is_reset_needed) - i40e_do_reset(pf, BIT(__I40E_PF_RESET_REQUESTED), true); + if (reset_needed) + i40e_do_reset(pf, reset_needed, true); return 0; } diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index bcfa6dcac29f7..b268adb3e1d44 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -8537,11 +8537,6 @@ void i40e_do_reset(struct i40e_pf *pf, u32 reset_flags, bool lock_acquired) dev_dbg(&pf->pdev->dev, "PFR requested\n"); i40e_handle_reset_warning(pf, lock_acquired); - dev_info(&pf->pdev->dev, - pf->flags & I40E_FLAG_DISABLE_FW_LLDP ? - "FW LLDP is disabled\n" : - "FW LLDP is enabled\n"); - } else if (reset_flags & I40E_PF_RESET_AND_REBUILD_FLAG) { /* Request a PF Reset * @@ -8549,6 +8544,10 @@ void i40e_do_reset(struct i40e_pf *pf, u32 reset_flags, bool lock_acquired) */ i40e_prep_for_reset(pf, lock_acquired); i40e_reset_and_rebuild(pf, true, lock_acquired); + dev_info(&pf->pdev->dev, + pf->flags & I40E_FLAG_DISABLE_FW_LLDP ? + "FW LLDP is disabled\n" : + "FW LLDP is enabled\n"); } else if (reset_flags & BIT_ULL(__I40E_REINIT_REQUESTED)) { int v; -- 2.27.0