xmc4xxx: Fix error propagation for erase_check callback 25/3425/2
authorAndreas Färber <afaerber@suse.de>
Sun, 24 Apr 2016 03:05:33 +0000 (05:05 +0200)
committerFreddie Chopin <freddie.chopin@gmail.com>
Thu, 5 May 2016 21:40:29 +0000 (22:40 +0100)
If an error occurs during xmc4xxx_blank_check_memory() aka .erase_check,
it would break out of the loop over flash sectors and return ERROR_OK.

Instead return the error code so that tcl.c can notify the user.

Change-Id: Ie2c1b7933eef2b240b28f8a292634fbbf5b31706
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-on: http://openocd.zylin.com/3425
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
src/flash/nor/xmc4xxx.c

index f676e8c..3197930 100644 (file)
@@ -620,7 +620,7 @@ static int xmc4xxx_enter_page_mode(struct flash_bank *bank)
  * implement our own */
 
 /** Checks whether a memory region is zeroed. */
-int xmc4xxx_blank_check_memory(struct target *target,
+static int xmc4xxx_blank_check_memory(struct target *target,
        uint32_t address, uint32_t count, uint32_t *blank)
 {
        struct working_area *erase_check_algorithm;
@@ -680,7 +680,7 @@ static int xmc4xxx_flash_blank_check(struct flash_bank *bank)
 {
        struct target *target = bank->target;
        int i;
-       int retval;
+       int retval = ERROR_OK;
        uint32_t blank;
 
        if (bank->target->state != TARGET_HALTED) {
@@ -704,7 +704,7 @@ static int xmc4xxx_flash_blank_check(struct flash_bank *bank)
                        bank->sectors[i].is_erased = 0;
        }
 
-       return ERROR_OK;
+       return retval;
 }
 
 static int xmc4xxx_write_page(struct flash_bank *bank, const uint8_t *pg_buf,