xmc4xxx: Improve xmc4xxx_blank_check_memory() error handling

Clean up working area in case writing fails. Probably inherited from
armv7m_blank_check_memory(). Fix adapted from armv7m_checksum_memory().

Change-Id: I784bef481d1eba833ab6a9c34249fe9d43a16081
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-on: http://openocd.zylin.com/3470
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
Andreas Färber 2016-05-08 16:48:50 +02:00 committed by Freddie Chopin
parent 4f2cc02d27
commit 13ff5c1290
1 changed files with 2 additions and 1 deletions

View File

@ -640,7 +640,7 @@ static int xmc4xxx_blank_check_memory(struct target *target,
retval = target_write_buffer(target, erase_check_algorithm->address,
sizeof(erase_check_code), (uint8_t *)erase_check_code);
if (retval != ERROR_OK)
return retval;
goto cleanup;
armv7m_info.common_magic = ARMV7M_COMMON_MAGIC;
armv7m_info.core_mode = ARM_MODE_THREAD;
@ -671,6 +671,7 @@ static int xmc4xxx_blank_check_memory(struct target *target,
destroy_reg_param(&reg_params[1]);
destroy_reg_param(&reg_params[2]);
cleanup:
target_free_working_area(target, erase_check_algorithm);
return retval;