[kvmarm:kvm-arm64/nv-wip-v5.0-rc1 46/75] arch/arm/kvm/../../../virt/kvm/arm/arm.c:125:8: error: implicit declaration of function 'kvm_init_stage2_mmu'; did you mean 'kvm_free_stage2_pgd'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git kvm-arm64/nv-wip-v5.0-rc1
head:   688c386ca096f2c1f2eee386697586c88df5d5bc
commit: 4d8a6cc25603cc92352d861970f1a678411af963 [46/75] KVM: arm64: nv: Move last_vcpu_ran to be per s2 mmu
config: arm-axm55xx_defconfig (attached as .config)
compiler: arm-linux-gnueabi-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 4d8a6cc25603cc92352d861970f1a678411af963
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=arm 

All error/warnings (new ones prefixed by >>):

   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_init_vm':
>> arch/arm/kvm/../../../virt/kvm/arm/arm.c:125:8: error: implicit declaration of function 'kvm_init_stage2_mmu'; did you mean 'kvm_free_stage2_pgd'? [-Werror=implicit-function-declaration]
     ret = kvm_init_stage2_mmu(kvm, &kvm->arch.mmu);
           ^~~~~~~~~~~~~~~~~~~
           kvm_free_stage2_pgd
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:125:43: error: 'struct kvm_arch' has no member named 'mmu'
     ret = kvm_init_stage2_mmu(kvm, &kvm->arch.mmu);
                                              ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:129:11: error: 'struct kvm_arch' has no member named 'nested_mmus'
     kvm->arch.nested_mmus = NULL;
              ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:130:11: error: 'struct kvm_arch' has no member named 'nested_mmus_size'
     kvm->arch.nested_mmus_size = 0;
              ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:144:32: error: 'struct kvm_arch' has no member named 'mmu'
     kvm_free_stage2_pgd(&kvm->arch.mmu);
                                   ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_vcpu_init':
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:343:12: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
     vcpu->arch.hw_mmu = &vcpu->kvm->arch.mmu;
               ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:343:38: error: 'struct kvm_arch' has no member named 'mmu'
     vcpu->arch.hw_mmu = &vcpu->kvm->arch.mmu;
                                         ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_vcpu_load':
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:352:2: error: implicit declaration of function 'kvm_vcpu_load_hw_mmu'; did you mean 'kvm_vcpu_load_sysregs'? [-Werror=implicit-function-declaration]
     kvm_vcpu_load_hw_mmu(vcpu);
     ^~~~~~~~~~~~~~~~~~~~
     kvm_vcpu_load_sysregs
   In file included from include/asm-generic/percpu.h:7:0,
                    from arch/arm/include/asm/percpu.h:50,
                    from include/linux/percpu.h:13,
                    from include/linux/context_tracking_state.h:5,
                    from include/linux/vtime.h:5,
                    from include/linux/hardirq.h:8,
                    from include/linux/kvm_host.h:10,
                    from arch/arm/kvm/../../../virt/kvm/arm/arm.c:23:
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:36: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                                       ^
   include/linux/percpu-defs.h:219:47: note: in definition of macro '__verify_pcpu_ptr'
     const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
                                                  ^~~
>> arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:13: note: in expansion of macro 'this_cpu_ptr'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                ^~~~~~~~~~~~
   In file included from include/linux/compiler_types.h:68:0,
                    from <command-line>:0:
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:36: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                                       ^
   include/linux/compiler-gcc.h:57:34: note: in definition of macro 'RELOC_HIDE'
     __asm__ ("" : "=r"(__ptr) : "0"(ptr));    \
                                     ^~~
   include/linux/percpu-defs.h:249:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
     SHIFT_PERCPU_PTR(ptr, my_cpu_offset);    \
     ^~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:13: note: in expansion of macro 'this_cpu_ptr'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                ^~~~~~~~~~~~
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:36: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                                       ^
   include/linux/compiler-gcc.h:57:34: note: in definition of macro 'RELOC_HIDE'
     __asm__ ("" : "=r"(__ptr) : "0"(ptr));    \
                                     ^~~
   include/linux/percpu-defs.h:249:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
     SHIFT_PERCPU_PTR(ptr, my_cpu_offset);    \
     ^~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:13: note: in expansion of macro 'this_cpu_ptr'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                ^~~~~~~~~~~~
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:36: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                                       ^
   include/linux/compiler-gcc.h:58:10: note: in definition of macro 'RELOC_HIDE'
     (typeof(ptr)) (__ptr + (off));     \
             ^~~
   include/linux/percpu-defs.h:249:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
     SHIFT_PERCPU_PTR(ptr, my_cpu_offset);    \
     ^~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:13: note: in expansion of macro 'this_cpu_ptr'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                ^~~~~~~~~~~~
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:36: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                                       ^
   include/linux/compiler-gcc.h:58:10: note: in definition of macro 'RELOC_HIDE'
     (typeof(ptr)) (__ptr + (off));     \
             ^~~
   include/linux/percpu-defs.h:249:2: note: in expansion of macro 'SHIFT_PERCPU_PTR'
     SHIFT_PERCPU_PTR(ptr, my_cpu_offset);    \
     ^~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/arm.c:354:13: note: in expansion of macro 'this_cpu_ptr'
     last_ran = this_cpu_ptr(vcpu->arch.hw_mmu->last_vcpu_ran);
                ^~~~~~~~~~~~
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:361:39: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
      u64 vttbr = kvm_get_vttbr(vcpu->arch.hw_mmu);
                                          ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_vcpu_put':
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:389:2: error: implicit declaration of function 'kvm_vcpu_put_hw_mmu'; did you mean 'kvm_vcpu_dabt_is_cm'? [-Werror=implicit-function-declaration]
     kvm_vcpu_put_hw_mmu(vcpu);
     ^~~~~~~~~~~~~~~~~~~
     kvm_vcpu_dabt_is_cm
   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_vcpu_ioctl_run':
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:672:26: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
      update_vmid(&vcpu->arch.hw_mmu->vmid);
                             ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:721:48: error: 'struct kvm_vcpu_arch' has no member named 'hw_mmu'
      if (ret <= 0 || need_new_vmid_gen(&vcpu->arch.hw_mmu->vmid) ||
                                                   ^
   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_vcpu_set_target':
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:956:15: error: 'KVM_ARM_VCPU_NESTED_VIRT' undeclared (first use in this function); did you mean 'KVM_ARM_VCPU_TIMER_CTRL'?
     if (test_bit(KVM_ARM_VCPU_NESTED_VIRT, vcpu->arch.features)) {
                  ^~~~~~~~~~~~~~~~~~~~~~~~
                  KVM_ARM_VCPU_TIMER_CTRL
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:956:15: note: each undeclared identifier is reported only once for each function it appears in
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:959:8: error: implicit declaration of function 'cpus_have_const_cap'; did you mean 'cpu_have_feature'? [-Werror=implicit-function-declaration]
      if (!cpus_have_const_cap(ARM64_HAS_NESTED_VIRT))
           ^~~~~~~~~~~~~~~~~~~
           cpu_have_feature
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:959:28: error: 'ARM64_HAS_NESTED_VIRT' undeclared (first use in this function); did you mean 'KVM_ARM_VCPU_NESTED_VIRT'?
      if (!cpus_have_const_cap(ARM64_HAS_NESTED_VIRT))
                               ^~~~~~~~~~~~~~~~~~~~~
                               KVM_ARM_VCPU_NESTED_VIRT
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:962:9: error: implicit declaration of function 'kvm_vcpu_init_nested'; did you mean 'kvm_vcpu_initialized'? [-Werror=implicit-function-declaration]
      ret = kvm_vcpu_init_nested(vcpu);
            ^~~~~~~~~~~~~~~~~~~~
            kvm_vcpu_initialized
   arch/arm/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_vcpu_ioctl_vcpu_init':
   arch/arm/kvm/../../../virt/kvm/arm/arm.c:986:3: error: implicit declaration of function 'kvm_nested_s2_clear'; did you mean '__nodes_clear'? [-Werror=implicit-function-declaration]
      kvm_nested_s2_clear(vcpu->kvm);
      ^~~~~~~~~~~~~~~~~~~
      __nodes_clear
   cc1: some warnings being treated as errors

vim +125 arch/arm/kvm/../../../virt/kvm/arm/arm.c

  > 23	#include <linux/kvm_host.h>
    24	#include <linux/list.h>
    25	#include <linux/module.h>
    26	#include <linux/vmalloc.h>
    27	#include <linux/fs.h>
    28	#include <linux/mman.h>
    29	#include <linux/sched.h>
    30	#include <linux/kvm.h>
    31	#include <linux/kvm_irqfd.h>
    32	#include <linux/irqbypass.h>
    33	#include <linux/sched/stat.h>
    34	#include <trace/events/kvm.h>
    35	#include <kvm/arm_pmu.h>
    36	#include <kvm/arm_psci.h>
    37	
    38	#define CREATE_TRACE_POINTS
    39	#include "trace.h"
    40	
    41	#include <linux/uaccess.h>
    42	#include <asm/ptrace.h>
    43	#include <asm/mman.h>
    44	#include <asm/tlbflush.h>
    45	#include <asm/cacheflush.h>
    46	#include <asm/cpufeature.h>
    47	#include <asm/virt.h>
    48	#include <asm/kvm_arm.h>
    49	#include <asm/kvm_asm.h>
    50	#include <asm/kvm_mmu.h>
    51	#include <asm/kvm_emulate.h>
    52	#include <asm/kvm_coproc.h>
    53	#include <asm/sections.h>
    54	
    55	#ifdef REQUIRES_VIRT
    56	__asm__(".arch_extension	virt");
    57	#endif
    58	
    59	DEFINE_PER_CPU(kvm_cpu_context_t, kvm_host_cpu_state);
    60	static DEFINE_PER_CPU(unsigned long, kvm_arm_hyp_stack_page);
    61	
    62	/* Per-CPU variable containing the currently running vcpu. */
    63	static DEFINE_PER_CPU(struct kvm_vcpu *, kvm_arm_running_vcpu);
    64	
    65	/* The VMID used in the VTTBR */
    66	static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
    67	static u32 kvm_next_vmid;
    68	static DEFINE_SPINLOCK(kvm_vmid_lock);
    69	
    70	static bool vgic_present;
    71	
    72	static DEFINE_PER_CPU(unsigned char, kvm_arm_hardware_enabled);
    73	
    74	static void kvm_arm_set_running_vcpu(struct kvm_vcpu *vcpu)
    75	{
    76		__this_cpu_write(kvm_arm_running_vcpu, vcpu);
    77	}
    78	
    79	DEFINE_STATIC_KEY_FALSE(userspace_irqchip_in_use);
    80	
    81	/**
    82	 * kvm_arm_get_running_vcpu - get the vcpu running on the current CPU.
    83	 * Must be called from non-preemptible context
    84	 */
    85	struct kvm_vcpu *kvm_arm_get_running_vcpu(void)
    86	{
    87		return __this_cpu_read(kvm_arm_running_vcpu);
    88	}
    89	
    90	/**
    91	 * kvm_arm_get_running_vcpus - get the per-CPU array of currently running vcpus.
    92	 */
    93	struct kvm_vcpu * __percpu *kvm_get_running_vcpus(void)
    94	{
    95		return &kvm_arm_running_vcpu;
    96	}
    97	
    98	int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu)
    99	{
   100		return kvm_vcpu_exiting_guest_mode(vcpu) == IN_GUEST_MODE;
   101	}
   102	
   103	int kvm_arch_hardware_setup(void)
   104	{
   105		return 0;
   106	}
   107	
   108	void kvm_arch_check_processor_compat(void *rtn)
   109	{
   110		*(int *)rtn = 0;
   111	}
   112	
   113	/**
   114	 * kvm_arch_init_vm - initializes a VM data structure
   115	 * @kvm:	pointer to the KVM struct
   116	 */
   117	int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
   118	{
   119		int ret;
   120	
   121		ret = kvm_arm_setup_stage2(kvm, type);
   122		if (ret)
   123			return ret;
   124	
 > 125		ret = kvm_init_stage2_mmu(kvm, &kvm->arch.mmu);
   126		if (ret)
   127			return ret;
   128	
   129		kvm->arch.nested_mmus = NULL;
   130		kvm->arch.nested_mmus_size = 0;
   131	
   132		ret = create_hyp_mappings(kvm, kvm + 1, PAGE_HYP);
   133		if (ret)
   134			goto out_free_stage2_pgd;
   135	
   136		kvm_vgic_early_init(kvm);
   137	
   138		/* The maximum number of VCPUs is limited by the host's GIC model */
   139		kvm->arch.max_vcpus = vgic_present ?
   140					kvm_vgic_get_max_vcpus() : KVM_MAX_VCPUS;
   141	
   142		return ret;
   143	out_free_stage2_pgd:
   144		kvm_free_stage2_pgd(&kvm->arch.mmu);
   145		return ret;
   146	}
   147	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux