Hi Menglong,

kernel test robot noticed the following build warnings:

[auto build test WARNING on bpf-next/master]

url:    
https://github.com/intel-lab-lkp/linux/commits/Menglong-Dong/bpf-add-function-hash-table-for-tracing-multi/20250703-203035
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link:    
https://lore.kernel.org/r/20250703121521.1874196-4-dongml2%40chinatelecom.cn
patch subject: [PATCH bpf-next v2 03/18] ftrace: factor out 
ftrace_direct_update from register_ftrace_direct
config: x86_64-randconfig-123-20250704 
(https://download.01.org/0day-ci/archive/20250705/202507051048.pedxvblg-...@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250705/202507051048.pedxvblg-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202507051048.pedxvblg-...@intel.com/

sparse warnings: (new ones prefixed by >>)
   kernel/trace/ftrace.c:233:49: sparse:     got struct ftrace_ops [noderef] 
__rcu *[addressable] [toplevel] ftrace_ops_list
   kernel/trace/ftrace.c:318: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:318:16: sparse:     expected struct ftrace_ops **p
   kernel/trace/ftrace.c:318:16: sparse:     got struct ftrace_ops [noderef] 
__rcu **list
   kernel/trace/ftrace.c:318: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:318:50: sparse:     expected struct ftrace_ops **p
   kernel/trace/ftrace.c:318:50: sparse:     got struct ftrace_ops [noderef] 
__rcu **
   kernel/trace/ftrace.c:325: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:325:12: sparse:     expected struct ftrace_ops *
   kernel/trace/ftrace.c:325:12: sparse:     got struct ftrace_ops [noderef] 
__rcu *next
   kernel/trace/ftrace.c:1072: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:1072:43: sparse:     expected struct ftrace_hash 
[noderef] __rcu *notrace_hash
   kernel/trace/ftrace.c:1072:43: sparse:     got struct ftrace_hash *
   kernel/trace/ftrace.c:1073: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:1073:43: sparse:     expected struct ftrace_hash 
[noderef] __rcu *filter_hash
   kernel/trace/ftrace.c:1073:43: sparse:     got struct ftrace_hash *
   kernel/trace/ftrace.c:1298: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:1298:40: sparse:     expected struct ftrace_hash *hash
   kernel/trace/ftrace.c:1298:40: sparse:     got struct ftrace_hash [noderef] 
__rcu *filter_hash
   kernel/trace/ftrace.c:1299: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:1299:40: sparse:     expected struct ftrace_hash *hash
   kernel/trace/ftrace.c:1299:40: sparse:     got struct ftrace_hash [noderef] 
__rcu *notrace_hash
   kernel/trace/ftrace.c:1300:37: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:1300:37: sparse:     expected struct ftrace_hash 
[noderef] __rcu *filter_hash
   kernel/trace/ftrace.c:1300:37: sparse:     got struct ftrace_hash *
   kernel/trace/ftrace.c:1301:38: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:1301:38: sparse:     expected struct ftrace_hash 
[noderef] __rcu *notrace_hash
   kernel/trace/ftrace.c:1301:38: sparse:     got struct ftrace_hash *
   kernel/trace/ftrace.c:2100: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:2100:54: sparse:     expected struct ftrace_hash 
*old_hash
   kernel/trace/ftrace.c:2100:54: sparse:     got struct ftrace_hash [noderef] 
__rcu *filter_hash
   kernel/trace/ftrace.c:1505:9: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/trace/ftrace.c:1505:9: sparse:    struct ftrace_hash [noderef] __rcu *
   kernel/trace/ftrace.c:1505:9: sparse:    struct ftrace_hash *
   kernel/trace/ftrace.c:1521: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:1522: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:1523: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:1524: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:1695: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:1696: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:1757: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:1758:22: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash *notrace_hash @@  
   got struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:2078: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:2089: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:2572:53: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*static [toplevel] direct_functions @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:2583:36: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *static [toplevel] direct_functions @@
   kernel/trace/ftrace.c:3379:51: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash *B @@     got 
struct ftrace_hash [noderef] __rcu *filter_hash @@
   kernel/trace/ftrace.c:3380:66: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash **orig_hash @@    
 got struct ftrace_hash [noderef] __rcu ** @@
   kernel/trace/ftrace.c:3386:52: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash *B @@     got 
struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:3387:66: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash **orig_hash @@    
 got struct ftrace_hash [noderef] __rcu ** @@
   kernel/trace/ftrace.c:3400:41: 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:3401:51: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *src @@     got 
struct ftrace_hash [noderef] __rcu *filter_hash @@
   kernel/trace/ftrace.c:3404:52: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash *notrace_hash @@  
   got struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:3408:52: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *src @@     got 
struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:3423: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:3424:42: 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:3432:17: 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:3438:81: 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:3442:54: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash *notrace_hash @@  
   got struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:3444:56: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash *new_hash @@     
got struct ftrace_hash [noderef] __rcu *filter_hash @@
   kernel/trace/ftrace.c:3474:60: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct ftrace_hash *new_hash1 @@     
got struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:3475:49: sparse: sparse: incorrect type in argument 3 
(different address spaces) @@     expected struct ftrace_hash *new_hash2 @@     
got struct ftrace_hash [noderef] __rcu *notrace_hash @@
   kernel/trace/ftrace.c:3514:45: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3516:46: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3518:48: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3520:49: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3526:17: 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:3527:17: 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:3533:34: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash *save_filter_hash 
@@     got struct ftrace_hash [noderef] __rcu *filter_hash @@
   kernel/trace/ftrace.c:3534:35: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash 
*save_notrace_hash @@     got struct ftrace_hash [noderef] __rcu *notrace_hash 
@@
   kernel/trace/ftrace.c:3536:45: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash *[addressable] filter_hash @@
   kernel/trace/ftrace.c:3537:46: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash *[addressable] notrace_hash @@
   kernel/trace/ftrace.c:3542:53: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash *save_filter_hash @@
   kernel/trace/ftrace.c:3543:54: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash *save_notrace_hash @@
   kernel/trace/ftrace.c:3590:31: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3591:32: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3606:59: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *[addressable] filter_hash @@
   kernel/trace/ftrace.c:3607:59: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *[addressable] notrace_hash @@
   kernel/trace/ftrace.c:3612:43: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *[addressable] filter_hash @@
   kernel/trace/ftrace.c:3613:43: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *[addressable] notrace_hash @@
   kernel/trace/ftrace.c:3615:39: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*[addressable] filter_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3616:40: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*[addressable] notrace_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3658: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:3659:48: 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:3660:45: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*filter_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3661:46: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct ftrace_hash [noderef] __rcu 
*notrace_hash @@     got struct ftrace_hash * @@
   kernel/trace/ftrace.c:3947: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:3964: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:4650: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:4653: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:5060: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:5062: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:5442: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:5586: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:5592: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:5857: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:5859: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:5940:50: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *static [toplevel] direct_functions @@
   kernel/trace/ftrace.c:5942:51: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *static [toplevel] direct_functions @@
   kernel/trace/ftrace.c:6050: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:6056:19: sparse: sparse: incorrect type in assignment 
>> (different address spaces) @@     expected struct ftrace_hash *free_hash @@  
>>    got struct ftrace_hash [noderef] __rcu *static [addressable] [assigned] 
>> [toplevel] direct_functions @@
   kernel/trace/ftrace.c:6095: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:6147: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:6151:52: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct ftrace_hash *hash @@     got 
struct ftrace_hash [noderef] __rcu *static [addressable] [assigned] [toplevel] 
direct_functions @@
   kernel/trace/ftrace.c:6477: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:6479: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:6548: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:6556: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:6624: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:6625: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:7344: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:7345: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:7349: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:7367: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:7367: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:7419: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:7420: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:7807: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:7808: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:7852:36: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   kernel/trace/ftrace.c:7852:36: sparse:    struct ftrace_ops [noderef] __rcu *
   kernel/trace/ftrace.c:7852:36: sparse:    struct ftrace_ops *
   kernel/trace/ftrace.c:8628: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:8628:14: sparse:     expected struct ftrace_hash *hash
   kernel/trace/ftrace.c:8628:14: sparse:     got struct ftrace_hash [noderef] 
__rcu *filter_hash
   kernel/trace/ftrace.c:8677: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:8677:14: sparse:     expected struct ftrace_hash *hash
   kernel/trace/ftrace.c:8677:14: sparse:     got struct ftrace_hash [noderef] 
__rcu *filter_hash
   kernel/trace/ftrace.c:231:20: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:231:20: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:231:20: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3434:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3434:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3434:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3434:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3434:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3434:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3468:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3468:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3468:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3468:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3468:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3468:29: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:5974:30: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:5983:21: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:5985:17: sparse: sparse: dereference of noderef 
expression
   kernel/trace/ftrace.c:3739: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:3739:48: sparse:     expected struct ftrace_hash *hash
   kernel/trace/ftrace.c:3739:48: sparse:     got struct ftrace_hash [noderef] 
__rcu *filter_hash
   kernel/trace/ftrace.c:3740: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:3740:49: sparse:     expected struct ftrace_hash *hash
   kernel/trace/ftrace.c:3740:49: sparse:     got struct ftrace_hash [noderef] 
__rcu *notrace_hash

vim +6056 kernel/trace/ftrace.c

  6015  
  6016  /**
  6017   * register_ftrace_direct - Call a custom trampoline directly
  6018   * for multiple functions registered in @ops
  6019   * @ops: The address of the struct ftrace_ops object
  6020   * @addr: The address of the trampoline to call at @ops functions
  6021   *
  6022   * This is used to connect a direct calls to @addr from the nop 
locations
  6023   * of the functions registered in @ops (with by ftrace_set_filter_ip
  6024   * function).
  6025   *
  6026   * The location that it calls (@addr) must be able to handle a direct 
call,
  6027   * and save the parameters of the function being traced, and restore 
them
  6028   * (or inject new ones if needed), before returning.
  6029   *
  6030   * Returns:
  6031   *  0 on success
  6032   *  -EINVAL  - The @ops object was already registered with this call or
  6033   *             when there are no functions in @ops object.
  6034   *  -EBUSY   - Another direct function is already attached (there can 
be only one)
  6035   *  -ENODEV  - @ip does not point to a ftrace nop location (or not 
supported)
  6036   *  -ENOMEM  - There was an allocation failure.
  6037   */
  6038  int register_ftrace_direct(struct ftrace_ops *ops, unsigned long addr)
  6039  {
  6040          struct ftrace_hash *hash, *free_hash = NULL;
  6041          int err = -EBUSY;
  6042  
  6043          if (ops->func || ops->trampoline)
  6044                  return -EINVAL;
  6045          if (!(ops->flags & FTRACE_OPS_FL_INITIALIZED))
  6046                  return -EINVAL;
  6047          if (ops->flags & FTRACE_OPS_FL_ENABLED)
  6048                  return -EINVAL;
  6049  
  6050          hash = ops->func_hash->filter_hash;
  6051          if (ftrace_hash_empty(hash))
  6052                  return -EINVAL;
  6053  
  6054          mutex_lock(&direct_mutex);
  6055  
> 6056          free_hash = direct_functions;
  6057          err = ftrace_direct_update(hash, addr);
  6058          if (err)
  6059                  goto out_unlock;
  6060  
  6061          ops->func = call_direct_funcs;
  6062          ops->flags = MULTI_FLAGS;
  6063          ops->trampoline = FTRACE_REGS_ADDR;
  6064          ops->direct_call = addr;
  6065  
  6066          err = register_ftrace_function_nolock(ops);
  6067          if (free_hash && free_hash != EMPTY_HASH)
  6068                  call_rcu_tasks(&free_hash->rcu, 
register_ftrace_direct_cb);
  6069  
  6070   out_unlock:
  6071          mutex_unlock(&direct_mutex);
  6072  
  6073          return err;
  6074  }
  6075  EXPORT_SYMBOL_GPL(register_ftrace_direct);
  6076  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to