diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index b3b30f6..18402c2 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -854,6 +854,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, uint8_t slave_id)
 	uint32_t total_tx_desc;
 	struct bond_tx_queue *bd_tx_q;
 	uint16_t q_id;
+	struct rte_eth_dev *dev;
 
 	/* Given slave mus not be in active list */
 	RTE_VERIFY(find_slave_by_id(internals->active_slaves,
@@ -882,7 +883,8 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, uint8_t slave_id)
 
 	RTE_VERIFY(port->rx_ring == NULL);
 	RTE_VERIFY(port->tx_ring == NULL);
-	socket_id = rte_eth_devices[slave_id].data->numa_node;
+	dev = rte_eth_by_port(slave_id);
+	socket_id = dev->data->numa_node;
 
 	element_size = sizeof(struct slow_protocol_frame) + sizeof(struct rte_mbuf)
 				+ RTE_PKTMBUF_HEADROOM;
@@ -1153,7 +1155,7 @@ rte_eth_bond_8023ad_conf_get(uint8_t port_id,
 	if (conf == NULL)
 		return -EINVAL;
 
-	bond_dev = &rte_eth_devices[port_id];
+	bond_dev = rte_eth_by_port(port_id);
 	bond_mode_8023ad_conf_get(bond_dev, conf);
 	return 0;
 }
@@ -1182,7 +1184,7 @@ rte_eth_bond_8023ad_setup(uint8_t port_id,
 		}
 	}
 
-	bond_dev = &rte_eth_devices[port_id];
+	bond_dev = rte_eth_by_port(port_id);
 	bond_mode_8023ad_setup(bond_dev, conf);
 
 	return 0;
@@ -1200,7 +1202,7 @@ rte_eth_bond_8023ad_slave_info(uint8_t port_id, uint8_t slave_id,
 			rte_eth_bond_mode_get(port_id) != BONDING_MODE_8023AD)
 		return -EINVAL;
 
