llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (struct dax_device *, unsigned long, long, vo...
@ 2022-05-13 15:33 kernel test robot
  2022-05-13 18:50 ` [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (stru Jane Chu
  0 siblings, 1 reply; 3+ messages in thread
From: kernel test robot @ 2022-05-13 15:33 UTC (permalink / raw)
  To: Jane Chu; +Cc: llvm, kbuild-all, linux-nvdimm, Dan Williams, Christoph Hellwig

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next
head:   866f841d312b95a3a0b2de104e8d9c02006e7953
commit: 4676339a70746434e1acb678ffaea164d24dfc9c [8/11] dax: introduce DAX_RECOVERY_WRITE dax access mode
config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220513/202205132308.wrD99x33-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 38189438b69ca27b4c6ce707c52dbd217583d046)
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
        # https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git/commit/?id=4676339a70746434e1acb678ffaea164d24dfc9c
        git remote add nvdimm https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
        git fetch --no-tags nvdimm libnvdimm-for-next
        git checkout 4676339a70746434e1acb678ffaea164d24dfc9c
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/

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

All errors (new ones prefixed by >>):

>> fs/fuse/virtio_fs.c:775:63: error: too few arguments to function call, expected 6, have 5
           rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
                ~~~~~~~~~~~~~~~~~                                       ^
   include/linux/dax.h:185:6: note: 'dax_direct_access' declared here
   long dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, long nr_pages,
        ^
>> fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (struct dax_device *, unsigned long, long, void **, pfn_t *)' [-Werror,-Wincompatible-function-pointer-types]
           .direct_access = virtio_fs_direct_access,
                            ^~~~~~~~~~~~~~~~~~~~~~~
   2 errors generated.


vim +784 fs/fuse/virtio_fs.c

22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  768  
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  769  static int virtio_fs_zero_page_range(struct dax_device *dax_dev,
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  770  				     pgoff_t pgoff, size_t nr_pages)
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  771  {
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  772  	long rc;
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  773  	void *kaddr;
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  774  
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19 @775  	rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  776  	if (rc < 0)
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  777  		return rc;
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  778  	memset(kaddr, 0, nr_pages << PAGE_SHIFT);
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  779  	dax_flush(dax_dev, kaddr, nr_pages << PAGE_SHIFT);
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  780  	return 0;
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  781  }
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  782  
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  783  static const struct dax_operations virtio_fs_dax_ops = {
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19 @784  	.direct_access = virtio_fs_direct_access,
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  785  	.zero_page_range = virtio_fs_zero_page_range,
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  786  };
22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  787  

:::::: The code at line 784 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
https://01.org/lkp

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (stru...
  2022-05-13 15:33 [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (struct dax_device *, unsigned long, long, vo kernel test robot
@ 2022-05-13 18:50 ` Jane Chu
  2022-05-13 21:50   ` Dan Williams
  0 siblings, 1 reply; 3+ messages in thread
From: Jane Chu @ 2022-05-13 18:50 UTC (permalink / raw)
  To: Dan Williams
  Cc: llvm@lists.linux.dev, linux-nvdimm@lists.01.org,
	Christoph Hellwig, Jane Chu

Sorry again, and I'm scratching my head how could my build not complain 
when I missed this change?

diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
index 86b7dbb6a0d4..c9faa5f2587c 100644
--- a/fs/fuse/virtio_fs.c
+++ b/fs/fuse/virtio_fs.c
@@ -773,6 +773,8 @@ static int virtio_fs_zero_page_range(struct 
dax_device *dax_dev,
         void *kaddr;

         rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
+       rc = dax_direct_access(dax_dev, pgoff, nr_pages, DAX_ACCESS,
+                       &kaddr, NULL);
         if (rc < 0)
                 return rc;
         memset(kaddr, 0, nr_pages << PAGE_SHIFT);

Please let me know if you prefer a patch sent your way.

thanks!
-jane


On 5/13/2022 8:33 AM, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next
> head:   866f841d312b95a3a0b2de104e8d9c02006e7953
> commit: 4676339a70746434e1acb678ffaea164d24dfc9c [8/11] dax: introduce DAX_RECOVERY_WRITE dax access mode
> config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220513/202205132308.wrD99x33-lkp@intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 38189438b69ca27b4c6ce707c52dbd217583d046)
> 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
>          # https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git/commit/?id=4676339a70746434e1acb678ffaea164d24dfc9c
>          git remote add nvdimm https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
>          git fetch --no-tags nvdimm libnvdimm-for-next
>          git checkout 4676339a70746434e1acb678ffaea164d24dfc9c
>          # save the config file
>          mkdir build_dir && cp config build_dir/.config
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>>> fs/fuse/virtio_fs.c:775:63: error: too few arguments to function call, expected 6, have 5
>             rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
>                  ~~~~~~~~~~~~~~~~~                                       ^
>     include/linux/dax.h:185:6: note: 'dax_direct_access' declared here
>     long dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, long nr_pages,
>          ^
>>> fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (struct dax_device *, unsigned long, long, void **, pfn_t *)' [-Werror,-Wincompatible-function-pointer-types]
>             .direct_access = virtio_fs_direct_access,
>                              ^~~~~~~~~~~~~~~~~~~~~~~
>     2 errors generated.
> 
> 
> vim +784 fs/fuse/virtio_fs.c
> 
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  768
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  769  static int virtio_fs_zero_page_range(struct dax_device *dax_dev,
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  770  				     pgoff_t pgoff, size_t nr_pages)
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  771  {
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  772  	long rc;
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  773  	void *kaddr;
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  774
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19 @775  	rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  776  	if (rc < 0)
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  777  		return rc;
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  778  	memset(kaddr, 0, nr_pages << PAGE_SHIFT);
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  779  	dax_flush(dax_dev, kaddr, nr_pages << PAGE_SHIFT);
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  780  	return 0;
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  781  }
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  782
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  783  static const struct dax_operations virtio_fs_dax_ops = {
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19 @784  	.direct_access = virtio_fs_direct_access,
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  785  	.zero_page_range = virtio_fs_zero_page_range,
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  786  };
> 22f3787e9d95e7 Stefan Hajnoczi 2020-08-19  787
> 
> :::::: The code at line 784 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>
> 


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (stru...
  2022-05-13 18:50 ` [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (stru Jane Chu
@ 2022-05-13 21:50   ` Dan Williams
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Williams @ 2022-05-13 21:50 UTC (permalink / raw)
  To: Jane Chu; +Cc: llvm@lists.linux.dev, Christoph Hellwig, Linux NVDIMM,
	Vivek Goyal

On Fri, May 13, 2022 at 11:50 AM Jane Chu <jane.chu@oracle.com> wrote:
>
> Sorry again, and I'm scratching my head how could my build not complain
> when I missed this change?
>
> diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
> index 86b7dbb6a0d4..c9faa5f2587c 100644
> --- a/fs/fuse/virtio_fs.c
> +++ b/fs/fuse/virtio_fs.c
> @@ -773,6 +773,8 @@ static int virtio_fs_zero_page_range(struct
> dax_device *dax_dev,
>          void *kaddr;
>
>          rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
> +       rc = dax_direct_access(dax_dev, pgoff, nr_pages, DAX_ACCESS,
> +                       &kaddr, NULL);
>          if (rc < 0)
>                  return rc;
>          memset(kaddr, 0, nr_pages << PAGE_SHIFT);
>
> Please let me know if you prefer a patch sent your way.

Also needed to fixup the virtio_fs_direct_access() function signature:

diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
index 86b7dbb6a0d4..8db53fa67359 100644
--- a/fs/fuse/virtio_fs.c
+++ b/fs/fuse/virtio_fs.c
@@ -752,7 +752,8 @@ static void virtio_fs_cleanup_vqs(struct
virtio_device *vdev,
  * offset.
  */
 static long virtio_fs_direct_access(struct dax_device *dax_dev, pgoff_t pgoff,
-                                   long nr_pages, void **kaddr, pfn_t *pfn)
+                                   long nr_pages, enum dax_access_mode mode,
+                                   void **kaddr, pfn_t *pfn)
 {
        struct virtio_fs *fs = dax_get_private(dax_dev);
        phys_addr_t offset = PFN_PHYS(pgoff);
@@ -772,7 +773,8 @@ static int virtio_fs_zero_page_range(struct
dax_device *dax_dev,
        long rc;
        void *kaddr;

-       rc = dax_direct_access(dax_dev, pgoff, nr_pages, &kaddr, NULL);
+       rc = dax_direct_access(dax_dev, pgoff, nr_pages, DAX_ACCESS, &kaddr,
+                              NULL);
        if (rc < 0)
                return rc;
        memset(kaddr, 0, nr_pages << PAGE_SHIFT);

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-05-13 21:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-13 15:33 [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (struct dax_device *, unsigned long, long, vo kernel test robot
2022-05-13 18:50 ` [nvdimm:libnvdimm-for-next 8/11] fs/fuse/virtio_fs.c:784:19: error: incompatible function pointer types initializing 'long (*)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *)' with an expression of type 'long (stru Jane Chu
2022-05-13 21:50   ` Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).