[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] xen/arm32: Tidy up setup_mm()


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Fri, 4 Jul 2025 11:08:31 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=18lvsKu0Ub9IRk6zvJZ93t73GuhtCzAUDne4pgEDIRI=; b=A3pVaQgQ+PEB5Tig2OWw9k2dMbCbj7Kf3sHueBjXlQuv1bsiHON0/A2dwl7OkWHluLOBHLges4CcIRGwL51cmR2gvKHda8ixYBRBLlDHoFMS+qC2m9n0KIxLcw0Rkvd3JeFpp30ijhdxyNJ5XZdWeGEtn0jJFKPirVNwOZbbFNO8xdHNcoe6TNRqF1F+DcHYlPqK/j2zyu0dEJfAac91EIX9Vcc/T80yHwvRz4/+DUy3bEmea9kJJJiRtHGw9idSg6sDlcxXAseMxg3FVaBZjQk+Q27ldQcDJwT6f0DNbLab0IV888Oe/CKCAsSsGnVDaYdDu0du+kpzAlbrVEDMdQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N5fA5xxCdMseAeQq1TVlaDSbR+Fb38LUu7HGM4b2MoL4qIsJwT0VD3VqNiFZb4MbD/R3kkeeAGHgiC5gvZhnLAzc9ewuAMDrlHAJps5hLTy9Trtyqa+wkBP/fpNpwvSz7M0vGhKOvEvdpdR/VyhAcGkl5WISHDPj6nf7cV9vdRAuKYT2BPdA9/bAkz06OSEF12ZNXEA0keurXSqn3XQwPQ7TKMq1475BKem2nJWxFH9Nqp9fMZqNMPtnF22N/FKVzkwYtSzmPWEMcqkY/QnMQbyee5TWEx79nH2aPrOJ6/iqvMYPWSi+MgaNGSYLFSCdwlX/S/un5IrmHhcsnPyKXw==
  • Cc: Michal Orzel <michal.orzel@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Fri, 04 Jul 2025 09:08:51 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

The current look and feel of setup_mm() leaves a lot to be desired. The
scope of variables is not the best, many variables are not really needed
while some others are set but not used. The first iteration of membanks
is split from the loop for no reason. Tidy up this function for better
readability.

No functional change.

Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
---
 xen/arch/arm/arm32/mmu/mm.c | 28 +++++++++-------------------
 1 file changed, 9 insertions(+), 19 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
index e6d9b49acd3c..5e4766ddcf65 100644
--- a/xen/arch/arm/arm32/mmu/mm.c
+++ b/xen/arch/arm/arm32/mmu/mm.c
@@ -74,8 +74,7 @@ static paddr_t __init fit_xenheap_in_static_heap(uint32_t 
size, paddr_t align)
 void __init setup_mm(void)
 {
     const struct membanks *mem = bootinfo_get_mem();
-    paddr_t ram_start, ram_end, ram_size, e, bank_start, bank_end, bank_size;
-    paddr_t static_heap_end = 0, static_heap_size = 0;
+    paddr_t ram_start = INVALID_PADDR, ram_end = 0, ram_size = 0, e;
     unsigned long heap_pages, xenheap_pages, domheap_pages;
     unsigned int i;
     const uint32_t ctr = READ_CP32(CTR);
@@ -89,19 +88,14 @@ void __init setup_mm(void)
 
     init_pdx();
 
-    ram_start = mem->bank[0].start;
-    ram_size  = mem->bank[0].size;
-    ram_end   = ram_start + ram_size;
-
-    for ( i = 1; i < mem->nr_banks; i++ )
+    for ( i = 0; i < mem->nr_banks; i++ )
     {
-        bank_start = mem->bank[i].start;
-        bank_size = mem->bank[i].size;
-        bank_end = bank_start + bank_size;
+        const struct membank *bank = &mem->bank[i];
+        paddr_t bank_end = bank->start + bank->size;
 
-        ram_size  = ram_size + bank_size;
-        ram_start = min(ram_start,bank_start);
-        ram_end   = max(ram_end,bank_end);
+        ram_size = ram_size + bank->size;
+        ram_start = min(ram_start, bank->start);
+        ram_end = max(ram_end, bank_end);
     }
 
     total_pages = ram_size >> PAGE_SHIFT;
@@ -109,18 +103,14 @@ void __init setup_mm(void)
     if ( using_static_heap )
     {
         const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+        paddr_t static_heap_size = 0;
 
         for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
         {
             if ( reserved_mem->bank[i].type != MEMBANK_STATIC_HEAP )
                 continue;
 
-            bank_start = reserved_mem->bank[i].start;
-            bank_size = reserved_mem->bank[i].size;
-            bank_end = bank_start + bank_size;
-
-            static_heap_size += bank_size;
-            static_heap_end = max(static_heap_end, bank_end);
+            static_heap_size += reserved_mem->bank[i].size;
         }
 
         heap_pages = static_heap_size >> PAGE_SHIFT;
-- 
2.25.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.