From: Yunjian Wang <wangyunj...@huawei.com> The ethdev port id should be 16 bits now. This patch fixes the data type of the variable for 'pid', changing from uint32_t to uint16_t.
We also need use RTE_BUILD_BUG_ON() to ensure that RTE_MAX_ETHPORTS is less or equal to UINT16_MAX. Fixes: 5b7ba31148a8 ("ethdev: add port ownership") Cc: sta...@dpdk.org Signed-off-by: Yunjian Wang <wangyunj...@huawei.com> --- v2: add RTE_BUILD_BUG_ON() check for RTE_MAX_ETHPORTS validity --- lib/librte_ethdev/rte_ethdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index b12bb3854d..ecaca5c600 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -816,7 +816,7 @@ rte_eth_dev_get_name_by_port(uint16_t port_id, char *name) int rte_eth_dev_get_port_by_name(const char *name, uint16_t *port_id) { - uint32_t pid; + uint16_t pid; if (name == NULL) { RTE_ETHDEV_LOG(ERR, "Null pointer is specified\n"); @@ -4292,6 +4292,8 @@ RTE_INIT(eth_dev_init_cb_lists) { int i; + RTE_BUILD_BUG_ON(RTE_MAX_ETHPORTS > UINT16_MAX); + for (i = 0; i < RTE_MAX_ETHPORTS; i++) TAILQ_INIT(&rte_eth_devices[i].link_intr_cbs); } -- 2.23.0