Hi Jens, I love your patch! Yet something to improve: [auto build test ERROR on axboe-block/for-next] [cannot apply to linus/master v5.15-rc5 next-20211015] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jens-Axboe/Various-block-layer-optimizations/20211017-093822 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next config: hexagon-randconfig-r041-20211017 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 746dd6a700931988dd9021d3d04718f1929885a5) 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://github.com/0day-ci/linux/commit/6ed4540d0461ab59f1dc96a0b448eb12c3446182 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jens-Axboe/Various-block-layer-optimizations/20211017-093822 git checkout 6ed4540d0461ab59f1dc96a0b448eb12c3446182 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): >> block/blk-core.c:1636:7: error: implicit declaration of function 'rq_list_empty' [-Werror,-Wimplicit-function-declaration] if (!rq_list_empty(plug->mq_list)) ^ 1 error generated. -- >> block/blk-merge.c:1094:15: error: implicit declaration of function 'rq_list_empty' [-Werror,-Wimplicit-function-declaration] if (!plug || rq_list_empty(plug->mq_list)) ^ >> block/blk-merge.c:1098:7: error: implicit declaration of function 'rq_list_peek' [-Werror,-Wimplicit-function-declaration] rq = rq_list_peek(&plug->mq_list); ^ block/blk-merge.c:1098:7: note: did you mean 'bio_list_peek'? include/linux/bio.h:553:27: note: 'bio_list_peek' declared here static inline struct bio *bio_list_peek(struct bio_list *bl) ^ >> block/blk-merge.c:1098:5: warning: incompatible integer to pointer conversion assigning to 'struct request *' from 'int' [-Wint-conversion] rq = rq_list_peek(&plug->mq_list); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning and 2 errors generated. -- >> block/blk-mq.c:2134:10: error: implicit declaration of function 'rq_list_empty' [-Werror,-Wimplicit-function-declaration] while (!rq_list_empty(plug->mq_list)) { ^ >> block/blk-mq.c:2138:8: error: implicit declaration of function 'rq_list_pop' [-Werror,-Wimplicit-function-declaration] rq = rq_list_pop(&plug->mq_list); ^ block/blk-mq.c:2138:8: note: did you mean 'bio_list_pop'? include/linux/bio.h:558:27: note: 'bio_list_pop' declared here static inline struct bio *bio_list_pop(struct bio_list *bl) ^ >> block/blk-mq.c:2138:6: warning: incompatible integer to pointer conversion assigning to 'struct request *' from 'int' [-Wint-conversion] rq = rq_list_pop(&plug->mq_list); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ block/blk-mq.c:2181:6: error: implicit declaration of function 'rq_list_empty' [-Werror,-Wimplicit-function-declaration] if (rq_list_empty(plug->mq_list)) ^ block/blk-mq.c:2197:8: error: implicit declaration of function 'rq_list_pop' [-Werror,-Wimplicit-function-declaration] rq = rq_list_pop(&plug->mq_list); ^ block/blk-mq.c:2197:6: warning: incompatible integer to pointer conversion assigning to 'struct request *' from 'int' [-Wint-conversion] rq = rq_list_pop(&plug->mq_list); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> block/blk-mq.c:2402:25: error: implicit declaration of function 'rq_list_peek' [-Werror,-Wimplicit-function-declaration] struct request *nxt = rq_list_peek(&plug->mq_list); ^ block/blk-mq.c:2402:25: note: did you mean 'bio_list_peek'? include/linux/bio.h:553:27: note: 'bio_list_peek' declared here static inline struct bio *bio_list_peek(struct bio_list *bl) ^ >> block/blk-mq.c:2402:19: warning: incompatible integer to pointer conversion initializing 'struct request *' with an expression of type 'int' [-Wint-conversion] struct request *nxt = rq_list_peek(&plug->mq_list); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> block/blk-mq.c:2410:2: error: implicit declaration of function 'rq_list_add' [-Werror,-Wimplicit-function-declaration] rq_list_add(&plug->mq_list, rq); ^ block/blk-mq.c:2410:2: note: did you mean '__list_add'? include/linux/list.h:63:20: note: '__list_add' declared here static inline void __list_add(struct list_head *new, ^ block/blk-mq.c:2526:10: error: implicit declaration of function 'rq_list_peek' [-Werror,-Wimplicit-function-declaration] tmp = rq_list_peek(&plug->mq_list); ^ block/blk-mq.c:2526:8: warning: incompatible integer to pointer conversion assigning to 'struct request *' from 'int' [-Wint-conversion] tmp = rq_list_peek(&plug->mq_list); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ block/blk-mq.c:2550:8: error: implicit declaration of function 'rq_list_empty' [-Werror,-Wimplicit-function-declaration] if (!rq_list_empty(plug->mq_list) && same_queue_rq) { ^ block/blk-mq.c:2551:15: error: implicit declaration of function 'rq_list_pop' [-Werror,-Wimplicit-function-declaration] first_rq = rq_list_pop(&plug->mq_list); ^ block/blk-mq.c:2551:13: warning: incompatible integer to pointer conversion assigning to 'struct request *' from 'int' [-Wint-conversion] first_rq = rq_list_pop(&plug->mq_list); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 warnings and 9 errors generated. vim +/rq_list_empty +1636 block/blk-core.c 1631 1632 void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) 1633 { 1634 flush_plug_callbacks(plug, from_schedule); 1635 > 1636 if (!rq_list_empty(plug->mq_list)) 1637 blk_mq_flush_plug_list(plug, from_schedule); 1638 if (unlikely(!from_schedule && plug->cached_rq)) 1639 blk_mq_free_plug_rqs(plug); 1640 } 1641 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org