From patchwork Fri Nov 24 14:24:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alejandro Lucero X-Patchwork-Id: 31642 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C0F062B83; Fri, 24 Nov 2017 15:24:42 +0100 (CET) Received: from netronome.com (host-79-78-33-110.static.as9105.net [79.78.33.110]) by dpdk.org (Postfix) with ESMTP id 22C7D20F; Fri, 24 Nov 2017 15:24:40 +0100 (CET) Received: from netronome.com (localhost [127.0.0.1]) by netronome.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id vAOEOcpK035075; Fri, 24 Nov 2017 14:24:38 GMT Received: (from alucero@localhost) by netronome.com (8.14.4/8.14.4/Submit) id vAOEOb6o035074; Fri, 24 Nov 2017 14:24:37 GMT From: Alejandro Lucero To: dev@dpdk.org Cc: stable@dpdk.org Date: Fri, 24 Nov 2017 14:24:37 +0000 Message-Id: <1511533477-35037-1-git-send-email-alejandro.lucero@netronome.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH] net/nfp: fix jumbo settings X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When jumbo frames is configured, the hardware mtu needs to be updated to the specified max_rx_pkt_len. Also, changing mtu should be avoided once the PMD port started. Fixes: defb9a5dd156 ("nfp: introduce driver initialization") Signed-off-by: Alejandro Lucero --- drivers/net/nfp/nfp_net.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index 9a7b0b2..e2cea06 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -489,7 +489,7 @@ enum nfp_qcp_ptr { } if (rxmode->jumbo_frame) - /* this is handled in rte_eth_dev_configure */ + hw->mtu = rxmode->max_rx_pkt_len; if (rxmode->hw_strip_crc) { PMD_INIT_LOG(INFO, "strip CRC not supported"); @@ -1469,6 +1469,13 @@ enum nfp_qcp_ptr { if ((mtu < ETHER_MIN_MTU) || ((uint32_t)mtu > hw->max_mtu)) return -EINVAL; + /* mtu setting is forbidden if port is started */ + if (dev->data->dev_started) { + PMD_DRV_LOG(ERR, "port %d must be stopped before configuration", + dev_data->port_id); + return -EBUSY; + } + /* switch to jumbo mode if needed */ if ((uint32_t)mtu > ETHER_MAX_LEN) dev->data->dev_conf.rxmode.jumbo_frame = 1;