summaryrefslogtreecommitdiffstats
path: root/flashrom.c
diff options
context:
space:
mode:
Diffstat (limited to 'flashrom.c')
-rw-r--r--flashrom.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/flashrom.c b/flashrom.c
index 23728f6..c20461a 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -413,6 +413,11 @@ int programmer_init(enum programmer prog, const char *param)
return ret;
}
+/** Calls registered shutdown functions and resets internal programmer-related variables.
+ * Calling it is safe even without previous initialization, but further interactions with programmer support
+ * require a call to programmer_init() (afterwards).
+ *
+ * @return The OR-ed result values of all shutdown functions (i.e. 0 on success). */
int programmer_shutdown(void)
{
int ret = 0;
@@ -1913,14 +1918,12 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it,
if (chip_safety_check(flash, force, read_it, write_it, erase_it, verify_it)) {
msg_cerr("Aborting.\n");
- ret = 1;
- goto out_nofree;
+ return 1;
}
if (normalize_romentries(flash)) {
msg_cerr("Requested regions can not be handled. Aborting.\n");
- ret = 1;
- goto out_nofree;
+ return 1;
}
/* Given the existence of read locks, we want to unlock for read,
@@ -1930,8 +1933,7 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it,
flash->chip->unlock(flash);
if (read_it) {
- ret = read_flash_to_file(flash, filename);
- goto out_nofree;
+ return read_flash_to_file(flash, filename);
}
oldcontents = malloc(size);
@@ -2048,7 +2050,5 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it,
out:
free(oldcontents);
free(newcontents);
-out_nofree:
- programmer_shutdown();
return ret;
}
OpenPOWER on IntegriCloud