a4d1d9fe03
bnc#828623 - bnc#839596 - VUL-0: CVE-2013-1442: XSA-62: xen: Information leak on AVX and/or LWP capable CPUs 5242a1b5-x86-xsave-initialize-extended-register-state-when-guests-enable-it.patch - bnc#840592 - VUL-0: CVE-2013-4355: XSA-63: xen: Information leaks through I/O instruction emulation CVE-2013-4355-xsa63.patch - bnc#840593 - VUL-0: CVE-2013-4356: XSA-64: xen: Memory accessible by 64-bit PV guests under live migration CVE-2013-4356-xsa64.patch - bnc#841766 - VUL-1: CVE-2013-4361: XSA-66: xen: Information leak through fbld instruction emulation CVE-2013-4361-xsa66.patch - bnc#833796 - L3: Xen: migration broken from xsave-capable to xsave-incapable host 52205e27-x86-xsave-initialization-improvements.patch 522dc0e6-x86-xsave-fix-migration-from-xsave-capable-to-xsave-incapable-host.patch - bnc#839600 - [HP BCS SLES11 Bug]: In HP’s UEFI x86_64 platform and sles11sp3 with xen environment, xen hypervisor will panic on multiple blades nPar. 523172d5-x86-fix-memory-cut-off-when-using-PFN-compression.patch - bnc#833251 - [HP BCS SLES11 Bug]: In HP’s UEFI x86_64 platform and with xen environment, in booting stage ,xen hypervisor will panic. 522d896b-x86-EFI-properly-handle-run-time-memory-regions-outside-the-1-1-map.patch - bnc#834751 - [HP BCS SLES11 Bug]: In xen, “shutdown –y 0 –h” cannot power off system 522d896b-x86-EFI-properly-handle-run-time-memory-regions-outside-the-1-1-map.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=274
85 lines
2.5 KiB
Diff
85 lines
2.5 KiB
Diff
# Commit 5f2875739beef3a75c7a7e8579b6cbcb464e61b3
|
|
# Date 2013-09-05 11:47:03 +0200
|
|
# Author Jan Beulich <jbeulich@suse.com>
|
|
# Committer Jan Beulich <jbeulich@suse.com>
|
|
hvmloader: fix SeaBIOS interface
|
|
|
|
The SeaBIOS ROM image may validly exceed 128k in size, it's only our
|
|
interface code that so far assumed that it wouldn't. Remove that
|
|
restriction by setting the base address depending on image size.
|
|
|
|
Add a check to HVM loader so that too big images won't result in silent
|
|
guest failure anymore.
|
|
|
|
Uncomment the intended build-time size check for rombios, moving it
|
|
into a function so that it would actually compile.
|
|
|
|
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
|
Acked-by: Ian Campbell <ian.campbell@citrix.com>
|
|
|
|
--- a/tools/firmware/hvmloader/config-seabios.h
|
|
+++ b/tools/firmware/hvmloader/config-seabios.h
|
|
@@ -3,8 +3,6 @@
|
|
|
|
#define BIOS_INFO_PHYSICAL_ADDRESS 0x00001000
|
|
|
|
-#define SEABIOS_PHYSICAL_ADDRESS 0x000E0000
|
|
-
|
|
#endif /* __HVMLOADER_CONFIG_SEABIOS_H__ */
|
|
|
|
/*
|
|
--- a/tools/firmware/hvmloader/hvmloader.c
|
|
+++ b/tools/firmware/hvmloader/hvmloader.c
|
|
@@ -292,8 +292,12 @@ int main(void)
|
|
if ( bios->bios_load )
|
|
bios->bios_load(bios);
|
|
else
|
|
+ {
|
|
+ BUG_ON(bios->bios_address + bios->image_size >
|
|
+ HVMLOADER_PHYSICAL_ADDRESS);
|
|
memcpy((void *)bios->bios_address, bios->image,
|
|
bios->image_size);
|
|
+ }
|
|
|
|
if ( (hvm_info->nr_vcpus > 1) || hvm_info->apic_mode )
|
|
{
|
|
--- a/tools/firmware/hvmloader/rombios.c
|
|
+++ b/tools/firmware/hvmloader/rombios.c
|
|
@@ -127,6 +127,8 @@ static void rombios_load(const struct bi
|
|
uint32_t bioshigh;
|
|
struct rombios_info *info;
|
|
|
|
+ BUILD_BUG_ON(sizeof(rombios) > 0x100000 - ROMBIOS_PHYSICAL_ADDRESS);
|
|
+
|
|
memcpy((void *)config->bios_address, config->image,
|
|
config->image_size);
|
|
|
|
@@ -206,8 +208,6 @@ static void rombios_create_smbios_tables
|
|
SMBIOS_PHYSICAL_END);
|
|
}
|
|
|
|
-//BUILD_BUG_ON(sizeof(rombios) > (0x00100000U - ROMBIOS_PHYSICAL_ADDRESS));
|
|
-
|
|
struct bios_config rombios_config = {
|
|
.name = "ROMBIOS",
|
|
|
|
--- a/tools/firmware/hvmloader/seabios.c
|
|
+++ b/tools/firmware/hvmloader/seabios.c
|
|
@@ -133,15 +133,13 @@ static void seabios_setup_e820(void)
|
|
dump_e820_table(e820, info->e820_nr);
|
|
}
|
|
|
|
-//BUILD_BUG_ON(sizeof(seabios) > (0x00100000U - SEABIOS_PHYSICAL_ADDRESS));
|
|
-
|
|
struct bios_config seabios_config = {
|
|
.name = "SeaBIOS",
|
|
|
|
.image = seabios,
|
|
.image_size = sizeof(seabios),
|
|
|
|
- .bios_address = SEABIOS_PHYSICAL_ADDRESS,
|
|
+ .bios_address = 0x100000 - sizeof(seabios),
|
|
|
|
.load_roms = NULL,
|
|
|