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

[xen staging] xen/arm: static-shmem: fix "gbase/pbase used uninitialized" build failure



commit 988f1c7e1f40f85f5654784e5f702ed54904ca9d
Author:     Michal Orzel <michal.orzel@xxxxxxx>
AuthorDate: Wed Jun 19 08:46:52 2024 +0200
Commit:     Julien Grall <jgrall@xxxxxxxxxx>
CommitDate: Wed Jun 19 12:32:27 2024 +0100

    xen/arm: static-shmem: fix "gbase/pbase used uninitialized" build failure
    
    Building Xen with CONFIG_STATIC_SHM=y results in a build failure:
    
    arch/arm/static-shmem.c: In function 'process_shm':
    arch/arm/static-shmem.c:327:41: error: 'gbase' may be used uninitialized 
[-Werror=maybe-uninitialized]
      327 |         if ( is_domain_direct_mapped(d) && (pbase != gbase) )
    arch/arm/static-shmem.c:305:17: note: 'gbase' was declared here
      305 |         paddr_t gbase, pbase, psize;
    
    This is because the commit cb1ddafdc573 adds a check referencing
    gbase/pbase variables which were not yet assigned a value. Fix it.
    
    Fixes: cb1ddafdc573 ("xen/arm/static-shmem: Static-shmem should be 
direct-mapped for direct-mapped domains")
    Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
    Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
    Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
---
 xen/arch/arm/static-shmem.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index c434b96e62..cd48d2896b 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -324,12 +324,6 @@ int __init process_shm(struct domain *d, struct 
kernel_info *kinfo,
             printk("%pd: static shared memory bank not found: '%s'", d, 
shm_id);
             return -ENOENT;
         }
-        if ( is_domain_direct_mapped(d) && (pbase != gbase) )
-        {
-            printk("%pd: physical address 0x%"PRIpaddr" and guest address 
0x%"PRIpaddr" are not direct-mapped.\n",
-                   d, pbase, gbase);
-            return -EINVAL;
-        }
 
         pbase = boot_shm_bank->start;
         psize = boot_shm_bank->size;
@@ -353,6 +347,13 @@ int __init process_shm(struct domain *d, struct 
kernel_info *kinfo,
             /* guest phys address is after host phys address */
             gbase = dt_read_paddr(cells + addr_cells, addr_cells);
 
+            if ( is_domain_direct_mapped(d) && (pbase != gbase) )
+            {
+                printk("%pd: physical address 0x%"PRIpaddr" and guest address 
0x%"PRIpaddr" are not direct-mapped.\n",
+                       d, pbase, gbase);
+                return -EINVAL;
+            }
+
             for ( i = 0; i < PFN_DOWN(psize); i++ )
                 if ( !mfn_valid(mfn_add(maddr_to_mfn(pbase), i)) )
                 {
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

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