tree: https://github.com/agraf/linux-2.6.git kvm-ppc-svcpu-preempt head: f9e3ca44c9a9d4930d6dccaacb518734746059c3 commit: f9e3ca44c9a9d4930d6dccaacb518734746059c3 [1/1] KVM: PPC: Fix svcpu copying with preemption enabled config: powerpc-allmodconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout f9e3ca44c9a9d4930d6dccaacb518734746059c3 # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): arch/powerpc/kvm/book3s_pr.c: In function 'kvmppc_copy_to_svcpu': >> arch/powerpc/kvm/book3s_pr.c:148:44: error: too few arguments to function 'svcpu_get' struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(); ^~~~~~~~~ In file included from arch/powerpc/include/asm/kvm_book3s.h:267:0, from arch/powerpc/include/asm/kvm_ppc.h:33, from arch/powerpc/kvm/book3s_pr.c:33: arch/powerpc/include/asm/kvm_book3s_64.h:32:49: note: declared here static inline struct kvmppc_book3s_shadow_vcpu *svcpu_get(struct kvm_vcpu *vcpu) ^~~~~~~~~ >> arch/powerpc/kvm/book3s_pr.c:182:2: error: too few arguments to function 'svcpu_put' svcpu_put(); ^~~~~~~~~ In file included from arch/powerpc/include/asm/kvm_book3s.h:267:0, from arch/powerpc/include/asm/kvm_ppc.h:33, from arch/powerpc/kvm/book3s_pr.c:33: arch/powerpc/include/asm/kvm_book3s_64.h:38:20: note: declared here static inline void svcpu_put(struct kvmppc_book3s_shadow_vcpu *svcpu) ^~~~~~~~~ arch/powerpc/kvm/book3s_pr.c: In function 'kvmppc_copy_from_svcpu': arch/powerpc/kvm/book3s_pr.c:188:44: error: too few arguments to function 'svcpu_get' struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(); ^~~~~~~~~ In file included from arch/powerpc/include/asm/kvm_book3s.h:267:0, from arch/powerpc/include/asm/kvm_ppc.h:33, from arch/powerpc/kvm/book3s_pr.c:33: arch/powerpc/include/asm/kvm_book3s_64.h:32:49: note: declared here static inline struct kvmppc_book3s_shadow_vcpu *svcpu_get(struct kvm_vcpu *vcpu) ^~~~~~~~~ arch/powerpc/kvm/book3s_pr.c:234:2: error: too few arguments to function 'svcpu_put' svcpu_put(); ^~~~~~~~~ In file included from arch/powerpc/include/asm/kvm_book3s.h:267:0, from arch/powerpc/include/asm/kvm_ppc.h:33, from arch/powerpc/kvm/book3s_pr.c:33: arch/powerpc/include/asm/kvm_book3s_64.h:38:20: note: declared here static inline void svcpu_put(struct kvmppc_book3s_shadow_vcpu *svcpu) ^~~~~~~~~ vim +/svcpu_get +148 arch/powerpc/kvm/book3s_pr.c 144 145 /* Copy data needed by real-mode code from vcpu to shadow vcpu */ 146 void kvmppc_copy_to_svcpu(struct kvm_vcpu *vcpu) 147 { > 148 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(); 149 150 svcpu->gpr[0] = vcpu->arch.gpr[0]; 151 svcpu->gpr[1] = vcpu->arch.gpr[1]; 152 svcpu->gpr[2] = vcpu->arch.gpr[2]; 153 svcpu->gpr[3] = vcpu->arch.gpr[3]; 154 svcpu->gpr[4] = vcpu->arch.gpr[4]; 155 svcpu->gpr[5] = vcpu->arch.gpr[5]; 156 svcpu->gpr[6] = vcpu->arch.gpr[6]; 157 svcpu->gpr[7] = vcpu->arch.gpr[7]; 158 svcpu->gpr[8] = vcpu->arch.gpr[8]; 159 svcpu->gpr[9] = vcpu->arch.gpr[9]; 160 svcpu->gpr[10] = vcpu->arch.gpr[10]; 161 svcpu->gpr[11] = vcpu->arch.gpr[11]; 162 svcpu->gpr[12] = vcpu->arch.gpr[12]; 163 svcpu->gpr[13] = vcpu->arch.gpr[13]; 164 svcpu->cr = vcpu->arch.cr; 165 svcpu->xer = vcpu->arch.xer; 166 svcpu->ctr = vcpu->arch.ctr; 167 svcpu->lr = vcpu->arch.lr; 168 svcpu->pc = vcpu->arch.pc; 169 #ifdef CONFIG_PPC_BOOK3S_64 170 svcpu->shadow_fscr = vcpu->arch.shadow_fscr; 171 #endif 172 /* 173 * Now also save the current time base value. We use this 174 * to find the guest purr and spurr value. 175 */ 176 vcpu->arch.entry_tb = get_tb(); 177 vcpu->arch.entry_vtb = get_vtb(); 178 if (cpu_has_feature(CPU_FTR_ARCH_207S)) 179 vcpu->arch.entry_ic = mfspr(SPRN_IC); 180 svcpu->in_use = true; 181 > 182 svcpu_put(); 183 } 184 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip