* [kvmarm:kvm-arm64/nv-wip-v5.0-rc1 40/75] arch/arm/kvm/../../../virt/kvm/arm/arm.c:133:39: error: 'struct kvm_arch' has no member named 'mmu'
@ 2019-01-09 6:10 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-01-09 6:10 UTC (permalink / raw)
To: Christoffer Dall; +Cc: Marc Zyngier, kbuild-all, linux-arm-kernel, kvmarm
[-- Attachment #1: Type: text/plain, Size: 36414 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git kvm-arm64/nv-wip-v5.0-rc1
head: 688c386ca096f2c1f2eee386697586c88df5d5bc
commit: 80fce777386b95e1c6f5fdf09237b73397a1016f [40/75] KVM: arm/arm64: nv: Factor out stage 2 page table data from struct kvm
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 80fce777386b95e1c6f5fdf09237b73397a1016f
# 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:133:39: error: 'struct kvm_arch' has no member named 'mmu'
ret = kvm_alloc_stage2_pgd(&kvm->arch.mmu);
^
arch/arm/kvm/../../../virt/kvm/arm/arm.c:138:11: error: 'struct kvm_arch' has no member named 'mmu'
kvm->arch.mmu.vmid.vmid_gen = 0;
^
arch/arm/kvm/../../../virt/kvm/arm/arm.c:139:11: error: 'struct kvm_arch' has no member named 'mmu'
kvm->arch.mmu.kvm = kvm;
^
arch/arm/kvm/../../../virt/kvm/arm/arm.c:153: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:358: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:358: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_ioctl_run':
arch/arm/kvm/../../../virt/kvm/arm/arm.c:681: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:730: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/mmu.c: In function 'kvm_flush_remote_tlbs':
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:66:46: error: 'struct kvm_arch' has no member named 'mmu'
kvm_call_hyp(__kvm_tlb_flush_vmid, kvm->arch.mmu);
^
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:43: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:108:40: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_dissolve_pmd(struct kvm_s2_mmu *mmu, phys_addr_t addr, pmd_t *pmd)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_dissolve_pmd':
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:114:25: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:127:40: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_dissolve_pud(struct kvm_s2_mmu *mmu, phys_addr_t addr, pud_t *pudp)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_dissolve_pud':
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:129:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:135:25: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:129:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:171:43: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void clear_stage2_pgd_entry(struct kvm_s2_mmu *mmu, pgd_t *pgd, phys_addr_t addr)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'clear_stage2_pgd_entry':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:173:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:177:25: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:173:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:182:43: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void clear_stage2_pud_entry(struct kvm_s2_mmu *mmu, pud_t *pud, phys_addr_t addr)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'clear_stage2_pud_entry':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:184:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:189:25: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:184:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:194:43: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void clear_stage2_pmd_entry(struct kvm_s2_mmu *mmu, pmd_t *pmd, phys_addr_t addr)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'clear_stage2_pmd_entry':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:199:25: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:257:38: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void unmap_stage2_ptes(struct kvm_s2_mmu *mmu, pmd_t *pmd,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'unmap_stage2_ptes':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:269:27: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:280:26: error: passing argument 1 of 'clear_stage2_pmd_entry' from incompatible pointer type [-Werror=incompatible-pointer-types]
clear_stage2_pmd_entry(mmu, pmd, start_addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:194:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void clear_stage2_pmd_entry(struct kvm_s2_mmu *mmu, pmd_t *pmd, phys_addr_t addr)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:283:38: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void unmap_stage2_pmds(struct kvm_s2_mmu *mmu, pud_t *pud,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'unmap_stage2_pmds':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:286:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:298:28: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:304:23: error: passing argument 1 of 'unmap_stage2_ptes' from incompatible pointer type [-Werror=incompatible-pointer-types]
unmap_stage2_ptes(mmu, pmd, addr, next);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:257:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void unmap_stage2_ptes(struct kvm_s2_mmu *mmu, pmd_t *pmd,
^~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:310:26: error: passing argument 1 of 'clear_stage2_pud_entry' from incompatible pointer type [-Werror=incompatible-pointer-types]
clear_stage2_pud_entry(mmu, pud, start_addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:182:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void clear_stage2_pud_entry(struct kvm_s2_mmu *mmu, pud_t *pud, phys_addr_t addr)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:313:38: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void unmap_stage2_puds(struct kvm_s2_mmu *mmu, pgd_t *pgd,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'unmap_stage2_puds':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:316:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:328:28: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:332:23: error: passing argument 1 of 'unmap_stage2_pmds' from incompatible pointer type [-Werror=incompatible-pointer-types]
unmap_stage2_pmds(mmu, pud, addr, next);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:283:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void unmap_stage2_pmds(struct kvm_s2_mmu *mmu, pud_t *pud,
^~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:338:26: error: passing argument 1 of 'clear_stage2_pgd_entry' from incompatible pointer type [-Werror=incompatible-pointer-types]
clear_stage2_pgd_entry(mmu, pgd, start_addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:171:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void clear_stage2_pgd_entry(struct kvm_s2_mmu *mmu, pgd_t *pgd, phys_addr_t addr)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:316:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:352:39: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 size)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'unmap_stage2_range':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:354:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:373:22: error: passing argument 1 of 'unmap_stage2_puds' from incompatible pointer type [-Werror=incompatible-pointer-types]
unmap_stage2_puds(mmu, pgd, addr, next);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:313:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void unmap_stage2_puds(struct kvm_s2_mmu *mmu, pgd_t *pgd,
^~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:383:38: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_flush_ptes(struct kvm_s2_mmu *mmu, pmd_t *pmd,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:395:38: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_flush_pmds(struct kvm_s2_mmu *mmu, pud_t *pud,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_flush_pmds':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:398:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:409:23: error: passing argument 1 of 'stage2_flush_ptes' from incompatible pointer type [-Werror=incompatible-pointer-types]
stage2_flush_ptes(mmu, pmd, addr, next);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:383:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void stage2_flush_ptes(struct kvm_s2_mmu *mmu, pmd_t *pmd,
^~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:414:38: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_flush_puds(struct kvm_s2_mmu *mmu, pgd_t *pgd,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_flush_puds':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:417:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:428:23: error: passing argument 1 of 'stage2_flush_pmds' from incompatible pointer type [-Werror=incompatible-pointer-types]
stage2_flush_pmds(mmu, pud, addr, next);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:395:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void stage2_flush_pmds(struct kvm_s2_mmu *mmu, pud_t *pud,
^~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:417:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:433:41: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_flush_memslot(struct kvm_s2_mmu *mmu,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_flush_memslot':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:436:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:446:22: error: passing argument 1 of 'stage2_flush_puds' from incompatible pointer type [-Werror=incompatible-pointer-types]
stage2_flush_puds(mmu, pgd, addr, next);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:414:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void stage2_flush_puds(struct kvm_s2_mmu *mmu, pgd_t *pgd,
^~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_flush_vm':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:468:34: error: 'struct kvm_arch' has no member named 'mmu'
stage2_flush_memslot(&kvm->arch.mmu, memslot);
^
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:919:33: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
int kvm_alloc_stage2_pgd(struct kvm_s2_mmu *mmu)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:919:5: error: conflicting types for 'kvm_alloc_stage2_pgd'
int kvm_alloc_stage2_pgd(struct kvm_s2_mmu *mmu)
^~~~~~~~~~~~~~~~~~~~
In file included from arch/arm/kvm/../../../virt/kvm/arm/mmu.c:28:0:
arch/arm/include/asm/kvm_mmu.h:67:5: note: previous declaration of 'kvm_alloc_stage2_pgd' was here
int kvm_alloc_stage2_pgd(struct kvm *kvm);
^~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'kvm_alloc_stage2_pgd':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:923:9: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
if (mmu->pgd != NULL) {
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_unmap_memslot':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:973:33: error: 'struct kvm_arch' has no member named 'mmu'
unmap_stage2_range(&kvm->arch.mmu, gpa, vm_end - vm_start);
^
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1005:33: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
void kvm_free_stage2_pgd(struct kvm_s2_mmu *mmu)
^~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1005:6: error: conflicting types for 'kvm_free_stage2_pgd'
void kvm_free_stage2_pgd(struct kvm_s2_mmu *mmu)
^~~~~~~~~~~~~~~~~~~
In file included from arch/arm/kvm/../../../virt/kvm/arm/mmu.c:28:0:
arch/arm/include/asm/kvm_mmu.h:68:6: note: previous declaration of 'kvm_free_stage2_pgd' was here
void kvm_free_stage2_pgd(struct kvm *kvm);
^~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'kvm_free_stage2_pgd':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1007:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1012:22: error: passing argument 1 of 'unmap_stage2_range' from incompatible pointer type [-Werror=incompatible-pointer-types]
unmap_stage2_range(mmu, 0, kvm_phys_size(kvm));
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:352:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 size)
^~~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1013:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
pgd = READ_ONCE(mmu->pgd);
^
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1023:37: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static pud_t *stage2_get_pud(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_get_pud':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1026:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1026:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1042:37: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static pmd_t *stage2_get_pmd(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_get_pmd':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1045:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1049:23: error: passing argument 1 of 'stage2_get_pud' from incompatible pointer type [-Werror=incompatible-pointer-types]
pud = stage2_get_pud(mmu, cache, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1023:15: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static pud_t *stage2_get_pud(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1045:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1064:39: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static int stage2_set_pmd_huge(struct kvm_s2_mmu *mmu,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_set_pmd_huge':
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1070:23: error: passing argument 1 of 'stage2_get_pmd' from incompatible pointer type [-Werror=incompatible-pointer-types]
pmd = stage2_get_pmd(mmu, cache, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1042:15: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static pmd_t *stage2_get_pmd(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1103:26: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1112:39: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static int stage2_set_pud_huge(struct kvm_s2_mmu *mmu,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_set_pud_huge':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1116:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1119:24: error: passing argument 1 of 'stage2_get_pud' from incompatible pointer type [-Werror=incompatible-pointer-types]
pudp = stage2_get_pud(mmu, cache, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1023:15: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static pud_t *stage2_get_pud(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1135:26: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1116:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1150:42: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static bool stage2_get_leaf_entry(struct kvm_s2_mmu *mmu, phys_addr_t addr,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_get_leaf_entry':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1153:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1162:24: error: passing argument 1 of 'stage2_get_pud' from incompatible pointer type [-Werror=incompatible-pointer-types]
pudp = stage2_get_pud(mmu, NULL, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1023:15: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static pud_t *stage2_get_pud(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1153:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1188:35: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static bool stage2_is_exec(struct kvm_s2_mmu *mmu, phys_addr_t addr)
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_is_exec':
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1195:32: error: passing argument 1 of 'stage2_get_leaf_entry' from incompatible pointer type [-Werror=incompatible-pointer-types]
found = stage2_get_leaf_entry(mmu, addr, &pudp, &pmdp, &ptep);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1150:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static bool stage2_get_leaf_entry(struct kvm_s2_mmu *mmu, phys_addr_t addr,
^~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1207:34: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static int stage2_set_pte(struct kvm_s2_mmu *mmu,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_set_pte':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1212:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1222:23: error: passing argument 1 of 'stage2_get_pud' from incompatible pointer type [-Werror=incompatible-pointer-types]
pud = stage2_get_pud(mmu, cache, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1023:15: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static pud_t *stage2_get_pud(struct kvm_s2_mmu *mmu, struct kvm_mmu_memory_cache *cache,
^~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1236:23: error: passing argument 1 of 'stage2_dissolve_pud' from incompatible pointer type [-Werror=incompatible-pointer-types]
stage2_dissolve_pud(mmu, addr, pud);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:127:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void stage2_dissolve_pud(struct kvm_s2_mmu *mmu, phys_addr_t addr, pud_t *pudp)
^~~~~~~~~~~~~~~~~~~
>> arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1260:23: error: passing argument 1 of 'stage2_dissolve_pmd' from incompatible pointer type [-Werror=incompatible-pointer-types]
stage2_dissolve_pmd(mmu, addr, pmd);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:108:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void stage2_dissolve_pmd(struct kvm_s2_mmu *mmu, phys_addr_t addr, pmd_t *pmd)
^~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1284:26: error: passing argument 1 of 'kvm_tlb_flush_vmid_ipa' from incompatible pointer type [-Werror=incompatible-pointer-types]
kvm_tlb_flush_vmid_ipa(mmu, addr);
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:69:13: note: expected 'struct kvm_s2_mmu *' but argument is of type 'struct kvm_s2_mmu *'
static void kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa)
^~~~~~~~~~~~~~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1212:14: warning: unused variable 'kvm' [-Wunused-variable]
struct kvm *kvm = mmu->kvm;
^~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'kvm_phys_addr_ioremap':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1350:34: error: 'struct kvm_arch' has no member named 'mmu'
ret = stage2_set_pte(&kvm->arch.mmu, &cache, addr, &pte,
^
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1437:35: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_wp_pmds(struct kvm_s2_mmu *mmu, pud_t *pud,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_wp_pmds':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1440:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: At top level:
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1467:36: warning: 'struct kvm_s2_mmu' declared inside parameter list will not be visible outside of this definition or declaration
static void stage2_wp_puds(struct kvm_s2_mmu *mmu, pgd_t *pgd,
^~~~~~~~~~
arch/arm/kvm/../../../virt/kvm/arm/mmu.c: In function 'stage2_wp_puds':
arch/arm/kvm/../../../virt/kvm/arm/mmu.c:1470:23: error: dereferencing pointer to incomplete type 'struct kvm_s2_mmu'
struct kvm *kvm = mmu->kvm;
^~
vim +133 arch/arm/kvm/../../../virt/kvm/arm/arm.c
112
113
114 /**
115 * kvm_arch_init_vm - initializes a VM data structure
116 * @kvm: pointer to the KVM struct
117 */
118 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
119 {
120 int ret, cpu;
121
122 ret = kvm_arm_setup_stage2(kvm, type);
123 if (ret)
124 return ret;
125
126 kvm->arch.last_vcpu_ran = alloc_percpu(typeof(*kvm->arch.last_vcpu_ran));
127 if (!kvm->arch.last_vcpu_ran)
128 return -ENOMEM;
129
130 for_each_possible_cpu(cpu)
131 *per_cpu_ptr(kvm->arch.last_vcpu_ran, cpu) = -1;
132
> 133 ret = kvm_alloc_stage2_pgd(&kvm->arch.mmu);
134 if (ret)
135 goto out_fail_alloc;
136
137 /* Mark the initial VMID generation invalid */
138 kvm->arch.mmu.vmid.vmid_gen = 0;
> 139 kvm->arch.mmu.kvm = kvm;
140
141 ret = create_hyp_mappings(kvm, kvm + 1, PAGE_HYP);
142 if (ret)
143 goto out_free_stage2_pgd;
144
145 kvm_vgic_early_init(kvm);
146
147 /* The maximum number of VCPUs is limited by the host's GIC model */
148 kvm->arch.max_vcpus = vgic_present ?
149 kvm_vgic_get_max_vcpus() : KVM_MAX_VCPUS;
150
151 return ret;
152 out_free_stage2_pgd:
153 kvm_free_stage2_pgd(&kvm->arch.mmu);
154 out_fail_alloc:
155 free_percpu(kvm->arch.last_vcpu_ran);
156 kvm->arch.last_vcpu_ran = NULL;
157 return ret;
158 }
159
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 20426 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-01-09 6:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-09 6:10 [kvmarm:kvm-arm64/nv-wip-v5.0-rc1 40/75] arch/arm/kvm/../../../virt/kvm/arm/arm.c:133:39: error: 'struct kvm_arch' has no member named 'mmu' kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.