From: Matan Azrad Date: Mon, 4 May 2020 07:12:09 +0000 (+0000) Subject: vdpa/mlx5: fix PCI address comparison X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;ds=sidebyside;h=11e2ed9e439071df3964b634688d474d8cd7c17f;p=dpdk.git 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 --- 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;