tree: git://git.infradead.org/users/hch/misc.git dax-support-cleanups head: 109fe091fac0e3958ba459e292f22f6b60eb39f0 commit: 6ee1cc412315e2a92aa1b6b57e349f84ec4b1168 [6/7] dax: pass the dax_device to bdev_dax_supported config: i386-buildonly-randconfig-r002-20210730 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 reproduce (this is a W=1 build): git remote add hch-misc git://git.infradead.org/users/hch/misc.git git fetch --no-tags hch-misc dax-support-cleanups git checkout 6ee1cc412315e2a92aa1b6b57e349f84ec4b1168 # save the attached .config to linux build tree make W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from include/linux/mempolicy.h:11, from include/linux/migrate.h:6, from kernel/sched/sched.h:54, from kernel/sched/core.c:13: include/linux/dax.h: In function 'bdev_dax_supported': include/linux/dax.h:125:30: error: passing argument 1 of '__bdev_dax_supported' from incompatible pointer type [-Werror=incompatible-pointer-types] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~ | | | struct block_device * include/linux/dax.h:120:46: note: expected 'struct dax_device *' but argument is of type 'struct block_device *' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~^~~~~~~ >> include/linux/dax.h:125:36: warning: passing argument 2 of '__bdev_dax_supported' makes pointer from integer without a cast [-Wint-conversion] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~ | | | int include/linux/dax.h:120:76: note: expected 'struct block_device *' but argument is of type 'int' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~~~^~~~ include/linux/dax.h:125:9: error: too few arguments to function '__bdev_dax_supported' 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~~~~~~~~~~~~ include/linux/dax.h:120:6: note: declared here 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/core.c: In function 'ttwu_stat': kernel/sched/core.c:3270:13: warning: variable 'rq' set but not used [-Wunused-but-set-variable] 3270 | struct rq *rq; | ^~ cc1: some warnings being treated as errors -- In file included from include/linux/mempolicy.h:11, from include/linux/migrate.h:6, from kernel/sched/sched.h:54, from kernel/sched/loadavg.c:9: include/linux/dax.h: In function 'bdev_dax_supported': include/linux/dax.h:125:30: error: passing argument 1 of '__bdev_dax_supported' from incompatible pointer type [-Werror=incompatible-pointer-types] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~ | | | struct block_device * include/linux/dax.h:120:46: note: expected 'struct dax_device *' but argument is of type 'struct block_device *' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~^~~~~~~ >> include/linux/dax.h:125:36: warning: passing argument 2 of '__bdev_dax_supported' makes pointer from integer without a cast [-Wint-conversion] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~ | | | int include/linux/dax.h:120:76: note: expected 'struct block_device *' but argument is of type 'int' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~~~^~~~ include/linux/dax.h:125:9: error: too few arguments to function '__bdev_dax_supported' 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~~~~~~~~~~~~ include/linux/dax.h:120:6: note: declared here 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ^~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/mempolicy.h:11, from include/linux/migrate.h:6, from kernel/sched/sched.h:54, from kernel/sched/fair.c:23: include/linux/dax.h: In function 'bdev_dax_supported': include/linux/dax.h:125:30: error: passing argument 1 of '__bdev_dax_supported' from incompatible pointer type [-Werror=incompatible-pointer-types] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~ | | | struct block_device * include/linux/dax.h:120:46: note: expected 'struct dax_device *' but argument is of type 'struct block_device *' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~^~~~~~~ >> include/linux/dax.h:125:36: warning: passing argument 2 of '__bdev_dax_supported' makes pointer from integer without a cast [-Wint-conversion] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~ | | | int include/linux/dax.h:120:76: note: expected 'struct block_device *' but argument is of type 'int' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~~~^~~~ include/linux/dax.h:125:9: error: too few arguments to function '__bdev_dax_supported' 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~~~~~~~~~~~~ include/linux/dax.h:120:6: note: declared here 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c: At top level: kernel/sched/fair.c:5438:6: warning: no previous prototype for 'init_cfs_bandwidth' [-Wmissing-prototypes] 5438 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {} | ^~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:11457:6: warning: no previous prototype for 'free_fair_sched_group' [-Wmissing-prototypes] 11457 | void free_fair_sched_group(struct task_group *tg) { } | ^~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:11459:5: warning: no previous prototype for 'alloc_fair_sched_group' [-Wmissing-prototypes] 11459 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) | ^~~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:11464:6: warning: no previous prototype for 'online_fair_sched_group' [-Wmissing-prototypes] 11464 | void online_fair_sched_group(struct task_group *tg) { } | ^~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:11466:6: warning: no previous prototype for 'unregister_fair_sched_group' [-Wmissing-prototypes] 11466 | void unregister_fair_sched_group(struct task_group *tg) { } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/mempolicy.h:11, from include/linux/migrate.h:6, from kernel/sched/sched.h:54, from kernel/sched/rt.c:6: include/linux/dax.h: In function 'bdev_dax_supported': include/linux/dax.h:125:30: error: passing argument 1 of '__bdev_dax_supported' from incompatible pointer type [-Werror=incompatible-pointer-types] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~ | | | struct block_device * include/linux/dax.h:120:46: note: expected 'struct dax_device *' but argument is of type 'struct block_device *' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~^~~~~~~ >> include/linux/dax.h:125:36: warning: passing argument 2 of '__bdev_dax_supported' makes pointer from integer without a cast [-Wint-conversion] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~ | | | int include/linux/dax.h:120:76: note: expected 'struct block_device *' but argument is of type 'int' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~~~^~~~ include/linux/dax.h:125:9: error: too few arguments to function '__bdev_dax_supported' 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~~~~~~~~~~~~ include/linux/dax.h:120:6: note: declared here 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/rt.c: At top level: kernel/sched/rt.c:253:6: warning: no previous prototype for 'free_rt_sched_group' [-Wmissing-prototypes] 253 | void free_rt_sched_group(struct task_group *tg) { } | ^~~~~~~~~~~~~~~~~~~ kernel/sched/rt.c:255:5: warning: no previous prototype for 'alloc_rt_sched_group' [-Wmissing-prototypes] 255 | int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent) | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/rt.c:669:6: warning: no previous prototype for 'sched_rt_bandwidth_account' [-Wmissing-prototypes] 669 | bool sched_rt_bandwidth_account(struct rt_rq *rt_rq) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/mempolicy.h:11, from include/linux/migrate.h:6, from kernel/sched/sched.h:54, from kernel/sched/psi.c:146: include/linux/dax.h: In function 'bdev_dax_supported': include/linux/dax.h:125:30: error: passing argument 1 of '__bdev_dax_supported' from incompatible pointer type [-Werror=incompatible-pointer-types] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~ | | | struct block_device * include/linux/dax.h:120:46: note: expected 'struct dax_device *' but argument is of type 'struct block_device *' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~^~~~~~~ >> include/linux/dax.h:125:36: warning: passing argument 2 of '__bdev_dax_supported' makes pointer from integer without a cast [-Wint-conversion] 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~ | | | int include/linux/dax.h:120:76: note: expected 'struct block_device *' but argument is of type 'int' 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ~~~~~~~~~~~~~~~~~~~~~^~~~ include/linux/dax.h:125:9: error: too few arguments to function '__bdev_dax_supported' 125 | return __bdev_dax_supported(bdev, blocksize); | ^~~~~~~~~~~~~~~~~~~~ include/linux/dax.h:120:6: note: declared here 120 | bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/psi.c: At top level: kernel/sched/psi.c:1112:21: warning: no previous prototype for 'psi_trigger_create' [-Wmissing-prototypes] 1112 | struct psi_trigger *psi_trigger_create(struct psi_group *group, | ^~~~~~~~~~~~~~~~~~ kernel/sched/psi.c:1246:6: warning: no previous prototype for 'psi_trigger_replace' [-Wmissing-prototypes] 1246 | void psi_trigger_replace(void **trigger_ptr, struct psi_trigger *new) | ^~~~~~~~~~~~~~~~~~~ kernel/sched/psi.c:1258:10: warning: no previous prototype for 'psi_trigger_poll' [-Wmissing-prototypes] 1258 | __poll_t psi_trigger_poll(void **trigger_ptr, | ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/__bdev_dax_supported +125 include/linux/dax.h f5705aa8cfed14 Dan Williams 2017-05-13 116 f44c77630d26ca Dan Williams 2018-03-07 117 struct writeback_control; ef51042472f55b Dan Williams 2017-05-08 118 int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff); ef51042472f55b Dan Williams 2017-05-08 119 #if IS_ENABLED(CONFIG_FS_DAX) 6ee1cc412315e2 Christoph Hellwig 2021-07-30 120 bool __bdev_dax_supported(struct dax_device *dax_dev, struct block_device *bdev, 6ee1cc412315e2 Christoph Hellwig 2021-07-30 121 int blocksize); 6ee1cc412315e2 Christoph Hellwig 2021-07-30 122 static inline bool bdev_dax_supported(struct dax_device *dax_dev, 6ee1cc412315e2 Christoph Hellwig 2021-07-30 123 struct block_device *bdev, int blocksize) ef51042472f55b Dan Williams 2017-05-08 124 { ba23cba9b3bdc9 Darrick J. Wong 2018-05-30 @125 return __bdev_dax_supported(bdev, blocksize); ef51042472f55b Dan Williams 2017-05-08 126 } f5705aa8cfed14 Dan Williams 2017-05-13 127 :::::: The code at line 125 was first introduced by commit :::::: ba23cba9b3bdc967aabdc6ff1e3e9b11ce05bb4f fs: allow per-device dax status checking for filesystems :::::: TO: Darrick J. Wong :::::: CC: Darrick J. Wong --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org