From patchwork Fri Nov 2 15:52:49 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1689201 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 758583FCDE for ; Fri, 2 Nov 2012 15:53:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758400Ab2KBPwy (ORCPT ); Fri, 2 Nov 2012 11:52:54 -0400 Received: from cantor2.suse.de ([195.135.220.15]:34657 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754415Ab2KBPwx (ORCPT ); Fri, 2 Nov 2012 11:52:53 -0400 Received: from relay2.suse.de (unknown [195.135.220.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 2DE33A0FED; Fri, 2 Nov 2012 16:52:52 +0100 (CET) Message-ID: <5093EC51.4000307@suse.de> Date: Fri, 02 Nov 2012 16:52:49 +0100 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= Organization: SUSE LINUX Products GmbH User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121025 Thunderbird/16.0.2 MIME-Version: 1.0 To: Marcelo Tosatti , Anthony Liguori , Eduardo Habkost Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org Subject: Re: [Qemu-devel] [PATCH 27/28] target-i386: kvm_cpu_fill_host: use GET_SUPPORTED_CPUID References: <12869995ea4f436ab76af5059fd2e9ae83c6cf9d.1351676406.git.mtosatti@redhat.com> <5093E7E8.4030007@suse.de> In-Reply-To: <5093E7E8.4030007@suse.de> X-Enigmail-Version: 1.5a1pre Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Am 02.11.2012 16:34, schrieb Andreas Färber: > 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 instruction >> 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 = kvm_state; > > This broke the linux-user build: > > 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ärber Andreas 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 = kvm_state; +#else + KVMState *s = NULL; +#endif uint32_t eax = 0, ebx = 0, ecx = 0, edx = 0; assert(kvm_enabled());