From 8bc5349626f1a83f49dd400ca6f45e0bb8347a4e Mon Sep 17 00:00:00 2001 From: Alexander Schmidt Date: Wed, 28 Feb 2007 10:29:34 +0100 Subject: UBI Tools - problem with multiple ubi devices. Fix problem with multiple ubi devices Signed-off-by: Alexander Schmidt Signed-off-by: Josh Boyer --- ubi-utils/src/libubi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ubi-utils/src/libubi.c b/ubi-utils/src/libubi.c index 7cb74bf..62216ad 100644 --- a/ubi-utils/src/libubi.c +++ b/ubi-utils/src/libubi.c @@ -138,7 +138,7 @@ static int get_ubi_info(ubi_lib_t desc, struct ubi_info *ubi) { int err; - int n = 1; + int dev_count = 0; char *path; struct stat stat; @@ -147,31 +147,31 @@ get_ubi_info(ubi_lib_t desc, struct ubi_info *ubi) return -1; /* Calculate number of UBI devices */ - do { + while (!err) { char dir[20]; - sprintf(&dir[0], "ubi%d", n); - path = mkpath(desc->sysfs_root, dir); + sprintf(&dir[0], "ubi%d", dev_count); + path = mkpath(desc->ubi_root, dir); if (!path) return ENOMEM; err = lstat(path, &stat); if (err == 0) - n += 1; + dev_count += 1; free(path); - } while (err == 0); + } if (errno != ENOENT) return -1; - if (n == 0) { + if (dev_count == 0) { ubi_err("no UBI devices found"); errno = EINVAL; return -1; } errno = 0; - ubi->dev_count = n; + ubi->dev_count = dev_count; return 0; } -- cgit v1.2.3