xen/arm: Skip initializing the BSS section when it is empty

If the BSS section is empty, then the function should return.
If one does not check whether the BSS section is empty or not, then there is a
risk of writing 0s outside of BSS section (which may contain critical data).

Fixes: dac84b66cc ("xen: arm64: initial build + config changes, start of day code")
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
This commit is contained in:
Ayan Kumar Halder authored and Julien Grall committed 2024-11-01 13:59:23 +00:00
1 parent a6d71d59ca
commit b75dee16b3
2 files changed
+5

No files matched your search

+3
View File
@@ -185,12 +185,15 @@ zero_bss:
PRINT("- Zero BSS -\r\n")
mov_w r0, __bss_start /* r0 := vaddr(__bss_start) */
mov_w r1, __bss_end /* r1 := vaddr(__bss_end) */
cmp r1, r0
beq skip_bss
mov r2, #0
1: str r2, [r0], #4
cmp r0, r1
blo 1b
skip_bss:
mov pc, lr
ENDPROC(zero_bss)
+2
View File
@@ -346,6 +346,8 @@ FUNC_LOCAL(zero_bss)
PRINT("- Zero BSS -\r\n")
ldr x0, =__bss_start /* x0 := vaddr(__bss_start) */
ldr x1, =__bss_end /* x1 := vaddr(__bss_end) */
cmp x1, x0
beq skip_bss
1: str xzr, [x0], #8
cmp x0, x1
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.