From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUJYE-0006tj-Po for qemu-devel@nongnu.org; Fri, 02 Nov 2012 11:52:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUJYD-0002kY-Jm for qemu-devel@nongnu.org; Fri, 02 Nov 2012 11:52:54 -0400 Received: from cantor2.suse.de ([195.135.220.15]:34656 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUJYD-0002kP-AH for qemu-devel@nongnu.org; Fri, 02 Nov 2012 11:52:53 -0400 Message-ID: <5093EC51.4000307@suse.de> Date: Fri, 02 Nov 2012 16:52:49 +0100 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <12869995ea4f436ab76af5059fd2e9ae83c6cf9d.1351676406.git.mtosatti@redhat.com> <5093E7E8.4030007@suse.de> In-Reply-To: <5093E7E8.4030007@suse.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 27/28] target-i386: kvm_cpu_fill_host: use GET_SUPPORTED_CPUID List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcelo Tosatti , Anthony Liguori , Eduardo Habkost Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org Am 02.11.2012 16:34, schrieb Andreas F=E4rber: > Am 31.10.2012 10:40, schrieb Marcelo Tosatti: >> From: Eduardo Habkost >> >> Change the kvm_cpu_fill_host() function to use >> kvm_arch_get_supported_cpuid() instead of running the CPUID instructio= n >> directly, when checking for supported CPUID features. >> >> This should solve two problems at the same time: >> >> * "-cpu host" was not enabling features that don't need support on >> the host CPU (e.g. x2apic); >> * "check" and "enforce" options were not detecting problems when the >> host CPU did support a feature, but the KVM kernel code didn't >> support it. >> >> Signed-off-by: Eduardo Habkost >> Signed-off-by: Marcelo Tosatti >> --- >> target-i386/cpu.c | 25 +++++++++++++++---------- >> 1 files changed, 15 insertions(+), 10 deletions(-) >> >> diff --git a/target-i386/cpu.c b/target-i386/cpu.c >> index 390ed47..4c84e9f 100644 >> --- a/target-i386/cpu.c >> +++ b/target-i386/cpu.c >> @@ -773,13 +773,13 @@ static int cpu_x86_fill_model_id(char *str) >> */ >> static void kvm_cpu_fill_host(x86_def_t *x86_cpu_def) >> { >> + KVMState *s =3D kvm_state; >=20 > This broke the linux-user build: >=20 > target-i386/cpu.o: In function `kvm_cpu_fill_host': > /home/andreas/QEMU/qemu-rcar/target-i386/cpu.c:783: undefined reference > to `kvm_state' > collect2: error: ld returned 1 exit status > make[1]: *** [qemu-i386] Fehler 1 > make: *** [subdir-i386-linux-user] Fehler 2 As a quickfix this would work, but strikes me as ugly: Signed-off-by: Andreas F=E4rber diff --git a/target-i386/cpu.c b/target-i386/cpu.c index c46286a..8663623 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -780,7 +780,11 @@ static int cpu_x86_fill_model_id(char *str) */ static void kvm_cpu_fill_host(x86_def_t *x86_cpu_def) { +#ifdef CONFIG_KVM KVMState *s =3D kvm_state; +#else + KVMState *s =3D NULL; +#endif uint32_t eax =3D 0, ebx =3D 0, ecx =3D 0, edx =3D 0; assert(kvm_enabled()); Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg