From 140bc789d8ac0e316269bf3a5b69ddc599ff35af Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Fri, 27 Oct 2023 16:32:41 +0200
Subject: [PATCH] net/af_xdp: avoid error log for virtual interfaces

[ upstream commit 140bc789d8ac0e316269bf3a5b69ddc599ff35af ]

For virtual interfaces, like a veth or a tap used in OVS unit tests,
plugging a af_xdp port on them results in an error level message:

dpdk|ERR|EAL: eal_parse_sysfs_value(): cannot open sysfs value
	/sys/class/net/ovs-tap1/device/numa_node
netdev_dpdk|INFO|Device 'net_af_xdptap1,iface=ovs-tap1' attached to DPDK

Avoid this error by checking if the sysfs file exists, like what is done
in DPDK bus drivers using eal_parse_sysfs_value().

Fixes: 3d28387cbc48 ("net/af_xdp: parse NUMA node ID from sysfs")
Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 0cc51223ba..353c8688ec 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -2399,7 +2399,7 @@ rte_pmd_af_xdp_probe(struct rte_vdev_device *dev)
 
 		snprintf(numa_path, sizeof(numa_path), "/sys/class/net/%s/device/numa_node",
 			 if_name);
-		if (eal_parse_sysfs_value(numa_path, &numa) != 0)
+		if (access(numa_path, R_OK) != 0 || eal_parse_sysfs_value(numa_path, &numa) != 0)
 			dev->device.numa_node = rte_socket_id();
 		else
 			dev->device.numa_node = numa;
-- 
2.33.0