-	bond_dev = &rte_eth_devices[port_id];
+	bond_dev = rte_eth_by_port(port_id);
 
 	internals = bond_dev->data->dev_private;
 	if (find_slave_by_id(internals->active_slaves,
diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c
index 8a000c8..c61ad01 100644
--- a/drivers/net/bonding/rte_eth_bond_api.c
+++ b/drivers/net/bonding/rte_eth_bond_api.c
@@ -63,7 +63,7 @@ valid_bonded_port_id(uint8_t port_id)
 	if (!rte_eth_dev_is_valid_port(port_id))
 		return -1;
 
-	return check_for_bonded_ethdev(&rte_eth_devices[port_id]);
+	return check_for_bonded_ethdev(rte_eth_by_port(port_id));
 }
 
 int
@@ -74,7 +74,7 @@ valid_slave_port_id(uint8_t port_id)
 		return -1;
 
 	/* Verify that port_id refers to a non bonded port */
-	if (check_for_bonded_ethdev(&rte_eth_devices[port_id]) == 0)
+	if (check_for_bonded_ethdev(rte_eth_by_port(port_id)) == 0)
 		return -1;
 
 	return 0;
@@ -318,14 +318,14 @@ __eth_bond_slave_add_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 	if (valid_slave_port_id(slave_port_id) != 0)
 		return -1;
 
-	bonded_eth_dev = &rte_eth_devices[bonded_port_id];
+	bonded_eth_dev = rte_eth_by_port(bonded_port_id);
 	internals = bonded_eth_dev->data->dev_private;
 
 	/* Verify that new slave device is not already a slave of another
 	 * bonded device */
 	for (i = rte_eth_dev_count()-1; i >= 0; i--) {
-		if (check_for_bonded_ethdev(&rte_eth_devices[i]) == 0) {
-			temp_internals = rte_eth_devices[i].data->dev_private;
+		if (check_for_bonded_ethdev(rte_eth_by_port(i)) == 0) {
+			temp_internals = rte_eth_private_by_port(i);
 
 			for (j = 0; j < temp_internals->slave_count; j++) {
 				/* Device already a slave of a bonded device */
@@ -338,7 +338,7 @@ __eth_bond_slave_add_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 		}
 	}
 
-	slave_eth_dev = &rte_eth_devices[slave_port_id];
+	slave_eth_dev = rte_eth_by_port(slave_port_id);
 
 	/* Add slave details to bonded device */
 	slave_add(internals, slave_eth_dev);
@@ -437,7 +437,6 @@ __eth_bond_slave_add_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 int
 rte_eth_bond_slave_add(uint8_t bonded_port_id, uint8_t slave_port_id)
 {
-	struct rte_eth_dev *bonded_eth_dev;
 	struct bond_dev_private *internals;
 
 	int retval;
@@ -446,8 +445,7 @@ rte_eth_bond_slave_add(uint8_t bonded_port_id, uint8_t slave_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	bonded_eth_dev = &rte_eth_devices[bonded_port_id];
-	internals = bonded_eth_dev->data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	rte_spinlock_lock(&internals->lock);
 
@@ -463,14 +461,15 @@ __eth_bond_slave_remove_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 {
 	struct rte_eth_dev *bonded_eth_dev;
 	struct bond_dev_private *internals;
+	struct rte_eth_dev *dev;
 
 	int i, slave_idx;
 
 	if (valid_slave_port_id(slave_port_id) != 0)
 		return -1;
 
-	bonded_eth_dev = &rte_eth_devices[bonded_port_id];
-	internals = bonded_eth_dev->data->dev_private;
+	bonded_eth_dev = rte_eth_by_port(bonded_port_id);
+	internals = rte_eth_private_by_dev(bonded_eth_dev);
 
 	/* first remove from active slave list */
 	slave_idx = find_slave_by_id(internals->active_slaves,
@@ -495,15 +494,15 @@ __eth_bond_slave_remove_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 
 	/* Un-register link status change callback with bonded device pointer as
 	 * argument*/
+	dev = rte_eth_by_port(bonded_port_id);
 	rte_eth_dev_callback_unregister(slave_port_id, RTE_ETH_EVENT_INTR_LSC,
-			bond_ethdev_lsc_event_callback,
-			&rte_eth_devices[bonded_port_id].data->port_id);
+			bond_ethdev_lsc_event_callback, &dev->data->port_id);
 
 	/* Restore original MAC address of slave device */
-	mac_address_set(&rte_eth_devices[slave_port_id],
+	mac_address_set(rte_eth_by_port(slave_port_id),
 			&(internals->slaves[slave_idx].persisted_mac_addr));
 
-	slave_remove(internals, &rte_eth_devices[slave_port_id]);
+	slave_remove(internals, rte_eth_by_port(slave_port_id));
 
 	/*  first slave in the active list will be the primary by default,
 	 *  otherwise use first device in list */
@@ -518,14 +517,15 @@ __eth_bond_slave_remove_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 
 	if (internals->active_slave_count < 1) {
 		/* reset device link properties as no slaves are active */
-		link_properties_reset(&rte_eth_devices[bonded_port_id]);
+		link_properties_reset(rte_eth_by_port(bonded_port_id));
 
 		/* if no slaves are any longer attached to bonded device and MAC is not
 		 * user defined then clear MAC of bonded device as it will be reset
 		 * when a new slave is added */
+		dev = rte_eth_by_port(bonded_port_id);
 		if (internals->slave_count < 1 && !internals->user_defined_mac)
-			memset(rte_eth_devices[bonded_port_id].data->mac_addrs, 0,
-					sizeof(*(rte_eth_devices[bonded_port_id].data->mac_addrs)));
+			memset(dev->data->mac_addrs, 0,
+					sizeof(*dev->data->mac_addrs));
 	}
 	if (internals->slave_count == 0) {
 		internals->rx_offload_capa = 0;
@@ -539,15 +539,13 @@ __eth_bond_slave_remove_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 int
 rte_eth_bond_slave_remove(uint8_t bonded_port_id, uint8_t slave_port_id)
 {
-	struct rte_eth_dev *bonded_eth_dev;
 	struct bond_dev_private *internals;
 	int retval;
 
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	bonded_eth_dev = &rte_eth_devices[bonded_port_id];
-	internals = bonded_eth_dev->data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	rte_spinlock_lock(&internals->lock);
 
@@ -564,7 +562,7 @@ rte_eth_bond_mode_set(uint8_t bonded_port_id, uint8_t mode)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	return bond_ethdev_mode_set(&rte_eth_devices[bonded_port_id], mode);
+	return bond_ethdev_mode_set(rte_eth_by_port(bonded_port_id), mode);
 }
 
 int
@@ -575,7 +573,7 @@ rte_eth_bond_mode_get(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	return internals->mode;
 }
@@ -591,7 +589,7 @@ rte_eth_bond_primary_set(uint8_t bonded_port_id, uint8_t slave_port_id)
 	if (valid_slave_port_id(slave_port_id) != 0)
 		return -1;
 
-	internals =  rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	internals->user_defined_primary_port = 1;
 	internals->primary_port = slave_port_id;
@@ -609,7 +607,7 @@ rte_eth_bond_primary_get(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	if (internals->slave_count < 1)
 		return -1;
@@ -629,7 +627,7 @@ rte_eth_bond_slaves_get(uint8_t bonded_port_id, uint8_t slaves[], uint8_t len)
 	if (slaves == NULL)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	if (internals->slave_count > len)
 		return -1;
@@ -652,7 +650,7 @@ rte_eth_bond_active_slaves_get(uint8_t bonded_port_id, uint8_t slaves[],
 	if (slaves == NULL)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	if (internals->active_slave_count > len)
 		return -1;
@@ -672,8 +670,8 @@ rte_eth_bond_mac_address_set(uint8_t bonded_port_id,
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	bonded_eth_dev = &rte_eth_devices[bonded_port_id];
-	internals = bonded_eth_dev->data->dev_private;
+	bonded_eth_dev = rte_eth_by_port(bonded_port_id);
+	internals = rte_eth_private_by_dev(bonded_eth_dev);
 
 	/* Set MAC Address of Bonded Device */
 	if (mac_address_set(bonded_eth_dev, mac_addr))
@@ -697,8 +695,8 @@ rte_eth_bond_mac_address_reset(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	bonded_eth_dev = &rte_eth_devices[bonded_port_id];
-	internals = bonded_eth_dev->data->dev_private;
+	bonded_eth_dev = rte_eth_by_port(bonded_port_id);
+	internals = rte_eth_private_by_dev(bonded_eth_dev);
 
 	internals->user_defined_mac = 0;
 
@@ -725,7 +723,7 @@ rte_eth_bond_xmit_policy_set(uint8_t bonded_port_id, uint8_t policy)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	switch (policy) {
 	case BALANCE_XMIT_POLICY_LAYER2:
@@ -755,7 +753,7 @@ rte_eth_bond_xmit_policy_get(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	return internals->balance_xmit_policy;
 }
@@ -768,7 +766,7 @@ rte_eth_bond_link_monitoring_set(uint8_t bonded_port_id, uint32_t internal_ms)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 	internals->link_status_polling_interval_ms = internal_ms;
 
 	return 0;
@@ -782,7 +780,7 @@ rte_eth_bond_link_monitoring_get(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	return internals->link_status_polling_interval_ms;
 }
@@ -796,7 +794,7 @@ rte_eth_bond_link_down_prop_delay_set(uint8_t bonded_port_id, uint32_t delay_ms)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 	internals->link_down_delay_ms = delay_ms;
 
 	return 0;
@@ -810,7 +808,7 @@ rte_eth_bond_link_down_prop_delay_get(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	return internals->link_down_delay_ms;
 }
@@ -824,7 +822,7 @@ rte_eth_bond_link_up_prop_delay_set(uint8_t bonded_port_id, uint32_t delay_ms)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 	internals->link_up_delay_ms = delay_ms;
 
 	return 0;
@@ -838,7 +836,7 @@ rte_eth_bond_link_up_prop_delay_get(uint8_t bonded_port_id)
 	if (valid_bonded_port_id(bonded_port_id) != 0)
 		return -1;
 
-	internals = rte_eth_devices[bonded_port_id].data->dev_private;
+	internals = rte_eth_private_by_port(bonded_port_id);
 
 	return internals->link_up_delay_ms;
 }
diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c
index 02ecde6..d461ead 100644
--- a/drivers/net/bonding/rte_eth_bond_args.c
+++ b/drivers/net/bonding/rte_eth_bond_args.c
@@ -55,14 +55,16 @@ static inline int
 find_port_id_by_pci_addr(const struct rte_pci_addr *pci_addr)
 {
 	struct rte_pci_addr *eth_pci_addr;
+	struct rte_eth_dev *dev;
 	unsigned i;
 
 	for (i = 0; i < rte_eth_dev_count(); i++) {
+		dev = rte_eth_by_port(i);
 
-		if (rte_eth_devices[i].pci_dev == NULL)
+		if (dev->pci_dev == NULL)
 			continue;
 
-		eth_pci_addr = &(rte_eth_devices[i].pci_dev->addr);
+		eth_pci_addr = &dev->pci_dev->addr;
 
 		if (pci_addr->bus == eth_pci_addr->bus &&
 			pci_addr->devid == eth_pci_addr->devid &&
@@ -76,13 +78,16 @@ find_port_id_by_pci_addr(const struct rte_pci_addr *pci_addr)
 static inline int
 find_port_id_by_dev_name(const char *name)
 {
+	struct rte_eth_dev *dev;
 	unsigned i;
 
 	for (i = 0; i < rte_eth_dev_count(); i++) {
-		if (rte_eth_devices[i].data == NULL)
+		dev = rte_eth_by_port(i);
+
+		if (dev->data == NULL)
 			continue;
 
-		if (strcmp(rte_eth_devices[i].data->name, name) == 0)
+		if (strcmp(dev->data->name, name) == 0)
 			return i;
 	}
 	return -1;
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index b63c886..c316fd7 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -689,7 +689,7 @@ bond_ethdev_tx_burst_tlb(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
 	struct bond_dev_private *internals = bd_tx_q->dev_private;
 
 	struct rte_eth_dev *primary_port =
-			&rte_eth_devices[internals->primary_port];
+			rte_eth_by_port(internals->primary_port);
 	uint16_t num_tx_total = 0;
 	uint8_t i, j;
 
@@ -1192,7 +1192,9 @@ mac_address_set(struct rte_eth_dev *eth_dev, struct ether_addr *new_mac_addr)
 int
 mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 {
-	struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
+	struct bond_dev_private *internals =
+		rte_eth_private_by_dev(bonded_eth_dev);
+	struct rte_eth_dev *dev;
 	int i;
 
 	/* Update slave devices MAC addresses */
@@ -1204,7 +1206,8 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 	case BONDING_MODE_BALANCE:
 	case BONDING_MODE_BROADCAST:
 		for (i = 0; i < internals->slave_count; i++) {
-			if (mac_address_set(&rte_eth_devices[internals->slaves[i].port_id],
+			dev = rte_eth_by_port(internals->slaves[i].port_id);
+			if (mac_address_set(dev,
 					bonded_eth_dev->data->mac_addrs)) {
 				RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
 						internals->slaves[i].port_id);
@@ -1222,15 +1225,17 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 		for (i = 0; i < internals->slave_count; i++) {
 			if (internals->slaves[i].port_id ==
 					internals->current_primary_port) {
-				if (mac_address_set(&rte_eth_devices[internals->primary_port],
+				dev = rte_eth_by_port(internals->primary_port);
+				if (mac_address_set(dev,
 						bonded_eth_dev->data->mac_addrs)) {
 					RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
 							internals->current_primary_port);
 					return -1;
 				}
 			} else {
-				if (mac_address_set(
-						&rte_eth_devices[internals->slaves[i].port_id],
+				dev = rte_eth_by_port(
+						internals->slaves[i].port_id);
+				if (mac_address_set(dev,
 						&internals->slaves[i].persisted_mac_addr)) {
 					RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
 							internals->slaves[i].port_id);
@@ -1443,6 +1448,7 @@ slave_add(struct bond_dev_private *internals,
 {
 	struct bond_slave_details *slave_details =
 			&internals->slaves[internals->slave_count];
+	struct rte_eth_dev *dev;
 
 	slave_details->port_id = slave_eth_dev->data->port_id;
 	slave_details->last_link_status = 0;
@@ -1454,10 +1460,11 @@ slave_add(struct bond_dev_private *internals,
 
 		if (!internals->link_status_polling_enabled) {
 			internals->link_status_polling_enabled = 1;
+			dev = rte_eth_by_port(internals->port_id);
 
 			rte_eal_alarm_set(internals->link_status_polling_interval_ms * 1000,
 					bond_ethdev_slave_link_status_change_monitor,
-					(void *)&rte_eth_devices[internals->port_id]);
+					(void *)dev);
 		}
 	}
 
@@ -1490,6 +1497,7 @@ static int
 bond_ethdev_start(struct rte_eth_dev *eth_dev)
 {
 	struct bond_dev_private *internals;
+	struct rte_eth_dev *dev;
 	int i;
 
 	/* slave eth dev will be started by bonded device */
@@ -1536,8 +1544,8 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
 
 	/* Reconfigure each slave device if starting bonded device */
 	for (i = 0; i < internals->slave_count; i++) {
-		if (slave_configure(eth_dev,
-				&(rte_eth_devices[internals->slaves[i].port_id])) != 0) {
+		dev = rte_eth_by_port(internals->slaves[i].port_id);
+		if (slave_configure(eth_dev, dev) != 0) {
 			RTE_BOND_LOG(ERR,
 					"bonded port (%d) failed to reconfigure slave device (%d)",
 					eth_dev->data->port_id, internals->slaves[i].port_id);
@@ -1730,7 +1738,7 @@ bond_ethdev_slave_link_status_change_monitor(void *cb_arg)
 		return;
 
 	bonded_ethdev = (struct rte_eth_dev *)cb_arg;
-	internals = (struct bond_dev_private *)bonded_ethdev->data->dev_private;
+	internals = rte_eth_private_by_dev(bonded_ethdev);
 
 	if (!bonded_ethdev->data->dev_started ||
 		!internals->link_status_polling_enabled)
@@ -1746,7 +1754,8 @@ bond_ethdev_slave_link_status_change_monitor(void *cb_arg)
 			if (!internals->slaves[i].link_status_poll_enabled)
 				continue;
 
-			slave_ethdev = &rte_eth_devices[internals->slaves[i].port_id];
+			slave_ethdev =
+				rte_eth_by_port(internals->slaves[i].port_id);
 			polling_slave_found = 1;
 
 			/* Update slave link status */
@@ -1778,7 +1787,8 @@ static int
 bond_ethdev_link_update(struct rte_eth_dev *bonded_eth_dev,
 		int wait_to_complete)
 {
-	struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
+	struct bond_dev_private *internals =
+		rte_eth_private_by_dev(bonded_eth_dev);
 
 	if (!bonded_eth_dev->data->dev_started ||
 		internals->active_slave_count == 0) {
@@ -1789,7 +1799,8 @@ bond_ethdev_link_update(struct rte_eth_dev *bonded_eth_dev,
 		int i, link_up = 0;
 
 		for (i = 0; i < internals->active_slave_count; i++) {
-			slave_eth_dev = &rte_eth_devices[internals->active_slaves[i]];
+			slave_eth_dev =
+				rte_eth_by_port(internals->active_slaves[i]);
 
 			(*slave_eth_dev->dev_ops->link_update)(slave_eth_dev,
 					wait_to_complete);
@@ -1927,13 +1938,13 @@ bond_ethdev_lsc_event_callback(uint8_t port_id, enum rte_eth_event_type type,
 	if (type != RTE_ETH_EVENT_INTR_LSC || param == NULL)
 		return;
 
-	bonded_eth_dev = &rte_eth_devices[*(uint8_t *)param];
-	slave_eth_dev = &rte_eth_devices[port_id];
+	bonded_eth_dev = rte_eth_by_port(*(uint16_t *)param);
+	slave_eth_dev = rte_eth_by_port(port_id);
 
 	if (check_for_bonded_ethdev(bonded_eth_dev))
 		return;
 
-	internals = bonded_eth_dev->data->dev_private;
+	internals = rte_eth_private_by_dev(bonded_eth_dev);
 
 	/* If the device isn't started don't handle interrupts */
 	if (!bonded_eth_dev->data->dev_started)
@@ -2216,7 +2227,7 @@ bond_init(const char *name, const char *params)
 				"socket %u.\n",	name, bonding_mode, socket_id);
 		goto parse_error;
 	}
-	internals = rte_eth_devices[port_id].data->dev_private;
+	internals = rte_eth_private_by_port(port_id);
 	internals->kvlist = kvlist;
 
 	RTE_LOG(INFO, EAL, "Create bonded device %s on port %d in mode %u on "
@@ -2253,7 +2264,7 @@ static int
 bond_ethdev_configure(struct rte_eth_dev *dev)
 {
 	char *name = dev->data->name;
-	struct bond_dev_private *internals = dev->data->dev_private;
+	struct bond_dev_private *internals = rte_eth_private_by_dev(dev);
 	struct rte_kvargs *kvlist = internals->kvlist;
 	int arg_count;
 	uint8_t port_id = dev - rte_eth_devices;
