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

[Minios-devel] [UNIKRAFT PATCH v2] plat/xen: arm: Initialize the bss section to 0



From: Dafna Hirschfeld <dafna3@xxxxxxxxx>

Clear the bss section during boot so that it is initialized with 0.
Additonally, we make sure with the linker script that all
bss-related symbols are placed within the bss area marked with
_end and __bss_start when the compile option "dropping of unused
symbols" is enabled.

Signed-off-by: Dafna Hirschfeld <dafna3@xxxxxxxxx>
Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
 plat/xen/arm/link32.lds | 2 +-
 plat/xen/arm/setup.c    | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/plat/xen/arm/link32.lds b/plat/xen/arm/link32.lds
index 4508e05d..c5d83008 100644
--- a/plat/xen/arm/link32.lds
+++ b/plat/xen/arm/link32.lds
@@ -87,7 +87,7 @@ SECTIONS
 
                __bss_start = .;
                *(.bss)
-               *(.app.bss)
+               *(.bss.*)
        }
        _end = . ;
 
diff --git a/plat/xen/arm/setup.c b/plat/xen/arm/setup.c
index 4b9efe53..b91c0bdb 100644
--- a/plat/xen/arm/setup.c
+++ b/plat/xen/arm/setup.c
@@ -193,6 +193,13 @@ void _libxenplat_armentry(void *dtb_pointer, uint32_t 
physical_offset)
 {
        uk_pr_info("Entering from Xen (arm)...\n");
 
+       /* Zero'ing out the bss section */
+       /*
+        * TODO: It probably makes sense to move this to the early
+        * platform entry assembly code.
+        */
+       memset(&__bss_start, 0, &_end - &__bss_start);
+
        _init_dtb(dtb_pointer);
        _dtb_init_mem(physical_offset); /* relocates dtb */
        uk_pr_info("           dtb: %p\n", HYPERVISOR_dtb);
-- 
2.11.0


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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