From 146aeeca02f793f4858caa7963ec62c9d9007429 Mon Sep 17 00:00:00 2001 From: nox Date: Wed, 13 May 2009 20:41:48 +0000 Subject: - Update to 0.10.4 - from the official announcement: N.B. This release contains a qcow2 corruption fix. If you use qcow2 disk images, it's strongly advised that you upgrade to 0.10.4. - Improve block range checks to remove integer overflow (Kevin Wolf) - e1000: do not re-init PCI config space 0 (Amit Shah) - fix AIO deletion race (Alex Graf) - reset option roms on reboot (Glauber Costa) - fix qcow2 corruption in cluster freeing (Gleb Natapov) - Enable power button event generation (Gleb Natapov) - Added a cherry picked commit from stable branch that fixes -kernel. --- emulators/qemu/Makefile | 2 +- emulators/qemu/distinfo | 6 +- .../patch-faf8a63492cd98f00f7daff001e0d27b27038bec | 85 ++++++++++++++++++++++ 3 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 emulators/qemu/files/patch-faf8a63492cd98f00f7daff001e0d27b27038bec diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile index 648b7b0974e4..707d5a42ac87 100644 --- a/emulators/qemu/Makefile +++ b/emulators/qemu/Makefile @@ -6,7 +6,7 @@ # PORTNAME= qemu -PORTVERSION= 0.10.3 +PORTVERSION= 0.10.4 CATEGORIES= emulators MASTER_SITES= ${MASTER_SITE_SAVANNAH} \ http://bellard.org/qemu/ diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo index 4071fd579742..45d9a846eec8 100644 --- a/emulators/qemu/distinfo +++ b/emulators/qemu/distinfo @@ -1,3 +1,3 @@ -MD5 (qemu/qemu-0.10.3.tar.gz) = 320d6c536c8a1288cdc6c809f487e6d7 -SHA256 (qemu/qemu-0.10.3.tar.gz) = 89540d7a8c880a6ae33f8a55d55d580f3f03c10b02e32b7323719b3354f7b077 -SIZE (qemu/qemu-0.10.3.tar.gz) = 3661566 +MD5 (qemu/qemu-0.10.4.tar.gz) = 4cdec0df66749281fbf73039fdf7f81b +SHA256 (qemu/qemu-0.10.4.tar.gz) = bc370b4096fd516142cc5d8cbbae599cde8ef3f2bec33b21c95c2c5e3e3f3e5e +SIZE (qemu/qemu-0.10.4.tar.gz) = 3749481 diff --git a/emulators/qemu/files/patch-faf8a63492cd98f00f7daff001e0d27b27038bec b/emulators/qemu/files/patch-faf8a63492cd98f00f7daff001e0d27b27038bec new file mode 100644 index 000000000000..e53afb35e87e --- /dev/null +++ b/emulators/qemu/files/patch-faf8a63492cd98f00f7daff001e0d27b27038bec @@ -0,0 +1,85 @@ +From faf8a63492cd98f00f7daff001e0d27b27038bec Mon Sep 17 00:00:00 2001 +From: Anthony Liguori +Date: Wed, 13 May 2009 08:06:54 -0500 +Subject: [PATCH] Revert "reset state for load_linux" + +This reverts commit 2da1e398641d9fccf683645c808dee0d088f84cf. + +This fix on the stable branch: + + commit 2da1e398641d9fccf683645c808dee0d088f84cf + Author: Glauber Costa + Date: Fri May 8 02:22:13 2009 -0300 + + reset state for load_linux + +Caused -kernel to break. + +The problem is that we're passing the ROM's ram_addr_t to +load_linux() rather than its target_phys_addr_t. We also +need to register the memory before trying to write to +it. + +Signed-off-by: Mark McLoughlin +Signed-off-by: Anthony Liguori +--- + hw/pc.c | 15 ++++----------- + 1 files changed, 4 insertions(+), 11 deletions(-) + +diff --git a/hw/pc.c b/hw/pc.c +index 1b16373..c33cd75 100644 +--- a/hw/pc.c ++++ b/hw/pc.c +@@ -471,7 +471,7 @@ static void bochs_bios_init(void) + + /* Generate an initial boot sector which sets state and jump to + a specified vector */ +-static void generate_bootsect(target_phys_addr_t option_rom, ++static void generate_bootsect(uint8_t *option_rom, + uint32_t gpr[8], uint16_t segs[6], uint16_t ip) + { + uint8_t rom[512], *p, *reloc; +@@ -545,8 +545,7 @@ static void generate_bootsect(target_phys_addr_t option_rom, + sum += rom[i]; + rom[sizeof(rom) - 1] = -sum; + +- cpu_physical_memory_write_rom(option_rom, rom, sizeof(rom)); +- option_rom_setup_reset(option_rom, sizeof (rom)); ++ memcpy(option_rom, rom, sizeof(rom)); + } + + static long get_file_size(FILE *f) +@@ -563,7 +562,7 @@ static long get_file_size(FILE *f) + return size; + } + +-static void load_linux(target_phys_addr_t option_rom, ++static void load_linux(uint8_t *option_rom, + const char *kernel_filename, + const char *initrd_filename, + const char *kernel_cmdline) +@@ -714,12 +713,6 @@ static void load_linux(target_phys_addr_t option_rom, + memset(gpr, 0, sizeof gpr); + gpr[4] = cmdline_addr-real_addr-16; /* SP (-16 is paranoia) */ + +- option_rom_setup_reset(real_addr, setup_size); +- option_rom_setup_reset(prot_addr, kernel_size); +- option_rom_setup_reset(cmdline_addr, cmdline_size); +- if (initrd_filename) +- option_rom_setup_reset(initrd_addr, initrd_size); +- + generate_bootsect(option_rom, gpr, seg, 0); + } + +@@ -927,7 +920,7 @@ vga_bios_error: + offset = 0; + if (linux_boot) { + option_rom_offset = qemu_ram_alloc(TARGET_PAGE_SIZE); +- load_linux(option_rom_offset, ++ load_linux(phys_ram_base + option_rom_offset, + kernel_filename, initrd_filename, kernel_cmdline); + cpu_register_physical_memory(0xd0000, TARGET_PAGE_SIZE, + option_rom_offset); +-- +1.6.2.5 + -- cgit