aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrey Yurovsky <yurovsky@gmail.com>2014-10-30 11:56:08 -0700
committerSpencer Oliver <spen@spen-soft.co.uk>2014-11-24 22:18:59 +0000
commit08607aefc0da2394bcce067989812081f742f5e2 (patch)
tree6e5b8bfbc04a0f7be57cc67bffbf5336f72cc417 /src
parent921eb4213a07e33a2536a72a35b66b4cb27d0984 (diff)
downloadriscv-openocd-08607aefc0da2394bcce067989812081f742f5e2.zip
riscv-openocd-08607aefc0da2394bcce067989812081f742f5e2.tar.gz
riscv-openocd-08607aefc0da2394bcce067989812081f742f5e2.tar.bz2
flash: at91samd: fix use of is_erased in check
is_erased can be one of -1, 0, or 1 so it must not be checked like a boolean value. In this case we want to erase a page unless we know it's already erased so we just check for is_erased != 1. Thanks to Jim Paris for pointing this out on another driver. Change-Id: I4591186228153b64e5a9608a2aac18745e578d4a Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com> Reviewed-on: http://openocd.zylin.com/2368 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/flash/nor/at91samd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/flash/nor/at91samd.c b/src/flash/nor/at91samd.c
index 7c877c0..ece1fd2 100644
--- a/src/flash/nor/at91samd.c
+++ b/src/flash/nor/at91samd.c
@@ -590,7 +590,7 @@ static int samd_erase(struct flash_bank *bank, int first, int last)
return ERROR_FLASH_OPERATION_FAILED;
}
- if (!bank->sectors[s].is_erased) {
+ if (bank->sectors[s].is_erased != 1) {
/* For each row in that sector */
for (int r = s * rows_in_sector; r < (s + 1) * rows_in_sector; r++) {
res = samd_erase_row(bank->target, r * chip->page_size * 4);