Received: by 10.192.165.156 with SMTP id m28csp1103930imm; Wed, 11 Apr 2018 12:29:14 -0700 (PDT) X-Google-Smtp-Source: AIpwx49cg9xDNLnWgMSsId2r7L02HVEKzbkYjJbuOpgCz2RxOtzHHr9xywHI5kbr+/pBMNaIGNgY X-Received: by 10.99.61.15 with SMTP id k15mr4281727pga.361.1523474954394; Wed, 11 Apr 2018 12:29:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523474954; cv=none; d=google.com; s=arc-20160816; b=mVltki5KN7ZMZ6lxFzk71bUNrFxYxJ2oG77/wQ5a98LVrKuRZtr4fExyXIcQ2U+O3x HN7l++IH/0ukZC2/p951KBxyJL+1CUWGTCEFimbUTjKEwHSKiFNP99iwjN9oWvbhFKbz ogES98plHLeCEhl/NuySCpx10nFjUtC6ezCbY0fqDK9ahY17zdqwA7odlsT/sKWEs8Gd +x787OshGC7OknAZTey64LYsfGGiEhQ1AJw85xiEh91lo6EANVtfmSlpkV6AESw5CEcu mqfZjk++jfVzkvRhgcxiT0eeY9isSYgo9pA6Aocngzzf6slUl6U2SbulUMsbs/FRX/MY e6Pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=WuB14CMdmm/viccYM5Kt3ToUzNTHe5wotkqFiyZ1pUE=; b=dB0BDyfsRI9snU7963uMmJu+TarThnPwKAKj5zEQgP2vuu+DbaU6bWlYEkajqxgMW9 0QRt0FA0ph1kAAozcgd00/82hznFLve9HmQHaxK5TCgKHLd+Qh3zyikMBJFVgOqr/QYv kGm5aFsRETZVYBiFEZ2R6SZk36mAdIjUqU44hOaPMN7URA+1YkV7wc9cQPMdU/+zjT1s kgAfjrozTCMEAdR1i8ALubxgM5xAh8i+o3ZTmf3v3Iy13tNKsp01s5o6WTfroddeNfE4 kxhqujc23w/TThOaVBxbtg4x3rsYgZiK/K054y8fqafjhk9gjvTF5+RPsZu9ME/tWldr GtOg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l91-v6si1703711plb.301.2018.04.11.12.28.38; Wed, 11 Apr 2018 12:29:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934683AbeDKTD2 (ORCPT + 99 others); Wed, 11 Apr 2018 15:03:28 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:38946 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934641AbeDKTD0 (ORCPT ); Wed, 11 Apr 2018 15:03:26 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id E99A0E42; Wed, 11 Apr 2018 19:03:25 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yuval Mintz , "David S. Miller" , Sasha Levin Subject: [PATCH 4.9 236/310] bnx2x: Allow vfs to disable txvlan offload Date: Wed, 11 Apr 2018 20:36:15 +0200 Message-Id: <20180411183632.654191027@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183622.305902791@linuxfoundation.org> References: <20180411183622.305902791@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: "Mintz, Yuval" [ Upstream commit 92f85f05caa51d844af6ea14ffbc7a786446a644 ] VF clients are configured as enforced, meaning firmware is validating the correctness of their ethertype/vid during transmission. Once txvlan is disabled, VF would start getting SKBs for transmission here vlan is on the payload - but it'll pass the packet's ethertype instead of the vid, leading to firmware declaring it as malicious. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -3887,15 +3887,26 @@ netdev_tx_t bnx2x_start_xmit(struct sk_b /* when transmitting in a vf, start bd must hold the ethertype * for fw to enforce it */ + u16 vlan_tci = 0; #ifndef BNX2X_STOP_ON_ERROR - if (IS_VF(bp)) + if (IS_VF(bp)) { #endif - tx_start_bd->vlan_or_ethertype = - cpu_to_le16(ntohs(eth->h_proto)); + /* Still need to consider inband vlan for enforced */ + if (__vlan_get_tag(skb, &vlan_tci)) { + tx_start_bd->vlan_or_ethertype = + cpu_to_le16(ntohs(eth->h_proto)); + } else { + tx_start_bd->bd_flags.as_bitfield |= + (X_ETH_INBAND_VLAN << + ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT); + tx_start_bd->vlan_or_ethertype = + cpu_to_le16(vlan_tci); + } #ifndef BNX2X_STOP_ON_ERROR - else + } else { /* used by FW for packet accounting */ tx_start_bd->vlan_or_ethertype = cpu_to_le16(pkt_prod); + } #endif }