[linux-next:master 2205/2463] include/trace/events/io_uring.h:509:1: sparse: sparse: incorrect type in assignment (different base types)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   368847b165bbfbdcf0bd4c96b167893dcdb13aba
commit: ca8c0786e01b744c990fa8cd8e9d53a861a44daa [2205/2463] io_uring: dump sqe contents if issue fails
config: i386-randconfig-s002-20210916 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ca8c0786e01b744c990fa8cd8e9d53a861a44daa
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout ca8c0786e01b744c990fa8cd8e9d53a861a44daa
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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


sparse warnings: (new ones prefixed by >>)
   fs/io_uring.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, include/trace/events/io_uring.h):
>> include/trace/events/io_uring.h:509:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] op_flags @@     got restricted __kernel_rwf_t const [usertype] rw_flags @@
   include/trace/events/io_uring.h:509:1: sparse:     expected unsigned int [usertype] op_flags
   include/trace/events/io_uring.h:509:1: sparse:     got restricted __kernel_rwf_t const [usertype] rw_flags
   fs/io_uring.c: note: in included file (through include/trace/perf.h, include/trace/define_trace.h, include/trace/events/io_uring.h):
>> include/trace/events/io_uring.h:509:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] op_flags @@     got restricted __kernel_rwf_t const [usertype] rw_flags @@
   include/trace/events/io_uring.h:509:1: sparse:     expected unsigned int [usertype] op_flags
   include/trace/events/io_uring.h:509:1: sparse:     got restricted __kernel_rwf_t const [usertype] rw_flags
   fs/io_uring.c:3101: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:3101:24: sparse:     expected void [noderef] __user *
   fs/io_uring.c:3101:24: sparse:     got struct io_buffer *[assigned] kbuf
   fs/io_uring.c:4620:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct file *file @@     got struct file [noderef] __rcu * @@
   fs/io_uring.c:4620:14: sparse:     expected struct file *file
   fs/io_uring.c:4620:14: sparse:     got struct file [noderef] __rcu *
   fs/io_uring.c:5250:72: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected int mask @@     got restricted __poll_t [usertype] mask @@
   fs/io_uring.c:5250:72: sparse:     expected int mask
   fs/io_uring.c:5250:72: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:5254: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:5254:21: sparse:     expected unsigned int [usertype] result
   fs/io_uring.c:5254:21: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:5279:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] result @@     got restricted __poll_t @@
   fs/io_uring.c:5279:29: sparse:     expected unsigned int [usertype] result
   fs/io_uring.c:5279:29: sparse:     got restricted __poll_t
   fs/io_uring.c:5370:51: 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:5370:51: sparse:     expected restricted __poll_t [usertype] mask
   fs/io_uring.c:5370:51: sparse:     got unsigned int [usertype] result
   fs/io_uring.c:5526:41: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected int mask @@     got restricted __poll_t [usertype] @@
   fs/io_uring.c:5526:41: sparse:     expected int mask
   fs/io_uring.c:5526:41: sparse:     got restricted __poll_t [usertype]
   fs/io_uring.c:5598:30: sparse: sparse: restricted __poll_t degrades to integer
   fs/io_uring.c:5598:53: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __poll_t [usertype] mask @@     got unsigned int @@
   fs/io_uring.c:5598:53: sparse:     expected restricted __poll_t [usertype] mask
   fs/io_uring.c:5598:53: sparse:     got unsigned int
   fs/io_uring.c:5610:22: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5610:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5610:22: sparse:    right side has type int
   fs/io_uring.c:5615:30: sparse: sparse: invalid assignment: &=
   fs/io_uring.c:5615:30: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5615:30: sparse:    right side has type int
   fs/io_uring.c:5618:22: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5618:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5618:22: sparse:    right side has type int
   fs/io_uring.c:5641:33: sparse: sparse: incorrect type in argument 5 (different base types) @@     expected int mask @@     got restricted __poll_t [usertype] mask @@
   fs/io_uring.c:5641:33: sparse:     expected int mask
   fs/io_uring.c:5641:33: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:5641:50: sparse: sparse: incorrect type in argument 6 (different base types) @@     expected int events @@     got restricted __poll_t [usertype] events @@
   fs/io_uring.c:5641:50: sparse:     expected int events
   fs/io_uring.c:5641:50: sparse:     got restricted __poll_t [usertype] events
   fs/io_uring.c:5753:24: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5753:24: sparse:    left side has type unsigned int
   fs/io_uring.c:5753:24: sparse:    right side has type restricted __poll_t
   fs/io_uring.c:5754:65: sparse: sparse: restricted __poll_t degrades to integer
   fs/io_uring.c:5754:29: sparse: sparse: restricted __poll_t degrades to integer
   fs/io_uring.c:5754:38: sparse: sparse: incorrect type in return expression (different base types) @@     expected restricted __poll_t @@     got unsigned int @@
   fs/io_uring.c:5754:38: sparse:     expected restricted __poll_t
   fs/io_uring.c:5754:38: sparse:     got unsigned int
   fs/io_uring.c:5892:35: sparse: sparse: invalid assignment: &=
   fs/io_uring.c:5892:35: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5892:35: sparse:    right side has type int
   fs/io_uring.c:5893:54: sparse: sparse: restricted __poll_t degrades to integer
   fs/io_uring.c:5893:35: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5893:35: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5893:35: sparse:    right side has type unsigned int
   fs/io_uring.c:7887:9: sparse: sparse: context imbalance in 'io_sq_thread_unpark' - wrong count at exit
   fs/io_uring.c:7898:9: sparse: sparse: context imbalance in 'io_sq_thread_park' - wrong count at exit

