2020-06-03 11:40:04

by kernel test robot

[permalink] [raw]
Subject: kernel/trace/blktrace.c:347:12: sparse: sparse: incorrect type in assignment (different address spaces)

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d6f9469a03d832dcd17041ed67774ffb5f3e73b3
commit: c780e86dd48ef6467a1146cf7d0fe1e05a635039 blktrace: Protect q->blk_trace with RCU
date: 3 months ago
config: arc-randconfig-s031-20200603 (attached as .config)
compiler: arc-elf-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-244-g0ee050a8-dirty
git checkout c780e86dd48ef6467a1146cf7d0fe1e05a635039
# save the attached .config to linux build tree
make W=1 C=1 ARCH=arc CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

>> kernel/trace/blktrace.c:347: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:347:12: sparse: expected struct blk_trace *bt
>> kernel/trace/blktrace.c:347:12: sparse: got struct blk_trace [noderef] <asn:4> *[assigned] old_val
kernel/trace/blktrace.c:770:5: sparse: sparse: symbol 'blk_trace_bio_get_cgid' was not declared. Should it be static?
kernel/trace/blktrace.c:998: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:998:50: sparse: expected int error
kernel/trace/blktrace.c:998:50: sparse: got restricted blk_status_t [usertype] bi_status
kernel/trace/blktrace.c:1036: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:1036:68: sparse: expected int error
kernel/trace/blktrace.c:1036:68: sparse: got restricted blk_status_t [usertype] bi_status
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1257:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1264: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:1264:32: sparse: expected unsigned long long [usertype] sector_from
kernel/trace/blktrace.c:1264:32: sparse: got restricted __be64 const [usertype] sector_from
kernel/trace/blktrace.c:1266:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] device_from @@ got unsigned int @@
kernel/trace/blktrace.c:1266:24: sparse: expected restricted __be32 [usertype] device_from
kernel/trace/blktrace.c:1266:24: sparse: got unsigned int
kernel/trace/blktrace.c:1267:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] device_to @@ got unsigned int @@
kernel/trace/blktrace.c:1267:24: sparse: expected restricted __be32 [usertype] device_to
kernel/trace/blktrace.c:1267:24: sparse: got unsigned int
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1268:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] sector_from @@ got unsigned long long @@
kernel/trace/blktrace.c:1268:24: sparse: expected restricted __be64 [usertype] sector_from
kernel/trace/blktrace.c:1268:24: sparse: got unsigned long long
kernel/trace/blktrace.c:1415:26: sparse: sparse: restricted __be32 degrades to integer
kernel/trace/blktrace.c:1415:48: sparse: sparse: restricted __be32 degrades to integer
kernel/trace/blktrace.c:1416:27: sparse: sparse: cast from restricted __be64
kernel/trace/blktrace.c:1640: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:1640:12: sparse: expected struct blk_trace *bt
kernel/trace/blktrace.c:1640:12: sparse: got struct blk_trace [noderef] <asn:4> *[assigned] old_val

vim +347 kernel/trace/blktrace.c

2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 342
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe 2017-11-05 343 static int __blk_trace_remove(struct request_queue *q)
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 344 {
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 345 struct blk_trace *bt;
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 346
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 @347 bt = xchg(&q->blk_trace, NULL);
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 348 if (!bt)
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 349 return -EINVAL;
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 350
5554720482a631 kernel/trace/blktrace.c Li Zefan 2009-03-25 351 if (bt->trace_state != Blktrace_running)
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 352 blk_trace_cleanup(bt);
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 353
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 354 return 0;
2056a782f8e7e6 block/blktrace.c Jens Axboe 2006-03-23 355 }
1f2cac107c591c kernel/trace/blktrace.c Jens Axboe 2017-11-05 356

:::::: The code at line 347 was first introduced by commit
:::::: 2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4 [PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23

:::::: TO: Jens Axboe <[email protected]>
:::::: CC: Jens Axboe <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (7.25 kB)
.config.gz (30.88 kB)
Download all attachments

2020-06-03 22:37:58

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: kernel/trace/blktrace.c:347:12: sparse: sparse: incorrect type in assignment (different address spaces)

Jens,

On 6/3/20 4:32 AM, kernel test robot wrote:
> tree:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: d6f9469a03d832dcd17041ed67774ffb5f3e73b3
> commit: c780e86dd48ef6467a1146cf7d0fe1e05a635039 blktrace: Protect q->blk_trace with RCU
> date: 3 months ago
> config: arc-randconfig-s031-20200603 (attached as .config)
> compiler: arc-elf-gcc (GCC) 9.3.0
> reproduce:
> # apt-get install sparse
> # sparse version: v0.6.1-244-g0ee050a8-dirty
> git checkout c780e86dd48ef6467a1146cf7d0fe1e05a635039
> # save the attached .config to linux build tree
> make W=1 C=1 ARCH=arc CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot<[email protected]>

I think Jan has sent the patch to fix the rcu and I've sent out the
series to fix the rest of the issues.

Can you please let me know how can we proceed with the series so that
we can stop these emails ?

2020-06-04 02:35:49

by Jens Axboe

[permalink] [raw]
Subject: Re: kernel/trace/blktrace.c:347:12: sparse: sparse: incorrect type in assignment (different address spaces)

On 6/3/20 4:34 PM, Chaitanya Kulkarni wrote:
> Jens,
>
> On 6/3/20 4:32 AM, kernel test robot wrote:
>> tree:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: d6f9469a03d832dcd17041ed67774ffb5f3e73b3
>> commit: c780e86dd48ef6467a1146cf7d0fe1e05a635039 blktrace: Protect q->blk_trace with RCU
>> date: 3 months ago
>> config: arc-randconfig-s031-20200603 (attached as .config)
>> compiler: arc-elf-gcc (GCC) 9.3.0
>> reproduce:
>> # apt-get install sparse
>> # sparse version: v0.6.1-244-g0ee050a8-dirty
>> git checkout c780e86dd48ef6467a1146cf7d0fe1e05a635039
>> # save the attached .config to linux build tree
>> make W=1 C=1 ARCH=arc CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot<[email protected]>
>
> I think Jan has sent the patch to fix the rcu and I've sent out the
> series to fix the rest of the issues.
>
> Can you please let me know how can we proceed with the series so that
> we can stop these emails ?

Which patch from Jan? I saw one, and it had issues. Then there's a second
one, which is ordered behind a series that's not in my tree and wasn't
queued for 5.8. And finally, there's your series, which seemed to be a
subset of Jan's patch for patch 1.

So it's really not very clear. Maybe if folks got together and actually
put together a series to fix this it would be easier to get this done.

--
Jens Axboe

2020-06-04 07:19:56

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: kernel/trace/blktrace.c:347:12: sparse: sparse: incorrect type in assignment (different address spaces)

On 6/3/20 7:30 PM, Jens Axboe wrote:
>> Can you please let me know how can we proceed with the series so that
>> we can stop these emails ?
> Which patch from Jan? I saw one, and it had issues. Then there's a second
> one, which is ordered behind a series that's not in my tree and wasn't
> queued for 5.8. And finally, there's your series, which seemed to be a
> subset of Jan's patch for patch 1.
>
> So it's really not very clear. Maybe if folks got together and actually
> put together a series to fix this it would be easier to get this done.
>
> -- Jens Axboe

I sent an updated series on the linux-block/for-next which removes the
duplicate patch (Jan's rcu warning fix). In case you happened to apply
other series before mine (with V2) which has Jan's patch I'll resend
this one with V3.