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

Reply via email to