From 15c2b0a0a4c8a135b854296722c7d975e1ee540d Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Wed, 28 Jul 2010 21:13:27 +0400 Subject: [PATCH] bios: clean predefined bios area early otherwise say EBDA area could have some trash values gotten from malloc. Signed-off-by: Cyrill Gorcunov --- bios.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bios.c b/bios.c index 0c02ca8..4081769 100644 --- a/bios.c +++ b/bios.c @@ -53,6 +53,22 @@ void setup_bios(struct kvm *kvm) unsigned int i; void *p; + /* + * before anything else -- clean some known areas + * we definitely don't want any trash here + */ + p = guest_flat_to_host(kvm, BDA_START); + memset(p, 0, BDA_END - BDA_START); + + p = guest_flat_to_host(kvm, EBDA_START); + memset(p, 0, EBDA_END - EBDA_START); + + p = guest_flat_to_host(kvm, MB_BIOS_BEGIN); + memset(p, 0, MB_BIOS_END - MB_BIOS_BEGIN); + + p = guest_flat_to_host(kvm, VGA_ROM_BEGIN); + memset(p, 0, VGA_ROM_END - VGA_ROM_BEGIN); + /* just copy the bios rom into the place */ p = guest_flat_to_host(kvm, MB_BIOS_BEGIN); memcpy(p, bios_rom, bios_rom_size);