[PATCH 2/2] arm: Fix PMSA regions for contiguous sections

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Jun 3 06:38:05 UTC 2022


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



More information about the devel mailing list