On 2020/6/2 下午12:56, Michael S. Tsirkin wrote: > On Tue, Jun 02, 2020 at 03:22:49AM +0800, kbuild test robot wrote: >> Hi Jason, >> >> I love your patch! Yet something to improve: >> >> [auto build test ERROR on vhost/linux-next] >> [also build test ERROR on linus/master v5.7 next-20200529] >> [if your patch is applied to the wrong git tree, please drop us a note to help >> improve the system. BTW, we also suggest to use '--base' option to specify the >> base tree in git format-patch, please seehttps://stackoverflow.com/a/37406982] >> >> url:https://github.com/0day-ci/linux/commits/Jason-Wang/vDPA-doorbell-mapping/20200531-070834 >> base:https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next >> config: m68k-randconfig-r011-20200601 (attached as .config) >> compiler: m68k-linux-gcc (GCC) 9.3.0 >> reproduce (this is a W=1 build): >> wgethttps://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 >> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kbuild test robot >> >> All errors (new ones prefixed by >>, old ones prefixed by <<): >> >> drivers/vhost/vdpa.c: In function 'vhost_vdpa_fault': >>>> drivers/vhost/vdpa.c:754:22: error: implicit declaration of function 'pgprot_noncached' [-Werror=implicit-function-declaration] >> 754 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); >> | ^~~~~~~~~~~~~~~~ >>>> drivers/vhost/vdpa.c:754:22: error: incompatible types when assigning to type 'pgprot_t' {aka 'struct '} from type 'int' >> cc1: some warnings being treated as errors >> >> vim +/pgprot_noncached +754 drivers/vhost/vdpa.c >> >> 742 >> 743 static vm_fault_t vhost_vdpa_fault(struct vm_fault *vmf) >> 744 { >> 745 struct vhost_vdpa *v = vmf->vma->vm_file->private_data; >> 746 struct vdpa_device *vdpa = v->vdpa; >> 747 const struct vdpa_config_ops *ops = vdpa->config; >> 748 struct vdpa_notification_area notify; >> 749 struct vm_area_struct *vma = vmf->vma; >> 750 u16 index = vma->vm_pgoff; >> 751 >> 752 notify = ops->get_vq_notification(vdpa, index); >> 753 >> > 754 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); >> 755 if (remap_pfn_range(vma, vmf->address & PAGE_MASK, >> 756 notify.addr >> PAGE_SHIFT, PAGE_SIZE, >> 757 vma->vm_page_prot)) >> 758 return VM_FAULT_SIGBUS; >> 759 >> 760 return VM_FAULT_NOPAGE; >> 761 } >> 762 > Yes well, all this remapping clearly has no chance to work > on systems without CONFIG_MMU. It looks to me mmap can work according to Documentation/nommu-mmap.txt. But I'm not sure it's worth to bother. Thanks > > >