From 9d0bd0d10b93a43320311338740ff7de759a875f Mon Sep 17 00:00:00 2001 From: Richard W.M. Jones Date: Aug 20 2009 12:56:37 +0000 Subject: Fix segfault when qemu-kvm is invoked inside a VM (#516543) --- diff --git a/qemu-fix-no-kvm-segfault.patch b/qemu-fix-no-kvm-segfault.patch new file mode 100644 index 0000000..25551fe --- /dev/null +++ b/qemu-fix-no-kvm-segfault.patch @@ -0,0 +1,34 @@ +From add286b6e753f14e4ae0ab6b831441aea0d35497 Mon Sep 17 00:00:00 2001 +From: Richard Jones +Date: Thu, 20 Aug 2009 13:52:20 +0100 +Subject: [PATCH] Workaround segfault when qemu-kvm runs inside a VM (RHBZ#516543). + +Regression was introduced by this commit: +http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commitdiff;h=b8083e930efc1ee85a7ad7e700dbd0f52ebb32dd + +Upstream discussion: +http://www.mail-archive.com/kvm@vger.kernel.org/msg19890.html + +Note: NOT UPSTREAM and this is something of a hack. Upstream are +still debating how they really want to fix this. +--- + exec.c | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/exec.c b/exec.c +index 705bcf2..2091516 100644 +--- a/exec.c ++++ b/exec.c +@@ -422,9 +422,6 @@ static uint8_t static_code_gen_buffer[DEFAULT_CODE_GEN_BUFFER_SIZE]; + + static void code_gen_alloc(unsigned long tb_size) + { +- if (kvm_enabled()) +- return; +- + #ifdef USE_STATIC_CODE_GEN_BUFFER + code_gen_buffer = static_code_gen_buffer; + code_gen_buffer_size = DEFAULT_CODE_GEN_BUFFER_SIZE; +-- +1.6.4 + diff --git a/qemu.spec b/qemu.spec index 77cd7b5..914223b 100644 --- a/qemu.spec +++ b/qemu.spec @@ -34,6 +34,19 @@ Patch05: qemu-fix-extboot-signrom.patch # Fix virtio_net with -net user (bug #516022) Patch06: qemu-fix-vnet-hdr-slirp-bustage.patch +# Fix segfault when qemu-kvm is invoked inside a VM (where HVM is not +# available). RHBZ#516543 +# +# Regression was introduced by this commit: +# http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commitdiff;h=b8083e930efc1ee85a7ad7e700dbd0f52ebb32dd +# +# Upstream discussion: +# http://www.mail-archive.com/kvm@vger.kernel.org/msg19890.html +# +# Note: NOT UPSTREAM and this is something of a hack. Upstream are +# still debating how they really want to fix this. +Patch07: qemu-fix-no-kvm-segfault.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel BuildRequires: rsync dev86 iasl @@ -220,6 +233,7 @@ such as kvmtrace and kvm_stat. %patch04 -p1 %patch05 -p1 %patch06 -p1 +%patch07 -p1 %build # systems like rhel build system does not have a recent enough linker so @@ -484,6 +498,9 @@ getent passwd qemu >/dev/null || \ %{_mandir}/man1/qemu-img.1* %changelog +* Thu Aug 20 2009 Richard W.M. Jones - 2:0.10.91-0.8.rc1 +- Fix segfault when qemu-kvm is invoked inside a VM (#516543) + * Tue Aug 18 2009 Mark McLoughlin - 2:0.10.91-0.7.rc1 - Fix permissions on udev rules (#517571)