diff --git a/boot/bootutil/src/bootutil_priv.h b/boot/bootutil/src/bootutil_priv.h
index 4e5d2aa..51d27a9 100644
--- a/boot/bootutil/src/bootutil_priv.h
+++ b/boot/bootutil/src/bootutil_priv.h
@@ -277,6 +277,11 @@
 #define BOOT_SWAP_TYPE(state) ((state)->swap_type[BOOT_CURR_IMG(state)])
 #define BOOT_TLV_OFF(hdr) ((hdr)->ih_hdr_size + (hdr)->ih_img_size)
 
+#define BOOT_IS_UPGRADE(swap_type)             \
+    (((swap_type) == BOOT_SWAP_TYPE_TEST) ||   \
+     ((swap_type) == BOOT_SWAP_TYPE_REVERT) || \
+     ((swap_type) == BOOT_SWAP_TYPE_PERM))
+
 static inline struct image_header*
 boot_img_hdr(struct boot_loader_state *state, size_t slot)
 {
diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c
index d01a71d..1634312 100644
--- a/boot/bootutil/src/loader.c
+++ b/boot/bootutil/src/loader.c
@@ -958,10 +958,7 @@
     int rc;
 
     swap_type = boot_swap_type_multi(BOOT_CURR_IMG(state));
-    switch (swap_type) {
-    case BOOT_SWAP_TYPE_TEST:
-    case BOOT_SWAP_TYPE_PERM:
-    case BOOT_SWAP_TYPE_REVERT:
+    if (BOOT_IS_UPGRADE(swap_type)) {
         /* Boot loader wants to switch to the secondary slot.
          * Ensure image is valid.
          */
@@ -2047,9 +2044,7 @@
         }
     }
 
-    if (swap_type == BOOT_SWAP_TYPE_TEST ||
-            swap_type == BOOT_SWAP_TYPE_PERM ||
-            swap_type == BOOT_SWAP_TYPE_REVERT) {
+    if (BOOT_IS_UPGRADE(swap_type)) {
         rc = boot_set_copy_done(BOOT_CURR_IMG(state));
         if (rc != 0) {
             BOOT_SWAP_TYPE(state) = BOOT_SWAP_TYPE_PANIC;
@@ -2093,9 +2088,7 @@
         }
     }
 
-    if (bs->swap_type == BOOT_SWAP_TYPE_TEST ||
-        bs->swap_type == BOOT_SWAP_TYPE_PERM ||
-        bs->swap_type == BOOT_SWAP_TYPE_REVERT) {
+    if (BOOT_IS_UPGRADE(bs->swap_type)) {
         rc = boot_set_copy_done(BOOT_CURR_IMG(state));
         if (rc != 0) {
             BOOT_SWAP_TYPE(state) = BOOT_SWAP_TYPE_PANIC;
@@ -2359,7 +2352,7 @@
         /* Determine swap type and complete swap if it has been aborted. */
         boot_prepare_image_for_update(state, &bs);
 
-        if (BOOT_SWAP_TYPE(state) != BOOT_SWAP_TYPE_NONE) {
+        if (BOOT_IS_UPGRADE(BOOT_SWAP_TYPE(state))) {
             has_upgrade = true;
         }
     }
