Hi Ming, I love your patch! Perhaps something to improve: [auto build test WARNING on axboe-block/for-next] [also build test WARNING on linus/master v6.3-rc1 next-20230309] [cannot apply to char-misc/char-misc-testing char-misc/char-misc-next char-misc/char-misc-linus] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Ming-Lei/io_uring-add-IO_URING_F_FUSED-and-prepare-for-supporting-OP_FUSED_CMD/20230307-222928 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next patch link: https://lore.kernel.org/r/20230307141520.793891-6-ming.lei%40redhat.com patch subject: [PATCH V2 05/17] io_uring: support OP_SEND_ZC/OP_RECV for fused slave request config: sparc64-randconfig-s031-20230308 (https://download.01.org/0day-ci/archive/20230310/202303100159.i9Bzx24n-lkp@xxxxxxxxx/config) compiler: sparc64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/0a921da27026b3ba08aeceb432dd983480281344 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Ming-Lei/io_uring-add-IO_URING_F_FUSED-and-prepare-for-supporting-OP_FUSED_CMD/20230307-222928 git checkout 0a921da27026b3ba08aeceb432dd983480281344 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc64 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303100159.i9Bzx24n-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) io_uring/net.c: note: in included file (through io_uring/io_uring.h): io_uring/slist.h:116:29: sparse: sparse: no newline at end of file io_uring/net.c: note: in included file (through io_uring/io_uring.h): include/linux/io_uring_types.h:179:37: sparse: sparse: array of flexible structures >> io_uring/net.c:385:49: sparse: sparse: cast removes address space '__user' of expression io_uring/net.c:880:49: sparse: sparse: cast removes address space '__user' of expression io_uring/net.c:1135:49: sparse: sparse: cast removes address space '__user' of expression vim +/__user +385 io_uring/net.c 343 344 int io_send(struct io_kiocb *req, unsigned int issue_flags) 345 { 346 struct sockaddr_storage __address; 347 struct io_sr_msg *sr = io_kiocb_to_cmd(req, struct io_sr_msg); 348 struct msghdr msg; 349 struct socket *sock; 350 unsigned flags; 351 int min_ret = 0; 352 int ret; 353 354 msg.msg_name = NULL; 355 msg.msg_control = NULL; 356 msg.msg_controllen = 0; 357 msg.msg_namelen = 0; 358 msg.msg_ubuf = NULL; 359 360 if (sr->addr) { 361 if (req_has_async_data(req)) { 362 struct io_async_msghdr *io = req->async_data; 363 364 msg.msg_name = &io->addr; 365 } else { 366 ret = move_addr_to_kernel(sr->addr, sr->addr_len, &__address); 367 if (unlikely(ret < 0)) 368 return ret; 369 msg.msg_name = (struct sockaddr *)&__address; 370 } 371 msg.msg_namelen = sr->addr_len; 372 } 373 374 if (!(req->flags & REQ_F_POLLED) && 375 (sr->flags & IORING_RECVSEND_POLL_FIRST)) 376 return io_setup_async_addr(req, &__address, issue_flags); 377 378 sock = sock_from_file(req->file); 379 if (unlikely(!sock)) 380 return -ENOTSOCK; 381 382 if (!(req->flags & REQ_F_FUSED_SLAVE)) 383 ret = import_ubuf(ITER_SOURCE, sr->buf, sr->len, &msg.msg_iter); 384 else > 385 ret = io_import_kbuf_for_slave((u64)sr->buf, sr->len, 386 ITER_SOURCE, &msg.msg_iter, req); 387 if (unlikely(ret)) 388 return ret; 389 390 flags = sr->msg_flags; 391 if (issue_flags & IO_URING_F_NONBLOCK) 392 flags |= MSG_DONTWAIT; 393 if (flags & MSG_WAITALL) 394 min_ret = iov_iter_count(&msg.msg_iter); 395 396 msg.msg_flags = flags; 397 ret = sock_sendmsg(sock, &msg); 398 if (ret < min_ret) { 399 if (ret == -EAGAIN && (issue_flags & IO_URING_F_NONBLOCK)) 400 return io_setup_async_addr(req, &__address, issue_flags); 401 402 if (ret > 0 && io_net_retry(sock, flags)) { 403 sr->len -= ret; 404 sr->buf += ret; 405 sr->done_io += ret; 406 req->flags |= REQ_F_PARTIAL_IO; 407 return io_setup_async_addr(req, &__address, issue_flags); 408 } 409 if (ret == -ERESTARTSYS) 410 ret = -EINTR; 411 req_set_fail(req); 412 } 413 if (ret >= 0) 414 ret += sr->done_io; 415 else if (sr->done_io) 416 ret = sr->done_io; 417 io_req_set_res(req, ret, 0); 418 return IOU_OK; 419 } 420 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests