lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 6 Jul 2022 11:58:24 +0800 From: kernel test robot <lkp@...el.com> To: Jiri Olsa <jolsa@...nel.org> Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org Subject: [jolsa-perf:bpf/tramp_22 8/21] kernel/trace/ftrace.c:5582:22: sparse: sparse: incorrect type in assignment (different address spaces) tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/tramp_22 head: 1d891c46bb689a24985cea58f4eddb053d6b1331 commit: 5b091bc758fd64f7f3748f61c0e43e09b9366a1a [8/21] ftrace: Add set_ftrace_direct function config: i386-randconfig-s001 (https://download.01.org/0day-ci/archive/20220706/202207061143.x1Av3ceC-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=5b091bc758fd64f7f3748f61c0e43e09b9366a1a git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git git fetch --no-tags jolsa-perf bpf/tramp_22 git checkout 5b091bc758fd64f7f3748f61c0e43e09b9366a1a # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash kernel/trace/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@...el.com> sparse warnings: (new ones prefixed by >>) kernel/trace/ftrace.c:116:59: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_ops [noderef] __rcu *[addressable] [toplevel] ftrace_ops_list @@ got struct ftrace_ops * @@ kernel/trace/ftrace.c:116:59: sparse: expected struct ftrace_ops [noderef] __rcu *[addressable] [toplevel] ftrace_ops_list kernel/trace/ftrace.c:116:59: sparse: got struct ftrace_ops * kernel/trace/ftrace.c:195:49: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_ops *ops @@ got struct ftrace_ops [noderef] __rcu *[addressable] [toplevel] ftrace_ops_list @@ kernel/trace/ftrace.c:195:49: sparse: expected struct ftrace_ops *ops kernel/trace/ftrace.c:195:49: sparse: got struct ftrace_ops [noderef] __rcu *[addressable] [toplevel] ftrace_ops_list kernel/trace/ftrace.c:278:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops [noderef] __rcu * @@ got struct ftrace_ops * @@ kernel/trace/ftrace.c:278:23: sparse: expected struct ftrace_ops [noderef] __rcu * kernel/trace/ftrace.c:278:23: sparse: got struct ftrace_ops * kernel/trace/ftrace.c:282:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops **p @@ got struct ftrace_ops [noderef] __rcu **list @@ kernel/trace/ftrace.c:282:16: sparse: expected struct ftrace_ops **p kernel/trace/ftrace.c:282:16: sparse: got struct ftrace_ops [noderef] __rcu **list kernel/trace/ftrace.c:282:50: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops **p @@ got struct ftrace_ops [noderef] __rcu ** @@ kernel/trace/ftrace.c:282:50: sparse: expected struct ftrace_ops **p kernel/trace/ftrace.c:282:50: sparse: got struct ftrace_ops [noderef] __rcu ** kernel/trace/ftrace.c:289:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops * @@ got struct ftrace_ops [noderef] __rcu *next @@ kernel/trace/ftrace.c:289:12: sparse: expected struct ftrace_ops * kernel/trace/ftrace.c:289:12: sparse: got struct ftrace_ops [noderef] __rcu *next kernel/trace/ftrace.c:1031:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *notrace_hash @@ got struct ftrace_hash * @@ kernel/trace/ftrace.c:1031:43: sparse: expected struct ftrace_hash [noderef] __rcu *notrace_hash kernel/trace/ftrace.c:1031:43: sparse: got struct ftrace_hash * kernel/trace/ftrace.c:1032:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *filter_hash @@ got struct ftrace_hash * @@ kernel/trace/ftrace.c:1032:43: sparse: expected struct ftrace_hash [noderef] __rcu *filter_hash kernel/trace/ftrace.c:1032:43: sparse: got struct ftrace_hash * kernel/trace/ftrace.c:1259:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1259:40: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:1259:40: sparse: got struct ftrace_hash [noderef] __rcu *filter_hash kernel/trace/ftrace.c:1260:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:1260:40: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:1260:40: sparse: got struct ftrace_hash [noderef] __rcu *notrace_hash kernel/trace/ftrace.c:1987:54: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash *old_hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1987:54: sparse: expected struct ftrace_hash *old_hash kernel/trace/ftrace.c:1987:54: sparse: got struct ftrace_hash [noderef] __rcu *filter_hash kernel/trace/ftrace.c:1454:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/trace/ftrace.c:1454:9: sparse: struct ftrace_hash [noderef] __rcu * kernel/trace/ftrace.c:1454:9: sparse: struct ftrace_hash * kernel/trace/ftrace.c:1470:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1471:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1472:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:1473:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:1644:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops *ops @@ got struct ftrace_ops [noderef] __rcu *[addressable] [toplevel] ftrace_ops_list @@ kernel/trace/ftrace.c:1645:43: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops *ops @@ got struct ftrace_ops [noderef] __rcu *next @@ kernel/trace/ftrace.c:1693:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1694:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *other_hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:1699:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:1700:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *other_hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1965:50: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:1976:50: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:3316:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:3333:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:3913:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:3916:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:4340:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:4342:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:4715:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:4859:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:4865:34: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *filter_hash @@ got struct ftrace_hash *[assigned] old_hash @@ kernel/trace/ftrace.c:5139:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:5141:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:5383:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ >> kernel/trace/ftrace.c:5582:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:5584:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:5741:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:5803:50: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:5870:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:6095:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *extern [addressable] [toplevel] ftrace_graph_hash @@ got struct ftrace_hash *[assigned] hash @@ kernel/trace/ftrace.c:6097:43: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *extern [addressable] [toplevel] ftrace_graph_notrace_hash @@ got struct ftrace_hash *[assigned] hash @@ kernel/trace/ftrace.c:6158:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:6162:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_hash **orig_hash @@ got struct ftrace_hash [noderef] __rcu ** @@ kernel/trace/ftrace.c:6216:47: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *[addressable] [toplevel] ftrace_graph_hash @@ got struct ftrace_hash * @@ kernel/trace/ftrace.c:6217:55: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ftrace_hash [noderef] __rcu *[addressable] [toplevel] ftrace_graph_notrace_hash @@ got struct ftrace_hash * @@ kernel/trace/ftrace.c:6866:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops *ops @@ got struct ftrace_ops [noderef] __rcu *[addressable] [toplevel] ftrace_ops_list @@ kernel/trace/ftrace.c:6866:66: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ftrace_ops *ops @@ got struct ftrace_ops [noderef] __rcu *next @@ kernel/trace/ftrace.c:6918:59: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:6919:59: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:7301:62: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:7302:62: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:7347:36: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/trace/ftrace.c:7347:36: sparse: struct ftrace_ops [noderef] __rcu * kernel/trace/ftrace.c:7347:36: sparse: struct ftrace_ops * kernel/trace/ftrace.c:193:20: sparse: sparse: dereference of noderef expression kernel/trace/ftrace.c:193:20: sparse: sparse: dereference of noderef expression kernel/trace/ftrace.c:193:20: sparse: sparse: dereference of noderef expression kernel/trace/ftrace.c:3111:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:3111:46: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:3111:46: sparse: got struct ftrace_hash [noderef] __rcu *filter_hash kernel/trace/ftrace.c:3112:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:3112:47: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:3112:47: sparse: got struct ftrace_hash [noderef] __rcu *filter_hash kernel/trace/ftrace.c:3116:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:3116:44: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:3116:44: sparse: got struct ftrace_hash [noderef] __rcu *notrace_hash kernel/trace/ftrace.c:3088:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *filter_hash @@ kernel/trace/ftrace.c:3088:48: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:3088:48: sparse: got struct ftrace_hash [noderef] __rcu *filter_hash kernel/trace/ftrace.c:3089:49: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ftrace_hash *hash @@ got struct ftrace_hash [noderef] __rcu *notrace_hash @@ kernel/trace/ftrace.c:3089:49: sparse: expected struct ftrace_hash *hash kernel/trace/ftrace.c:3089:49: sparse: got struct ftrace_hash [noderef] __rcu *notrace_hash vim +5582 kernel/trace/ftrace.c 5565 5566 static int set_ftrace_ops(struct ftrace_ops *ops, struct ftrace_hash *set, int enable) 5567 { 5568 struct ftrace_func_entry *iter, *entry; 5569 struct ftrace_hash **orig, *hash = NULL; 5570 int i, err = -ENOMEM, size; 5571 unsigned long ip; 5572 bool enabled; 5573 5574 if (!set) 5575 return -EINVAL; 5576 if (unlikely(ftrace_disabled)) 5577 return -ENODEV; 5578 5579 mutex_lock(&direct_mutex); 5580 5581 if (enable) > 5582 orig = &ops->func_hash->filter_hash; 5583 else 5584 orig = &ops->func_hash->notrace_hash; 5585 5586 hash = dup_hash(*orig, (*orig)->count, false); 5587 if (!hash) 5588 goto out_unlock_direct; 5589 5590 err = -EBUSY; 5591 size = 1 << set->size_bits; 5592 for (i = 0; i < size; i++) { 5593 hlist_for_each_entry(iter, &set->buckets[i], hlist) { 5594 ip = ftrace_location(iter->ip); 5595 if (!ip) { 5596 err = -EINVAL; 5597 goto out_unlock_direct; 5598 } 5599 entry = __ftrace_lookup_ip(hash, ip); 5600 if (!entry) { 5601 entry = kmalloc(sizeof(*entry), GFP_KERNEL); 5602 if (!entry) { 5603 err = -ENOMEM; 5604 goto out_unlock_direct; 5605 } 5606 entry->ip = ip; 5607 entry->direct = iter->direct; 5608 ftrace_hash_add_entry(hash, entry); 5609 continue; 5610 } 5611 if (iter->direct) 5612 entry->direct = iter->direct; 5613 else 5614 free_hash_entry(hash, entry); 5615 } 5616 } 5617 5618 mutex_lock(&ftrace_lock); 5619 5620 ftrace_ops_init(ops); 5621 enabled = ops->flags & FTRACE_OPS_FL_ENABLED; 5622 5623 if ((hash->count == 0) && enabled) { 5624 /* no functions to enable, going down */ 5625 err = ftrace_shutdown(ops, 0); 5626 if (err) 5627 goto out_unlock_ftrace; 5628 err = ftrace_hash_move_and_update_ops(ops, orig, hash, enable); 5629 ftrace_hash_free(direct_functions); 5630 direct_functions = NULL; 5631 } else if (!enabled) { 5632 /* ops not enabled, starting */ 5633 ftrace_hash_free(direct_functions); 5634 direct_functions = dup_hash(hash, hash->count, false); 5635 if (!direct_functions) 5636 goto out_unlock_ftrace; 5637 5638 err = ftrace_hash_move_and_update_ops(ops, orig, hash, enable); 5639 if (err) 5640 goto out_unlock_ftrace; 5641 err = ftrace_startup(ops, 0); 5642 } else { 5643 /* ops enabled, we need to shut it down, change and start again */ 5644 err = ftrace_shutdown(ops, 0); 5645 if (err) 5646 goto out_unlock_ftrace; 5647 err = ftrace_hash_move_and_update_ops(ops, orig, EMPTY_HASH, enable); 5648 if (err) 5649 goto out_unlock_ftrace; 5650 5651 ftrace_hash_free(direct_functions); 5652 direct_functions = dup_hash(hash, hash->count, false); 5653 if (!direct_functions) 5654 goto out_unlock_ftrace; 5655 5656 err = ftrace_hash_move_and_update_ops(ops, orig, hash, enable); 5657 if (err) 5658 goto out_unlock_ftrace; 5659 err = ftrace_startup(ops, 0); 5660 } 5661 5662 out_unlock_ftrace: 5663 mutex_unlock(&ftrace_lock); 5664 5665 out_unlock_direct: 5666 mutex_unlock(&direct_mutex); 5667 ftrace_hash_free(hash); 5668 return err; 5669 } 5670 -- 0-DAY CI Kernel Test Service https://01.org/lkp
Powered by blists - more mailing lists