On older processors, NUMA isn't bound to PCIe locality. those cases return ERROR_NOT_FOUND in response to the SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node attribute.
This error fails the probe process for the PCIe device. this commit will ignore such failure and will set the numa_node to 0. Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers") Cc: sta...@dpdk.org Reported-by: Odi Assli <o...@nvidia.com> Signed-off-by: Tal Shnaiderman <tal...@nvidia.com> --- drivers/bus/pci/windows/pci.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c index 33a5fb1d83..62bac4b8ec 100644 --- a/drivers/bus/pci/windows/pci.c +++ b/drivers/bus/pci/windows/pci.c @@ -234,6 +234,15 @@ get_device_resource_info(HDEVINFO dev_info, &DEVPKEY_Device_Numa_Node, &property_type, (BYTE *)&numa_node, sizeof(numa_node), NULL, 0); if (!res) { + DWORD error = GetLastError(); + if (error == ERROR_NOT_FOUND) { + /* On older CPUs, NUMA isn't bound to PCIe locality + * We do not want to fail the probing process + * Setting 0 for numa_node and returnng ERROR_SUCCESS. + */ + dev->device.numa_node = 0; + return ERROR_SUCCESS; + } RTE_LOG_WIN32_ERR("SetupDiGetDevicePropertyW" "(DEVPKEY_Device_Numa_Node)"); return -1; -- 2.16.1.windows.4