From 70226c221f5879bb6126ff3f2ec9ae64c68d80d6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Harboe?= Date: Mon, 3 May 2010 15:50:39 +0200 Subject: [PATCH] str7x: fix bogus error messages MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Remove bogus error messages when trying to allocate a large chunk of target memory and then falling back to a smaller one. Signed-off-by: Øyvind Harboe --- src/flash/nor/str7x.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/flash/nor/str7x.c b/src/flash/nor/str7x.c index d5e8e28808..556dec2605 100644 --- a/src/flash/nor/str7x.c +++ b/src/flash/nor/str7x.c @@ -355,10 +355,9 @@ static int str7x_write_block(struct flash_bank *bank, uint8_t *buffer, }; /* flash write code */ - if (target_alloc_working_area(target, sizeof(str7x_flash_write_code), + if (target_alloc_working_area_try(target, sizeof(str7x_flash_write_code), &str7x_info->write_algorithm) != ERROR_OK) { - LOG_WARNING("no working area available, can't do block memory writes"); return ERROR_TARGET_RESOURCE_NOT_AVAILABLE; }; @@ -367,7 +366,7 @@ static int str7x_write_block(struct flash_bank *bank, uint8_t *buffer, (uint8_t*)str7x_flash_write_code); /* memory buffer */ - while (target_alloc_working_area(target, buffer_size, &source) != ERROR_OK) + while (target_alloc_working_area_try(target, buffer_size, &source) != ERROR_OK) { buffer_size /= 2; if (buffer_size <= 256) @@ -499,6 +498,9 @@ static int str7x_write(struct flash_bank *bank, uint8_t *buffer, /* if block write failed (no sufficient working area), * we use normal (slow) single dword accesses */ LOG_WARNING("couldn't use block writes, falling back to single memory accesses"); + } else + { + return retval; } else if (retval == ERROR_FLASH_OPERATION_FAILED) { -- 2.30.2