tree: git://git.infradead.org/users/hch/block.git blkdev.h-includes head: 48f7fda047613ceec07881f14a5eaf1ee19d4433 commit: b9615241041911b7ce9a57f1a2d24a66e5c2b091 [14/16] block: move struct request to blk-mq.h config: riscv-randconfig-r012-20210724 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 3f2c1e99e44d028d5e9dd685f3c568f2661f2f68) 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 # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu git remote add hch-block git://git.infradead.org/users/hch/block.git git fetch --no-tags hch-block blkdev.h-includes git checkout b9615241041911b7ce9a57f1a2d24a66e5c2b091 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from block/blk-crypto-fallback.c:22: >> block/blk-crypto-internal.h:34:36: error: incomplete definition of type 'struct request' return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: >> block/blk-crypto-internal.h:34:49: error: implicit declaration of function 'blk_rq_bytes' [-Werror,-Wimplicit-function-declaration] return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ^ block/blk-crypto-internal.h:42:37: error: incomplete definition of type 'struct request' bio->bi_iter.bi_size, req->crypt_ctx); ~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:48:36: error: incomplete definition of type 'struct request' return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:48:49: error: implicit declaration of function 'blk_rq_bytes' [-Werror,-Wimplicit-function-declaration] return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ^ block/blk-crypto-internal.h:49:16: error: incomplete definition of type 'struct request' next->crypt_ctx); ~~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:54:4: error: incomplete definition of type 'struct request' rq->crypt_ctx = NULL; ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:55:4: error: incomplete definition of type 'struct request' rq->crypt_keyslot = NULL; ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:60:11: error: incomplete definition of type 'struct request' return rq->crypt_ctx; ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:117:12: error: incomplete definition of type 'struct request' memcpy(rq->crypt_ctx->bc_dun, bio->bi_crypt_context->bc_dun, ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto-fallback.c:22: block/blk-crypto-internal.h:118:19: error: incomplete definition of type 'struct request' sizeof(rq->crypt_ctx->bc_dun)); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ 11 errors generated. -- In file included from block/blk-crypto.c:18: >> block/blk-crypto-internal.h:34:36: error: incomplete definition of type 'struct request' return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: >> block/blk-crypto-internal.h:34:49: error: implicit declaration of function 'blk_rq_bytes' [-Werror,-Wimplicit-function-declaration] return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ^ block/blk-crypto-internal.h:42:37: error: incomplete definition of type 'struct request' bio->bi_iter.bi_size, req->crypt_ctx); ~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:48:36: error: incomplete definition of type 'struct request' return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:48:49: error: implicit declaration of function 'blk_rq_bytes' [-Werror,-Wimplicit-function-declaration] return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), ^ block/blk-crypto-internal.h:49:16: error: incomplete definition of type 'struct request' next->crypt_ctx); ~~~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:54:4: error: incomplete definition of type 'struct request' rq->crypt_ctx = NULL; ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:55:4: error: incomplete definition of type 'struct request' rq->crypt_keyslot = NULL; ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:60:11: error: incomplete definition of type 'struct request' return rq->crypt_ctx; ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:117:12: error: incomplete definition of type 'struct request' memcpy(rq->crypt_ctx->bc_dun, bio->bi_crypt_context->bc_dun, ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ In file included from block/blk-crypto.c:18: block/blk-crypto-internal.h:118:19: error: incomplete definition of type 'struct request' sizeof(rq->crypt_ctx->bc_dun)); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ >> block/blk-crypto.c:186:36: error: incomplete definition of type 'struct request' return bio_crypt_ctx_compatible(rq->crypt_ctx, bio->bi_crypt_context); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:221:36: error: incomplete definition of type 'struct request' return blk_ksm_get_slot_for_key(rq->q->ksm, rq->crypt_ctx->bc_key, ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:221:48: error: incomplete definition of type 'struct request' return blk_ksm_get_slot_for_key(rq->q->ksm, rq->crypt_ctx->bc_key, ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:222:9: error: incomplete definition of type 'struct request' &rq->crypt_keyslot); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:236:21: error: incomplete definition of type 'struct request' blk_ksm_put_slot(rq->crypt_keyslot); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:237:17: error: incomplete definition of type 'struct request' mempool_free(rq->crypt_ctx, bio_crypt_ctx_pool); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:297:9: error: incomplete definition of type 'struct request' if (!rq->crypt_ctx) { ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ block/blk-crypto.c:298:5: error: incomplete definition of type 'struct request' rq->crypt_ctx = mempool_alloc(bio_crypt_ctx_pool, gfp_mask); ~~^ include/linux/bsg.h:7:8: note: forward declaration of 'struct request' struct request; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. vim +/blk_rq_bytes +34 block/blk-crypto-internal.h a892c8d52c0228 Satya Tangirala 2020-05-14 27 a892c8d52c0228 Satya Tangirala 2020-05-14 28 bool bio_crypt_ctx_mergeable(struct bio_crypt_ctx *bc1, unsigned int bc1_bytes, a892c8d52c0228 Satya Tangirala 2020-05-14 29 struct bio_crypt_ctx *bc2); a892c8d52c0228 Satya Tangirala 2020-05-14 30 a892c8d52c0228 Satya Tangirala 2020-05-14 31 static inline bool bio_crypt_ctx_back_mergeable(struct request *req, a892c8d52c0228 Satya Tangirala 2020-05-14 32 struct bio *bio) a892c8d52c0228 Satya Tangirala 2020-05-14 33 { a892c8d52c0228 Satya Tangirala 2020-05-14 @34 return bio_crypt_ctx_mergeable(req->crypt_ctx, blk_rq_bytes(req), a892c8d52c0228 Satya Tangirala 2020-05-14 35 bio->bi_crypt_context); a892c8d52c0228 Satya Tangirala 2020-05-14 36 } a892c8d52c0228 Satya Tangirala 2020-05-14 37 :::::: The code at line 34 was first introduced by commit :::::: a892c8d52c02284076fbbacae6692aa5c5807d11 block: Inline encryption support for blk-mq :::::: TO: Satya Tangirala :::::: CC: Jens Axboe --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org