Nikolai Artemiev has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/63881 )
Change subject: flashrom: initialize restore func count in correct place ......................................................................
flashrom: initialize restore func count in correct place
Set `flash->chip_restore_fn_count` to zero before calling the chip's unlock funciton in `prepare_flash_access()`.
Previously the count was reset after calling chip->unlock(), causing the restore handler that is registered by spi_disable_blockprotect_generic() to be lost.
BUG=b:228945411 BRANCH=none TEST=enable wp; flashrom -w; check wp still enabled.
Change-Id: I4c7df424bd2ae2b5fb2a2ab6b47a3c9ff3233acf Signed-off-by: Nikolai Artemiev nartemiev@google.com --- M flashrom.c 1 file changed, 4 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/81/63881/1
diff --git a/flashrom.c b/flashrom.c index 7937885..5c180f3 100644 --- a/flashrom.c +++ b/flashrom.c @@ -1860,15 +1860,15 @@ if (map_flash(flash) != 0) return 1;
+ flash->address_high_byte = -1; + flash->in_4ba_mode = false; + flash->chip_restore_fn_count = 0; + /* Given the existence of read locks, we want to unlock for read, erase and write. */ if (flash->chip->unlock) flash->chip->unlock(flash);
- flash->address_high_byte = -1; - flash->in_4ba_mode = false; - flash->chip_restore_fn_count = 0; - /* Be careful about 4BA chips and broken masters */ if (flash->chip->total_size > 16 * 1024 && spi_master_no_4ba_modes(flash)) { /* If we can't use native instructions, bail out */