From 11e2ed9e439071df3964b634688d474d8cd7c17f Mon Sep 17 00:00:00 2001 From: Matan Azrad Date: Mon, 4 May 2020 07:12:09 +0000 Subject: [PATCH] vdpa/mlx5: fix PCI address comparison A regular memcmp function was used to compare between two objects of type `struct rte_pci_addr`. Due to the alignment rules of compiler structure builders, some memory is not initiated in the structure even though all the fields were initiated. Therefore, the comparison may fail even though the PCI addresses are identical and to cause false failure in probe. Use the dedicated API to compare 2 PCI addresses. Fixes: 75dd0ae91765 ("vdpa/mlx5: disable RoCE") Cc: stable@dpdk.org Signed-off-by: Matan Azrad Tested-by: Noa Ezra Reviewed-by: Maxime Coquelin --- drivers/vdpa/mlx5/mlx5_vdpa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index 9f7353d3b0..1113d6cef0 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -305,7 +305,7 @@ mlx5_vdpa_get_ib_device_match(struct rte_pci_addr *addr) DRV_LOG(DEBUG, "Checking device \"%s\"..", ibv_list[n]->name); if (mlx5_dev_to_pci_addr(ibv_list[n]->ibdev_path, &pci_addr)) continue; - if (memcmp(addr, &pci_addr, sizeof(pci_addr))) + if (rte_pci_addr_cmp(addr, &pci_addr)) continue; ibv_match = ibv_list[n]; break; -- 2.20.1