get_sysfs_string() in the vmbus bus and read_sysfs_string() in the
platform bus are both open coded copies of what the EAL routine now
provides. Each had a single caller.

Signed-off-by: Stephen Hemminger <[email protected]>
---
 drivers/bus/platform/platform.c     | 33 +++---------------------
 drivers/bus/vmbus/linux/vmbus_bus.c | 39 +++--------------------------
 2 files changed, 8 insertions(+), 64 deletions(-)

diff --git a/drivers/bus/platform/platform.c b/drivers/bus/platform/platform.c
index 9585fb79e9..c511893aab 100644
--- a/drivers/bus/platform/platform.c
+++ b/drivers/bus/platform/platform.c
@@ -187,40 +187,15 @@ device_unmap_resources(struct rte_platform_device *pdev)
        pdev->num_resource = 0;
 }
 
-static int
-read_sysfs_string(const char *path, char *buf, size_t size)
-{
-       FILE *f;
-       char *p;
-
-       f = fopen(path, "r");
-       if (f == NULL)
-               return -errno;
-
-       if (fgets(buf, size, f) == NULL) {
-               fclose(f);
-               return -ENODATA;
-       }
-
-       fclose(f);
-
-       p = strrchr(buf, '\n');
-       if (p != NULL)
-               *p = '\0';
-
-       return 0;
-}
-
 static char *
 of_resource_name(const char *dev_name, int index)
 {
-       char path[PATH_MAX], buf[BUFSIZ] = { };
-       int num = 0, ret;
+       char buf[BUFSIZ] = { };
+       int num = 0;
        char *name;
 
-       snprintf(path, sizeof(path), PLATFORM_BUS_DEVICES_PATH 
"/%s/of_node/reg-names", dev_name);
-       ret = read_sysfs_string(path, buf, sizeof(buf) - 1);
-       if (ret)
+       if (rte_sysfs_parse_string(buf, sizeof(buf) - 1,
+                       PLATFORM_BUS_DEVICES_PATH "/%s/of_node/reg-names", 
dev_name) < 0)
                return NULL;
 
        for (name = buf; *name != 0; name += strlen(name) + 1) {
diff --git a/drivers/bus/vmbus/linux/vmbus_bus.c 
b/drivers/bus/vmbus/linux/vmbus_bus.c
index 9ee7983eb6..00f369120f 100644
--- a/drivers/bus/vmbus/linux/vmbus_bus.c
+++ b/drivers/bus/vmbus/linux/vmbus_bus.c
@@ -84,35 +84,6 @@ parse_sysfs_uuid(const char *filename, rte_uuid_t uu)
        return 0;
 }
 
-static int
-get_sysfs_string(const char *filename, char *buf, size_t buflen)
-{
-       char *cp;
-       FILE *f;
-
-       f = fopen(filename, "r");
-       if (f == NULL) {
-               VMBUS_LOG(ERR, "cannot open sysfs value %s:%s",
-                         filename, strerror(errno));
-               return -1;
-       }
-
-       if (fgets(buf, buflen, f) == NULL) {
-               VMBUS_LOG(ERR, "cannot read sysfs value %s",
-                               filename);
-               fclose(f);
-               return -1;
-       }
-       fclose(f);
-
-       /* remove trailing newline */
-       cp = memchr(buf, '\n', buflen);
-       if (cp)
-               *cp = '\0';
-
-       return 0;
-}
-
 static int
 vmbus_get_uio_dev(const struct rte_vmbus_device *dev,
                  char *dstbuf, size_t buflen)
@@ -169,7 +140,7 @@ RTE_EXPORT_SYMBOL(rte_vmbus_map_device)
 int
 rte_vmbus_map_device(struct rte_vmbus_device *dev)
 {
-       char uioname[PATH_MAX], filename[PATH_MAX];
+       char uioname[PATH_MAX];
        char dirname[PATH_MAX], mapname[64];
        int i;
 
@@ -188,11 +159,9 @@ rte_vmbus_map_device(struct rte_vmbus_device *dev)
                snprintf(dirname, sizeof(dirname),
                         "%s/maps/map%d", uioname, i);
 
-               snprintf(filename, sizeof(filename),
-                        "%s/name", dirname);
-
-               if (get_sysfs_string(filename, mapname, sizeof(mapname)) < 0) {
-                       VMBUS_LOG(ERR, "could not read %s", filename);
+               if (rte_sysfs_parse_string(mapname, sizeof(mapname),
+                               "%s/name", dirname) < 0) {
+                       VMBUS_LOG(ERR, "could not read name of %s", dirname);
                        return -1;
                }
 
-- 
2.53.0

Reply via email to