From 2c3e50237c9ae9fac71dec7a40ffa18bb96d1682 Mon Sep 17 00:00:00 2001 From: Volodymyr Fialko Date: Fri, 29 Oct 2021 00:14:46 +0200 Subject: [PATCH] mempool/cnxk: postpone devargs parsing Use roc_npa_lf_init_cb_register() scheme to register callback for max_pools argument parsing. This will remove the dependency on the order of PCI devices probed. Signed-off-by: Volodymyr Fialko Reviewed-by: Jerin Jacob --- drivers/mempool/cnxk/cnxk_mempool.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/mempool/cnxk/cnxk_mempool.c b/drivers/mempool/cnxk/cnxk_mempool.c index a48b6b948b..57be33b862 100644 --- a/drivers/mempool/cnxk/cnxk_mempool.c +++ b/drivers/mempool/cnxk/cnxk_mempool.c @@ -65,6 +65,13 @@ exit: return max_pools; } +static int +cnxk_mempool_plt_parse_devargs(struct rte_pci_device *pci_dev) +{ + roc_idev_npa_maxpools_set(parse_max_pools(pci_dev->device.devargs)); + return 0; +} + static inline char * npa_dev_to_name(struct rte_pci_device *pci_dev, char *name) { @@ -92,7 +99,6 @@ npa_init(struct rte_pci_device *pci_dev) dev = mz->addr; dev->pci_dev = pci_dev; - roc_idev_npa_maxpools_set(parse_max_pools(pci_dev->device.devargs)); rc = roc_npa_dev_init(dev); if (rc) goto mz_free; @@ -214,3 +220,8 @@ RTE_PMD_REGISTER_PCI_TABLE(mempool_cnxk, npa_pci_map); RTE_PMD_REGISTER_KMOD_DEP(mempool_cnxk, "vfio-pci"); RTE_PMD_REGISTER_PARAM_STRING(mempool_cnxk, CNXK_NPA_MAX_POOLS_PARAM "=<128-1048576>"); + +RTE_INIT(cnxk_mempool_parse_devargs) +{ + roc_npa_lf_init_cb_register(cnxk_mempool_plt_parse_devargs); +} -- 2.39.5