kumquat-buildroot/package/mtd/0001-mtd-utils-Fix-return-value-of-ubiformat.patch
Thomas De Schampheleire 2016f63694 package/mtd: add upstream patch that fixes ubiformat return code
ubiformat returns 255 even on successful format actions, since the upgrade
of mtd-utils to version 2.1.1.

Backport an upstream patch that fixes this issue. No new release is made
yet.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
[yann.morin.1998@free.fr: make it explicit it's a backported patch]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-04-07 15:42:18 +02:00

61 lines
1.9 KiB
Diff

From 95633c4dfe943a701d4fcd809e6cabf4bf8710b8 Mon Sep 17 00:00:00 2001
From: Barry Grussling <barry@grussling.com>
Date: Sun, 12 Jan 2020 12:33:32 -0800
Subject: [PATCH] mtd-utils: Fix return value of ubiformat
This changeset fixes a feature regression in ubiformat. Older versions of
ubiformat, when invoked with a flash-image, would return 0 in the case no error
was encountered. Upon upgrading to latest, it was discovered that ubiformat
returned 255 even without encountering an error condition.
This changeset corrects the above issue and causes ubiformat, when given an
image file, to return 0 when no errors are detected.
Tested by running through my loading scripts and verifying ubiformat returned
0.
Signed-off-by: Barry Grussling <barry@grussling.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Backported-from: 95633c4dfe943a701d4fcd809e6cabf4bf8710b8
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
ubi-utils/ubiformat.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
index 64afad2..be40e52 100644
--- a/ubi-utils/ubiformat.c
+++ b/ubi-utils/ubiformat.c
@@ -550,6 +550,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
struct ubi_vtbl_record *vtbl;
int eb1 = -1, eb2 = -1;
long long ec1 = -1, ec2 = -1;
+ int ret = -1;
write_size = UBI_EC_HDR_SIZE + mtd->subpage_size - 1;
write_size /= mtd->subpage_size;
@@ -643,8 +644,10 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
if (!args.quiet && !args.verbose)
printf("\n");
- if (novtbl)
+ if (novtbl) {
+ ret = 0;
goto out_free;
+ }
if (eb1 == -1 || eb2 == -1) {
errmsg("no eraseblocks for volume table");
@@ -669,7 +672,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
out_free:
free(hdr);
- return -1;
+ return ret;
}
int main(int argc, char * const argv[])
--
2.24.1