nrf51: fix checks for is_erased
authorJim Paris <jim@jtan.com>
Wed, 29 Oct 2014 23:09:49 +0000 (19:09 -0400)
committerSpencer Oliver <spen@spen-soft.co.uk>
Mon, 24 Nov 2014 21:54:11 +0000 (21:54 +0000)
is_erased can take the value 0 (no), 1 (yes), or -1 (unknown).
Checks like (!is_erased) don't do the right thing if it's -1.

Change-Id: I10ba32c99494ca803e0a7a1ba56fdd78184b96bb
Signed-off-by: Jim Paris <jim@jtan.com>
Reviewed-on: http://openocd.zylin.com/2366
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/flash/nor/nrf51.c

index bfa199a2ffc415a7b8c5e010427b80b60ff833de..c5ffa83249fd28a514719581cad1070896c14ac2 100644 (file)
@@ -642,7 +642,7 @@ static int nrf51_write_page(struct flash_bank *bank, uint32_t offset, const uint
        if (sector->is_protected)
                goto error;
 
-       if (!sector->is_erased) {
+       if (sector->is_erased != 1) {
                res = nrf51_erase_page(bank, chip, sector);
                if (res != ERROR_OK) {
                        LOG_ERROR("Failed to erase sector @ 0x%08"PRIx32, sector->offset);
@@ -784,7 +784,7 @@ static int nrf51_uicr_flash_write(struct flash_bank *bank,
        if (res != ERROR_OK)
                return res;
 
-       if (!sector->is_erased) {
+       if (sector->is_erased != 1) {
                res = nrf51_erase_page(bank, chip, sector);
                if (res != ERROR_OK)
                        return res;