summaryrefslogtreecommitdiff
path: root/nandwrite.c
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2011-08-19 10:07:54 -0700
committerArtem Bityutskiy <artem.bityutskiy@intel.com>2011-08-23 09:27:50 +0300
commit56db38eb2a2642aea87bb9c5dd247bd4f383eb64 (patch)
tree7d313990e3aca2e2649f3fd5bc6ef5da9463bd98 /nandwrite.c
parentb09ea01faa06ab5d037ba347b95324b042b8c352 (diff)
nandwrite: cleanup "oobinfochanged" leftovers
We don't really use oobinfochanged anymore, since all the calls to the MEMSETOOBSEL ioctls are gone. The remaining usage of it is superfluous now, as the only case where it is changed is under the "noecc" condition and the only case where it is tested is under the "!noecc" condition. We also no longer need the "restoreoob" label and can instead simply close everything done with the single remaining label, "closeall". Note that `close(-1)' is legal, although useless. Finally, we move `old_oobinfo' into the only block of code in which it's used now. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
Diffstat (limited to 'nandwrite.c')
-rw-r--r--nandwrite.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/nandwrite.c b/nandwrite.c
index 25a5b73..e90c032 100644
--- a/nandwrite.c
+++ b/nandwrite.c
@@ -225,8 +225,6 @@ int main(int argc, char * const argv[])
struct mtd_dev_info mtd;
long long offs;
int ret;
- int oobinfochanged = 0;
- struct nand_oobinfo old_oobinfo;
bool failed = true;
/* contains all the data read from the file so far for the current eraseblock */
unsigned char *filebuf = NULL;
@@ -277,9 +275,7 @@ int main(int argc, char * const argv[])
if (noecc) {
ret = ioctl(fd, MTDFILEMODE, MTD_MODE_RAW);
- if (ret == 0) {
- oobinfochanged = 2;
- } else {
+ if (ret) {
switch (errno) {
case ENOTTY:
errmsg_die("ioctl MTDFILEMODE is missing");
@@ -300,7 +296,7 @@ int main(int argc, char * const argv[])
if (ifd == -1) {
perror(img);
- goto restoreoob;
+ goto closeall;
}
pagelen = mtd.min_io_size + ((writeoob) ? mtd.oob_size : 0);
@@ -502,6 +498,7 @@ int main(int argc, char * const argv[])
if (!noecc) {
int i, start, len;
int tags_pos = 0;
+ struct nand_oobinfo old_oobinfo;
/* Read the current oob info */
if (ioctl(fd, MEMGETOOBSEL, &old_oobinfo) != 0) {
@@ -517,7 +514,7 @@ int main(int argc, char * const argv[])
* Modified to support out of order oobfree segments,
* such as the layout used by diskonchip.c
*/
- if (!oobinfochanged && (old_oobinfo.useecc == MTD_NANDECC_AUTOPLACE)) {
+ if (old_oobinfo.useecc == MTD_NANDECC_AUTOPLACE) {
for (i = 0; old_oobinfo.oobfree[i][1]; i++) {
/* Set the reserved bytes to 0xff */
start = old_oobinfo.oobfree[i][0];
@@ -592,8 +589,6 @@ int main(int argc, char * const argv[])
closeall:
close(ifd);
-
-restoreoob:
libmtd_close(mtd_desc);
free(filebuf);
free(oobbuf);