[flashrom] [commit] r1707 - trunk

repository service svn at flashrom.org
Tue Aug 13 00:58:43 CEST 2013


Author: stefanct
Date: Tue Aug 13 00:58:43 2013
New Revision: 1707
URL: http://flashrom.org/trac/flashrom/changeset/1707

Log:
Fix verification operation.

I broke this in r1702 where I enabled avoidance of the verification step if
we did not modify anything in the erase/write step. The problem is that
all_skipped is initialized to true and hence it would only ever verify if
there have been changes noted in the erase/write step. This obviously
breaks the verification operation (-v/--verify) because there we never
enter the erase/write loop.

The better alternative would be to enable (the implicit) verification
in the write loop and not in cli_classic.c. This would require a bigger
change due to the existance of dont_verify_it. Eventually this is the
right thing to do but not so shortly before a release.

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Modified:
   trunk/cli_classic.c
   trunk/flashrom.c

Modified: trunk/cli_classic.c
==============================================================================
--- trunk/cli_classic.c	Thu Aug  8 14:00:19 2013	(r1706)
+++ trunk/cli_classic.c	Tue Aug 13 00:58:43 2013	(r1707)
@@ -175,8 +175,7 @@
 				cli_classic_abort_usage();
 			}
 			if (dont_verify_it) {
-				fprintf(stderr, "--verify and --noverify are"
-					"mutually exclusive. Aborting.\n");
+				fprintf(stderr, "--verify and --noverify are mutually exclusive. Aborting.\n");
 				cli_classic_abort_usage();
 			}
 			filename = strdup(optarg);
@@ -184,8 +183,7 @@
 			break;
 		case 'n':
 			if (verify_it) {
-				fprintf(stderr, "--verify and --noverify are"
-					"mutually exclusive. Aborting.\n");
+				fprintf(stderr, "--verify and --noverify are mutually exclusive. Aborting.\n");
 				cli_classic_abort_usage();
 			}
 			dont_verify_it = 1;

Modified: trunk/flashrom.c
==============================================================================
--- trunk/flashrom.c	Thu Aug  8 14:00:19 2013	(r1706)
+++ trunk/flashrom.c	Tue Aug 13 00:58:43 2013	(r1707)
@@ -335,6 +335,9 @@
  */
 static int may_register_shutdown = 0;
 
+/* Did we change something or was every erase/write skipped (if any)? */
+static bool all_skipped = true;
+
 static int check_block_eraser(const struct flashctx *flash, int k, int log);
 
 /* Register a function to be executed on programmer shutdown.
@@ -1309,7 +1312,6 @@
 	return ret;
 }
 
-static bool all_skipped = true;
 static int erase_and_write_block_helper(struct flashctx *flash,
 					unsigned int start, unsigned int len,
 					uint8_t *curcontents,
@@ -1995,7 +1997,8 @@
 		}
 	}
 
-	if (verify_it && !all_skipped) {
+	/* Verify only if we either did not try to write (verify operation) or actually changed something. */
+	if (verify_it && (!write_it || !all_skipped)) {
 		msg_cinfo("Verifying flash... ");
 
 		if (write_it) {




More information about the flashrom mailing list