All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [block:for-5.12/io_uring 29/34] fs/io_uring.c:4498:14: sparse: sparse: incorrect type in assignment (different address spaces)
@ 2021-01-20  8:47 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-20  8:47 UTC (permalink / raw
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7598 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-5.12/io_uring
head:   ddebaa7f62a202b40378a5a71d1a51737277d773
commit: 21e779401a16d6f6ca4b5570cdd9b19a29d68bab [29/34] io_uring: get rid of intermediate IORING_OP_CLOSE stage
config: x86_64-randconfig-s022-20210120 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-208-g46a52ca4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?id=21e779401a16d6f6ca4b5570cdd9b19a29d68bab
        git remote add block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
        git fetch --no-tags block for-5.12/io_uring
        git checkout 21e779401a16d6f6ca4b5570cdd9b19a29d68bab
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


"sparse warnings: (new ones prefixed by >>)"
   fs/io_uring.c:3119:24: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected void [noderef] __user * @@     got struct io_buffer *[assigned] kbuf @@
   fs/io_uring.c:3119:24: sparse:     expected void [noderef] __user *
   fs/io_uring.c:3119:24: sparse:     got struct io_buffer *[assigned] kbuf
>> fs/io_uring.c:4498:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct file *file @@     got struct file [noderef] __rcu * @@
   fs/io_uring.c:4498:14: sparse:     expected struct file *file
   fs/io_uring.c:4498:14: sparse:     got struct file [noderef] __rcu *
   fs/io_uring.c:5133:72: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected int mask @@     got restricted __poll_t [usertype] mask @@
   fs/io_uring.c:5133:72: sparse:     expected int mask
   fs/io_uring.c:5133:72: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:5137:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] result @@     got restricted __poll_t [usertype] mask @@
   fs/io_uring.c:5137:21: sparse:     expected unsigned int [usertype] result
   fs/io_uring.c:5137:21: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:5163:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] result @@     got restricted __poll_t @@
   fs/io_uring.c:5163:29: sparse:     expected unsigned int [usertype] result
   fs/io_uring.c:5163:29: sparse:     got restricted __poll_t
   fs/io_uring.c:5228:42: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected restricted __poll_t [usertype] mask @@     got unsigned int [usertype] result @@
   fs/io_uring.c:5228:42: sparse:     expected restricted __poll_t [usertype] mask
   fs/io_uring.c:5228:42: sparse:     got unsigned int [usertype] result
   fs/io_uring.c:5369:41: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected int mask @@     got restricted __poll_t [usertype] @@
   fs/io_uring.c:5369:41: sparse:     expected int mask
   fs/io_uring.c:5369:41: sparse:     got restricted __poll_t [usertype]
   fs/io_uring.c:5457:22: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5457:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5457:22: sparse:    right side has type int
   fs/io_uring.c:5459:22: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5459:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5459:22: sparse:    right side has type int
   fs/io_uring.c:5464:22: sparse: sparse: invalid assignment: &=
   fs/io_uring.c:5464:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5464:22: sparse:    right side has type int
   fs/io_uring.c:5466:14: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5466:14: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5466:14: sparse:    right side has type int
   fs/io_uring.c:5480:67: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected int mask @@     got restricted __poll_t [assigned] [usertype] mask @@
   fs/io_uring.c:5480:67: sparse:     expected int mask
   fs/io_uring.c:5480:67: sparse:     got restricted __poll_t [assigned] [usertype] mask
   fs/io_uring.c:5481:52: sparse: sparse: incorrect type in argument 5 (different base types) @@     expected int events @@     got restricted __poll_t [usertype] events @@
   fs/io_uring.c:5481:52: sparse:     expected int events
   fs/io_uring.c:5481:52: sparse:     got restricted __poll_t [usertype] events
   fs/io_uring.c:5640:34: sparse: sparse: restricted __poll_t degrades to integer
   fs/io_uring.c:5639:57: sparse: sparse: restricted __poll_t degrades to integer
   fs/io_uring.c:5639:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __poll_t [usertype] events @@     got unsigned int @@
   fs/io_uring.c:5639:22: sparse:     expected restricted __poll_t [usertype] events
   fs/io_uring.c:5639:22: sparse:     got unsigned int
   fs/io_uring.c:7080:43: sparse: sparse: incompatible types in comparison expression (different address spaces):
   fs/io_uring.c:7080:43: sparse:    struct cred const [noderef] __rcu *
   fs/io_uring.c:7080:43: sparse:    struct cred const *
   fs/io_uring.c:7485:13: sparse: sparse: context imbalance in 'io_sq_thread_unpark' - wrong count at exit
   fs/io_uring.c:7494:13: sparse: sparse: context imbalance in 'io_sq_thread_park' - wrong count at exit
   fs/io_uring.c:7529:17: sparse: sparse: context imbalance in 'io_sq_thread_stop' - different lock contexts for basic block
   fs/io_uring.c:9031:9: sparse: sparse: context imbalance in 'io_uring_cancel_task_requests' - different lock contexts for basic block

vim +4498 fs/io_uring.c

  4481	
  4482	static int io_close(struct io_kiocb *req, bool force_nonblock,
  4483			    struct io_comp_state *cs)
  4484	{
  4485		struct files_struct *files = current->files;
  4486		struct io_close *close = &req->close;
  4487		struct fdtable *fdt;
  4488		struct file *file;
  4489		int ret;
  4490	
  4491		ret = -EBADF;
  4492		spin_lock(&files->file_lock);
  4493		fdt = files_fdtable(files);
  4494		if (close->fd >= fdt->max_fds) {
  4495			spin_unlock(&files->file_lock);
  4496			goto err;
  4497		}
> 4498		file = fdt->fd[close->fd];
  4499		if (!file) {
  4500			spin_unlock(&files->file_lock);
  4501			goto err;
  4502		}
  4503	
  4504		/* if the file has a flush method, be safe and punt to async */
  4505		if (file->f_op->flush && force_nonblock) {
  4506			spin_unlock(&files->file_lock);
  4507			return -EAGAIN;
  4508		}
  4509	
  4510		ret = __close_fd_get_file(close->fd, &file);
  4511		spin_unlock(&files->file_lock);
  4512		if (ret < 0) {
  4513			if (ret == -ENOENT)
  4514				ret = -EBADF;
  4515			goto err;
  4516		}
  4517	
  4518		/* No ->flush() or already async, safely close from here */
  4519		ret = filp_close(file, current->files);
  4520	err:
  4521		if (ret < 0)
  4522			req_set_fail_links(req);
  4523		fput(file);
  4524		__io_req_complete(req, ret, 0, cs);
  4525		return 0;
  4526	}
  4527	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36562 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-01-20  8:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-20  8:47 [block:for-5.12/io_uring 29/34] fs/io_uring.c:4498:14: sparse: sparse: incorrect type in assignment (different address spaces) kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.