Received: by 2002:a17:90a:bc8d:0:0:0:0 with SMTP id x13csp1570614pjr; Mon, 18 May 2020 16:41:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfmDYSfLq+HljKnkbfT3ciBJ5gGmCCfbs0bbk9kHqXulqJxhyWpkY75Zs4uC/V7tZ92ZIR X-Received: by 2002:a17:906:c7d9:: with SMTP id dc25mr16505353ejb.305.1589845311200; Mon, 18 May 2020 16:41:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589845311; cv=none; d=google.com; s=arc-20160816; b=PZLOGD83P8FzBmKephHGr9nN5RzUrLb3sDc/CctF0mFGbuQw8PideeYrEl9aayt44Z foYk8swmZoo7CTDYYBX3CwBLDQsvdWI5GcHTu3ZT8wWQzAOdKVBMzh4J0uTecBIu5gRJ HmOjgzxPAR38L8hyWkVd6NXXipgrF9Ys/42ANEB5x0G3Rpi3KygFvOzcBK3wu0HpXbzI UbnRYD2JnqKpDlTyUb9Pb1cds+cy7OVSrDZfqCAbFjX1KS6lK70oYo8qDdT3FoYi4Iam D+xVDbZBRs7igmnV5nljDmFldV7in42bzECfKteMy+uyAxmU7qp4KtV5qLh07l5opE0Q 9rfA== 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=5O5mbGx8yXlz3Q+6PmTQJbDZpeDWHKTKl1Jj+eyMCPQ=; b=wuWklOJUYh3Swq3uh3WhNJx0tNkNdMMGibIVGCbgTDMDtkS/xQc+AkLl96rUjFAryv ydr4cRRYv5TEKNPEe2YXdftj6vXiDsktA0WQiIJbxEIq3sS3/bXofZudsHlyEN1O9FLc YWkd/1hVzvOSm8iOciREJMBdXiF44zoFpk3VxaC/6HIf5hcsGIyHQXgrTSA+8wSglJCT 5Lcf18ThBLsJgykHe41oWzzN7O0dvFN/e0EvLezSHXhsz5aMZ3f5WVJU2t7V0Xw+ssy/ j4VNReGHKHgGafEy32/uvDnK16uqugQgNmg0PiIkiEICQgbRNezAYi/tOuFerYKEI0SQ /Ucg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="aO/+luTO"; 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 c34si7285234edd.509.2020.05.18.16.41.28; Mon, 18 May 2020 16:41:51 -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="aO/+luTO"; 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 S1728613AbgERRnH (ORCPT + 99 others); Mon, 18 May 2020 13:43:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:40014 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729482AbgERRmv (ORCPT ); Mon, 18 May 2020 13:42:51 -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 67CFF20849; Mon, 18 May 2020 17:42:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589823770; bh=dBC2iycTubdslgeJs32ctXRJzOU1GaMI6bhzB2dMpXU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aO/+luTOEkB6uKdCGWRcHoXYmA0Wj0ZzitooGfvNvcfDYwvDe542mcj+IC6yqs4bA sJzH2ldTqn9BtLQ+wZdcGK5AH40PJw9MggIvgMW3svvaHaw5TqpZcLpkJdhSRThYl/ hQBFkp8xC4pPb5RpFY9PsSI9WLL8z/f1j0wRmF/o= 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.9 09/90] bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features(). Date: Mon, 18 May 2020 19:35:47 +0200 Message-Id: <20200518173453.119549591@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200518173450.930655662@linuxfoundation.org> References: <20200518173450.930655662@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 @@ -5997,6 +5997,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; @@ -6004,12 +6005,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; }