diff --git a/cli_classic.c b/cli_classic.c
index 9a6b6c0..882ea2e 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -668,8 +668,18 @@
 	programmer_delay(100000);
 	if (read_it)
 		ret = do_read(fill_flash, filename);
-	else if (erase_it)
-		ret = do_erase(fill_flash);
+	else if (erase_it) {
+		ret = flashrom_flash_erase(fill_flash);
+		/*
+		 * FIXME: Do we really want the scary warning if erase failed?
+		 * After all, after erase the chip is either blank or partially
+		 * blank or it has the old contents. A blank chip won't boot,
+		 * so if the user wanted erase and reboots afterwards, the user
+		 * knows very well that booting won't work.
+		 */
+		if (ret)
+			emergency_help_message();
+	}
 	else if (write_it)
 		ret = do_write(fill_flash, filename, referencefile);
 	else if (verify_it)
diff --git a/flash.h b/flash.h
index b53dcc5..5ebb7c3 100644
--- a/flash.h
+++ b/flash.h
@@ -415,6 +415,7 @@
 int probe_flash(struct registered_master *mst, int startchip, struct flashctx *fill_flash, int force);
 int read_flash_to_file(struct flashctx *flash, const char *filename);
 int verify_range(struct flashctx *flash, const uint8_t *cmpbuf, unsigned int start, unsigned int len);
+void emergency_help_message(void);
 void print_version(void);
 void print_buildinfo(void);
 void print_banner(void);
@@ -425,7 +426,6 @@
 int prepare_flash_access(struct flashctx *, bool read_it, bool write_it, bool erase_it, bool verify_it);
 void finalize_flash_access(struct flashctx *);
 int do_read(struct flashctx *, const char *filename);
-int do_erase(struct flashctx *);
 int do_write(struct flashctx *, const char *const filename, const char *const referencefile);
 int do_verify(struct flashctx *, const char *const filename);
 int register_chip_restore(chip_restore_fn_cb_t func, struct flashctx *flash, uint8_t status);
diff --git a/flashrom.c b/flashrom.c
index 17407d5..353a827 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1496,7 +1496,7 @@
 			 "(see https://www.flashrom.org/Contact for details), thanks!\n");
 }
 
-static void emergency_help_message(void)
+void emergency_help_message(void)
 {
 	msg_gerr("Your flash chip is in an unknown state.\n");
 #if CONFIG_INTERNAL == 1
@@ -2147,23 +2147,6 @@
 	return ret;
 }
 
-int do_erase(struct flashctx *const flash)
-{
-	const int ret = flashrom_flash_erase(flash);
-
-	/*
-	 * FIXME: Do we really want the scary warning if erase failed?
-	 * After all, after erase the chip is either blank or partially
-	 * blank or it has the old contents. A blank chip won't boot,
-	 * so if the user wanted erase and reboots afterwards, the user
-	 * knows very well that booting won't work.
-	 */
-	if (ret)
-		emergency_help_message();
-
-	return ret;
-}
-
 int do_write(struct flashctx *const flash, const char *const filename, const char *const referencefile)
 {
 	const size_t flash_size = flash->chip->total_size * 1024;
