From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by dpdk.org (Postfix) with ESMTP id 612431094 for ; Wed, 22 Mar 2017 08:50:30 +0100 (CET) Received: by mail-wm0-f43.google.com with SMTP id t189so29477981wmt.1 for ; Wed, 22 Mar 2017 00:50:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=xVTO8/J7HrtzaA9d6K+dr/ZUq+wR7+TVQsEnCyKA1CY=; b=L4Dw1YoRYOmjBk9WjgdN0Jp/gBpkmeCDDP/hAKztAl1W7hMQYtyxvIhvClNrEF85UM jJq374TMi00qo8zjm+T9qR7KY5eeCq1BuP499q9yqbTDaB6A2o59FEiBvtLOd/C+fpdK NgHTq2aWogJxNG1tI+s110JW9880fm5Uw9pnLRYwq08vRa9Mcxps1rbeSk6ZgMyE14ft Vc6XEhcreAidlqk6A2dVgzHruqKNXUviZr4x8ZcrYT8tMz23sd3PExUorbP8p+l+GiWy Kbqy6iWWz7W0j0P+q//2uNLfDzcRmMwmXHaxDTO70kjR3xqa+hDRQ6IKpmEmGyTJBiWb oioQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=xVTO8/J7HrtzaA9d6K+dr/ZUq+wR7+TVQsEnCyKA1CY=; b=VOkXgxFNSCJpn0CBOSojPju9SBLyH17+PSk9+l4kQTpBeSmelk5hoVTlh2vff8Hbl8 0g0SS1LSSsxhWl17sR3OyzdAnj0HmDoEb34TyiSAacZaJs/uxS+FCnMakkF/MCg4GbrA xZaYiCCr+VEQL0XevMCWkyvWCz/gdCDG6gkyOLrJmK7mvhvJxwVQaBhH2WwmW0/ZGgHK H20RuULCqkTsUSOeSIyOaKcxzY+VttEpSt6pR0IzeHMvEoA9pK2ys2KJCyIkOXbca5lT iUgYGqCJ0lsFOs9ZOfwhLyZeX7nFdzwbq0q4AMkdxmZh09QtmQertrwF+oCM1D1LmdY/ 2oHw== X-Gm-Message-State: AFeK/H0F6m/2zhbMtKbvTc9mDWD/pX7LxeKVQvIVJ0QuT/R7nok/vS1QukqasBb9YcVcWgIe X-Received: by 10.28.194.7 with SMTP id s7mr6162576wmf.34.1490169029911; Wed, 22 Mar 2017 00:50:29 -0700 (PDT) Received: from autoinstall.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id i7sm1091584wmg.30.2017.03.22.00.50.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Mar 2017 00:50:29 -0700 (PDT) Date: Wed, 22 Mar 2017 08:50:20 +0100 From: =?iso-8859-1?Q?N=E9lio?= Laranjeiro To: Yongseok Koh Cc: ferruh.yigit@intel.com, dev@dpdk.org, adrien.mazarguil@6wind.com, stable@dpdk.org Message-ID: <20170322075020.GN12013@autoinstall.dev.6wind.com> References: <20170320233804.47489-1-yskoh@mellanox.com> <907be98e360e53bd8e1195bd725817dab6a8545e.1490118487.git.yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <907be98e360e53bd8e1195bd725817dab6a8545e.1490118487.git.yskoh@mellanox.com> User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [dpdk-stable] [PATCH v2] net/mlx5: fix reusing Rx/Tx queues 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: Wed, 22 Mar 2017 07:50:30 -0000 On Tue, Mar 21, 2017 at 10:50:51AM -0700, Yongseok Koh wrote: > When configuring Rx/Tx queue, if queue already exists, it is reused. But if > the queue size is changed, it must be resized to not access/overwrite > invalid memory. > > Fixes: 2e22920b85d9 ("mlx5: support non-scattered Tx and Rx") > > CC: stable@dpdk.org > Signed-off-by: Yongseok Koh > --- > > v2: > * fix typo and indentataion > > drivers/net/mlx5/mlx5_rxq.c | 13 +++++++++++++ > drivers/net/mlx5/mlx5_txq.c | 13 +++++++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index e6070a0e5..98fa05063 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -1261,6 +1261,19 @@ mlx5_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, > } > (*priv->rxqs)[idx] = NULL; > rxq_cleanup(rxq_ctrl); > + /* Resize if rxq size is changed. */ > + if (rxq_ctrl->rxq.elts_n != log2above(desc)) { > + rxq_ctrl = rte_realloc(rxq_ctrl, > + sizeof(*rxq_ctrl) + > + desc * sizeof(struct rte_mbuf *), > + RTE_CACHE_LINE_SIZE); > + if (!rxq_ctrl) { > + ERROR("%p: unable to reallocate queue index %u", > + (void *)dev, idx); > + priv_unlock(priv); > + return -ENOMEM; > + } > + } > } else { > rxq_ctrl = rte_calloc_socket("RXQ", 1, sizeof(*rxq_ctrl) + > desc * sizeof(struct rte_mbuf *), > diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c > index bbfce756b..e9b837d10 100644 > --- a/drivers/net/mlx5/mlx5_txq.c > +++ b/drivers/net/mlx5/mlx5_txq.c > @@ -532,6 +532,19 @@ mlx5_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, > } > (*priv->txqs)[idx] = NULL; > txq_cleanup(txq_ctrl); > + /* Resize if txq size is changed. */ > + if (txq_ctrl->txq.elts_n != log2above(desc)) { > + txq_ctrl = rte_realloc(txq_ctrl, > + sizeof(*txq_ctrl) + > + desc * sizeof(struct rte_mbuf *), > + RTE_CACHE_LINE_SIZE); > + if (!txq_ctrl) { > + ERROR("%p: unable to reallocate queue index %u", > + (void *)dev, idx); > + priv_unlock(priv); > + return -ENOMEM; > + } > + } > } else { > txq_ctrl = > rte_calloc_socket("TXQ", 1, > -- > 2.11.0 Acked-by: Nelio Laranjeiro -- Nélio Laranjeiro 6WIND