Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp4354090pxu; Mon, 12 Oct 2020 17:18:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzA1HdKGyJE3rDr3p8VY8RPfpXsW9c/JeK4SOBiCG94oqBw+Q81ettz2H1nUyTW/KA5+Ewf X-Received: by 2002:a05:6402:1004:: with SMTP id c4mr17361230edu.149.1602548281836; Mon, 12 Oct 2020 17:18:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602548281; cv=none; d=google.com; s=arc-20160816; b=jGrgdeygk2FkDwhKvlSpwZPDwKTo69vGLIykaRGyVaHLapJOjieWTjiYsgjli+433e 8ozC6a2L7iW6vnDpZ8+IBRMUZa+hKcq775bkp0CAuFM3tZsXsEhtAWROiz+P9K8BM+JA tikDekrQISHYKgI3VYRIHOx3XWpJz6J8zEtJF+kmAppbognbCV3uBGW/JJuiypwY9ive /z1jsUn1U2QpapuoMXlVO2sOr7zDuvsoPOfPp3ogrSl7BPu44iQF1x5xB3BQ9VA5iOCp UsiMll16A/Pw/EhEugka4EtAMLRI36VBha633UIf581Z+S1W09svntKJiYureTRm4qBU QLqA== 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=97r5nSGkqmtOkV4D5g33dfdIpAp4/n0D0F4+aeOnzPk=; b=pxnmAWu1ZoBB8kUF3aHn9Jm7vhdV8Rvu8ncSt5Y7DkyheXYdFl40/RyJSsfrKB+TKl Q5X98UuEB0hd7DbNQGRWrQPJJqCemvcjFSDRNSdebwelPltjCWsldoTf1ZS3wCb7jVx1 qA/pbYg27kSHVEeixNCAK9iQ4t6JHfBJyf2kZrGXVORjSQU3OQzBnimGrp1oZAd1lPRe PyOv1MtMRiRUPFmk31ef+K6TrWiV3K4Mbc1f1RK8MIJZBcPV0x15DDX0nlK1ak/FW83m kSSiHJ2FRSKART+YwPZE7c0YVf9z57vx9C2fEwGWE4ub5YvfdSNJx5HC2WVawaNGPoB0 0T5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=UDocVcnP; 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=fail (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 p15si13271393edy.474.2020.10.12.17.17.24; Mon, 12 Oct 2020 17:18:01 -0700 (PDT) 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=@kernel.org header.s=default header.b=UDocVcnP; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389537AbgJLNoo (ORCPT + 99 others); Mon, 12 Oct 2020 09:44:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:47940 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731550AbgJLNmt (ORCPT ); Mon, 12 Oct 2020 09:42:49 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E26732224A; Mon, 12 Oct 2020 13:42:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602510166; bh=QeBgHF9A7YrtFh6Cm0jBGVSXwT4Fhymy+ntAJ/D5UUU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UDocVcnPKqR7AOfwyppZWGGsYLBpUjqWPtlFv3GnAZfYMRpyB7A5RzXc/NEsivbdB NOZMN1XLCPx7vkwxSQGtN2C5oSYSBdYVtXNlr8ccxDBgYn2C5+obnJocfa9GwtEPZo 2NGP+VSnz8X8iAp0cQjqY/QZ53qO6HzpF2p3Gm5k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Aya Levin , Moshe Shemesh , Saeed Mahameed , Sasha Levin Subject: [PATCH 5.4 68/85] net/mlx5e: Fix VLAN cleanup flow Date: Mon, 12 Oct 2020 15:27:31 +0200 Message-Id: <20201012132636.113447606@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012132632.846779148@linuxfoundation.org> References: <20201012132632.846779148@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: Aya Levin [ Upstream commit 8c7353b6f716436ad0bfda2b5c5524ab2dde5894 ] Prior to this patch unloading an interface in promiscuous mode with RX VLAN filtering feature turned off - resulted in a warning. This is due to a wrong condition in the VLAN rules cleanup flow, which left the any-vid rules in the VLAN steering table. These rules prevented destroying the flow group and the flow table. The any-vid rules are removed in 2 flows, but none of them remove it in case both promiscuous is set and VLAN filtering is off. Fix the issue by changing the condition of the VLAN table cleanup flow to clean also in case of promiscuous mode. mlx5_core 0000:00:08.0: mlx5_destroy_flow_group:2123:(pid 28729): Flow group 20 wasn't destroyed, refcount > 1 mlx5_core 0000:00:08.0: mlx5_destroy_flow_group:2123:(pid 28729): Flow group 19 wasn't destroyed, refcount > 1 mlx5_core 0000:00:08.0: mlx5_destroy_flow_table:2112:(pid 28729): Flow table 262149 wasn't destroyed, refcount > 1 ... ... ------------[ cut here ]------------ FW pages counter is 11560 after reclaiming all pages WARNING: CPU: 1 PID: 28729 at drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c:660 mlx5_reclaim_startup_pages+0x178/0x230 [mlx5_core] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014 Call Trace: mlx5_function_teardown+0x2f/0x90 [mlx5_core] mlx5_unload_one+0x71/0x110 [mlx5_core] remove_one+0x44/0x80 [mlx5_core] pci_device_remove+0x3e/0xc0 device_release_driver_internal+0xfb/0x1c0 device_release_driver+0x12/0x20 pci_stop_bus_device+0x68/0x90 pci_stop_and_remove_bus_device+0x12/0x20 hv_eject_device_work+0x6f/0x170 [pci_hyperv] ? __schedule+0x349/0x790 process_one_work+0x206/0x400 worker_thread+0x34/0x3f0 ? process_one_work+0x400/0x400 kthread+0x126/0x140 ? kthread_park+0x90/0x90 ret_from_fork+0x22/0x30 ---[ end trace 6283bde8d26170dc ]--- Fixes: 9df30601c843 ("net/mlx5e: Restore vlan filter after seamless reset") Signed-off-by: Aya Levin Reviewed-by: Moshe Shemesh Signed-off-by: Saeed Mahameed Signed-off-by: Sasha Levin --- drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c index 73d3dc07331f1..c5be0cdfaf0fa 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c @@ -415,8 +415,12 @@ static void mlx5e_del_vlan_rules(struct mlx5e_priv *priv) for_each_set_bit(i, priv->fs.vlan.active_svlans, VLAN_N_VID) mlx5e_del_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_STAG_VID, i); - if (priv->fs.vlan.cvlan_filter_disabled && - !(priv->netdev->flags & IFF_PROMISC)) + WARN_ON_ONCE(!(test_bit(MLX5E_STATE_DESTROYING, &priv->state))); + + /* must be called after DESTROY bit is set and + * set_rx_mode is called and flushed + */ + if (priv->fs.vlan.cvlan_filter_disabled) mlx5e_del_any_vid_rules(priv); } -- 2.25.1