Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2628640pxj; Mon, 31 May 2021 06:57:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxXjpafvKEg+nPXArmVtSlNDnz3pc/+fqaMCDuMnYKWu6y/x6T1W7lYBMSwZnU6Ms+vWVHm X-Received: by 2002:a05:6402:5241:: with SMTP id t1mr25340821edd.161.1622469419871; Mon, 31 May 2021 06:56:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622469419; cv=none; d=google.com; s=arc-20160816; b=QSlGNDxGjm+qDndUDDtBOiUdvtna17DLUpB/AFJs/KyhZ5gKOe8yIiRtV/a/fyOfGL YLpcpUdyM7yGpKyDIt83DhSqHb9LR5HNSJqJWu17piHDjZ459Jz2rFhGHw9JG1Ob7VYQ 6VbXq3Qm4jwCO6OGH0hHpxXOxBInv0RaprlbWo5eMZ1u/Q4k1Ur8ilz5wzrcELH7eaLb 0W22stqjXolqwJWxxAmI25ROtmKYpnWah0xLK47Y7xElsKEqXlLrW92tQOCR/4Ap+Y1L L4E/loEsfxketYV22Sj+UZntiBW1Y0KVmehlLp34e+MYScKpZah4Lgg324ja8vRR5FtA RsbQ== 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=Tfs5S0sKcf0gAhJ/dx14oU4H6kAsnjjNmhp+atBdkRs=; b=gFmIfJMyjRbwf/MZlFgIQZ5KFYDp5/wK9MGRfrINGW0HAuPp7tObP/4eqMVTbYeCdL DdAIx3i6DzSQsU1t9bISsvQ/7A+arihkMyP2QarzUdvNUy7PoBauBCr7VIV84Dq5qNN/ GpV0YJHI3sy0+69KFX9ojKJuD88GWggs/CJaLgYkczGDlJDvIOISxbvvy6oqgWxJTdt6 83Y6mCDLRdvql+uLG4h/9vIbJkM7QumGFQq0PJZpwEYn8K/X83fX2xm7i9VvPSy4vIXu M8tgw/Ytm9Sr1a1woinATxOxO4FRVhAGC2c4uXB0fvJQmnS+Oz6yitc7hFK7kqK08lMb akYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=aJ2suZiD; 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 cz28si13342992edb.168.2021.05.31.06.56.37; Mon, 31 May 2021 06:56:59 -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=@linuxfoundation.org header.s=korg header.b=aJ2suZiD; 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 S232035AbhEaN5W (ORCPT + 99 others); Mon, 31 May 2021 09:57:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:44100 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232348AbhEaNh2 (ORCPT ); Mon, 31 May 2021 09:37:28 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EF2F8613CD; Mon, 31 May 2021 13:26:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1622467574; bh=ev+ZyfKJKelas2MiisSa+ROoXFnwsFoXUAEUIwVoMqM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aJ2suZiDADu/RQibSgcD6uwfv9WveqwohzmNShJe7rX305D9K3vrxAi7LAO/Wf25P fJDbn6R8Ur5Cd+k/SchzR1DXDNBCYP12iNbAFQ5SGOpz5D7Yd1Q42wtpx8C804F5O4 nUmBysPHS73+1SfBKSJW3CyJIVTYsb/nWb37hrK4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Piotr Skajewski , Jesse Brandeburg , Mateusz Palczewski , Konrad Jankowski , Tony Nguyen , "David S. Miller" , Sasha Levin Subject: [PATCH 4.19 107/116] ixgbe: fix large MTU request from VF Date: Mon, 31 May 2021 15:14:43 +0200 Message-Id: <20210531130643.750059202@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210531130640.131924542@linuxfoundation.org> References: <20210531130640.131924542@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: Jesse Brandeburg [ Upstream commit 63e39d29b3da02e901349f6cd71159818a4737a6 ] Check that the MTU value requested by the VF is in the supported range of MTUs before attempting to set the VF large packet enable, otherwise reject the request. This also avoids unnecessary register updates in the case of the 82599 controller. Fixes: 872844ddb9e4 ("ixgbe: Enable jumbo frames support w/ SR-IOV") Co-developed-by: Piotr Skajewski Signed-off-by: Piotr Skajewski Signed-off-by: Jesse Brandeburg Co-developed-by: Mateusz Palczewski Signed-off-by: Mateusz Palczewski Tested-by: Konrad Jankowski Signed-off-by: Tony Nguyen Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c index f6ffd9fb2079..8aaf856771d7 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c @@ -467,12 +467,16 @@ static int ixgbe_set_vf_vlan(struct ixgbe_adapter *adapter, int add, int vid, return err; } -static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) +static int ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 max_frame, u32 vf) { struct ixgbe_hw *hw = &adapter->hw; - int max_frame = msgbuf[1]; u32 max_frs; + if (max_frame < ETH_MIN_MTU || max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE) { + e_err(drv, "VF max_frame %d out of range\n", max_frame); + return -EINVAL; + } + /* * For 82599EB we have to keep all PFs and VFs operating with * the same max_frame value in order to avoid sending an oversize @@ -532,12 +536,6 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) } } - /* MTU < 68 is an error and causes problems on some kernels */ - if (max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE) { - e_err(drv, "VF max_frame %d out of range\n", max_frame); - return -EINVAL; - } - /* pull current max frame size from hardware */ max_frs = IXGBE_READ_REG(hw, IXGBE_MAXFRS); max_frs &= IXGBE_MHADD_MFS_MASK; @@ -1240,7 +1238,7 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf) retval = ixgbe_set_vf_vlan_msg(adapter, msgbuf, vf); break; case IXGBE_VF_SET_LPE: - retval = ixgbe_set_vf_lpe(adapter, msgbuf, vf); + retval = ixgbe_set_vf_lpe(adapter, msgbuf[1], vf); break; case IXGBE_VF_SET_MACVLAN: retval = ixgbe_set_vf_macvlan_msg(adapter, msgbuf, vf); -- 2.30.2