Sections with identical attributes may be contiguous with a respective
begin and end address which is not on a minimum region boundary.  The
begin address is aligned down to the region base address.  The end
address is aligned up to the region end address.  Account for this in
the check for contiguous sections.
---
 cpukit/score/cpu/arm/aarch32-psma-init.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/cpukit/score/cpu/arm/aarch32-psma-init.c 
b/cpukit/score/cpu/arm/aarch32-psma-init.c
index 9edbb517fc..c6aebdc4be 100644
--- a/cpukit/score/cpu/arm/aarch32-psma-init.c
+++ b/cpukit/score/cpu/arm/aarch32-psma-init.c
@@ -135,16 +135,16 @@ size_t _AArch32_PMSA_Map_sections_to_regions(
       if ( attr == region_attr ) {
         uint32_t region_end;
 
-        if ( end == region_base ) {
-          /* Extend the region region */
+        if ( end - region_base <= AARCH32_PMSA_MIN_REGION_ALIGN ) {
+          /* Extend the region */
           regions[ ri ].base = base;
           break;
         }
 
         region_end = region_limit + AARCH32_PMSA_MIN_REGION_ALIGN;
 
-        if ( base == region_end ) {
-          /* Extend the region region */
+        if ( region_end - base <= AARCH32_PMSA_MIN_REGION_ALIGN ) {
+          /* Extend the region */
           regions[ ri ].limit = limit;
           break;
         }
-- 
2.35.3

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to