From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f66.google.com (mail-lf0-f66.google.com [209.85.215.66]) by dpdk.org (Postfix) with ESMTP id CD8BE1B388 for ; Fri, 26 Jan 2018 08:55:42 +0100 (CET) Received: by mail-lf0-f66.google.com with SMTP id w27so11811163lfd.6 for ; Thu, 25 Jan 2018 23:55:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=2NNzg8P5YAMeYpAu/Yq1cEYvTtOI1bYA0ANdUGq3RAo=; b=IV6T1iboKUXGrn/NOBvNMhnxyPMcLMQZhhtZ4Gcz7UZOF8UTzGWKbJ+cMVyh3AjS7X Qn0AJBBJX+jk21gwHA46RvaJfIcNFTLk1XHCbQgrHGuRkhIN3/gnTQkmDtYuDS4wrWvB 18nwwKCHTV2Lk9lp0XCM7cIaHQ9ItJTmU3N3aF3XyTd0pLicsRe1qVZqgG+SH8XH3RkY SaXbNH+ecCf8M6SlZpb16/Unwhx/Ru/eQp+3bz4WD0Md28AMpPrFEjYFH1AP+w6TmGVe os67OJ+xHvWL90030K5UK6/UknhnqIQFBrZKUpdR0l38Fsrc2NnSQHqLLFmohsOStSca 0/2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=2NNzg8P5YAMeYpAu/Yq1cEYvTtOI1bYA0ANdUGq3RAo=; b=XtdzYdsPcTNSECFBFsqVJf6WeS1uZY5bHwstNJGFa0ndrwX3YBKREHr9FpYQYH24CM hMsp2MsCblDDhNZrgYN2XF98MWDA7cbAMEPGqDav4dV93mAEjA11Po4qpJjSxnEFyltu Z+M0b7I6NvEAcd37YuZUEOunkD16dEsBMCcEmZarBaAnyb6OKt/184W17TRemxXKgCMs G+Mx/wXI8+qQmqZjBGuW+IQ6Tgsfuk60lS1+nsAUpsGSzOF9UmZ8AAEpWgt49F8qXZ7z tgGz8cskIpWpSrT3QosW6SLgKi7EZGwsTCuGmPSAWHl8RwUiFPAyBn9jyPqJzvulISq1 l7Aw== X-Gm-Message-State: AKwxytcUmpirAFZLGs2sHat3al8BlpJmY06jVV3v40wTWi1RbYJRA5Ux mgNgpZ8vfA+KIKcUeIiOwJRG7w== X-Google-Smtp-Source: AH8x226DX2SM2+t6OBUzPhBj7nk7T/nwkfqeHJJ/VrK1A6HZd5CDia3Nb8KfIbSfFo8GE6YThn2Wew== X-Received: by 10.46.5.15 with SMTP id 15mr7464603ljf.98.1516953342326; Thu, 25 Jan 2018 23:55:42 -0800 (PST) Received: from sh.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id d8sm815747lja.54.2018.01.25.23.55.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 25 Jan 2018 23:55:41 -0800 (PST) From: Tomasz Duszynski To: dev@dpdk.org Cc: mw@semihalf.com, dima@marvell.com, nsamsono@marvell.com, Jianbo.liu@linaro.org, stable@dpdk.org Date: Fri, 26 Jan 2018 08:55:22 +0100 Message-Id: <1516953322-26378-1-git-send-email-tdu@semihalf.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-stable] [PATCH] net/mrvl: fix mbuf to bpool lookup X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jan 2018 07:55:43 -0000 From: Natalie Samsonov Since in DPDK 17.11 port type was changed from uint8_t to uint16_t the MBUF_INVALID_PORT value became 0xffff but in mrvl_tx_pkt_burst() when trying to lookup bpool using mbuf port, we check if the port is invalid according to value 0xff. This causes segmentation fault. Solution: since the valid port value cannot exceed RTE_MAX_ETHPORTS (size of bpool lookup table) any other values consider as invalid so the packet should be returned to DPDK pool. Fixes: afb4d0d0bf91 ("net/mrvl: add Rx/Tx support") Cc: stable@dpdk.org Signed-off-by: Natalie Samsonov --- drivers/net/mrvl/mrvl_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/mrvl/mrvl_ethdev.c b/drivers/net/mrvl/mrvl_ethdev.c index 3b60f91..705c4bd 100644 --- a/drivers/net/mrvl/mrvl_ethdev.c +++ b/drivers/net/mrvl/mrvl_ethdev.c @@ -2096,8 +2096,9 @@ mrvl_tx_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) sq->ent[sq->head].buff.addr = rte_mbuf_data_iova_default(mbuf); sq->ent[sq->head].bpool = - (unlikely(mbuf->port == 0xff || mbuf->refcnt > 1)) ? - NULL : mrvl_port_to_bpool_lookup[mbuf->port]; + (unlikely(mbuf->port >= RTE_MAX_ETHPORTS || + mbuf->refcnt > 1)) ? NULL : + mrvl_port_to_bpool_lookup[mbuf->port]; sq->head = (sq->head + 1) & MRVL_PP2_TX_SHADOWQ_MASK; sq->size++; @@ -2430,6 +2431,7 @@ rte_pmd_mrvl_probe(struct rte_vdev_device *vdev) } memset(mrvl_port_bpool_size, 0, sizeof(mrvl_port_bpool_size)); + memset(mrvl_port_to_bpool_lookup, 0, sizeof(mrvl_port_to_bpool_lookup)); mrvl_lcore_first = RTE_MAX_LCORE; mrvl_lcore_last = 0; -- 2.7.4