patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Yuanhan Liu <yliu@fridaylinux.org>
To: Matan Azrad <matan@mellanox.com>
Cc: Ferruh Yigit <ferruh.yigit@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'ethdev: fix port accessing after release' has been queued to LTS release 17.11.2
Date: Sun, 22 Apr 2018 23:09:25 +0800	[thread overview]
Message-ID: <20180422150949.17523-35-yliu@fridaylinux.org> (raw)
In-Reply-To: <20180422150949.17523-1-yliu@fridaylinux.org>

Hi,

FYI, your patch has been queued to LTS release 17.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/29/18. So please
shout if anyone has objections.

Thanks.

	--yliu

---
>From e59f537227090d28bf2b3563f2d794070642c305 Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@mellanox.com>
Date: Wed, 28 Mar 2018 12:10:30 +0000
Subject: [PATCH] ethdev: fix port accessing after release

[ upstream commit f0e1180cb6a99825587ce4c108c4366023ac1f63 ]

rte_eth_dev_pci_release() function wrongly releases an ethdev port and
then releases internal fields of this port.
This behavior is problematic, because after the release, the port may
be reallocated again by another thread or just be invalid for any
usage.

Move the release operation to the end of the function.

Fixes: dcd5c8112bc3 ("ethdev: add PCI driver helpers")

Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/librte_ether/rte_ethdev_pci.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/librte_ether/rte_ethdev_pci.h b/lib/librte_ether/rte_ethdev_pci.h
index ad64a169c..f69316d53 100644
--- a/lib/librte_ether/rte_ethdev_pci.h
+++ b/lib/librte_ether/rte_ethdev_pci.h
@@ -123,9 +123,6 @@ rte_eth_dev_pci_allocate(struct rte_pci_device *dev, size_t private_data_size)
 static inline void
 rte_eth_dev_pci_release(struct rte_eth_dev *eth_dev)
 {
-	/* free ether device */
-	rte_eth_dev_release_port(eth_dev);
-
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
 		rte_free(eth_dev->data->dev_private);
 
@@ -139,6 +136,9 @@ rte_eth_dev_pci_release(struct rte_eth_dev *eth_dev)
 
 	eth_dev->device = NULL;
 	eth_dev->intr_handle = NULL;
+
+	/* free ether device */
+	rte_eth_dev_release_port(eth_dev);
 }
 
 typedef int (*eth_dev_pci_callback_t)(struct rte_eth_dev *eth_dev);
-- 
2.11.0

  parent reply	other threads:[~2018-04-22 15:11 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-22 15:08 [dpdk-stable] patch 'eal/ppc: remove braces in SMP memory barrier macro' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'pci: remove duplicated symbol from map file' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'kni: fix build on RHEL 7.5' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'bus/vdev: fix finding device by name' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'app/procinfo: fix strncpy usage in args parsing' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'examples/exception_path: limit core count to 64' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'net/mlx5: fix flow creation with a single target queue' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'vhost: fix message payload union in setting ring address' " Yuanhan Liu
2018-04-22 15:08 ` [dpdk-stable] patch 'vhost: fix offset while mmaping log base " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'vhost: check cmsg not null' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'vhost: fix device cleanup at stop' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'vhost: fix realloc failure' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'vhost: fix ring index returned to master on stop' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/sfc: add missing defines for SAL annotation' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/bonding: fix primary slave port id storage type' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/octeontx: fix null pointer dereference' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/octeontx: fix uninitialized variable in port open' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/nfp: fix assigning port id in mbuf' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/nfp: fix barrier location' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/nfp: fix link speed capabilities' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'doc: fix NFP NIC guide grammar' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/qede: fix alloc from socket 0' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/enic: allocate stats DMA buffer upfront during probe' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/i40e: fix link update no wait' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/vmxnet3: set the queue shared buffer at start' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/mrvl: fix crash when port is closed without starting' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/mrvl: fix Rx descriptors number' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/mlx5: fix existing file removal' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/bnxt: fix LRO disable' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/sfc: fix mbuf data alignment calculation' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'ethdev: fix queue start' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/sfc: fix type of opaque pointer in perf profile handler' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/i40e: fix intr callback unregister by adding retry' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/ixgbe: " Yuanhan Liu
2018-04-22 15:09 ` Yuanhan Liu [this message]
2018-04-22 15:09 ` [dpdk-stable] patch 'vhost: avoid concurrency when logging dirty pages' " Yuanhan Liu
2018-04-23  9:03   ` Maxime Coquelin
2018-05-06  3:51     ` Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/vhost: fix crash when creating vdev dynamically' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'bus/fslmc: fix find device start condition' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'hash: fix missing spinlock unlock in add key' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'app/crypto-perf: fix IOVA translation' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'mem: do not use physical addresses in IOVA as VA mode' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'vfio: do not needlessly check for IOVA " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/dpaa: fix oob access' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'bus/dpaa: fix resource leak' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/dpaa2: fix xstats' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'ip_frag: fix double free of chained mbufs' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/octeontx: fix uninitialized speed variable' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/bonding: fix setting VLAN ID on slave ports' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/bonding: clear started state if start fails' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/szedata2: fix total stats' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/szedata2: fix format string for PCI address' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/enic: fix crash on MTU update with non-setup queues' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/ixgbe: fix busy wait during checking link status' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'doc: add timestamp offload to mlx5 features' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/bnxt: fix Rx drop setting' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/sfc/base: fix comparison always true warning' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/i40e: fix DDP profile DEL operation' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/vhost: fix invalid state' " Yuanhan Liu
2018-04-22 15:09 ` [dpdk-stable] patch 'net/bonding: free mempool used in mode 6' " Yuanhan Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180422150949.17523-35-yliu@fridaylinux.org \
    --to=yliu@fridaylinux.org \
    --cc=ferruh.yigit@intel.com \
    --cc=matan@mellanox.com \
    --cc=stable@dpdk.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).