From: Thomas De Schampheleire Date: Tue, 7 Apr 2020 09:58:15 +0000 (+0200) Subject: package/mtd: add upstream patch that fixes ubiformat return code X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2016f6369447e4246391d405ca4ff41dab90dfce;p=buildroot.git 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 [yann.morin.1998@free.fr: make it explicit it's a backported patch] Signed-off-by: Yann E. MORIN --- diff --git a/package/mtd/0001-mtd-utils-Fix-return-value-of-ubiformat.patch b/package/mtd/0001-mtd-utils-Fix-return-value-of-ubiformat.patch new file mode 100644 index 0000000000..88c8389a64 --- /dev/null +++ b/package/mtd/0001-mtd-utils-Fix-return-value-of-ubiformat.patch @@ -0,0 +1,60 @@ +From 95633c4dfe943a701d4fcd809e6cabf4bf8710b8 Mon Sep 17 00:00:00 2001 +From: Barry Grussling +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 +Signed-off-by: David Oberhollenzer +Backported-from: 95633c4dfe943a701d4fcd809e6cabf4bf8710b8 +Signed-off-by: Thomas De Schampheleire +--- + 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 +