vim +509 include/trace/events/io_uring.h

   500	
   501	/*
   502	 * io_uring_req_failed - called when an sqe is errored dring submission
   503	 *
   504	 * @sqe:		pointer to the io_uring_sqe that failed
   505	 * @error:		error it failed with
   506	 *
   507	 * Allows easier diagnosing of malformed requests in production systems.
   508	 */
 > 509	TRACE_EVENT(io_uring_req_failed,
   510	
   511		TP_PROTO(const struct io_uring_sqe *sqe, int error),
   512	
   513		TP_ARGS(sqe, error),
   514	
   515		TP_STRUCT__entry (
   516			__field(  u8,	opcode )
   517			__field(  u8,	flags )
   518			__field(  u8,	ioprio )
   519			__field( u64,	off )
   520			__field( u64,	addr )
   521			__field( u32,	len )
   522			__field( u32,	op_flags )
   523			__field( u64,	user_data )
   524			__field( u16,	buf_index )
   525			__field( u16,	personality )
   526			__field( u32,	file_index )
   527			__field( u64,	pad1 )
   528			__field( u64,	pad2 )
   529			__field( int,	error )
   530		),
   531	
   532		TP_fast_assign(
   533			__entry->opcode		= sqe->opcode;
   534			__entry->flags		= sqe->flags;
   535			__entry->ioprio		= sqe->ioprio;
   536			__entry->off		= sqe->off;
   537			__entry->addr		= sqe->addr;
   538			__entry->len		= sqe->len;
   539			__entry->op_flags	= sqe->rw_flags;
   540			__entry->user_data	= sqe->user_data;
   541			__entry->buf_index	= sqe->buf_index;
   542			__entry->personality	= sqe->personality;
   543			__entry->file_index	= sqe->file_index;
   544			__entry->pad1		= sqe->__pad2[0];
   545			__entry->pad2		= sqe->__pad2[1];
   546			__entry->error		= error;
   547		),
   548	
   549		TP_printk("op %d, flags=0x%x, prio=%d, off=%llu, addr=%llu, "
   550			  "len=%u, rw_flags=0x%x, user_data=0x%llx, buf_index=%d, "
   551			  "personality=%d, file_index=%d, pad=0x%llx/%llx, error=%d",
   552			  __entry->opcode, __entry->flags, __entry->ioprio,
   553			  (unsigned long long)__entry->off,
   554			  (unsigned long long) __entry->addr, __entry->len,
   555			  __entry->op_flags, (unsigned long long) __entry->user_data,
   556			  __entry->buf_index, __entry->personality, __entry->file_index,
   557			  (unsigned long long) __entry->pad1,
   558			  (unsigned long long) __entry->pad2, __entry->error)
   559	);
   560	

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux