From: John Crispin Date: Wed, 3 Dec 2014 20:22:32 +0000 (+0000) Subject: mtd: make the dump commnd honour the -o option X-Git-Tag: reboot~5118 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=c3bb3906ee5abbee7ead3970d395d2d44937a1d8;p=openwrt%2Fstaging%2Fjogo.git mtd: make the dump commnd honour the -o option Signed-off-by: John Crispin SVN-Revision: 43512 --- diff --git a/package/system/mtd/src/mtd.c b/package/system/mtd/src/mtd.c index db3fc804c9..72b9ddfe21 100644 --- a/package/system/mtd/src/mtd.c +++ b/package/system/mtd/src/mtd.c @@ -274,7 +274,7 @@ mtd_erase(const char *mtd) } static int -mtd_dump(const char *mtd, int size) +mtd_dump(const char *mtd, int part_offset, int size) { int ret = 0, offset = 0; int fd; @@ -292,6 +292,9 @@ mtd_dump(const char *mtd, int size) if (!size) size = mtdsize; + if (part_offset) + lseek(fd, part_offset, SEEK_SET); + buf = malloc(erasesize); if (!buf) return -1; @@ -769,10 +772,6 @@ int main (int argc, char **argv) } break; case 'o': - if (!mtd_fixtrx) { - fprintf(stderr, "-o: is not available on this platform\n"); - usage(); - } errno = 0; offset = strtoul(optarg, 0, 0); if (errno) { @@ -872,7 +871,7 @@ int main (int argc, char **argv) mtd_verify(device, imagefile); break; case CMD_DUMP: - mtd_dump(device, dump_len); + mtd_dump(device, offset, dump_len); break; case CMD_ERASE: if (!unlocked)