diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index eef01f1..5330d3b 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -16,6 +16,9 @@ Deprecation Notices
   There is no backward compatibility planned from release 2.2.
   All binaries will need to be rebuilt from release 2.2.
 
+* The EAL function rte_eal_pci_close_one is deprecated because renamed to
+  rte_eal_pci_detach.
+
 * The Macros RTE_HASH_BUCKET_ENTRIES_MAX and RTE_HASH_KEY_LENGTH_MAX are
   deprecated and will be removed with version 2.2.
 
diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
index e537b42..b2d4441 100644
--- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map
+++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
@@ -115,5 +115,7 @@ DPDK_2.0 {
 DPDK_2.1 {
 	global:
 
+	rte_eal_pci_detach;
 	rte_memzone_free;
+
 } DPDK_2.0;
diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c
index 60e40e0..16e8629 100644
--- a/lib/librte_eal/common/eal_common_pci.c
+++ b/lib/librte_eal/common/eal_common_pci.c
@@ -213,7 +213,7 @@ rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct rte_pci_device *d
  * driver.
  */
 static int
-rte_eal_pci_close_one_driver(struct rte_pci_driver *dr,
+rte_eal_pci_detach_dev(struct rte_pci_driver *dr,
 		struct rte_pci_device *dev)
 {
 	const struct rte_pci_id *id_table;
@@ -246,7 +246,6 @@ rte_eal_pci_close_one_driver(struct rte_pci_driver *dr,
 		RTE_LOG(DEBUG, EAL, "  remove driver: %x:%x %s\n", dev->id.vendor_id,
 				dev->id.device_id, dr->name);
 
-		/* call the driver devuninit() function */
 		if (dr->devuninit && (dr->devuninit(dev) < 0))
 			return -1;	/* negative value is an error */
 
@@ -297,7 +296,7 @@ pci_probe_all_drivers(struct rte_pci_device *dev)
  * failed, return 1 if no driver is found for this device.
  */
 static int
-pci_close_all_drivers(struct rte_pci_device *dev)
+pci_detach_all_drivers(struct rte_pci_device *dev)
 {
 	struct rte_pci_driver *dr = NULL;
 	int rc = 0;
@@ -306,7 +305,7 @@ pci_close_all_drivers(struct rte_pci_device *dev)
 		return -1;
 
 	TAILQ_FOREACH(dr, &pci_driver_list, next) {
-		rc = rte_eal_pci_close_one_driver(dr, dev);
+		rc = rte_eal_pci_detach_dev(dr, dev);
 		if (rc < 0)
 			/* negative value is an error */
 			return -1;
@@ -349,12 +348,17 @@ err_return:
 	return -1;
 }
 
+int __attribute__ ((deprecated))
+rte_eal_pci_close_one(const struct rte_pci_addr *addr)
+{
+	return rte_eal_pci_detach(addr);
+}
+
 /*
- * Find the pci device specified by pci address, then invoke close function of
- * the driver of the devive.
+ * Detach device specified by its pci address.
  */
 int
-rte_eal_pci_close_one(const struct rte_pci_addr *addr)
+rte_eal_pci_detach(const struct rte_pci_addr *addr)
 {
 	struct rte_pci_device *dev = NULL;
 	int ret = 0;
@@ -366,7 +370,7 @@ rte_eal_pci_close_one(const struct rte_pci_addr *addr)
 		if (rte_eal_compare_pci_addr(&dev->addr, addr))
 			continue;
 
-		ret = pci_close_all_drivers(dev);
+		ret = pci_detach_all_drivers(dev);
 		if (ret < 0)
 			goto err_return;
 
diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h
index e96f389..e3ca3fc 100644
--- a/lib/librte_eal/common/include/rte_pci.h
+++ b/lib/librte_eal/common/include/rte_pci.h
@@ -416,7 +416,7 @@ int rte_eal_pci_probe_one(const struct rte_pci_addr *addr);
  * Close the single PCI device.
  *
  * Scan the content of the PCI bus, and find the pci device specified by pci
- * address, then call the close() function for registered driver that has a
+ * address, then call the devuninit() function for registered driver that has a
  * matching entry in its id_table for discovered device.
  *
  * @param addr
@@ -425,7 +425,9 @@ int rte_eal_pci_probe_one(const struct rte_pci_addr *addr);
  *   - 0 on success.
  *   - Negative on error.
  */
-int rte_eal_pci_close_one(const struct rte_pci_addr *addr);
+int rte_eal_pci_detach(const struct rte_pci_addr *addr);
+int __attribute__ ((deprecated))
+rte_eal_pci_close_one(const struct rte_pci_addr *addr);
 
 /**
  * Dump the content of the PCI bus.
diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
index e537b42..b2d4441 100644
--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map
+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
@@ -115,5 +115,7 @@ DPDK_2.0 {
 DPDK_2.1 {
 	global:
 
+	rte_eal_pci_detach;
 	rte_memzone_free;
+
 } DPDK_2.0;
diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index 57f841e..9596047 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -584,9 +584,9 @@ rte_eth_dev_detach_pdev(uint8_t port_id, struct rte_pci_addr *addr)
 	if (rte_eal_compare_pci_addr(&vp, &freed_addr) == 0)
 		goto err;
 
-	/* invoke close func of the driver,
+	/* invoke devuninit func of the pci driver,
 	 * also remove the device from pci_device_list */
-	if (rte_eal_pci_close_one(&freed_addr))
+	if (rte_eal_pci_detach(&freed_addr))
 		goto err;
 
 	*addr = freed_addr;
@@ -656,7 +656,7 @@ rte_eth_dev_detach_vdev(uint8_t port_id, char *vdevname)
 	if (rte_eth_dev_get_name_by_port(port_id, name))
 		goto err;
 	/* walk around dev_driver_list to find the driver of the device,
-	 * then invoke close function o the driver */
+	 * then invoke uninit function of the driver */
 	if (rte_eal_vdev_uninit(name))
 		goto err;
 
