diff options
author | Boris Ostrovsky <boris.ostrovsky@oracle.com> | 2016-02-26 14:02:36 -0500 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2016-03-03 16:20:09 +0000 |
commit | 04b6b4a56884327c1648c517f1f46a2638f04c9d (patch) | |
tree | dc96b84e9f78a1b50a3e616a748246ef9f3f5cb8 | |
parent | a4d7b75be034115d36b6a20db566eb8b11bacaf8 (diff) | |
download | linux-04b6b4a56884327c1648c517f1f46a2638f04c9d.tar.gz linux-04b6b4a56884327c1648c517f1f46a2638f04c9d.tar.bz2 linux-04b6b4a56884327c1648c517f1f46a2638f04c9d.zip |
xen/x86: Zero out .bss for PV guests
ELF spec is unclear about whether .bss must me cleared by the loader.
Currently the domain builder does it when loading the guest but because
it is not (or rather may not be) guaranteed we should zero it out
explicitly.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-rw-r--r-- | arch/x86/xen/xen-head.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S index b65f59a358a2..5c63d2d955bb 100644 --- a/arch/x86/xen/xen-head.S +++ b/arch/x86/xen/xen-head.S @@ -38,6 +38,15 @@ __INIT ENTRY(startup_xen) cld + + /* Clear .bss */ + xor %eax,%eax + mov $__bss_start, %_ASM_DI + mov $__bss_stop, %_ASM_CX + sub %_ASM_DI, %_ASM_CX + shr $__ASM_SEL(2, 3), %_ASM_CX + rep __ASM_SIZE(stos) + #ifdef CONFIG_X86_32 mov %esi,xen_start_info mov $init_thread_union+THREAD_SIZE,%esp |