From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B8D5AA0542 for ; Fri, 18 Nov 2022 08:01:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B41AE4067B; Fri, 18 Nov 2022 08:01:40 +0100 (CET) Received: from smtp-relay-internal-0.canonical.com (smtp-relay-internal-0.canonical.com [185.125.188.122]) by mails.dpdk.org (Postfix) with ESMTP id 57B3A4021F for ; Fri, 18 Nov 2022 08:01:39 +0100 (CET) Received: from mail-oa1-f69.google.com (mail-oa1-f69.google.com [209.85.160.69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 07D153F1C0 for ; Fri, 18 Nov 2022 07:01:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1668754899; bh=yIw2viWPB5Df9JXPJWGUTJRJn8vWUcnSP8efveMeZ10=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=G8mBCWyeWIcN8Q7qqb9sSJJ7VAvE+FP9sAv9hL7HUIh9NGIQm8XQTAXa/HRVzsJIY n3tQJsP3pWucoYiuPhmWL5C08wMKJOcm3ihAvcKfNLwfCPGVBkTPS3MfqBesXS68em WfaDgR7iHQ/nQyPH6QOeBcS3Ng8wBizSiUXTb8LwaW+NwiWIRi2FeztXP0nSbb7Ebv wqBRHLZ0HWIayKuOXQU/mgCHmiIa+PpdnhAbdf9HAR/2AfsDXQ/AU3MHrIcyPes/ZH ScqgR29Gi9J9hbhI/uaON1WlQtpV5QLkGTU+VMmycXMEH5uCAqCdqwvrdRsYXCOA2h 3+WQ0VoIEqW9Q== Received: by mail-oa1-f69.google.com with SMTP id 586e51a60fabf-13cce313cd3so1993216fac.20 for ; Thu, 17 Nov 2022 23:01:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yIw2viWPB5Df9JXPJWGUTJRJn8vWUcnSP8efveMeZ10=; b=i8GN4dto5eirjbDl7AvXcOfhOokWlfBHrQvkVWLdSZQ2sFg9QzQAkrMdmRFQCOnGtC 8U58ESjOMuGg5hy7n8tbUlcEOY7Gxyy39/h3J8SgObGEAr8V6eTt7FLLwFR+o9HhkSur QSlUA4th5yD4dznEu/BqVt6kb2O0IKFS2xDsUn/4da4P5nR/w5mx0lWyuRBlhQBj6XC2 HPveTOZtLu8nyKJP3xpIPJJC8CKNp9DEZUVkfnLy5nTuyFj9baT3v2O50DTcOynW67cr 5RmQo108cRvPlITsNF2gIcwm5UHHxx58T151ViNrMChOaACJj61oC+E06XzUamUnThMI 18EQ== X-Gm-Message-State: ANoB5pmPJ/hvhEwlhEDcCnhYd74O0ONzdHNOmmW+9D963bew0pKSel9i 8ebx8efDa/sbVPBU8KjDSflrfIN7OdSX24tj9DBa2a3keHWjrgpuocoMGYEZwNanxM8jHM+Gmag AtRNM5LvGLLL86Gi+IX7hiZs2yIN6XsD3Hh5pENa+ X-Received: by 2002:a05:6870:ec8a:b0:137:39b0:183a with SMTP id eo10-20020a056870ec8a00b0013739b0183amr3132552oab.127.1668754897550; Thu, 17 Nov 2022 23:01:37 -0800 (PST) X-Google-Smtp-Source: AA0mqf4q/N+DnM9cy3qdaG12PtWzJlF8j+vumxou0Sc7+1+P0XAsaMe8uOG5Pbr61N8lQ6mfvDhs+P1FI9+D957PArU= X-Received: by 2002:a05:6870:ec8a:b0:137:39b0:183a with SMTP id eo10-20020a056870ec8a00b0013739b0183amr3132543oab.127.1668754897312; Thu, 17 Nov 2022 23:01:37 -0800 (PST) MIME-Version: 1.0 References: <20221117142524.3144353-1-niklas.soderlund@corigine.com> In-Reply-To: <20221117142524.3144353-1-niklas.soderlund@corigine.com> From: Christian Ehrhardt Date: Fri, 18 Nov 2022 08:01:11 +0100 Message-ID: Subject: Re: [PATCH 19.11] net/nfp: fix internal buffer size and MTU check To: =?UTF-8?Q?Niklas_S=C3=B6derlund?= Cc: stable@dpdk.org, oss-drivers@corigine.com, Peng Zhang , Chaoyong He Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org On Thu, Nov 17, 2022 at 3:27 PM Niklas S=C3=B6derlund wrote: > > From: Peng Zhang > > [ upstream commit dbad6f64f9210afc50566a87f0e25f925c3b0f90 ] Thanks, applied. > When MTU is bigger than hw->flbufsz, it can't work. hw->flbufsz is set > in the nfp_net_rx_queue_setup(). > > At first, in the nfp_net_configure(), the hw->flbufsz isn't set the > value, it just judge the initialized value and MTU, it is unreasonable. > > Now, it just check the MTU can't be more than the NFP_FRAME_SIZE_MAX in > the nfp_net_configure(), when hw->flbufsz is set the value, in the > nfp_net_start(), judge the hw->flbufsz and MTU. > > Fixes: 5c305e218f15 ("net/nfp: fix initialization") > > Signed-off-by: Peng Zhang > Reviewed-by: Chaoyong He > Reviewed-by: Niklas S=C3=B6derlund > Signed-off-by: Niklas S=C3=B6derlund > --- > drivers/net/nfp/nfp_net.c | 15 ++++++++++++++- > drivers/net/nfp/nfp_net_pmd.h | 3 +++ > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c > index f427fad4875f..76222ca5affd 100644 > --- a/drivers/net/nfp/nfp_net.c > +++ b/drivers/net/nfp/nfp_net.c > @@ -397,6 +397,13 @@ nfp_net_configure(struct rte_eth_dev *dev) > return -EINVAL; > } > > + /* Checking MTU set */ > + if (rxmode->max_rx_pkt_len > NFP_FRAME_SIZE_MAX) { > + PMD_INIT_LOG(ERR, "max_rx_pkt_len (%u) larger than NFP_FR= AME_SIZE_MAX (%u) not supported", > + rxmode->max_rx_pkt_len, NFP_FRAME_SIZ= E_MAX); > + return -ERANGE; > + } > + > return 0; > } > > @@ -718,6 +725,13 @@ nfp_net_start(struct rte_eth_dev *dev) > update =3D NFP_NET_CFG_UPDATE_MSIX; > } > > + /* Checking MTU set */ > + if (dev->data->mtu > hw->flbufsz) { > + PMD_INIT_LOG(ERR, "MTU (%u) can't be larger than the curr= ent NFP_FRAME_SIZE (%u)", > + dev->data->mtu, hw->flbufsz); > + return -ERANGE; > + } > + > rte_intr_enable(intr_handle); > > new_ctrl =3D nfp_check_offloads(dev); > @@ -2922,7 +2936,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev) > hw->cap =3D nn_cfg_readl(hw, NFP_NET_CFG_CAP); > hw->max_mtu =3D nn_cfg_readl(hw, NFP_NET_CFG_MAX_MTU); > hw->mtu =3D RTE_ETHER_MTU; > - hw->flbufsz =3D RTE_ETHER_MTU; > > /* VLAN insertion is incompatible with LSOv2 */ > if (hw->cap & NFP_NET_CFG_CTRL_LSO2) > diff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.= h > index 42ab369cff46..2331967a11bd 100644 > --- a/drivers/net/nfp/nfp_net_pmd.h > +++ b/drivers/net/nfp/nfp_net_pmd.h > @@ -102,6 +102,9 @@ struct nfp_net_adapter; > #define NFD_CFG_MINOR_VERSION(x) (((x) & 0xff) << 0) > #define NFD_CFG_MINOR_VERSION_of(x) (((x) >> 0) & 0xff) > > +/* Maximum supported NFP frame size (MTU + layer 2 headers) */ > +#define NFP_FRAME_SIZE_MAX 10048 > + > #include > #include > > -- > 2.38.1 > --=20 Christian Ehrhardt Senior Staff Engineer, Ubuntu Server Canonical Ltd