[dpdk-dev] [PATCH] vfio: do not use memcmp() to compare PCI address

Andrew Rybchenko arybchenko at solarflare.com
Fri Mar 31 17:56:53 CEST 2017


PCI address structure has padding which may have garbage.

Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")
Cc: stable at dpdk.org

Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
---
It is a real bug which I've hit during multi-process debugging.

 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
index 5f478c5..7d8b9fb 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
@@ -355,7 +355,8 @@ pci_vfio_map_resource(struct rte_pci_device *dev)
 	} else {
 		/* if we're in a secondary process, just find our tailq entry */
 		TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
-			if (memcmp(&vfio_res->pci_addr, &dev->addr, sizeof(dev->addr)))
+			if (rte_eal_compare_pci_addr(&vfio_res->pci_addr,
+						     &dev->addr))
 				continue;
 			break;
 		}
-- 
2.9.3



More information about the dev mailing list