[v8,12/13] bus/fslmc: share mcp ptr as function across libs

Message ID 20200515094752.28490-13-hemant.agrawal@nxp.com
State New
Headers show
Series
  • NXP DPAAx: move internal symbols to INTERNAL
Related show

Commit Message

Hemant Agrawal May 15, 2020, 9:47 a.m.
Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

-- 
2.17.1

Comments

Ray Kinsella May 19, 2020, 11:26 a.m. | #1
On 15/05/2020 10:47, Hemant Agrawal wrote:
> Currently rte_mcp_ptr_list is being shared as a variable

> across libs. This is only used in control path.

> This patch change it to a exported function based access.

> 

> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

> ---

>  drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---

>  drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-

>  drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-

>  drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-

>  drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---

>  drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-

>  drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-

>  drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-

>  drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-

>  drivers/net/dpaa2/dpaa2_mux.c               |  2 +-

>  drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-

>  drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-

>  12 files changed, 26 insertions(+), 16 deletions(-)

> 

> diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c

> index 970969d2bf..efe2c43d37 100644

> --- a/drivers/bus/fslmc/fslmc_vfio.c

> +++ b/drivers/bus/fslmc/fslmc_vfio.c

> @@ -51,6 +51,15 @@ static int fslmc_iommu_type;

>  static uint32_t *msi_intr_vaddr;

>  void *(*rte_mcp_ptr_list);

>  

> +void *

> +dpaa2_get_mcp_ptr(int portal_idx)

> +{

> +	if (rte_mcp_ptr_list)

> +		return rte_mcp_ptr_list[portal_idx];

> +	else

> +		return NULL;

> +}

> +

>  static struct rte_dpaa2_object_list dpaa2_obj_list =

>  	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);

>  

> @@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)

>  	struct fsl_mc_io dpmng  = {0};

>  	struct mc_version mc_ver_info = {0};

>  

> -	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);

> +	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));

>  	if (!rte_mcp_ptr_list) {

>  		DPAA2_BUS_ERR("Unable to allocate MC portal memory");

>  		ret = -ENOMEM;

> @@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)

>  	 * required.

>  	 */

>  	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {

> -		rte_mcp_ptr_list[0] = (void *)v_addr;

> +		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;

>  		return 0;

>  	}

>  

> @@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)

>  		ret = -1;

>  		goto cleanup;

>  	}

> -	rte_mcp_ptr_list[0] = (void *)v_addr;

> +	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;

>  

>  	free(dev_name);

>  	return 0;

> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c

> index db49d637f5..79b148f20b 100644

> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c

> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c

> @@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,

>  	}

>  

>  	/* Open the dpbp object */

> -	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	ret = dpbp_open(&dpbp_node->dpbp,

>  			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);

>  	if (ret) {

> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c

> index 5ad0374df9..d393ce6186 100644

> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c

> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c

> @@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,

>  	}

>  

>  	/* Open the dpci object */

> -	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	ret = dpci_open(&dpci_node->dpci,

>  			CMD_PRI_LOW, dpci_id, &dpci_node->token);

>  	if (ret) {

> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c

> index 739ce434ba..21c535f2fb 100644

> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c

> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c

> @@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,

>  	dpio_dev->hw_id = object_id;

>  	rte_atomic16_init(&dpio_dev->ref_count);

>  	/* Using single portal  for all devices */

> -	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  

>  	if (!check_lcore_cpuset) {

>  		check_lcore_cpuset = 1;

> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h

> index 33b191f823..194b99c583 100644

> --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h

> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h

> @@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {

>  	uint8_t channel_index;

>  };

>  

> -/*! Global MCP list */

> -extern void *(*rte_mcp_ptr_list);

> -

>  /* Refer to Table 7-3 in SEC BG */

>  struct qbman_fle {

>  	uint32_t addr_lo;

> @@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);

>  __rte_internal

>  void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);

>  

> +/* Global MCP pointer */

> +__rte_internal

> +void *dpaa2_get_mcp_ptr(int portal_idx);

> +

>  #endif

> diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map

> index 1b7a5a45e9..80da19a277 100644

> --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map

> +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map

> @@ -21,6 +21,7 @@ INTERNAL {

>  	dpaa2_free_dpbp_dev;

>  	dpaa2_free_dq_storage;

>  	dpaa2_free_eq_descriptors;

> +	dpaa2_get_mcp_ptr;

>  	dpaa2_io_portal;

>  	dpaa2_svr_family;

>  	dpaa2_virt_mode;

> @@ -111,5 +112,4 @@ INTERNAL {

>  	rte_fslmc_get_device_count;

>  	rte_fslmc_object_register;

>  	rte_global_active_dqs_list;

> -	rte_mcp_ptr_list;

>  };

> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c

> index fe34e644cc..5d63644934 100644

> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c

> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c

> @@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)

>  			"Error in allocating the memory for dpsec object");

>  		return -ENOMEM;

>  	}

> -	dpseci->regs = rte_mcp_ptr_list[0];

> +	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  

>  	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);

>  	if (retcode != 0) {

> diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c

> index d64e588aa8..200b71640b 100644

> --- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c

> +++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c

> @@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,

>  	}

>  

>  	/* Open the dpcon object */

> -	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	ret = dpcon_open(&dpcon_node->dpcon,

>  			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);

>  	if (ret) {

> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c

> index 1bab3b064c..2f031ec5c1 100644

> --- a/drivers/net/dpaa2/dpaa2_ethdev.c

> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c

> @@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)

>  		DPAA2_PMD_ERR("Memory allocation failed for dpni device");

>  		return -1;

>  	}

> -	dpni_dev->regs = rte_mcp_ptr_list[0];

> +	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	eth_dev->process_private = (void *)dpni_dev;

>  

>  	/* For secondary processes, the primary has done all the work */

> diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c

> index 9ac8806faf..f8366e839e 100644

> --- a/drivers/net/dpaa2/dpaa2_mux.c

> +++ b/drivers/net/dpaa2/dpaa2_mux.c

> @@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,

>  	}

>  

>  	/* Open the dpdmux object */

> -	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,

>  			  &dpdmux_dev->token);

>  	if (ret) {

> diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c

> index 316912fe3e..f58eedb314 100644

> --- a/drivers/net/dpaa2/dpaa2_ptp.c

> +++ b/drivers/net/dpaa2/dpaa2_ptp.c

> @@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,

>  	}

>  

>  	/* Open the dprtc object */

> -	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,

>  			  &dprtc_dev->token);

>  	if (ret) {

> diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c

> index d5202d6522..1be1b6ddf0 100644

> --- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c

> +++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c

> @@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)

>  

>  	/* Open DPDMAI device */

>  	dpdmai_dev->dpdmai_id = dpdmai_id;

> -	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];

> +	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);

>  	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,

>  			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);

>  	if (ret) {

> 


Acked-by: Ray Kinsella <mdr@ashroe.eu>

Patch

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@  static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@  fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@  fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@  fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@  dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@  rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@  dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@  struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@  struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 1b7a5a45e9..80da19a277 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -21,6 +21,7 @@  INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -111,5 +112,4 @@  INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@  dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@  rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@  dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@  dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@  dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@  dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {