Re: [axboe-block:perf-wip 13/20] drivers/block/rnbd/rnbd-clt.c:1226:27: error: initialization of 'int (*)(struct blk_mq_hw_ctx *, struct io_batch *)' from incompatible pointer type 'int (*)(struct blk_mq_hw_ctx *)'

From: Gioh Kim
Date: Mon Oct 11 2021 - 04:59:06 EST


On Fri, Oct 8, 2021 at 5:14 PM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git perf-wip
> head: ba7751cd7411b7aaffd07728bd7cd6eeb890865d
> commit: c5b891d342f43c8e486be3aeacd5ee61298d3561 [13/20] block: add a struct io_batch argument to fops->iopoll()
> config: h8300-randconfig-r004-20211008 (attached as .config)
> compiler: h8300-linux-gcc (GCC) 11.2.0
> 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/axboe/linux-block.git/commit/?id=c5b891d342f43c8e486be3aeacd5ee61298d3561
> git remote add axboe-block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
> git fetch --no-tags axboe-block perf-wip
> git checkout c5b891d342f43c8e486be3aeacd5ee61298d3561
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=h8300
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> >> drivers/block/rnbd/rnbd-clt.c:1226:27: error: initialization of 'int (*)(struct blk_mq_hw_ctx *, struct io_batch *)' from incompatible pointer type 'int (*)(struct blk_mq_hw_ctx *)' [-Werror=incompatible-pointer-types]
> 1226 | .poll = rnbd_rdma_poll,
> | ^~~~~~~~~~~~~~
> drivers/block/rnbd/rnbd-clt.c:1226:27: note: (near initialization for 'rnbd_mq_ops.poll')
> cc1: some warnings being treated as errors
> --
> >> drivers/nvme/host/tcp.c:2457:27: error: initialization of 'int (*)(struct blk_mq_hw_ctx *, struct io_batch *)' from incompatible pointer type 'int (*)(struct blk_mq_hw_ctx *)' [-Werror=incompatible-pointer-types]
> 2457 | .poll = nvme_tcp_poll,
> | ^~~~~~~~~~~~~
> drivers/nvme/host/tcp.c:2457:27: note: (near initialization for 'nvme_tcp_mq_ops.poll')
> cc1: some warnings being treated as errors
>
>
> vim +1226 drivers/block/rnbd/rnbd-clt.c
>
> 2958a995edc946 Gioh Kim 2021-04-19 1221
> f7a7a5c228d45e Jack Wang 2020-05-11 1222 static struct blk_mq_ops rnbd_mq_ops = {
> f7a7a5c228d45e Jack Wang 2020-05-11 1223 .queue_rq = rnbd_queue_rq,
> f7a7a5c228d45e Jack Wang 2020-05-11 1224 .complete = rnbd_softirq_done_fn,
> 2958a995edc946 Gioh Kim 2021-04-19 1225 .map_queues = rnbd_rdma_map_queues,
> 2958a995edc946 Gioh Kim 2021-04-19 @1226 .poll = rnbd_rdma_poll,
> f7a7a5c228d45e Jack Wang 2020-05-11 1227 };
> f7a7a5c228d45e Jack Wang 2020-05-11 1228
>
> :::::: The code at line 1226 was first introduced by commit
> :::::: 2958a995edc94654df690318df7b9b49e5a3ef88 block/rnbd-clt: Support polling mode for IO latency optimization
>
> :::::: TO: Gioh Kim <gi-oh.kim@xxxxxxxxxxxxxxx>
> :::::: CC: Jens Axboe <axboe@xxxxxxxxx>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx


Hi Jens,

Regarding the warning email from the Kernel test robot as above,
you might be able to fix it with the patch below.

The ib parameter is not used in rnbd_rdma_poll and it could generate
an unused variable warning
when compiling it. I think you could handle it as you fix other source code.

----------------------------------------------------- 8<
-----------------------------------------------
diff --git a/rnbd/rnbd-clt.c b/rnbd/rnbd-clt.c
index ea59999..be47f2f 100644
--- a/rnbd/rnbd-clt.c
+++ b/rnbd/rnbd-clt.c
@@ -1181,7 +1181,7 @@ static blk_status_t rnbd_queue_rq(struct
blk_mq_hw_ctx *hctx,
return ret;
}

-static int rnbd_rdma_poll(struct blk_mq_hw_ctx *hctx)
+static int rnbd_rdma_poll(struct blk_mq_hw_ctx *hctx, struct io_batch *ib)
{
struct rnbd_queue *q = hctx->driver_data;
struct rnbd_clt_dev *dev = q->dev;