refactor(el3-spmc): avoid unnecessarily revalidating offset

The offset has been validated on the first loop iteration.  Subsequent
iterations can assume it is valid.

Change-Id: Ib06cd0240220b8aa42bcd34c3c40b69d2d86aa72
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
diff --git a/services/std_svc/spm/el3_spmc/spmc_shared_mem.c b/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
index 1dc71c7..b5cb734 100644
--- a/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
+++ b/services/std_svc/spm/el3_spmc/spmc_shared_mem.c
@@ -822,6 +822,22 @@
 
 		offset = emad->comp_mrd_offset;
 
+		/*
+		 * The offset provided to the composite memory region descriptor
+		 * should be consistent across endpoint descriptors. Store the
+		 * first entry and compare against subsequent entries.
+		 */
+		if (comp_mrd_offset == 0) {
+			comp_mrd_offset = offset;
+		} else {
+			if (comp_mrd_offset != offset) {
+				ERROR("%s: mismatching offsets provided, %u != %u\n",
+				       __func__, offset, comp_mrd_offset);
+				return -EINVAL;
+			}
+			continue; /* Remainder only executed on first iteration. */
+		}
+
 		if (ffa_version == MAKE_FFA_VERSION(1, 0)) {
 			desc_size =  sizeof(struct ffa_mtd_v1_0);
 		} else {
@@ -878,21 +894,6 @@
 			return -EINVAL;
 		}
 
-		/*
-		 * The offset provided to the composite memory region descriptor
-		 * should be consistent across endpoint descriptors. Store the
-		 * first entry and compare against subsequent entries.
-		 */
-		if (comp_mrd_offset == 0) {
-			comp_mrd_offset = offset;
-		} else {
-			if (comp_mrd_offset != offset) {
-				ERROR("%s: mismatching offsets provided, %u != %u\n",
-				       __func__, offset, comp_mrd_offset);
-				return -EINVAL;
-			}
-		}
-
 		total_page_count = 0;
 
 		for (size_t i = 0; i < count; i++) {