From e697d93e029c7457856def03d7649fa902aa8036 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Wed, 18 Nov 2020 16:13:47 +0100 Subject: [PATCH 1/2] riotboot: don't always return error in riotboot_flashwrite_finish_raw() If `CONFIG_RIOTBOOT_FLASHWRITE_RAW` is not set, `riotboot_flashwrite_finish_raw()` will always return `-1` as `res` is not set anywhere else. Fix this by only returning -1 in the error case. --- sys/riotboot/flashwrite.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sys/riotboot/flashwrite.c b/sys/riotboot/flashwrite.c index 743676e32e..b1b0de82be 100644 --- a/sys/riotboot/flashwrite.c +++ b/sys/riotboot/flashwrite.c @@ -155,8 +155,6 @@ int riotboot_flashwrite_finish_raw(riotboot_flashwrite_t *state, { assert(len <= FLASHPAGE_SIZE); - int res = -1; - uint8_t *slot_start = (uint8_t *)riotboot_slot_get_hdr(state->target_slot); #if CONFIG_RIOTBOOT_FLASHWRITE_RAW @@ -179,11 +177,11 @@ int riotboot_flashwrite_finish_raw(riotboot_flashwrite_t *state, int flashpage = flashpage_page((void *)slot_start); if (flashpage_write_and_verify(flashpage, firstpage) == FLASHPAGE_OK) { LOG_INFO(LOG_PREFIX "riotboot flashing completed successfully\n"); - res = 0; } else { LOG_WARNING(LOG_PREFIX "re-flashing first block failed!\n"); + return -1; } #endif /* !CONFIG_RIOTBOOT_FLASHWRITE_RAW */ - return res; + return 0; } From 4bcccb1c68e986a0bff2276d167072d4a7d7cbbe Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Wed, 18 Nov 2020 18:04:59 +0100 Subject: [PATCH 2/2] riotboot: use log level ERROR if riotboot_flashwrite_finish_raw() fails --- sys/riotboot/flashwrite.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/riotboot/flashwrite.c b/sys/riotboot/flashwrite.c index b1b0de82be..fcd6833c03 100644 --- a/sys/riotboot/flashwrite.c +++ b/sys/riotboot/flashwrite.c @@ -151,7 +151,7 @@ int riotboot_flashwrite_putbytes(riotboot_flashwrite_t *state, } int riotboot_flashwrite_finish_raw(riotboot_flashwrite_t *state, - const uint8_t *bytes, size_t len) + const uint8_t *bytes, size_t len) { assert(len <= FLASHPAGE_SIZE); @@ -179,7 +179,7 @@ int riotboot_flashwrite_finish_raw(riotboot_flashwrite_t *state, LOG_INFO(LOG_PREFIX "riotboot flashing completed successfully\n"); } else { - LOG_WARNING(LOG_PREFIX "re-flashing first block failed!\n"); + LOG_ERROR(LOG_PREFIX "re-flashing first block failed!\n"); return -1; } #endif /* !CONFIG_RIOTBOOT_FLASHWRITE_RAW */