All of lore.kernel.org
 help / color / mirror / Atom feed
* [hch-misc:pgmap-refcount 6/6] fs/fuse/virtio_fs.c:822:48: error: invalid application of 'sizeof' to incomplete type 'struct dev_pagemap'
@ 2022-02-04 12:13 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-04 12:13 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 8469 bytes --]

tree:   git://git.infradead.org/users/hch/misc.git pgmap-refcount
head:   3905e60c98f2335aeb84a2ebe5271b44cb302404
commit: 3905e60c98f2335aeb84a2ebe5271b44cb302404 [6/6] mm: don't include <linux/memremap.h> in <linux/mm.h>
config: riscv-randconfig-r042-20220130 (https://download.01.org/0day-ci/archive/20220204/202202042003.sCpSBTvx-lkp(a)intel.com/config)
compiler: riscv64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git remote add hch-misc git://git.infradead.org/users/hch/misc.git
        git fetch --no-tags hch-misc pgmap-refcount
        git checkout 3905e60c98f2335aeb84a2ebe5271b44cb302404
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=riscv SHELL=/bin/bash fs/fuse/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

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

   fs/fuse/virtio_fs.c: In function 'virtio_fs_setup_dax':
>> fs/fuse/virtio_fs.c:822:48: error: invalid application of 'sizeof' to incomplete type 'struct dev_pagemap'
     822 |         pgmap = devm_kzalloc(&vdev->dev, sizeof(*pgmap), GFP_KERNEL);
         |                                                ^
>> fs/fuse/virtio_fs.c:826:14: error: invalid use of undefined type 'struct dev_pagemap'
     826 |         pgmap->type = MEMORY_DEVICE_FS_DAX;
         |              ^~
>> fs/fuse/virtio_fs.c:826:23: error: 'MEMORY_DEVICE_FS_DAX' undeclared (first use in this function)
     826 |         pgmap->type = MEMORY_DEVICE_FS_DAX;
         |                       ^~~~~~~~~~~~~~~~~~~~
   fs/fuse/virtio_fs.c:826:23: note: each undeclared identifier is reported only once for each function it appears in
   fs/fuse/virtio_fs.c:833:14: error: invalid use of undefined type 'struct dev_pagemap'
     833 |         pgmap->range = (struct range) {
         |              ^~
   fs/fuse/virtio_fs.c:837:14: error: invalid use of undefined type 'struct dev_pagemap'
     837 |         pgmap->nr_range = 1;
         |              ^~
>> fs/fuse/virtio_fs.c:839:28: error: implicit declaration of function 'devm_memremap_pages'; did you mean 'devm_memremap'? [-Werror=implicit-function-declaration]
     839 |         fs->window_kaddr = devm_memremap_pages(&vdev->dev, pgmap);
         |                            ^~~~~~~~~~~~~~~~~~~
         |                            devm_memremap
>> fs/fuse/virtio_fs.c:839:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     839 |         fs->window_kaddr = devm_memremap_pages(&vdev->dev, pgmap);
         |                          ^
   cc1: some warnings being treated as errors


vim +822 fs/fuse/virtio_fs.c

22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  794  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  795  static int virtio_fs_setup_dax(struct virtio_device *vdev, struct virtio_fs *fs)
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  796  {
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  797  	struct virtio_shm_region cache_reg;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  798  	struct dev_pagemap *pgmap;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  799  	bool have_cache;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  800  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  801  	if (!IS_ENABLED(CONFIG_FUSE_DAX))
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  802  		return 0;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  803  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  804  	/* Get cache region */
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  805  	have_cache = virtio_get_shm_region(vdev, &cache_reg,
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  806  					   (u8)VIRTIO_FS_SHMCAP_ID_CACHE);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  807  	if (!have_cache) {
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  808  		dev_notice(&vdev->dev, "%s: No cache capability\n", __func__);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  809  		return 0;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  810  	}
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  811  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  812  	if (!devm_request_mem_region(&vdev->dev, cache_reg.addr, cache_reg.len,
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  813  				     dev_name(&vdev->dev))) {
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  814  		dev_warn(&vdev->dev, "could not reserve region addr=0x%llx len=0x%llx\n",
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  815  			 cache_reg.addr, cache_reg.len);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  816  		return -EBUSY;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  817  	}
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  818  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  819  	dev_notice(&vdev->dev, "Cache len: 0x%llx @ 0x%llx\n", cache_reg.len,
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  820  		   cache_reg.addr);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  821  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19 @822  	pgmap = devm_kzalloc(&vdev->dev, sizeof(*pgmap), GFP_KERNEL);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  823  	if (!pgmap)
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  824  		return -ENOMEM;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  825  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19 @826  	pgmap->type = MEMORY_DEVICE_FS_DAX;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  827  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  828  	/* Ideally we would directly use the PCI BAR resource but
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  829  	 * devm_memremap_pages() wants its own copy in pgmap.  So
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  830  	 * initialize a struct resource from scratch (only the start
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  831  	 * and end fields will be used).
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  832  	 */
694565356c2e062 Linus Torvalds    2020-10-19  833  	pgmap->range = (struct range) {
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  834  		.start = (phys_addr_t) cache_reg.addr,
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  835  		.end = (phys_addr_t) cache_reg.addr + cache_reg.len - 1,
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  836  	};
694565356c2e062 Linus Torvalds    2020-10-19  837  	pgmap->nr_range = 1;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  838  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19 @839  	fs->window_kaddr = devm_memremap_pages(&vdev->dev, pgmap);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  840  	if (IS_ERR(fs->window_kaddr))
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  841  		return PTR_ERR(fs->window_kaddr);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  842  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  843  	fs->window_phys_addr = (phys_addr_t) cache_reg.addr;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  844  	fs->window_len = (phys_addr_t) cache_reg.len;
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  845  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  846  	dev_dbg(&vdev->dev, "%s: window kaddr 0x%px phys_addr 0x%llx len 0x%llx\n",
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  847  		__func__, fs->window_kaddr, cache_reg.addr, cache_reg.len);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  848  
30c6828a17a572a Christoph Hellwig 2021-12-15  849  	fs->dax_dev = alloc_dax(fs, &virtio_fs_dax_ops);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  850  	if (IS_ERR(fs->dax_dev))
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  851  		return PTR_ERR(fs->dax_dev);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  852  
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  853  	return devm_add_action_or_reset(&vdev->dev, virtio_fs_cleanup_dax,
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  854  					fs->dax_dev);
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  855  }
22f3787e9d95e72 Stefan Hajnoczi   2020-08-19  856  

:::::: The code at line 822 was first introduced by commit
:::::: 22f3787e9d95e72d1f09795f294fb010e2998f43 virtiofs: set up virtio_fs dax_device

:::::: TO: Stefan Hajnoczi <stefanha@redhat.com>
:::::: CC: Miklos Szeredi <mszeredi@redhat.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-04 12:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-04 12:13 [hch-misc:pgmap-refcount 6/6] fs/fuse/virtio_fs.c:822:48: error: invalid application of 'sizeof' to incomplete type 'struct dev_pagemap' kernel 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.