[PATCH 2/2] mtd: ubiformat: Add confirmation fail exit
Joe Balough
jbb5044 at gmail.com
Wed Dec 31 06:58:45 PST 2014
If flashing fails, ubiformat will exit with the value of 1.
If confirmation fails, ubiformat will exit with the value of 2.
Signed-off-by: Joe Balough <jbb5044 at gmail.com>
---
ubi-utils/ubiformat.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
index 4129404..3b8a22e 100644
--- a/ubi-utils/ubiformat.c
+++ b/ubi-utils/ubiformat.c
@@ -548,7 +548,7 @@ static int flash_image(libmtd_t libmtd, const struct mtd_dev_info *mtd,
err = mtd_read(mtd, args.node_fd, eb, 0, read_buf, new_len);
if (err) {
sys_errmsg("cannot readback eraseblock %d for confirmation", eb);
- goto out_close;
+ goto out_confirm_fail;
}
if (memcmp(buf, read_buf, new_len) != 0) {
@@ -568,6 +568,10 @@ static int flash_image(libmtd_t libmtd, const struct mtd_dev_info *mtd,
out_close:
close(fd);
return -1;
+
+out_confirm_fail:
+ close(fd);
+ return -2;
}
static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
@@ -702,7 +706,7 @@ out_free:
int main(int argc, char * const argv[])
{
- int err, verbose;
+ int err, verbose, confirm_fail = 0;
libmtd_t libmtd;
struct mtd_info mtd_info;
struct mtd_dev_info mtd;
@@ -932,6 +936,8 @@ int main(int argc, char * const argv[])
if (args.image) {
err = flash_image(libmtd, &mtd, &ui, si);
+ if (err == -2)
+ confirm_fail = 1;
if (err < 0)
goto out_free;
@@ -955,5 +961,8 @@ out_close:
close(args.node_fd);
out_close_mtd:
libmtd_close(libmtd);
- return -1;
+ if (confirm_fail)
+ return 2;
+ else
+ return 1;
}
--
2.1.3
More information about the linux-mtd
mailing list