[axboe-block:for-5.20/io_uring 2/171] io_uring/io_uring.c:11521:1: sparse: sparse: Using plain integer as NULL pointer

From: kernel test robot
Date: Sat Jul 16 2022 - 23:07:17 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-5.20/io_uring
head: 4832d0f22cf865e569b3b90b9db346055730c224
commit: 239b2db7c7ca96b3b7dc883ca90d3b0244e238cd [2/171] io_uring: move to separate directory
config: s390-randconfig-s033-20220717 (https://download.01.org/0day-ci/archive/20220717/202207171120.jkCZ5Bc7-lkp@xxxxxxxxx/config)
compiler: s390-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://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?id=239b2db7c7ca96b3b7dc883ca90d3b0244e238cd
git remote add axboe-block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
git fetch --no-tags axboe-block for-5.20/io_uring
git checkout 239b2db7c7ca96b3b7dc883ca90d3b0244e238cd
# 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=s390 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
io_uring/io_uring.c:205:37: sparse: sparse: array of flexible structures
io_uring/io_uring.c:6652:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected signed int [usertype] res @@ got restricted __poll_t @@
io_uring/io_uring.c:6652:38: sparse: expected signed int [usertype] res
io_uring/io_uring.c:6652:38: sparse: got restricted __poll_t
io_uring/io_uring.c:6663:56: sparse: sparse: restricted __poll_t degrades to integer
io_uring/io_uring.c:6662:66: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __poll_t [usertype] val @@ got unsigned int @@
io_uring/io_uring.c:6662:66: sparse: expected restricted __poll_t [usertype] val
io_uring/io_uring.c:6662:66: sparse: got unsigned int
io_uring/io_uring.c:6662:52: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __poll_t [usertype] mask @@ got unsigned short @@
io_uring/io_uring.c:6662:52: sparse: expected restricted __poll_t [usertype] mask
io_uring/io_uring.c:6662:52: sparse: got unsigned short
io_uring/io_uring.c:6668:50: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected signed int [usertype] res @@ got restricted __poll_t [usertype] mask @@
io_uring/io_uring.c:6668:50: sparse: expected signed int [usertype] res
io_uring/io_uring.c:6668:50: sparse: got restricted __poll_t [usertype] mask
io_uring/io_uring.c:6705:68: sparse: sparse: restricted __poll_t degrades to integer
io_uring/io_uring.c:6705:57: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __poll_t [usertype] val @@ got unsigned int @@
io_uring/io_uring.c:6705:57: sparse: expected restricted __poll_t [usertype] val
io_uring/io_uring.c:6705:57: sparse: got unsigned int
io_uring/io_uring.c:6823:40: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int mask @@ got restricted __poll_t [usertype] mask @@
io_uring/io_uring.c:6823:40: sparse: expected int mask
io_uring/io_uring.c:6823:40: sparse: got restricted __poll_t [usertype] mask
io_uring/io_uring.c:6917:24: sparse: sparse: incorrect type in return expression (different base types) @@ expected int @@ got restricted __poll_t [assigned] [usertype] mask @@
io_uring/io_uring.c:6917:24: sparse: expected int
io_uring/io_uring.c:6917:24: sparse: got restricted __poll_t [assigned] [usertype] mask
io_uring/io_uring.c:6937:40: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected int mask @@ got restricted __poll_t [assigned] [usertype] mask @@
io_uring/io_uring.c:6937:40: sparse: expected int mask
io_uring/io_uring.c:6937:40: sparse: got restricted __poll_t [assigned] [usertype] mask
io_uring/io_uring.c:6972:33: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __poll_t [usertype] mask @@ got int @@
io_uring/io_uring.c:6972:33: sparse: expected restricted __poll_t [usertype] mask
io_uring/io_uring.c:6972:33: sparse: got int
io_uring/io_uring.c:7021:33: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected int mask @@ got restricted __poll_t [assigned] [usertype] mask @@
io_uring/io_uring.c:7021:33: sparse: expected int mask
io_uring/io_uring.c:7021:33: sparse: got restricted __poll_t [assigned] [usertype] mask
io_uring/io_uring.c:7021:50: sparse: sparse: incorrect type in argument 6 (different base types) @@ expected int events @@ got restricted __poll_t [usertype] events @@
io_uring/io_uring.c:7021:50: sparse: expected int events
io_uring/io_uring.c:7021:50: sparse: got restricted __poll_t [usertype] events
io_uring/io_uring.c:7135:24: sparse: sparse: invalid assignment: |=
io_uring/io_uring.c:7135:24: sparse: left side has type unsigned int
io_uring/io_uring.c:7135:24: sparse: right side has type restricted __poll_t
io_uring/io_uring.c:7136:65: sparse: sparse: restricted __poll_t degrades to integer
io_uring/io_uring.c:7136:29: sparse: sparse: restricted __poll_t degrades to integer
io_uring/io_uring.c:7136:38: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __poll_t @@ got unsigned int @@
io_uring/io_uring.c:7136:38: sparse: expected restricted __poll_t
io_uring/io_uring.c:7136:38: sparse: got unsigned int
io_uring/io_uring.c:7225:43: sparse: sparse: invalid assignment: &=
io_uring/io_uring.c:7225:43: sparse: left side has type restricted __poll_t
io_uring/io_uring.c:7225:43: sparse: right side has type int
io_uring/io_uring.c:7226:62: sparse: sparse: restricted __poll_t degrades to integer
io_uring/io_uring.c:7226:43: sparse: sparse: invalid assignment: |=
io_uring/io_uring.c:7226:43: sparse: left side has type restricted __poll_t
io_uring/io_uring.c:7226:43: sparse: right side has type unsigned int
>> io_uring/io_uring.c:11521:1: sparse: sparse: Using plain integer as NULL pointer
>> io_uring/io_uring.c:11521:1: sparse: sparse: Using plain integer as NULL pointer
io_uring/io_uring.c:12124:1: sparse: sparse: Using plain integer as NULL pointer
io_uring/io_uring.c:12124:1: sparse: sparse: Using plain integer as NULL pointer
io_uring/io_uring.c:12719:1: sparse: sparse: Using plain integer as NULL pointer
io_uring/io_uring.c:12719:1: sparse: sparse: Using plain integer as NULL pointer
io_uring/io_uring.c:2665:17: sparse: sparse: context imbalance in 'handle_prev_tw_list' - different lock contexts for basic block
io_uring/io_uring.c:9303:9: sparse: sparse: context imbalance in 'io_sq_thread_unpark' - wrong count at exit
io_uring/io_uring.c:9314:9: sparse: sparse: context imbalance in 'io_sq_thread_park' - wrong count at exit

vim +11521 io_uring/io_uring.c

c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11520
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 @11521 SYSCALL_DEFINE6(io_uring_enter, unsigned int, fd, u32, to_submit,
c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11522 u32, min_complete, u32, flags, const void __user *, argp,
c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11523 size_t, argsz)
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11524 {
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11525 struct io_ring_ctx *ctx;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11526 struct fd f;
33f993da9829738 fs/io_uring.c Pavel Begunkov 2021-03-19 11527 long ret;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11528
4c6e277c4cc4a6b fs/io_uring.c Jens Axboe 2020-07-01 11529 io_run_task_work();
b41e98524e424d1 fs/io_uring.c Jens Axboe 2020-02-17 11530
33f993da9829738 fs/io_uring.c Pavel Begunkov 2021-03-19 11531 if (unlikely(flags & ~(IORING_ENTER_GETEVENTS | IORING_ENTER_SQ_WAKEUP |
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11532 IORING_ENTER_SQ_WAIT | IORING_ENTER_EXT_ARG |
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11533 IORING_ENTER_REGISTERED_RING)))
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11534 return -EINVAL;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11535
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11536 /*
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11537 * Ring fd has been registered via IORING_REGISTER_RING_FDS, we
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11538 * need only dereference our task private array to find it.
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11539 */
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11540 if (flags & IORING_ENTER_REGISTERED_RING) {
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11541 struct io_uring_task *tctx = current->io_uring;
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11542
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11543 if (!tctx || fd >= IO_RINGFD_REG_MAX)
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11544 return -EINVAL;
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11545 fd = array_index_nospec(fd, IO_RINGFD_REG_MAX);
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11546 f.file = tctx->registered_rings[fd];
4329490a78b66ae fs/io_uring.c Al Viro 2022-05-11 11547 f.flags = 0;
e7a6c00dc77aedf fs/io_uring.c Jens Axboe 2022-03-04 11548 } else {
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11549 f = fdget(fd);
4329490a78b66ae fs/io_uring.c Al Viro 2022-05-11 11550 }
4329490a78b66ae fs/io_uring.c Al Viro 2022-05-11 11551
33f993da9829738 fs/io_uring.c Pavel Begunkov 2021-03-19 11552 if (unlikely(!f.file))
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11553 return -EBADF;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11554
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11555 ret = -EOPNOTSUPP;
33f993da9829738 fs/io_uring.c Pavel Begunkov 2021-03-19 11556 if (unlikely(f.file->f_op != &io_uring_fops))
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11557 goto out_fput;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11558
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11559 ret = -ENXIO;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11560 ctx = f.file->private_data;
33f993da9829738 fs/io_uring.c Pavel Begunkov 2021-03-19 11561 if (unlikely(!percpu_ref_tryget(&ctx->refs)))
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11562 goto out_fput;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11563
7e84e1c7566a1df fs/io_uring.c Stefano Garzarella 2020-08-27 11564 ret = -EBADFD;
33f993da9829738 fs/io_uring.c Pavel Begunkov 2021-03-19 11565 if (unlikely(ctx->flags & IORING_SETUP_R_DISABLED))
7e84e1c7566a1df fs/io_uring.c Stefano Garzarella 2020-08-27 11566 goto out;
7e84e1c7566a1df fs/io_uring.c Stefano Garzarella 2020-08-27 11567
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11568 /*
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11569 * For SQ polling, the thread will do all submissions and completions.
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11570 * Just return the requested submit count, and wake the thread if
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11571 * we were asked to.
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11572 */
b2a9eadab857309 fs/io_uring.c Jens Axboe 2019-09-12 11573 ret = 0;
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11574 if (ctx->flags & IORING_SETUP_SQPOLL) {
90f67366cb88719 fs/io_uring.c Pavel Begunkov 2021-08-09 11575 io_cqring_overflow_flush(ctx);
6c503150ae33ee1 fs/io_uring.c Pavel Begunkov 2021-01-04 11576
21f965221e7c426 fs/io_uring.c Jens Axboe 2021-08-14 11577 if (unlikely(ctx->sq_data->thread == NULL)) {
041474885e9707a fs/io_uring.c Stefan Metzmacher 2021-03-07 11578 ret = -EOWNERDEAD;
5f3f26f98ae484a fs/io_uring.c Jens Axboe 2021-02-25 11579 goto out;
21f965221e7c426 fs/io_uring.c Jens Axboe 2021-08-14 11580 }
6c271ce2f1d572f fs/io_uring.c Jens Axboe 2019-01-10 11581 if (flags & IORING_ENTER_SQ_WAKEUP)
534ca6d684f1fea fs/io_uring.c Jens Axboe 2020-09-02 11582 wake_up(&ctx->sq_data->wait);
d9d05217cb6990b fs/io_uring.c Pavel Begunkov 2021-01-08 11583 if (flags & IORING_ENTER_SQ_WAIT) {
d9d05217cb6990b fs/io_uring.c Pavel Begunkov 2021-01-08 11584 ret = io_sqpoll_wait_sq(ctx);
d9d05217cb6990b fs/io_uring.c Pavel Begunkov 2021-01-08 11585 if (ret)
d9d05217cb6990b fs/io_uring.c Pavel Begunkov 2021-01-08 11586 goto out;
d9d05217cb6990b fs/io_uring.c Pavel Begunkov 2021-01-08 11587 }
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11588 ret = to_submit;
b2a9eadab857309 fs/io_uring.c Jens Axboe 2019-09-12 11589 } else if (to_submit) {
eef51daa72f745b fs/io_uring.c Pavel Begunkov 2021-06-14 11590 ret = io_uring_add_tctx_node(ctx);
0f2122045b94624 fs/io_uring.c Jens Axboe 2020-09-13 11591 if (unlikely(ret))
0f2122045b94624 fs/io_uring.c Jens Axboe 2020-09-13 11592 goto out;
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11593
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11594 mutex_lock(&ctx->uring_lock);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11595 ret = io_submit_sqes(ctx, to_submit);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11596 if (ret != to_submit) {
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11597 mutex_unlock(&ctx->uring_lock);
7c504e65206a437 fs/io_uring.c Pavel Begunkov 2019-12-18 11598 goto out;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11599 }
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11600 if ((flags & IORING_ENTER_GETEVENTS) && ctx->syscall_iopoll)
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11601 goto iopoll_locked;
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11602 mutex_unlock(&ctx->uring_lock);
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11603 }
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11604 if (flags & IORING_ENTER_GETEVENTS) {
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11605 int ret2;
773697b610bff94 fs/io_uring.c Pavel Begunkov 2022-03-22 11606 if (ctx->syscall_iopoll) {
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11607 /*
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11608 * We disallow the app entering submit/complete with
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11609 * polling, but we still need to lock the ring to
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11610 * prevent racing with polled issue that got punted to
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11611 * a workqueue.
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11612 */
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11613 mutex_lock(&ctx->uring_lock);
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11614 iopoll_locked:
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11615 ret2 = io_validate_ext_arg(flags, argp, argsz);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11616 if (likely(!ret2)) {
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11617 min_complete = min(min_complete,
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11618 ctx->cq_entries);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11619 ret2 = io_iopoll_check(ctx, min_complete);
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11620 }
d487b43cd3276e4 fs/io_uring.c Pavel Begunkov 2022-03-22 11621 mutex_unlock(&ctx->uring_lock);
def596e9557c91d fs/io_uring.c Jens Axboe 2019-01-09 11622 } else {
c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11623 const sigset_t __user *sig;
c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11624 struct __kernel_timespec __user *ts;
c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11625
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11626 ret2 = io_get_ext_arg(flags, argp, &argsz, &ts, &sig);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11627 if (likely(!ret2)) {
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11628 min_complete = min(min_complete,
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11629 ctx->cq_entries);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11630 ret2 = io_cqring_wait(ctx, min_complete, sig,
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11631 argsz, ts);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11632 }
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11633 }
c73ebb685fb6dfb fs/io_uring.c Hao Xu 2020-11-03 11634
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11635 if (!ret) {
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11636 ret = ret2;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11637
32b2244a840a90e fs/io_uring.c Xiaoguang Wang 2020-03-11 11638 /*
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11639 * EBADR indicates that one or more CQE were dropped.
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11640 * Once the user has been informed we can clear the bit
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11641 * as they are obviously ok with those drops.
32b2244a840a90e fs/io_uring.c Xiaoguang Wang 2020-03-11 11642 */
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11643 if (unlikely(ret2 == -EBADR))
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11644 clear_bit(IO_CHECK_CQ_DROPPED_BIT,
155bc9505dbd661 fs/io_uring.c Dylan Yudaken 2022-04-21 11645 &ctx->check_cq);
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11646 }
def596e9557c91d fs/io_uring.c Jens Axboe 2019-01-09 11647 }
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11648
7c504e65206a437 fs/io_uring.c Pavel Begunkov 2019-12-18 11649 out:
6805b32ec2b0897 fs/io_uring.c Pavel Begunkov 2019-10-08 11650 percpu_ref_put(&ctx->refs);
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11651 out_fput:
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11652 fdput(f);
3e813c9026720c1 fs/io_uring.c Dylan Yudaken 2022-04-21 11653 return ret;
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11654 }
2b188cc1bb857a9 fs/io_uring.c Jens Axboe 2019-01-07 11655

:::::: The code at line 11521 was first introduced by commit
:::::: 2b188cc1bb857a9d4701ae59aa7768b5124e262e Add io_uring IO interface

:::::: TO: Jens Axboe <axboe@xxxxxxxxx>
:::::: CC: Jens Axboe <axboe@xxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp