From 233824d00b526d82dd2ef05d6dad4dbc5b4cc943 Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Sun, 23 Dec 2007 14:14:54 +0200 Subject: ubi-utils: be backward-compatible Since control device is not supported by UBI in mainline kernels, we should not panic if it is absent. Signed-off-by: Artem Bityutskiy --- ubi-utils/src/libubi.c | 11 +++++++++-- ubi-utils/src/ubinfo.c | 7 +++++-- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'ubi-utils/src') diff --git a/ubi-utils/src/libubi.c b/ubi-utils/src/libubi.c index e754747..9aa7847 100644 --- a/ubi-utils/src/libubi.c +++ b/ubi-utils/src/libubi.c @@ -749,8 +749,15 @@ int ubi_get_info(libubi_t desc, struct ubi_info *info) memset(info, '\0', sizeof(struct ubi_info)); - if (read_major(lib->ctrl_dev, &info->ctrl_major, &info->ctrl_minor)) - return -1; + if (read_major(lib->ctrl_dev, &info->ctrl_major, &info->ctrl_minor)) { + /* + * Older UBI versions did not have control device, so we do not + * panic here for compatibility reasons. May be few years later + * we could return -1 here, but for now just set major:minor to + * -1. + */ + info->ctrl_major = info->ctrl_minor = -1; + } /* * We have to scan the UBI sysfs directory to identify how many UBI diff --git a/ubi-utils/src/ubinfo.c b/ubi-utils/src/ubinfo.c index a0bbbec..280c770 100644 --- a/ubi-utils/src/ubinfo.c +++ b/ubi-utils/src/ubinfo.c @@ -335,8 +335,11 @@ static int print_general_info(libubi_t libubi, int all) printf("UBI version: %d\n", ubi_info.version); printf("Count of UBI devices: %d\n", ubi_info.dev_count); - printf("UBI control device major/minor: %d:%d\n", - ubi_info.ctrl_major, ubi_info.ctrl_minor); + if (ubi_info.ctrl_major != -1) + printf("UBI control device major/minor: %d:%d\n", + ubi_info.ctrl_major, ubi_info.ctrl_minor); + else + printf("UBI control device is not supported by this kernel\n"); if (ubi_info.dev_count == 0) return 0; -- cgit v1.2.3