From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rusty Russell Subject: Re: [PATCH 3/3] KVM: Add KVM_VCPU_GET_REG_LIST/KVM_CAP_REG_LIST. Date: Thu, 11 Oct 2012 18:41:47 +1030 Message-ID: <87lifd77i4.fsf@rustcorp.com.au> References: <1346831926-31820-1-git-send-email-rusty.russell@linaro.org> <1346831926-31820-4-git-send-email-rusty.russell@linaro.org> <20121010181239.GA10649@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, Avi Kivity , Christoffer Dall , Alexander Graf , Peter Maydell To: Marcelo Tosatti , Rusty Russell Return-path: Received: from ozlabs.org ([203.10.76.45]:36768 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754856Ab2JKUtJ (ORCPT ); Thu, 11 Oct 2012 16:49:09 -0400 In-Reply-To: <20121010181239.GA10649@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: Marcelo Tosatti writes: > On Wed, Sep 05, 2012 at 05:28:46PM +0930, Rusty Russell wrote: ... >> +struct kvm_reg_list { >> + __u64 n; /* number of registers in reg[] */ >> + __u64 reg[0]; >> +}; >> >> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c >> index 169a001..453fe93 100644 >> --- a/virt/kvm/kvm_main.c >> +++ b/virt/kvm/kvm_main.c >> @@ -2082,6 +2082,23 @@ out_free2: >> break; >> } >> #endif >> +#ifdef KVM_HAVE_REG_LIST >> + case KVM_VCPU_GET_REG_LIST: { >> + struct kvm_reg_list __user *user_list = argp; >> + struct kvm_reg_list reg_list; >> + unsigned n; >> + >> + if (copy_from_user(®_list, user_list, sizeof reg_list)) >> + return -EFAULT; >> + n = reg_list.n; >> + reg_list.n = kvm_arch_num_regs(vcpu); > > The code does not actually support more than 2^32 registers, does it? > Why "__u64 n" ? Well, the interface is simpler, and the alignment issues vanish. kvm_arch_num_regs could return a 64-bit number in future if we want to get completely insane :) Cheers, Rusty.