Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp800371ybk; Wed, 13 May 2020 13:29:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxrWuC4AKkstq5r/RJp0/ZO1qojvnF04bMRCHvLL1cC6NPeS4VWIWg5QmljDtgQJG98X11X X-Received: by 2002:a17:906:3517:: with SMTP id r23mr776385eja.304.1589401776435; Wed, 13 May 2020 13:29:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589401776; cv=none; d=google.com; s=arc-20160816; b=Hq41ycHnA4YIGlBP1V/CmR0iHtTHq8Ia6Qmu9EF9WG0tK0D88Cl1wjDqA8aqY0OTZ5 ny3jbHA1VJeiSUkyeYUsctquh66+zlJXqPkI7aoEciJk0jCwvCzCYNzl52ghtpNFAVBU gSo7CwHxy6j8sscGO96vBz0yPVZOxvLjlbqSKDJiFWnoS0yOh4x3oviAlsCROsu4545P 6vAhyVNE8MHcsC8u9ahPt5KHDg6mUB8YGdxd5wDE66Nz6GViVUt7s8SBYx6sNqM8xVX2 nJ+nDig91xquwBVjhV8Q6lHgNbXXbVJAbvYelYx1+NI+u9jI9hUBYuGOVqThSbMscm/r 8Dxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Oeh2jhOUcoTfCWY7MMzuLFAIpb6Pfy0Za2GkclIrG/E=; b=atB8NW1oaww+P4koB9O1c2XgFqEegjZpq5BL13CPEONi10zQUjYTS7LCOKYfyB2VN7 1VxnM16FgJus6TO4TRTLGZk0BYWB0x5rY0UGYNUUzITbf/QSh6ZVdqxxCSxfbVtayKOu v+vig11y2vBTIU+ZBpcyFeBez6+np6Wm6+mQco1IRMPTg9E2HEj4utuPA+fdcqCnl3O1 fAl5HVcYy4+gjmHi6JXJubm8VbwUQuLheF1JWjXH2lSMARKMakN8quJmEnIGpe1+tqlD Aa54EnGPmJ4yNOA56UG7pix9tCZ67rLZ3C/TwE1oC8fPztj5UqXdXKcb/+y1yHSUP3mB CohQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=cBgDbLCG; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x20si454573edi.323.2020.05.13.13.29.13; Wed, 13 May 2020 13:29:36 -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=cBgDbLCG; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732583AbgEMJqK (ORCPT + 99 others); Wed, 13 May 2020 05:46:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:43396 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732569AbgEMJqH (ORCPT ); Wed, 13 May 2020 05:46:07 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 009D320740; Wed, 13 May 2020 09:46:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589363166; bh=Ka+uZXP3Qmj4SZKPSdSkxAFBLLh7Eg88+5ji6OJMt34=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cBgDbLCG13btuux407rBr2UfYbB5dNE/4yIRP/LYVO34hixUHHla2scor4pz8gnVp GWEsex0LhCiU1iQyvL5wyhiOl7Y/WNFVy1RtbzbuCAhTAMYMxmCrhiaifiPrD1fg1F bohW0ce4EnvZF0SlSoYtwfr3ijZBlZ01SRPjmsDs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Chan , "David S. Miller" Subject: [PATCH 4.19 13/48] bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features(). Date: Wed, 13 May 2020 11:44:39 +0200 Message-Id: <20200513094354.851162960@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200513094351.100352960@linuxfoundation.org> References: <20200513094351.100352960@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Chan [ Upstream commit c72cb303aa6c2ae7e4184f0081c6d11bf03fb96b ] The current logic in bnxt_fix_features() will inadvertently turn on both CTAG and STAG VLAN offload if the user tries to disable both. Fix it by checking that the user is trying to enable CTAG or STAG before enabling both. The logic is supposed to enable or disable both CTAG and STAG together. Fixes: 5a9f6b238e59 ("bnxt_en: Enable and disable RX CTAG and RX STAG VLAN acceleration together.") Signed-off-by: Michael Chan Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7562,6 +7562,7 @@ static netdev_features_t bnxt_fix_featur netdev_features_t features) { struct bnxt *bp = netdev_priv(dev); + netdev_features_t vlan_features; if ((features & NETIF_F_NTUPLE) && !bnxt_rfs_capable(bp)) features &= ~NETIF_F_NTUPLE; @@ -7578,12 +7579,14 @@ static netdev_features_t bnxt_fix_featur /* Both CTAG and STAG VLAN accelaration on the RX side have to be * turned on or off together. */ - if ((features & (NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX)) != - (NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX)) { + vlan_features = features & (NETIF_F_HW_VLAN_CTAG_RX | + NETIF_F_HW_VLAN_STAG_RX); + if (vlan_features != (NETIF_F_HW_VLAN_CTAG_RX | + NETIF_F_HW_VLAN_STAG_RX)) { if (dev->features & NETIF_F_HW_VLAN_CTAG_RX) features &= ~(NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX); - else + else if (vlan_features) features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX; }