From 4317b8efb1c4a4163b2585b9abd71ec38cd0862c Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Mon, 19 Oct 2020 09:49:09 +0200 Subject: af_xdp: fix NUMA node parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Non-NUMA systems might report -1 as NUMA node. Type: fix Change-Id: I092c817ea670009d6f530cc70ad13d45e15fd363 Signed-off-by: Benoît Ganne --- src/plugins/af_xdp/device.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/plugins/af_xdp') diff --git a/src/plugins/af_xdp/device.c b/src/plugins/af_xdp/device.c index 9bca41c962c..c750e8dd8bd 100644 --- a/src/plugins/af_xdp/device.c +++ b/src/plugins/af_xdp/device.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include "af_xdp.h" @@ -260,21 +261,18 @@ err0: static int af_xdp_get_numa (const char *ifname) { - FILE *fptr; + char *path; + clib_error_t *err; int numa; - char *s; - s = (char *) format (0, "/sys/class/net/%s/device/numa_node%c", ifname, 0); - fptr = fopen (s, "rb"); - vec_free (s); - - if (!fptr) - return 0; - - if (fscanf (fptr, "%d\n", &numa) != 1) + path = + (char *) format (0, "/sys/class/net/%s/device/numa_node%c", ifname, 0); + err = clib_sysfs_read (path, "%d", &numa); + if (err || numa < 0) numa = 0; - fclose (fptr); + clib_error_free (err); + vec_free (path); return numa; } -- cgit 1.2.3-korg