From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Mackerras Date: Mon, 20 Jan 2020 03:46:58 +0000 Subject: Re: [PATCH v2 41/45] KVM: PPC: Move all vcpu init code into kvm_arch_vcpu_create() Message-Id: <20200120034658.GD14307@blackberry> List-Id: References: <20191218215530.2280-1-sean.j.christopherson@intel.com> <20191218215530.2280-42-sean.j.christopherson@intel.com> In-Reply-To: <20191218215530.2280-42-sean.j.christopherson@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Sean Christopherson Cc: Marc Zyngier , James Hogan , Christian Borntraeger , Janosch Frank , Paolo Bonzini , James Morse , Julien Thierry , Suzuki K Poulose , David Hildenbrand , Cornelia Huck , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org, kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kurz On Wed, Dec 18, 2019 at 01:55:26PM -0800, Sean Christopherson wrote: > Fold init() into create() now that the two are called back-to-back by > common KVM code (kvm_vcpu_init() calls kvm_arch_vcpu_init() as its last > action, and kvm_vm_ioctl_create_vcpu() calls kvm_arch_vcpu_create() > immediately thereafter). Rinse and repeat for kvm_arch_vcpu_uninit() > and kvm_arch_vcpu_destroy(). This paves the way for removing > kvm_arch_vcpu_{un}init() entirely. > > Note, calling kvmppc_mmu_destroy() if kvmppc_core_vcpu_create() fails > may or may not be necessary. Move it along with the more obvious call > to kvmppc_subarch_vcpu_uninit() so as not to inadvertantly introduce a > functional change and/or bug. > > No functional change intended. > > Signed-off-by: Sean Christopherson This doesn't compile. I get: CC [M] arch/powerpc/kvm/powerpc.o /home/paulus/kernel/kvm/arch/powerpc/kvm/powerpc.c: In function ‘kvm_arch_vcpu_create’: /home/paulus/kernel/kvm/arch/powerpc/kvm/powerpc.c:733:34: error: ‘kvmppc_decrementer_wakeup’ undeclared (first use in this function) vcpu->arch.dec_timer.function = kvmppc_decrementer_wakeup; ^ /home/paulus/kernel/kvm/arch/powerpc/kvm/powerpc.c:733:34: note: each undeclared identifier is reported only once for each function it appears in /home/paulus/kernel/kvm/arch/powerpc/kvm/powerpc.c: At top level: /home/paulus/kernel/kvm/arch/powerpc/kvm/powerpc.c:794:29: warning: ‘kvmppc_decrementer_wakeup’ defined but not used [-Wunused-function] static enum hrtimer_restart kvmppc_decrementer_wakeup(struct hrtimer *timer) ^ make[3]: *** [/home/paulus/kernel/kvm/scripts/Makefile.build:266: arch/powerpc/kvm/powerpc.o] Error 1 The problem is that kvmppc_decrementer_wakeup() is a static function defined in this file (arch/powerpc/kvm/powerpc.c) after kvm_arch_vcpu_create() but before kvm_arch_vcpu_init(). You need a forward static declaration of kvmppc_decrementer_wakeup() before kvm_arch_vcpu_create(), or else move one or other function. Paul.