Hi "Kirill,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on tip/x86/core]
[also build test ERROR on v5.9]
[cannot apply to kvm/linux-next hnaz-linux-mm/master next-20201016]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Kirill-A-Shutemov/KVM-protected-...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
238c91115cd05c71447ea071624a4c9fe661f970
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/1af02c27a796b91d58cd8b6d50d7e7b9b...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Kirill-A-Shutemov/KVM-protected-memory-extension/20201020-142130
git checkout 1af02c27a796b91d58cd8b6d50d7e7b9b5564ce4
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
> virt/lib/mem_protected.c:11:7: warning: no previous prototype for
'kvm_map_page_atomic' [-Wmissing-prototypes]
11 | void
*kvm_map_page_atomic(struct page *page)
| ^~~~~~~~~~~~~~~~~~~
> virt/lib/mem_protected.c:24:6: warning: no previous prototype for
'kvm_unmap_page_atomic' [-Wmissing-prototypes]
24 | void
kvm_unmap_page_atomic(void *vaddr)
| ^~~~~~~~~~~~~~~~~~~~~
> virt/lib/mem_protected.c:33:5: warning: no previous prototype for
'kvm_init_protected_memory' [-Wmissing-prototypes]
33 | int
kvm_init_protected_memory(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
> virt/lib/mem_protected.c:51:6: warning: no previous prototype for
'kvm_exit_protected_memory' [-Wmissing-prototypes]
51 | void
kvm_exit_protected_memory(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/mm.h:33,
from include/linux/kvm_host.h:14,
from virt/lib/mem_protected.c:1:
virt/lib/mem_protected.c: In function 'adjust_direct_mapping_pte_range':
> include/linux/pgtable.h:79:12: error: implicit declaration of
function 'kmap_atomic'; did you mean 'in_atomic'?
[-Werror=implicit-function-declaration]
79 | ((pte_t
*)kmap_atomic(pmd_page(*(dir))) + \
| ^~~~~~~~~~~
virt/lib/mem_protected.c:79:8: note: in expansion of macro 'pte_offset_map'
79 | pte = pte_offset_map(pmd, addr);
| ^~~~~~~~~~~~~~
virt/lib/mem_protected.c: At top level:
virt/lib/mem_protected.c:102:5: warning: no previous prototype for
'__kvm_protect_memory' [-Wmissing-prototypes]
102 | int __kvm_protect_memory(unsigned long start, unsigned long end, bool protect)
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/kvm_map_page_atomic +11 virt/lib/mem_protected.c
10
11 void *kvm_map_page_atomic(struct page *page)
12 {
13 pte_t *pte;
14 void *vaddr;
15
16 preempt_disable();
17 pte = guest_map_ptes[smp_processor_id()];
18 vaddr = guest_map_area->addr + smp_processor_id() * PAGE_SIZE;
19 set_pte(pte, mk_pte(page, PAGE_KERNEL));
20 return vaddr;
21 }
22 EXPORT_SYMBOL_GPL(kvm_map_page_atomic);
23
24 void kvm_unmap_page_atomic(void *vaddr)
25 {
26 pte_t *pte = guest_map_ptes[smp_processor_id()];
27 set_pte(pte, __pte(0));
28 flush_tlb_one_kernel((unsigned long)vaddr);
29 preempt_enable();
30 }
31 EXPORT_SYMBOL_GPL(kvm_unmap_page_atomic);
32
33 int kvm_init_protected_memory(void)
34 {
35 guest_map_ptes = kmalloc_array(num_possible_cpus(),
36 sizeof(pte_t *), GFP_KERNEL);
37 if (!guest_map_ptes)
38 return -ENOMEM;
39
40 guest_map_area = alloc_vm_area(PAGE_SIZE * num_possible_cpus(),
41 guest_map_ptes);
42 if (!guest_map_ptes) {
43 kfree(guest_map_ptes);
44 return -ENOMEM;
45 }
46
47 return 0;
48 }
49 EXPORT_SYMBOL_GPL(kvm_init_protected_memory);
50
51 void kvm_exit_protected_memory(void)
52 {
53 if (guest_map_area)
54 free_vm_area(guest_map_area);
55 if (guest_map_ptes)
56 kfree(guest_map_ptes);
57 }
58 EXPORT_SYMBOL_GPL(kvm_exit_protected_memory);
59
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org