flashrom.c: map_flash() in prepare_flash_access()

BUG=b:157511574,b:170666312
BRANCH=none
TEST=verified to fix mmap issues on Vilboz+W25Q128JWPIM

Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Change-Id: I0c19313010a8be67d2b55fceb288ef8faae4c402
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/2467156
Commit-Queue: Edward O'Callaghan <quasisec@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Tested-by: Edward O'Callaghan <quasisec@chromium.org>
Tested-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
Auto-Submit: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
diff --git a/flashrom.c b/flashrom.c
index 2a30fea..ba1c5ff 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -2385,6 +2385,9 @@
 		return 1;
 	}
 
+	if (map_flash(flash) != 0)
+		return 1;
+
 	/* Given the existence of read locks, we want to unlock for read,
 	   erase and write. */
 	if (flash->chip->unlock)
@@ -2678,6 +2681,8 @@
 		}
 	}
 
+	finalize_flash_access(flash);
+
 out:
 	if (descriptor)
 		free(descriptor);