[PATCH 2/3] ubiformat: remove no-volume-table option
David Oberhollenzer
david.oberhollenzer at sigma-star.at
Mon May 14 01:53:24 PDT 2018
Using the -n or --no-volume-table flags, ubiformat can format an mtd device
to a broken UBI that does not attach on a recent kernel. Only very old UBIs
had no volume table.
This patch removes the option entirely from ubiformat.
Signed-off-by: David Oberhollenzer <david.oberhollenzer at sigma-star.at>
---
ubi-utils/ubiformat.c | 52 ++++++++++++++++---------------------------
1 file changed, 19 insertions(+), 33 deletions(-)
diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
index 694ab4c..2ee14eb 100644
--- a/ubi-utils/ubiformat.c
+++ b/ubi-utils/ubiformat.c
@@ -52,7 +52,6 @@ struct args {
unsigned int quiet:1;
unsigned int verbose:1;
unsigned int override_ec:1;
- unsigned int novtbl:1;
unsigned int manual_subpage;
int subpage_size;
int vid_hdr_offs;
@@ -82,8 +81,6 @@ static const char optionsstr[] =
" physical eraseblock (default is the next\n"
" minimum I/O unit or sub-page after the EC\n"
" header)\n"
-"-n, --no-volume-table only erase all eraseblock and preserve erase\n"
-" counters, do not write empty volume table\n"
"-f, --flash-image=<file> flash image file, or '-' for stdin\n"
"-S, --image-size=<bytes> bytes in input, if not reading from file\n"
"-e, --erase-counter=<value> use <value> as the erase counter value for all\n"
@@ -114,7 +111,6 @@ static const char usage[] =
static const struct option long_options[] = {
{ .name = "sub-page-size", .has_arg = 1, .flag = NULL, .val = 's' },
{ .name = "vid-hdr-offset", .has_arg = 1, .flag = NULL, .val = 'O' },
- { .name = "no-volume-table", .has_arg = 0, .flag = NULL, .val = 'n' },
{ .name = "flash-image", .has_arg = 1, .flag = NULL, .val = 'f' },
{ .name = "image-size", .has_arg = 1, .flag = NULL, .val = 'S' },
{ .name = "yes", .has_arg = 0, .flag = NULL, .val = 'y' },
@@ -174,10 +170,6 @@ static int parse_opt(int argc, char * const argv[])
return errmsg("bad image-size: \"%s\"", optarg);
break;
- case 'n':
- args.novtbl = 1;
- break;
-
case 'y':
args.yes = 1;
break;
@@ -236,10 +228,6 @@ static int parse_opt(int argc, char * const argv[])
else if (optind != argc - 1)
return errmsg("more then one MTD device specified (use -h for help)");
- if (args.image && args.novtbl)
- return errmsg("-n cannot be used together with -f");
-
-
args.node = argv[optind];
return 0;
}
@@ -554,7 +542,7 @@ out_close:
static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
const struct ubigen_info *ui, struct ubi_scan_info *si,
- int start_eb, int novtbl)
+ int start_eb)
{
int eb, err, write_size;
struct ubi_ec_hdr *hdr;
@@ -609,7 +597,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
continue;
}
- if ((eb1 == -1 || eb2 == -1) && !novtbl) {
+ if (eb1 == -1 || eb2 == -1) {
if (eb1 == -1) {
eb1 = eb;
ec1 = ec;
@@ -654,24 +642,22 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
if (!args.quiet && !args.verbose)
printf("\n");
- if (!novtbl) {
- if (eb1 == -1 || eb2 == -1) {
- errmsg("no eraseblocks for volume table");
- goto out_free;
- }
+ if (eb1 == -1 || eb2 == -1) {
+ errmsg("no eraseblocks for volume table");
+ goto out_free;
+ }
- verbose(args.verbose, "write volume table to eraseblocks %d and %d", eb1, eb2);
- vtbl = ubigen_create_empty_vtbl(ui);
- if (!vtbl)
- goto out_free;
+ verbose(args.verbose, "write volume table to eraseblocks %d and %d", eb1, eb2);
+ vtbl = ubigen_create_empty_vtbl(ui);
+ if (!vtbl)
+ goto out_free;
- err = ubigen_write_layout_vol(ui, eb1, eb2, ec1, ec2, vtbl,
- args.node_fd);
- free(vtbl);
- if (err) {
- errmsg("cannot write layout volume");
- goto out_free;
- }
+ err = ubigen_write_layout_vol(ui, eb1, eb2, ec1, ec2, vtbl,
+ args.node_fd);
+ free(vtbl);
+ if (err) {
+ errmsg("cannot write layout volume");
+ goto out_free;
}
free(hdr);
@@ -816,7 +802,7 @@ int main(int argc, char * const argv[])
goto out_free;
}
- if (si->good_cnt < 2 && (!args.novtbl || args.image)) {
+ if (si->good_cnt < 2) {
errmsg("too few non-bad eraseblocks (%d) on mtd%d",
si->good_cnt, mtd.mtd_num);
goto out_free;
@@ -916,11 +902,11 @@ int main(int argc, char * const argv[])
if (err < 0)
goto out_free;
- err = format(libmtd, &mtd, &ui, si, err, 1);
+ err = format(libmtd, &mtd, &ui, si, err);
if (err)
goto out_free;
} else {
- err = format(libmtd, &mtd, &ui, si, 0, args.novtbl);
+ err = format(libmtd, &mtd, &ui, si, 0);
if (err)
goto out_free;
}
--
2.17.0
More information about the linux-mtd
mailing list