armv4_5: Improve arm_blank_check_memory() error handling
Clean up the working area in case writing fails. Change the error handling paradigm to avoid duplication. Change-Id: I95bb12fbe7c80b594e178468bcd4f6387c682c93 Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-on: http://openocd.zylin.com/3471 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>__archive__
parent
08cdb58f05
commit
fcaf7e0cfe
|
@ -1551,7 +1551,7 @@ int arm_blank_check_memory(struct target *target,
|
||||||
+ i * sizeof(uint32_t),
|
+ i * sizeof(uint32_t),
|
||||||
check_code[i]);
|
check_code[i]);
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
return retval;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
arm_algo.common_magic = ARM_COMMON_MAGIC;
|
arm_algo.common_magic = ARM_COMMON_MAGIC;
|
||||||
|
@ -1575,23 +1575,18 @@ int arm_blank_check_memory(struct target *target,
|
||||||
check_algorithm->address,
|
check_algorithm->address,
|
||||||
exit_var,
|
exit_var,
|
||||||
10000, &arm_algo);
|
10000, &arm_algo);
|
||||||
if (retval != ERROR_OK) {
|
|
||||||
destroy_reg_param(®_params[0]);
|
|
||||||
destroy_reg_param(®_params[1]);
|
|
||||||
destroy_reg_param(®_params[2]);
|
|
||||||
target_free_working_area(target, check_algorithm);
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (retval == ERROR_OK)
|
||||||
*blank = buf_get_u32(reg_params[2].value, 0, 32);
|
*blank = buf_get_u32(reg_params[2].value, 0, 32);
|
||||||
|
|
||||||
destroy_reg_param(®_params[0]);
|
destroy_reg_param(®_params[0]);
|
||||||
destroy_reg_param(®_params[1]);
|
destroy_reg_param(®_params[1]);
|
||||||
destroy_reg_param(®_params[2]);
|
destroy_reg_param(®_params[2]);
|
||||||
|
|
||||||
|
cleanup:
|
||||||
target_free_working_area(target, check_algorithm);
|
target_free_working_area(target, check_algorithm);
|
||||||
|
|
||||||
return ERROR_OK;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int arm_full_context(struct target *target)
|
static int arm_full_context(struct target *target)
|
||||||
|
|
Loading…
Reference in New Issue