From fe08ed65c0c26648cc3adeb68563f16b47c96a07 Mon Sep 17 00:00:00 2001 From: Dominik Ermel Date: Wed, 9 Aug 2023 15:58:46 +0000 Subject: [PATCH] mgmt/MCUmgr/grp/img: Simplify img_mgmt_get_unused_slot_area_id Simplified and made CONFIG_MCUMGR_GRP_IMG_UPDATABLE_IMAGE_NUMBER independent. Signed-off-by: Dominik Ermel --- .../mgmt/mcumgr/grp/img_mgmt/src/zephyr_img_mgmt.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/subsys/mgmt/mcumgr/grp/img_mgmt/src/zephyr_img_mgmt.c b/subsys/mgmt/mcumgr/grp/img_mgmt/src/zephyr_img_mgmt.c index b8322b6feee..384d3f408a6 100644 --- a/subsys/mgmt/mcumgr/grp/img_mgmt/src/zephyr_img_mgmt.c +++ b/subsys/mgmt/mcumgr/grp/img_mgmt/src/zephyr_img_mgmt.c @@ -238,13 +238,15 @@ static int img_mgmt_get_unused_slot_area_id(int slot) static int img_mgmt_get_unused_slot_area_id(int image) { int area_id = -1; + int slot = 0; - if (image == 0 || image == -1) { - if (img_mgmt_slot_in_use(1) == 0) { - area_id = img_mgmt_flash_area_id(1); - } - } else if (image == 1) { - area_id = img_mgmt_flash_area_id(3); + if (image == -1) { + image = 0; + } + slot = img_mgmt_get_opposite_slot(img_mgmt_active_slot(image)); + + if (!img_mgmt_slot_in_use(slot)) { + area_id = img_mgmt_flash_area_id(slot); } return area_id;