* [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).