Hi KarimAllah, Thank you for the patch! Yet something to improve: [auto build test ERROR on tip/auto-latest] [also build test ERROR on v4.16-rc2 next-20180222] [cannot apply to kvm/linux-next] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/KarimAllah-Ahmed/KVM-X86-Handle-guest-memory-that-does-not-have-a-struct-page/20180223-064826 config: mips-malta_kvm_defconfig (attached as .config) compiler: mipsel-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 # save the attached .config to linux build tree make.cross ARCH=mips All error/warnings (new ones prefixed by >>): In file included from include/linux/linkage.h:7:0, from include/linux/preempt.h:10, from include/linux/hardirq.h:5, from include/linux/kvm_host.h:10, from arch/mips/kvm/../../../virt/kvm/kvm_main.c:21: >> arch/mips/kvm/../../../virt/kvm/kvm_main.c:1669:19: error: 'kvm_vcpu_gfn_to_kaddr' undeclared here (not in a function); did you mean 'kvm_vcpu_gfn_to_page'? EXPORT_SYMBOL_GPL(kvm_vcpu_gfn_to_kaddr); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ >> arch/mips/kvm/../../../virt/kvm/kvm_main.c:1669:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(kvm_vcpu_gfn_to_kaddr); ^~~~~~~~~~~~~~~~~ vim +1669 arch/mips/kvm/../../../virt/kvm/kvm_main.c 1634 1635 bool kvm_vcpu_map(struct kvm_vcpu *vcpu, gfn_t gfn, struct kvm_host_map *map) 1636 { 1637 kvm_pfn_t pfn; 1638 void *kaddr = NULL; 1639 struct page *page = NULL; 1640 1641 if (map->kaddr && map->gfn == gfn) 1642 /* If the mapping is valid and guest memory is already mapped */ 1643 return true; 1644 else if (map->kaddr) 1645 /* If the mapping is valid but trying to map a different guest pfn */ 1646 kvm_vcpu_unmap(map); 1647 1648 pfn = kvm_vcpu_gfn_to_pfn(vcpu, gfn); 1649 if (is_error_pfn(pfn)) 1650 return false; 1651 1652 if (pfn_valid(pfn)) { 1653 page = pfn_to_page(pfn); 1654 kaddr = vmap(&page, 1, VM_MAP, PAGE_KERNEL); 1655 } else { 1656 kaddr = memremap(pfn_to_hpa(pfn), PAGE_SIZE, MEMREMAP_WB); 1657 } 1658 1659 if (!kaddr) 1660 return false; 1661 1662 map->page = page; 1663 map->kaddr = kaddr; 1664 map->pfn = pfn; 1665 map->gfn = gfn; 1666 1667 return true; 1668 } > 1669 EXPORT_SYMBOL_GPL(kvm_vcpu_gfn_to_kaddr); 1670 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation