From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 2/2] KVM: Mask KVM_GET_SUPPORTED_CPUID data with Linux cpuid info Date: Tue, 09 Nov 2010 16:08:02 +0200 Message-ID: <4CD955C2.20505@redhat.com> References: <1287927526-3234-1-git-send-email-avi@redhat.com> <1287927526-3234-3-git-send-email-avi@redhat.com> <20101101155817.GB1429@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Marcelo Tosatti Return-path: Received: from mx1.redhat.com ([209.132.183.28]:38375 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751221Ab0KIOIG (ORCPT ); Tue, 9 Nov 2010 09:08:06 -0500 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oA9E8506006617 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 9 Nov 2010 09:08:05 -0500 In-Reply-To: <20101101155817.GB1429@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: On 11/01/2010 05:58 PM, Marcelo Tosatti wrote: > On Sun, Oct 24, 2010 at 03:38:46PM +0200, Avi Kivity wrote: > > This allows Linux to mask cpuid bits if, for example, nx is enabled on only > > some cpus. > > > > Signed-off-by: Avi Kivity > > --- > > arch/x86/kvm/x86.c | 9 +++++++++ > > 1 files changed, 9 insertions(+), 0 deletions(-) > > > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > > index 48ce015..54fda7e 100644 > > --- a/arch/x86/kvm/x86.c > > +++ b/arch/x86/kvm/x86.c > > @@ -2229,6 +2229,11 @@ out: > > return r; > > } > > > > +static void cpuid_mask(u32 *word, int wordnum) > > +{ > > + *word&= boot_cpu_data.x86_capability[wordnum]; > > +} > > + > > static void do_cpuid_1_ent(struct kvm_cpuid_entry2 *entry, u32 function, > > u32 index) > > { > > @@ -2303,7 +2308,9 @@ static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, > > break; > > case 1: > > entry->edx&= kvm_supported_word0_x86_features; > > + cpuid_mask(&entry->edx, 0); > > entry->ecx&= kvm_supported_word4_x86_features; > > + cpuid_mask(&entry->edx, 4); > > ecx? > Yes. Will repost. -- error compiling committee.c: too many arguments to function