tree:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
linux-4.14.y
head: 4f68020fef1c6cf1b680ffb6481ac41379283ea3
commit: 7a35c8cbf2522e4f45d266dca95dacc71cf412ed [9865/9999] blktrace: Protect
q->blk_trace with RCU
config: arc-randconfig-s031-20201111 (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.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.3-107-gaf3512a6-dirty
#
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.14.y
git checkout 7a35c8cbf2522e4f45d266dca95dacc71cf412ed
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
> kernel/trace/blktrace.c:360:12: sparse: sparse: incorrect type in
assignment (different address spaces) @@ expected struct blk_trace *bt @@ got
struct blk_trace [noderef] <asn:4> *[assigned] old_val @@
kernel/trace/blktrace.c:360:12: sparse: expected struct blk_trace *bt
> kernel/trace/blktrace.c:360:12: sparse: got struct blk_trace
[noderef] <asn:4> *[assigned] old_val
kernel/trace/blktrace.c:1025:50:
sparse: sparse: incorrect type in argument 7 (different base types) @@ expected int
error @@ got restricted blk_status_t [usertype] bi_status @@
kernel/trace/blktrace.c:1025:50: sparse: expected int error
kernel/trace/blktrace.c:1025:50: sparse: got restricted blk_status_t [usertype]
bi_status
kernel/trace/blktrace.c:1063:68: sparse: sparse: incorrect type in argument 7
(different base types) @@ expected int error @@ got restricted blk_status_t
[usertype] bi_status @@
kernel/trace/blktrace.c:1063:68: sparse: expected int error
kernel/trace/blktrace.c:1063:68: sparse: got restricted blk_status_t [usertype]
bi_status
kernel/trace/blktrace.c:1286:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1293:32: sparse: sparse: incorrect type in initializer
(different base types) @@ expected unsigned long long [usertype] sector_from @@
got restricted __be64 const [usertype] sector_from @@
kernel/trace/blktrace.c:1293:32: sparse: expected unsigned long long [usertype]
sector_from
kernel/trace/blktrace.c:1293:32: sparse: got restricted __be64 const [usertype]
sector_from
kernel/trace/blktrace.c:1295:24: sparse: sparse: incorrect type in assignment
(different base types) @@ expected restricted __be32 [usertype] device_from @@ got
unsigned int [usertype] @@
kernel/trace/blktrace.c:1295:24: sparse: expected restricted __be32 [usertype]
device_from
kernel/trace/blktrace.c:1295:24: sparse: got unsigned int [usertype]
kernel/trace/blktrace.c:1296:24: sparse: sparse: incorrect type in assignment
(different base types) @@ expected restricted __be32 [usertype] device_to @@ got
unsigned int [usertype] @@
kernel/trace/blktrace.c:1296:24: sparse: expected restricted __be32 [usertype]
device_to
kernel/trace/blktrace.c:1296:24: sparse: got unsigned int [usertype]
kernel/trace/blktrace.c:1297:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1297:24: sparse: sparse: incorrect type in assignment
(different base types) @@ expected restricted __be64 [usertype] sector_from @@ got
unsigned long long [usertype] @@
kernel/trace/blktrace.c:1297:24: sparse: expected restricted __be64 [usertype]
sector_from
kernel/trace/blktrace.c:1297:24: sparse: got unsigned long long [usertype]
kernel/trace/blktrace.c:1430:26: sparse: sparse: restricted __be32 degrades to integer
kernel/trace/blktrace.c:1430:48: sparse: sparse: restricted __be32 degrades to integer
kernel/trace/blktrace.c:1431:27: sparse: sparse: cast from restricted __be64
kernel/trace/blktrace.c:1655:12: sparse: sparse: incorrect type in assignment
(different address spaces) @@ expected struct blk_trace *bt @@ got struct
blk_trace [noderef] <asn:4> *[assigned] old_val @@
kernel/trace/blktrace.c:1655:12: sparse: expected struct blk_trace *bt
kernel/trace/blktrace.c:1655:12: sparse: got struct blk_trace [noderef]
<asn:4> *[assigned] old_val
In file included from include/linux/workqueue.h:9,
from include/linux/rhashtable.h:26,
from include/linux/ipc.h:7,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:9,
from include/linux/sched.h:15,
from include/linux/blkdev.h:5,
from kernel/trace/blktrace.c:19:
include/linux/timer.h: In function 'timer_setup':
include/linux/timer.h:179:23: warning: cast between incompatible function types from
'void (*)(struct timer_list *)' to 'void (*)(long unsigned int)'
[-Wcast-function-type]
179 | __setup_timer(timer, (TIMER_FUNC_TYPE)callback,
| ^
include/linux/timer.h:144:25: note: in definition of macro '__setup_timer'
144 | (_timer)->function = (_fn); 44- | ^~~
kernel/trace/blktrace.c: In function '__trace_note_message':
kernel/trace/blktrace.c:158:63: warning: parameter 'blkcg' set but not used
[-Wunused-but-set-parameter]
158 | void __trace_note_message(struct blk_trace *bt, struct blkcg *blkcg,
| ~~~~~~~~~~~~~~^~~~~
kernel/trace/blktrace.c: In function 'blk_trace_ioctl':
kernel/trace/blktrace.c:740:9: warning: this statement may fall through
[-Wimplicit-fallthrough=]
740 | start = 1;
| ~~~~~~^~~
kernel/trace/blktrace.c:741:2: note: here
741 | case BLKTRACESTOP:
| ^~~~
vim +360 kernel/trace/blktrace.c
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 355
b390c22c0bc7582 kernel/trace/blktrace.c Jens Axboe 2017-11-05 356 static int
__blk_trace_remove(struct request_queue *q)
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 357 {
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 358 struct blk_trace
*bt;
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 359
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 @360 bt =
xchg(&q->blk_trace, NULL);
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 361 if (!bt)
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 362 return -EINVAL;
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 363
5554720482a6317 kernel/trace/blktrace.c Li Zefan 2009-03-25 364 if
(bt->trace_state != Blktrace_running)
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 365
blk_trace_cleanup(bt);
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 366
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 367 return 0;
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 368 }
b390c22c0bc7582 kernel/trace/blktrace.c Jens Axboe 2017-11-05 369
:::::: The code at line 360 was first introduced by commit
:::::: 2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4 [PATCH] Block queue IO tracing support
(blktrace) as of 2006-03-23
:::::: TO: Jens Axboe <axboe(a)suse.de>
:::::: CC: Jens Axboe <axboe(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org