Kernel
  Threads by month 
                
            - ----- 2025 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
October 2024
- 79 participants
- 925 discussions
 
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 3328/23811] drivers/char/ipmi/ipmi_si_intf.o: warning: objtool: missing symbol for section .init.text
                        
                        
by kernel test robot 06 Oct '24
                    by kernel test robot 06 Oct '24
06 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 221a9ce1bd3b42ba2226d22663110aed96ae471b [3328/23811] ipmi_si: Fix crash when using hard-coded device
config: x86_64-buildonly-randconfig-003-20240925 (https://download.01.org/0day-ci/archive/20241006/202410060723.NM8MwCWb-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241006/202410060723.NM8MwCWb-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410060723.NM8MwCWb-lkp@intel.com/
All warnings (new ones prefixed by >>):
   In file included from drivers/char/ipmi/ipmi_si_intf.c:22:
   include/linux/module.h:133:13: warning: 'init_module' specifies less restrictive attribute than its target 'init_ipmi_si': 'cold' [-Wmissing-attributes]
     133 |         int init_module(void) __attribute__((alias(#initfn)));
         |             ^~~~~~~~~~~
   drivers/char/ipmi/ipmi_si_intf.c:2175:1: note: in expansion of macro 'module_init'
    2175 | module_init(init_ipmi_si);
         | ^~~~~~~~~~~
   drivers/char/ipmi/ipmi_si_intf.c:2109:19: note: 'init_module' target declared here
    2109 | static int __init init_ipmi_si(void)
         |                   ^~~~~~~~~~~~
>> drivers/char/ipmi/ipmi_si_intf.o: warning: objtool: missing symbol for section .init.text
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 6289/23811] drivers/scsi/hisi_sas/hisi_sas_main.c:2888:9: sparse: sparse: symbol 'hisi_sas_debugfs_bist_linkrate_write' was not declared. Should it be static?
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 7add7cc0243793dca7bdeeb53c37212a87076c69 [6289/23811] hisi_sas: add the bist loopback feature.
config: arm64-randconfig-r111-20241003 (https://download.01.org/0day-ci/archive/20241004/202410041051.A286AcSf-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410041051.A286AcSf-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410041051.A286AcSf-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   drivers/scsi/hisi_sas/hisi_sas_main.c:1660:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1660:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1660:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:1917:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1917:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1917:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:2800:12: sparse: sparse: symbol 'hisi_sas_debugfs_to_reg_name' was not declared. Should it be static?
   drivers/scsi/hisi_sas/hisi_sas_main.c:2827:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2827:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2827:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2827:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2827:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2827:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2830:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2830:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2830:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2830:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2830:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2830:36: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2888:9: sparse: sparse: symbol 'hisi_sas_debugfs_bist_linkrate_write' was not declared. Should it be static?
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2979:9: sparse: sparse: symbol 'hisi_sas_debugfs_bist_code_mode_write' was not declared. Should it be static?
>> drivers/scsi/hisi_sas/hisi_sas_main.c:3034:9: sparse: sparse: symbol 'hisi_sas_debugfs_bist_phy_write' was not declared. Should it be static?
>> drivers/scsi/hisi_sas/hisi_sas_main.c:3120:9: sparse: sparse: symbol 'hisi_sas_debugfs_bist_mode_write' was not declared. Should it be static?
>> drivers/scsi/hisi_sas/hisi_sas_main.c:3174:9: sparse: sparse: symbol 'hisi_sas_debugfs_bist_enable_write' was not declared. Should it be static?
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3277:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:3296:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:3296:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:3296:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:3296:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:3296:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:3296:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2801:1: warning: no previous prototype for 'hisi_sas_debugfs_to_reg_name' [-Wmissing-prototypes]
    2801 | hisi_sas_debugfs_to_reg_name(int off, int base_off,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c:2888:9: warning: no previous prototype for 'hisi_sas_debugfs_bist_linkrate_write' [-Wmissing-prototypes]
    2888 | ssize_t hisi_sas_debugfs_bist_linkrate_write(struct file *filp,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c:2979:9: warning: no previous prototype for 'hisi_sas_debugfs_bist_code_mode_write' [-Wmissing-prototypes]
    2979 | ssize_t hisi_sas_debugfs_bist_code_mode_write(struct file *filp,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c:3034:9: warning: no previous prototype for 'hisi_sas_debugfs_bist_phy_write' [-Wmissing-prototypes]
    3034 | ssize_t hisi_sas_debugfs_bist_phy_write(struct file *filp,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c:3120:9: warning: no previous prototype for 'hisi_sas_debugfs_bist_mode_write' [-Wmissing-prototypes]
    3120 | ssize_t hisi_sas_debugfs_bist_mode_write(struct file *filp,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c:3174:9: warning: no previous prototype for 'hisi_sas_debugfs_bist_enable_write' [-Wmissing-prototypes]
    3174 | ssize_t hisi_sas_debugfs_bist_enable_write(struct file *filp,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/scsi/libsas.h:36,
                    from include/scsi/sas_ata.h:29,
                    from drivers/scsi/hisi_sas/hisi_sas.h:29,
                    from drivers/scsi/hisi_sas/hisi_sas_main.c:12:
   In function 'scsi_prot_sglist',
       inlined from 'hisi_sas_dif_dma_map' at drivers/scsi/hisi_sas/hisi_sas_main.c:448:2:
   include/scsi/scsi_cmnd.h:333:19: warning: 'scsi_cmnd' may be used uninitialized [-Wmaybe-uninitialized]
     333 |         return cmd->prot_sdb ? cmd->prot_sdb->table.sgl : NULL;
         |                ~~~^~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c: In function 'hisi_sas_dif_dma_map':
   drivers/scsi/hisi_sas/hisi_sas_main.c:418:27: note: 'scsi_cmnd' was declared here
     418 |         struct scsi_cmnd *scsi_cmnd;
         |                           ^~~~~~~~~
   In file included from include/asm-generic/preempt.h:5,
                    from ./arch/arm64/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:81,
                    from include/linux/spinlock.h:51,
                    from include/linux/mmzone.h:9,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from include/linux/resource_ext.h:19,
                    from include/linux/acpi.h:26,
                    from drivers/scsi/hisi_sas/hisi_sas.h:15:
   In function 'check_object_size',
       inlined from 'check_copy_size' at include/linux/thread_info.h:150:2,
       inlined from 'copy_from_user' at include/linux/uaccess.h:143:6,
       inlined from 'hisi_sas_debugfs_trigger_dump_write' at drivers/scsi/hisi_sas/hisi_sas_main.c:3550:6:
   include/linux/thread_info.h:119:17: warning: 'buf' may be used uninitialized [-Wmaybe-uninitialized]
     119 |                 __check_object_size(ptr, n, to_user);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/thread_info.h: In function 'hisi_sas_debugfs_trigger_dump_write':
   include/linux/thread_info.h:112:13: note: by argument 1 of type 'const void *' to '__check_object_size' declared here
     112 | extern void __check_object_size(const void *ptr, unsigned long n,
         |             ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c:3537:12: note: 'buf' declared here
    3537 |         u8 buf[8];
         |            ^~~
vim +/hisi_sas_debugfs_bist_linkrate_write +2888 drivers/scsi/hisi_sas/hisi_sas_main.c
  2887	
> 2888	ssize_t hisi_sas_debugfs_bist_linkrate_write(struct file *filp,
  2889						 const char __user *buf,
  2890						 size_t count, loff_t *ppos)
  2891	{
  2892		struct seq_file *m = filp->private_data;
  2893		struct hisi_hba *hisi_hba = m->private;
  2894		char kbuf[16] = {}, *pkbuf;
  2895		bool found = false;
  2896		int i;
  2897	
  2898		if (hisi_hba->bist_loopback_enable)
  2899			return -EINVAL;
  2900	
  2901		if (count >= sizeof(kbuf))
  2902			return -EINVAL;
  2903	
  2904		if (copy_from_user(kbuf, buf, count))
  2905			return -EINVAL;
  2906	
  2907		pkbuf = strstrip(kbuf);
  2908	
  2909		for (i = 0; i < ARRAY_SIZE(hisi_sas_debugfs_loop_linkrate); i++) {
  2910			if (!strncmp(hisi_sas_debugfs_loop_linkrate[i].name,
  2911				pkbuf, 16)) {
  2912				hisi_hba->bist_loopback_linkrate =
  2913					hisi_sas_debugfs_loop_linkrate[i].value;
  2914				found = true;
  2915				break;
  2916			}
  2917		}
  2918	
  2919		if (!found) {
  2920			dev_err(hisi_hba->dev, "unknown mode\n");
  2921			return -EINVAL;
  2922		}
  2923	
  2924		return count;
  2925	}
  2926	
  2927	static int hisi_sas_debugfs_bist_linkrate_open(struct inode *inode,
  2928						   struct file *filp)
  2929	{
  2930		return single_open(filp, hisi_sas_debugfs_bist_linkrate_show,
  2931				   inode->i_private);
  2932	}
  2933	
  2934	static const struct file_operations hisi_sas_debugfs_bist_linkrate_ops = {
  2935		.open = hisi_sas_debugfs_bist_linkrate_open,
  2936		.read = seq_read,
  2937		.write = hisi_sas_debugfs_bist_linkrate_write,
  2938		.llseek = seq_lseek,
  2939		.release = single_release,
  2940		.owner = THIS_MODULE,
  2941	};
  2942	
  2943	static struct {
  2944		int		value;
  2945		char		*name;
  2946	} hisi_sas_debugfs_loop_code_mode[] = {
  2947		{ HISI_SAS_BIST_CODE_MODE_PRBS7,    "PRBS7" },
  2948		{ HISI_SAS_BIST_CODE_MODE_PRBS23,    "PRBS23" },
  2949		{ HISI_SAS_BIST_CODE_MODE_PRBS31,    "PRBS31" },
  2950		{ HISI_SAS_BIST_CODE_MODE_JTPAT,    "JTPAT" },
  2951		{ HISI_SAS_BIST_CODE_MODE_CJTPAT,    "CJTPAT" },
  2952		{ HISI_SAS_BIST_CODE_MODE_SCRAMBED_0,    "SCRAMBED_0" },
  2953		{ HISI_SAS_BIST_CODE_MODE_TRAIN,    "TRAIN" },
  2954		{ HISI_SAS_BIST_CODE_MODE_TRAIN_DONE,    "TRAIN_DONE" },
  2955		{ HISI_SAS_BIST_CODE_MODE_HFTP,    "HFTP" },
  2956		{ HISI_SAS_BIST_CODE_MODE_MFTP,    "MFTP" },
  2957		{ HISI_SAS_BIST_CODE_MODE_LFTP,    "LFTP" },
  2958		{ HISI_SAS_BIST_CODE_MODE_FIXED_DATA,    "FIXED_DATA" },
  2959	};
  2960	
  2961	static int hisi_sas_debugfs_bist_code_mode_show(struct seq_file *s, void *p)
  2962	{
  2963		struct hisi_hba *hisi_hba = s->private;
  2964		int i;
  2965	
  2966		for (i = 0; i < ARRAY_SIZE(hisi_sas_debugfs_loop_code_mode); i++) {
  2967			int match = (hisi_hba->bist_loopback_code_mode ==
  2968				     hisi_sas_debugfs_loop_code_mode[i].value);
  2969	
  2970			seq_printf(s, "%s%s%s ", match ? "[" : "",
  2971				   hisi_sas_debugfs_loop_code_mode[i].name,
  2972				   match ? "]" : "");
  2973		}
  2974		seq_puts(s, "\n");
  2975	
  2976		return 0;
  2977	}
  2978	
> 2979	ssize_t hisi_sas_debugfs_bist_code_mode_write(struct file *filp,
  2980						 const char __user *buf,
  2981						 size_t count, loff_t *ppos)
  2982	{
  2983		struct seq_file *m = filp->private_data;
  2984		struct hisi_hba *hisi_hba = m->private;
  2985		char kbuf[16] = {}, *pkbuf;
  2986		bool found = false;
  2987		int i;
  2988	
  2989		if (hisi_hba->bist_loopback_enable)
  2990			return -EINVAL;
  2991	
  2992		if (count >= sizeof(kbuf))
  2993			return -EINVAL;
  2994	
  2995		if (copy_from_user(kbuf, buf, count))
  2996			return -EINVAL;
  2997	
  2998		pkbuf = strstrip(kbuf);
  2999	
  3000		for (i = 0; i < ARRAY_SIZE(hisi_sas_debugfs_loop_code_mode); i++) {
  3001			if (!strncmp(hisi_sas_debugfs_loop_code_mode[i].name,
  3002				pkbuf, 16)) {
  3003				hisi_hba->bist_loopback_code_mode =
  3004					hisi_sas_debugfs_loop_code_mode[i].value;
  3005				found = true;
  3006				break;
  3007			}
  3008		}
  3009	
  3010		if (!found) {
  3011			dev_err(hisi_hba->dev, "unknown mode\n");
  3012			return -EINVAL;
  3013		}
  3014	
  3015		return count;
  3016	}
  3017	
  3018	static int hisi_sas_debugfs_bist_code_mode_open(struct inode *inode,
  3019						   struct file *filp)
  3020	{
  3021		return single_open(filp, hisi_sas_debugfs_bist_code_mode_show,
  3022				   inode->i_private);
  3023	}
  3024	
  3025	static const struct file_operations hisi_sas_debugfs_bist_code_mode_ops = {
  3026		.open = hisi_sas_debugfs_bist_code_mode_open,
  3027		.read = seq_read,
  3028		.write = hisi_sas_debugfs_bist_code_mode_write,
  3029		.llseek = seq_lseek,
  3030		.release = single_release,
  3031		.owner = THIS_MODULE,
  3032	};
  3033	
> 3034	ssize_t hisi_sas_debugfs_bist_phy_write(struct file *filp,
  3035						const char __user *buf,
  3036						size_t count, loff_t *ppos)
  3037	{
  3038		struct seq_file *m = filp->private_data;
  3039		struct hisi_hba *hisi_hba = m->private;
  3040		char kbuf[16] = {}, *pkbuf;
  3041		int val, phy;
  3042	
  3043		if (hisi_hba->bist_loopback_enable)
  3044			return -EINVAL;
  3045	
  3046		if (count >= sizeof(kbuf))
  3047			return -EINVAL;
  3048	
  3049		if (copy_from_user(kbuf, buf, count))
  3050			return -EINVAL;
  3051	
  3052		pkbuf = strstrip(kbuf);
  3053	
  3054		val = kstrtoint(pkbuf, 0, &phy);
  3055		if (val < 0)
  3056			return val;
  3057	
  3058		if (phy >= hisi_hba->n_phy) {
  3059			dev_err(hisi_hba->dev, "phy index %d exceeds limit\n", phy);
  3060			return -EINVAL;
  3061		}
  3062	
  3063		hisi_hba->bist_loopback_phy_id = phy;
  3064	
  3065		return count;
  3066	}
  3067	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 3349/23811] drivers/scsi/hisi_sas/hisi_sas_main.c:2711:12: sparse: sparse: symbol 'hisi_sas_debugfs_to_reg_name' was not declared. Should it be static?
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 82153b96f94df7483e215df3057befe744915991 [3349/23811] scsi: hisi_sas: Sync upstream version of DFX feature code
config: arm64-randconfig-r111-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040809.szghfgF1-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410040809.szghfgF1-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040809.szghfgF1-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   drivers/scsi/hisi_sas/hisi_sas_main.c:1623:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1623:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1623:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:1871:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1871:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1871:52: sparse:     got restricted __le16 [usertype]
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2711:12: sparse: sparse: symbol 'hisi_sas_debugfs_to_reg_name' was not declared. Should it be static?
   drivers/scsi/hisi_sas/hisi_sas_main.c:2738:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2738:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2738:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2738:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2738:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2738:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2741:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2741:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2741:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2741:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2741:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2741:36: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2805:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2823:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2823:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2823:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2823:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2823:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2823:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2712:1: warning: no previous prototype for 'hisi_sas_debugfs_to_reg_name' [-Wmissing-prototypes]
    2712 | hisi_sas_debugfs_to_reg_name(int off, int base_off,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/scsi/libsas.h:36,
                    from include/scsi/sas_ata.h:29,
                    from drivers/scsi/hisi_sas/hisi_sas.h:28,
                    from drivers/scsi/hisi_sas/hisi_sas_main.c:12:
   In function 'scsi_prot_sglist',
       inlined from 'hisi_sas_dif_dma_map' at drivers/scsi/hisi_sas/hisi_sas_main.c:443:2:
   include/scsi/scsi_cmnd.h:327:19: warning: 'scsi_cmnd' may be used uninitialized [-Wmaybe-uninitialized]
     327 |         return cmd->prot_sdb ? cmd->prot_sdb->table.sgl : NULL;
         |                ~~~^~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c: In function 'hisi_sas_dif_dma_map':
   drivers/scsi/hisi_sas/hisi_sas_main.c:413:27: note: 'scsi_cmnd' was declared here
     413 |         struct scsi_cmnd *scsi_cmnd;
         |                           ^~~~~~~~~
vim +/hisi_sas_debugfs_to_reg_name +2711 drivers/scsi/hisi_sas/hisi_sas_main.c
  2710	
> 2711	const char *
  2712	hisi_sas_debugfs_to_reg_name(int off, int base_off,
  2713				     const struct hisi_sas_debugfs_reg_lu *lu)
  2714	{
  2715		for (; lu->name; lu++) {
  2716			if (off == lu->off - base_off)
  2717				return lu->name;
  2718		}
  2719	
  2720		return NULL;
  2721	}
  2722	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1571/23811] drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 5674e8c212d6087835d2a77b9bb7c26f03413d84 [1571/23811] scsi: hisi_sas: Add DFX Feature: IOST create file and add file operations
config: arm64-randconfig-r111-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040525.qH3EJS90-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410040525.qH3EJS90-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040525.qH3EJS90-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   drivers/scsi/hisi_sas/hisi_sas_main.c:1603:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1603:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1603:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:1857:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1857:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1857:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:2664:12: sparse: sparse: symbol 'hisi_sas_reg_name' was not declared. Should it be static?
   drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2762:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2762:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2762:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2762:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2762:42: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2762:42: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2864:45: sparse: sparse: cast to restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_main.c:2664:13: warning: no previous prototype for 'hisi_sas_reg_name' [-Wmissing-prototypes]
    2664 | const char *hisi_sas_reg_name(int off,
         |             ^~~~~~~~~~~~~~~~~
   In file included from include/scsi/libsas.h:36,
                    from include/scsi/sas_ata.h:29,
                    from drivers/scsi/hisi_sas/hisi_sas.h:28,
                    from drivers/scsi/hisi_sas/hisi_sas_main.c:12:
   In function 'scsi_prot_sglist',
       inlined from 'hisi_sas_dif_dma_map' at drivers/scsi/hisi_sas/hisi_sas_main.c:442:2:
   include/scsi/scsi_cmnd.h:327:19: warning: 'scsi_cmnd' may be used uninitialized [-Wmaybe-uninitialized]
     327 |         return cmd->prot_sdb ? cmd->prot_sdb->table.sgl : NULL;
         |                ~~~^~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c: In function 'hisi_sas_dif_dma_map':
   drivers/scsi/hisi_sas/hisi_sas_main.c:412:27: note: 'scsi_cmnd' was declared here
     412 |         struct scsi_cmnd *scsi_cmnd;
         |                           ^~~~~~~~~
vim +2864 drivers/scsi/hisi_sas/hisi_sas_main.c
  2853	
  2854	static int hisi_sas_show_row_64(struct seq_file *s,
  2855					int index,
  2856					int sz,
  2857					u64 *ptr)
  2858	{
  2859		int i;
  2860	
  2861		/* completion header size not fixed per HW version */
  2862		seq_printf(s, "index %04d:\n\t", index);
  2863		for (i = 1; i <= sz / 8; i++, ptr++) {
> 2864			seq_printf(s, " 0x%016llx", le64_to_cpu(*ptr));
  2865			/* when print 4 character , new a line */
  2866			if (!(i % 4))
  2867				seq_puts(s, "\n\t");
  2868		}
  2869	
  2870		seq_puts(s, "\n");
  2871	
  2872		return 0;
  2873	}
  2874	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 21385/23811] drivers/tee/optee/core.c:618:31: sparse: sparse: incorrect type in return expression (different base types)
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 595311cf7e49c781dd26782e4b45fd54bbfb3e40 [21385/23811] optee: model OP-TEE as a platform device/driver
config: arm64-randconfig-r121-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040450.NkRme0Yj-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410040450.NkRme0Yj-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040450.NkRme0Yj-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/tee/optee/core.c:618:31: sparse: sparse: incorrect type in return expression (different base types) @@     expected int @@     got void * @@
   drivers/tee/optee/core.c:618:31: sparse:     expected int
   drivers/tee/optee/core.c:618:31: sparse:     got void *
   drivers/tee/optee/core.c: In function 'optee_probe':
   drivers/tee/optee/core.c:618:24: warning: returning 'void *' from a function with return type 'int' makes integer from pointer without a cast [-Wint-conversion]
     618 |                 return ERR_PTR(-EINVAL);
         |                        ^~~~~~~~~~~~~~~~
vim +618 drivers/tee/optee/core.c
595311cf7e49c7 Ard Biesheuvel    2019-12-09  581  
595311cf7e49c7 Ard Biesheuvel    2019-12-09  582  static int optee_probe(struct platform_device *pdev)
4fb0a5eb364d23 Jens Wiklander    2015-04-14  583  {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  584  	optee_invoke_fn *invoke_fn;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  585  	struct tee_shm_pool *pool;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  586  	struct optee *optee = NULL;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  587  	void *memremaped_shm = NULL;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  588  	struct tee_device *teedev;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  589  	u32 sec_caps;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  590  	int rc;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  591  
595311cf7e49c7 Ard Biesheuvel    2019-12-09  592  	invoke_fn = get_invoke_func(&pdev->dev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  593  	if (IS_ERR(invoke_fn))
595311cf7e49c7 Ard Biesheuvel    2019-12-09  594  		return PTR_ERR(invoke_fn);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  595  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  596  	if (!optee_msg_api_uid_is_optee_api(invoke_fn)) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  597  		pr_warn("api uid mismatch\n");
595311cf7e49c7 Ard Biesheuvel    2019-12-09  598  		return -EINVAL;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  599  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  600  
5c5f80307ab27c Jérôme Forissier  2017-11-24  601  	optee_msg_get_os_revision(invoke_fn);
5c5f80307ab27c Jérôme Forissier  2017-11-24  602  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  603  	if (!optee_msg_api_revision_is_compatible(invoke_fn)) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  604  		pr_warn("api revision mismatch\n");
595311cf7e49c7 Ard Biesheuvel    2019-12-09  605  		return -EINVAL;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  606  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  607  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  608  	if (!optee_msg_exchange_capabilities(invoke_fn, &sec_caps)) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  609  		pr_warn("capabilities mismatch\n");
595311cf7e49c7 Ard Biesheuvel    2019-12-09  610  		return -EINVAL;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  611  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  612  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  613  	/*
4fb0a5eb364d23 Jens Wiklander    2015-04-14  614  	 * We have no other option for shared memory, if secure world
4fb0a5eb364d23 Jens Wiklander    2015-04-14  615  	 * doesn't have any reserved memory we can use we can't continue.
4fb0a5eb364d23 Jens Wiklander    2015-04-14  616  	 */
4fb0a5eb364d23 Jens Wiklander    2015-04-14  617  	if (!(sec_caps & OPTEE_SMC_SEC_CAP_HAVE_RESERVED_SHM))
4fb0a5eb364d23 Jens Wiklander    2015-04-14 @618  		return ERR_PTR(-EINVAL);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  619  
f58e236c9d665a Volodymyr Babchuk 2017-11-29  620  	pool = optee_config_shm_memremap(invoke_fn, &memremaped_shm, sec_caps);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  621  	if (IS_ERR(pool))
595311cf7e49c7 Ard Biesheuvel    2019-12-09  622  		return PTR_ERR(pool);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  623  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  624  	optee = kzalloc(sizeof(*optee), GFP_KERNEL);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  625  	if (!optee) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  626  		rc = -ENOMEM;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  627  		goto err;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  628  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  629  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  630  	optee->invoke_fn = invoke_fn;
d885cc5e0759fc Volodymyr Babchuk 2017-11-29  631  	optee->sec_caps = sec_caps;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  632  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  633  	teedev = tee_device_alloc(&optee_desc, NULL, pool, optee);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  634  	if (IS_ERR(teedev)) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  635  		rc = PTR_ERR(teedev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  636  		goto err;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  637  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  638  	optee->teedev = teedev;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  639  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  640  	teedev = tee_device_alloc(&optee_supp_desc, NULL, pool, optee);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  641  	if (IS_ERR(teedev)) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  642  		rc = PTR_ERR(teedev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  643  		goto err;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  644  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  645  	optee->supp_teedev = teedev;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  646  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  647  	rc = tee_device_register(optee->teedev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  648  	if (rc)
4fb0a5eb364d23 Jens Wiklander    2015-04-14  649  		goto err;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  650  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  651  	rc = tee_device_register(optee->supp_teedev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  652  	if (rc)
4fb0a5eb364d23 Jens Wiklander    2015-04-14  653  		goto err;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  654  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  655  	mutex_init(&optee->call_queue.mutex);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  656  	INIT_LIST_HEAD(&optee->call_queue.waiters);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  657  	optee_wait_queue_init(&optee->wait_queue);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  658  	optee_supp_init(&optee->supp);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  659  	optee->memremaped_shm = memremaped_shm;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  660  	optee->pool = pool;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  661  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  662  	optee_enable_shm_cache(optee);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  663  
595311cf7e49c7 Ard Biesheuvel    2019-12-09  664  	platform_set_drvdata(pdev, optee);
595311cf7e49c7 Ard Biesheuvel    2019-12-09  665  
4fb0a5eb364d23 Jens Wiklander    2015-04-14  666  	pr_info("initialized driver\n");
595311cf7e49c7 Ard Biesheuvel    2019-12-09  667  	return 0;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  668  err:
4fb0a5eb364d23 Jens Wiklander    2015-04-14  669  	if (optee) {
4fb0a5eb364d23 Jens Wiklander    2015-04-14  670  		/*
4fb0a5eb364d23 Jens Wiklander    2015-04-14  671  		 * tee_device_unregister() is safe to call even if the
4fb0a5eb364d23 Jens Wiklander    2015-04-14  672  		 * devices hasn't been registered with
4fb0a5eb364d23 Jens Wiklander    2015-04-14  673  		 * tee_device_register() yet.
4fb0a5eb364d23 Jens Wiklander    2015-04-14  674  		 */
4fb0a5eb364d23 Jens Wiklander    2015-04-14  675  		tee_device_unregister(optee->supp_teedev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  676  		tee_device_unregister(optee->teedev);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  677  		kfree(optee);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  678  	}
4fb0a5eb364d23 Jens Wiklander    2015-04-14  679  	if (pool)
4fb0a5eb364d23 Jens Wiklander    2015-04-14  680  		tee_shm_pool_free(pool);
4fb0a5eb364d23 Jens Wiklander    2015-04-14  681  	if (memremaped_shm)
4fb0a5eb364d23 Jens Wiklander    2015-04-14  682  		memunmap(memremaped_shm);
595311cf7e49c7 Ard Biesheuvel    2019-12-09  683  	return rc;
4fb0a5eb364d23 Jens Wiklander    2015-04-14  684  }
4fb0a5eb364d23 Jens Wiklander    2015-04-14  685  
:::::: The code at line 618 was first introduced by commit
:::::: 4fb0a5eb364d239722e745c02aef0dbd4e0f1ad2 tee: add OP-TEE driver
:::::: TO: Jens Wiklander <jens.wiklander(a)linaro.org>
:::::: CC: Jens Wiklander <jens.wiklander(a)linaro.org>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1567/23811] drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: bee9d00acd7e651a6ec989ef3e7b1309b24469af [1567/23811] scsi: hisi_sas: Add DFX Feature: Global register create file and add file operations
config: arm64-randconfig-r111-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040348.tx3GNMPZ-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410040348.tx3GNMPZ-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040348.tx3GNMPZ-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   drivers/scsi/hisi_sas/hisi_sas_main.c:1603:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1603:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1603:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:1857:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_main.c:1857:52: sparse:     expected unsigned short [assigned] [usertype] tag_of_task_to_be_managed
   drivers/scsi/hisi_sas/hisi_sas_main.c:1857:52: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_main.c:2664:12: sparse: sparse: symbol 'hisi_sas_reg_name' was not declared. Should it be static?
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
>> drivers/scsi/hisi_sas/hisi_sas_main.c:2692:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2697:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_main.c:2664:13: warning: no previous prototype for 'hisi_sas_reg_name' [-Wmissing-prototypes]
    2664 | const char *hisi_sas_reg_name(int off,
         |             ^~~~~~~~~~~~~~~~~
   In file included from include/scsi/libsas.h:36,
                    from include/scsi/sas_ata.h:29,
                    from drivers/scsi/hisi_sas/hisi_sas.h:28,
                    from drivers/scsi/hisi_sas/hisi_sas_main.c:12:
   In function 'scsi_prot_sglist',
       inlined from 'hisi_sas_dif_dma_map' at drivers/scsi/hisi_sas/hisi_sas_main.c:442:2:
   include/scsi/scsi_cmnd.h:327:19: warning: 'scsi_cmnd' may be used uninitialized [-Wmaybe-uninitialized]
     327 |         return cmd->prot_sdb ? cmd->prot_sdb->table.sgl : NULL;
         |                ~~~^~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_main.c: In function 'hisi_sas_dif_dma_map':
   drivers/scsi/hisi_sas/hisi_sas_main.c:412:27: note: 'scsi_cmnd' was declared here
     412 |         struct scsi_cmnd *scsi_cmnd;
         |                           ^~~~~~~~~
vim +2692 drivers/scsi/hisi_sas/hisi_sas_main.c
  2675	
  2676	static void hisi_sas_print_reg(u32 *regs_val,
  2677					const void *ptr,
  2678					struct seq_file *s)
  2679	{
  2680		const struct hisi_sas_debugfs_reg *reg = ptr;
  2681		int i;
  2682	
  2683		for (i = 0; i < reg->count; i++) {
  2684			int off = i * 4;
  2685			const char *name = hisi_sas_reg_name(off,
  2686							reg->base_off,
  2687							reg->lu);
  2688	
  2689			if (name)
  2690				seq_printf(s, "0x%08x 0x%08x %s\n",
  2691					off,
> 2692					le32_to_cpu(regs_val[i]),
  2693					name);
  2694			else
  2695				seq_printf(s, "0x%08x 0x%08x\n",
  2696					off,
  2697					le32_to_cpu(regs_val[i]));
  2698		}
  2699	}
  2700	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 5957/23811] drivers/vfio/vfio_iommu_type1.c:2144:70: sparse: sparse: incorrect type in argument 2 (different address spaces)
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 2dd8345826607c5d2d6528de872118da554015b6 [5957/23811] vfio: Add support for Shared Virtual Addressing
config: arm64-randconfig-r121-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040218.7HQ3naCI-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410040218.7HQ3naCI-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040218.7HQ3naCI-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/vfio/vfio_iommu_type1.c:2144:70: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] <asn:1> *[assigned] arg @@     got void * @@
   drivers/vfio/vfio_iommu_type1.c:2144:70: sparse:     expected void [noderef] <asn:1> *[assigned] arg
   drivers/vfio/vfio_iommu_type1.c:2144:70: sparse:     got void *
   drivers/vfio/vfio_iommu_type1.c:2164:65: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] <asn:1> *[assigned] arg @@     got void * @@
   drivers/vfio/vfio_iommu_type1.c:2164:65: sparse:     expected void [noderef] <asn:1> *[assigned] arg
   drivers/vfio/vfio_iommu_type1.c:2164:65: sparse:     got void *
   drivers/vfio/vfio_iommu_type1.c:1103:26: sparse: sparse: self-comparison always evaluates to false
   drivers/vfio/vfio_iommu_type1.c:1103:48: sparse: sparse: self-comparison always evaluates to false
   drivers/vfio/vfio_iommu_type1.c:1103:70: sparse: sparse: self-comparison always evaluates to false
vim +2144 drivers/vfio/vfio_iommu_type1.c
  2059	
  2060	static long vfio_iommu_type1_ioctl(void *iommu_data,
  2061					   unsigned int cmd, unsigned long arg)
  2062	{
  2063		struct vfio_iommu *iommu = iommu_data;
  2064		unsigned long minsz;
  2065	
  2066		if (cmd == VFIO_CHECK_EXTENSION) {
  2067			switch (arg) {
  2068			case VFIO_TYPE1_IOMMU:
  2069			case VFIO_TYPE1v2_IOMMU:
  2070			case VFIO_TYPE1_NESTING_IOMMU:
  2071				return 1;
  2072			case VFIO_DMA_CC_IOMMU:
  2073				if (!iommu)
  2074					return 0;
  2075				return vfio_domains_have_iommu_cache(iommu);
  2076			default:
  2077				return 0;
  2078			}
  2079		} else if (cmd == VFIO_IOMMU_GET_INFO) {
  2080			struct vfio_iommu_type1_info info;
  2081	
  2082			minsz = offsetofend(struct vfio_iommu_type1_info, iova_pgsizes);
  2083	
  2084			if (copy_from_user(&info, (void __user *)arg, minsz))
  2085				return -EFAULT;
  2086	
  2087			if (info.argsz < minsz)
  2088				return -EINVAL;
  2089	
  2090			info.flags = VFIO_IOMMU_INFO_PGSIZES;
  2091	
  2092			info.iova_pgsizes = vfio_pgsize_bitmap(iommu);
  2093	
  2094			return copy_to_user((void __user *)arg, &info, minsz) ?
  2095				-EFAULT : 0;
  2096	
  2097		} else if (cmd == VFIO_IOMMU_MAP_DMA) {
  2098			struct vfio_iommu_type1_dma_map map;
  2099			uint32_t mask = VFIO_DMA_MAP_FLAG_READ |
  2100					VFIO_DMA_MAP_FLAG_WRITE;
  2101	
  2102			minsz = offsetofend(struct vfio_iommu_type1_dma_map, size);
  2103	
  2104			if (copy_from_user(&map, (void __user *)arg, minsz))
  2105				return -EFAULT;
  2106	
  2107			if (map.argsz < minsz || map.flags & ~mask)
  2108				return -EINVAL;
  2109	
  2110			return vfio_dma_do_map(iommu, &map);
  2111	
  2112		} else if (cmd == VFIO_IOMMU_UNMAP_DMA) {
  2113			struct vfio_iommu_type1_dma_unmap unmap;
  2114			long ret;
  2115	
  2116			minsz = offsetofend(struct vfio_iommu_type1_dma_unmap, size);
  2117	
  2118			if (copy_from_user(&unmap, (void __user *)arg, minsz))
  2119				return -EFAULT;
  2120	
  2121			if (unmap.argsz < minsz || unmap.flags)
  2122				return -EINVAL;
  2123	
  2124			ret = vfio_dma_do_unmap(iommu, &unmap);
  2125			if (ret)
  2126				return ret;
  2127	
  2128			return copy_to_user((void __user *)arg, &unmap, minsz) ?
  2129				-EFAULT : 0;
  2130	
  2131		} else if (cmd == VFIO_IOMMU_BIND) {
  2132			struct vfio_iommu_type1_bind bind;
  2133	
  2134			minsz = offsetofend(struct vfio_iommu_type1_bind, flags);
  2135	
  2136			if (copy_from_user(&bind, (void __user *)arg, minsz))
  2137				return -EFAULT;
  2138	
  2139			if (bind.argsz < minsz)
  2140				return -EINVAL;
  2141	
  2142			switch (bind.flags) {
  2143			case VFIO_IOMMU_BIND_PROCESS:
> 2144				return vfio_iommu_type1_bind_process(iommu, (void *)arg,
  2145								     &bind);
  2146			default:
  2147				return -EINVAL;
  2148			}
  2149	
  2150		} else if (cmd == VFIO_IOMMU_UNBIND) {
  2151			struct vfio_iommu_type1_bind bind;
  2152	
  2153			minsz = offsetofend(struct vfio_iommu_type1_bind, flags);
  2154	
  2155			if (copy_from_user(&bind, (void __user *)arg, minsz))
  2156				return -EFAULT;
  2157	
  2158			if (bind.argsz < minsz)
  2159				return -EINVAL;
  2160	
  2161			switch (bind.flags) {
  2162			case VFIO_IOMMU_BIND_PROCESS:
  2163				return vfio_iommu_type1_unbind_process(iommu,
  2164								       (void *)arg,
  2165								       &bind);
  2166			default:
  2167				return -EINVAL;
  2168			}
  2169		}
  2170	
  2171		return -ENOTTY;
  2172	}
  2173	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 14777/23811] drivers/scsi/huawei/hifc/hifc_queue.c:1965:12: sparse: sparse: cast removes address space '<asn:2>' of expression
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 7fc993d55d1b54ae40e29dfac825a18d04d644c6 [14777/23811] scsi/hifc: add hifc driver FC service module
config: x86_64-randconfig-122-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040129.X3kkQqhf-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241004/202410040129.X3kkQqhf-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040129.X3kkQqhf-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   drivers/scsi/huawei/hifc/hifc_queue.c:386:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:386:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:386:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:386:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:376:13: sparse: sparse: symbol 'hifc_root_sq_irq' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:1140:13: sparse: sparse: symbol 'hifc_root_rq_irq' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:1697:39: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:1697:39: sparse:     expected unsigned short
   drivers/scsi/huawei/hifc/hifc_queue.c:1697:39: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:1962:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [assigned] [usertype] dw0 @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:1962:16: sparse:     expected unsigned int [addressable] [assigned] [usertype] dw0
   drivers/scsi/huawei/hifc/hifc_queue.c:1962:16: sparse:     got restricted __be32 [usertype]
>> drivers/scsi/huawei/hifc/hifc_queue.c:1965:12: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/scsi/huawei/hifc/hifc_queue.c:1980:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1980:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1980:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1980:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1999:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1999:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1999:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:1999:18: sparse: sparse: cast to restricted __be16
   drivers/scsi/huawei/hifc/hifc_queue.c:2159:41: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:2159:41: sparse:     expected unsigned short
   drivers/scsi/huawei/hifc/hifc_queue.c:2159:41: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:2128:6: sparse: sparse: symbol 'hifc_update_root_rq_info' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:2163:6: sparse: sparse: symbol 'hifc_root_rqe_analysis' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:2386:6: sparse: sparse: symbol 'hifc_set_scq_irq_cfg' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:2419:13: sparse: sparse: symbol 'hifc_scq_irq' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:2902:35: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2902:35: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2902:35: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2902:35: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2902:35: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2902:35: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2904:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] ctrl_ch_val @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:2904:42: sparse:     expected unsigned int [usertype] ctrl_ch_val
   drivers/scsi/huawei/hifc/hifc_queue.c:2904:42: sparse:     got restricted __be32 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:2916:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2916:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2916:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2916:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2916:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2916:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2919:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int val_wd1 @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:2919:29: sparse:     expected unsigned int val_wd1
   drivers/scsi/huawei/hifc/hifc_queue.c:2919:29: sparse:     got restricted __be32 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:2921:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2921:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2921:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2921:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2921:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2921:28: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_queue.c:2923:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] val_wd0 @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:2923:29: sparse:     expected unsigned int [usertype] val_wd0
   drivers/scsi/huawei/hifc/hifc_queue.c:2923:29: sparse:     got restricted __be32 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:3646:6: sparse: sparse: symbol 'hifc_invalid_parent_sq' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:4023:14: sparse: sparse: symbol 'hifc_alloc_parent_sq' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:4389:49: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long @@     got restricted __be64 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4389:49: sparse:     expected unsigned long long
   drivers/scsi/huawei/hifc/hifc_queue.c:4389:49: sparse:     got restricted __be64 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4394:72: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long @@     got restricted __be64 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4394:72: sparse:     expected unsigned long long
   drivers/scsi/huawei/hifc/hifc_queue.c:4394:72: sparse:     got restricted __be64 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4408:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long @@     got restricted __be64 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4408:52: sparse:     expected unsigned long long
   drivers/scsi/huawei/hifc/hifc_queue.c:4408:52: sparse:     got restricted __be64 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4416:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] oqid_rd @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4416:42: sparse:     expected unsigned short [usertype] oqid_rd
   drivers/scsi/huawei/hifc/hifc_queue.c:4416:42: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4418:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] oqid_wr @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4418:42: sparse:     expected unsigned short [usertype] oqid_wr
   drivers/scsi/huawei/hifc/hifc_queue.c:4418:42: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4450:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] conn_id @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4450:29: sparse:     expected unsigned short [usertype] conn_id
   drivers/scsi/huawei/hifc/hifc_queue.c:4450:29: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4456:37: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] scq_num_rcv_cmd @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4456:37: sparse:     expected unsigned int [usertype] scq_num_rcv_cmd
   drivers/scsi/huawei/hifc/hifc_queue.c:4456:37: sparse:     got restricted __be32 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4473:40: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] per_xmit_data_size @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:4473:40: sparse:     expected unsigned int [usertype] per_xmit_data_size
   drivers/scsi/huawei/hifc/hifc_queue.c:4473:40: sparse:     got restricted __be32 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:4511:6: sparse: sparse: symbol 'hifc_init_parent_ctx' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:4559:6: sparse: sparse: symbol 'hifc_map_shared_queue_qid' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_queue.c:5242:45: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long doorbell_record @@     got restricted __be64 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_queue.c:5242:45: sparse:     expected unsigned long long doorbell_record
   drivers/scsi/huawei/hifc/hifc_queue.c:5242:45: sparse:     got restricted __be64 [usertype]
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_queue.c:5331:17: sparse: sparse: cast to restricted __be64
--
   drivers/scsi/huawei/hifc/hifc_lld.c:67:22: sparse: sparse: symbol 'g_lld_lock' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_lld.c:291:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] manufacture_id @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_lld.c:291:29: sparse:     expected unsigned int [usertype] manufacture_id
   drivers/scsi/huawei/hifc/hifc_lld.c:291:29: sparse:     got restricted __be32 [usertype]
   drivers/scsi/huawei/hifc/hifc_lld.c:292:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] resp_code @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_lld.c:292:24: sparse:     expected unsigned short [usertype] resp_code
   drivers/scsi/huawei/hifc/hifc_lld.c:292:24: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_lld.c:293:26: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] reason_code @@     got restricted __be16 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_lld.c:293:26: sparse:     expected unsigned short [usertype] reason_code
   drivers/scsi/huawei/hifc/hifc_lld.c:293:26: sparse:     got restricted __be16 [usertype]
   drivers/scsi/huawei/hifc/hifc_lld.c:333:6: sparse: sparse: symbol 'hifc_get_ppf_hwdev_by_pdev' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_lld.c:362:6: sparse: sparse: symbol 'hifc_event_process' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_lld.c:645:32: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *[assigned] cfg_reg_base @@     got void [noderef] <asn:2> *cfg_reg_base @@
   drivers/scsi/huawei/hifc/hifc_lld.c:645:32: sparse:     expected void *[assigned] cfg_reg_base
   drivers/scsi/huawei/hifc/hifc_lld.c:645:32: sparse:     got void [noderef] <asn:2> *cfg_reg_base
>> drivers/scsi/huawei/hifc/hifc_lld.c:646:33: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *[assigned] intr_reg_base @@     got void [noderef] <asn:2> *intr_reg_base @@
   drivers/scsi/huawei/hifc/hifc_lld.c:646:33: sparse:     expected void *[assigned] intr_reg_base
   drivers/scsi/huawei/hifc/hifc_lld.c:646:33: sparse:     got void [noderef] <asn:2> *intr_reg_base
>> drivers/scsi/huawei/hifc/hifc_lld.c:647:27: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *[assigned] db_base @@     got void [noderef] <asn:2> *db_base @@
   drivers/scsi/huawei/hifc/hifc_lld.c:647:27: sparse:     expected void *[assigned] db_base
   drivers/scsi/huawei/hifc/hifc_lld.c:647:27: sparse:     got void [noderef] <asn:2> *db_base
   drivers/scsi/huawei/hifc/hifc_lld.c:333:7: warning: no previous prototype for 'hifc_get_ppf_hwdev_by_pdev' [-Wmissing-prototypes]
     333 | void *hifc_get_ppf_hwdev_by_pdev(struct pci_dev *pdev)
         |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_lld.c:362:6: warning: no previous prototype for 'hifc_event_process' [-Wmissing-prototypes]
     362 | void hifc_event_process(void *adapter, struct hifc_event_info *event)
         |      ^~~~~~~~~~~~~~~~~~
--
>> drivers/scsi/huawei/hifc/hifc_tool.c:90:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got void *in_buff @@
   drivers/scsi/huawei/hifc/hifc_tool.c:90:43: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_tool.c:90:43: sparse:     got void *in_buff
>> drivers/scsi/huawei/hifc/hifc_tool.c:157:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got void *out_buf @@
   drivers/scsi/huawei/hifc/hifc_tool.c:157:32: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_tool.c:157:32: sparse:     got void *out_buf
   drivers/scsi/huawei/hifc/hifc_tool.c:256:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got void *out_buf @@
   drivers/scsi/huawei/hifc/hifc_tool.c:256:32: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_tool.c:256:32: sparse:     got void *out_buf
   drivers/scsi/huawei/hifc/hifc_tool.c:386:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got void *out_buf @@
   drivers/scsi/huawei/hifc/hifc_tool.c:386:32: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_tool.c:386:32: sparse:     got void *out_buf
   drivers/scsi/huawei/hifc/hifc_tool.c:459:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got void *out_buf @@
   drivers/scsi/huawei/hifc/hifc_tool.c:459:32: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_tool.c:459:32: sparse:     got void *out_buf
   drivers/scsi/huawei/hifc/hifc_tool.c:465:5: sparse: sparse: symbol 'send_to_service_driver' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_tool.c:599:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got void * @@
   drivers/scsi/huawei/hifc/hifc_tool.c:599:38: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_tool.c:599:38: sparse:     got void *
   drivers/scsi/huawei/hifc/hifc_tool.c:664:5: sparse: sparse: symbol 'if_nictool_exist' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_tool.c:465:5: warning: no previous prototype for 'send_to_service_driver' [-Wmissing-prototypes]
     465 | int send_to_service_driver(struct msg_module *nt_msg, void *buf_in,
         |     ^~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_tool.c:664:5: warning: no previous prototype for 'if_nictool_exist' [-Wmissing-prototypes]
     664 | int if_nictool_exist(void)
         |     ^~~~~~~~~~~~~~~~
--
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:36:4: sparse: sparse: symbol 'hifc_physical_port_id' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:47:5: sparse: sparse: symbol 'hifc_clp_to_mgmt' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:236:6: sparse: sparse: symbol 'hifc_is_in_host' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:401:25: sparse: sparse: symbol 'sm_module_cmd_handle' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_tool_hw.c:482:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got void * @@
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:482:35: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:482:35: sparse:     got void *
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:36:4: warning: no previous prototype for 'hifc_physical_port_id' [-Wmissing-prototypes]
      36 | u8 hifc_physical_port_id(void *hwdev)
         |    ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:47:5: warning: no previous prototype for 'hifc_clp_to_mgmt' [-Wmissing-prototypes]
      47 | int hifc_clp_to_mgmt(void *hwdev, enum hifc_mod_type mod, u8 cmd,
         |     ^~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_tool_hw.c:236:6: warning: no previous prototype for 'hifc_is_in_host' [-Wmissing-prototypes]
     236 | bool hifc_is_in_host(void)
         |      ^~~~~~~~~~~~~~~
--
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:62:7: sparse: sparse: symbol 'dbgtool_dev_id' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:63:13: sparse: sparse: symbol 'dbgtool_chr_dev' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:66:14: sparse: sparse: symbol 'dbgtool_d_class' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:69:5: sparse: sparse: symbol 'g_dbgtool_init_flag' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:70:5: sparse: sparse: symbol 'g_dbgtool_ref_cnt' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:202:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got unsigned char [usertype] *cmd @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:202:51: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:202:51: sparse:     got unsigned char [usertype] *cmd
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:216:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got void *ack @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:216:44: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:216:44: sparse:     got void *ack
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:150:6: sparse: sparse: symbol 'dbgtool_knl_api_cmd_read' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:269:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got unsigned char [usertype] *cmd @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:269:51: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:269:51: sparse:     got unsigned char [usertype] *cmd
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:234:6: sparse: sparse: symbol 'dbgtool_knl_api_cmd_write' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:374:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got struct pf_dev_info *dev_info @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:374:37: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:374:37: sparse:     got struct pf_dev_info *dev_info
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:331:6: sparse: sparse: symbol 'dbgtool_knl_pf_dev_info_get' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:393:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got struct ffm_record_info *ffm_rd @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:393:37: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:393:37: sparse:     got struct ffm_record_info *ffm_rd
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:389:6: sparse: sparse: symbol 'dbgtool_knl_ffm_info_rd' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:407:6: sparse: sparse: symbol 'dbgtool_knl_ffm_info_clr' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:461:54: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got void *buf_in @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:461:54: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:461:54: sparse:     got void *buf_in
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:482:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got unsigned short [usertype] *out_size @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:482:44: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:482:44: sparse:     got unsigned short [usertype] *out_size
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:489:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got void *buf_out @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:489:44: sparse:     expected void [noderef] <asn:1> *to
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:489:44: sparse:     got void *buf_out
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:419:6: sparse: sparse: symbol 'dbgtool_knl_msg_to_up' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:621:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const [noderef] <asn:1> *from @@     got void * @@
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:621:37: sparse:     expected void const [noderef] <asn:1> *from
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:621:37: sparse:     got void *
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:612:6: sparse: sparse: symbol 'dbgtool_knl_unlocked_ioctl' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:672:6: sparse: sparse: symbol 'ffm_intr_msg_record' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:150:6: warning: no previous prototype for 'dbgtool_knl_api_cmd_read' [-Wmissing-prototypes]
     150 | long dbgtool_knl_api_cmd_read(struct dbgtool_param *para,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:234:6: warning: no previous prototype for 'dbgtool_knl_api_cmd_write' [-Wmissing-prototypes]
     234 | long dbgtool_knl_api_cmd_write(struct dbgtool_param *para,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:331:6: warning: no previous prototype for 'dbgtool_knl_pf_dev_info_get' [-Wmissing-prototypes]
     331 | long dbgtool_knl_pf_dev_info_get(struct dbgtool_param *para,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:389:6: warning: no previous prototype for 'dbgtool_knl_ffm_info_rd' [-Wmissing-prototypes]
     389 | long dbgtool_knl_ffm_info_rd(struct dbgtool_param *para,
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:407:6: warning: no previous prototype for 'dbgtool_knl_ffm_info_clr' [-Wmissing-prototypes]
     407 | void dbgtool_knl_ffm_info_clr(struct dbgtool_param *para,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:419:6: warning: no previous prototype for 'dbgtool_knl_msg_to_up' [-Wmissing-prototypes]
     419 | long dbgtool_knl_msg_to_up(struct dbgtool_param *para,
         |      ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:612:6: warning: no previous prototype for 'dbgtool_knl_unlocked_ioctl' [-Wmissing-prototypes]
     612 | long dbgtool_knl_unlocked_ioctl(struct file *pfile,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:672:6: warning: no previous prototype for 'ffm_intr_msg_record' [-Wmissing-prototypes]
     672 | void ffm_intr_msg_record(void *handle, void *buf_in, u16 in_size,
         |      ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:802: warning: Function parameter or member 'vhwdev' not described in 'dbgtool_knl_init'
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:802: warning: Excess function parameter 'hwdev' description in 'dbgtool_knl_init'
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:897: warning: Function parameter or member 'vhwdev' not described in 'dbgtool_knl_deinit'
   drivers/scsi/huawei/hifc/hifc_dbgtool_knl.c:897: warning: Excess function parameter 'hwdev' description in 'dbgtool_knl_deinit'
--
   drivers/scsi/huawei/hifc/hifc_hwif.c:27:16: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_hwif.c:27:16: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_hwif.c:27:16: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_hwif.c:27:16: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_hwif.c:27:16: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_hwif.c:27:16: sparse: sparse: cast to restricted __be32
>> drivers/scsi/huawei/hifc/hifc_hwif.c:32:16: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int val @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_hwif.c:32:16: sparse:     expected unsigned int val
   drivers/scsi/huawei/hifc/hifc_hwif.c:32:16: sparse:     got restricted __be32 [usertype]
>> drivers/scsi/huawei/hifc/hifc_hwif.c:453:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned char [noderef] [usertype] <asn:2> *cfg_regs_base @@     got void *cfg_reg_base @@
   drivers/scsi/huawei/hifc/hifc_hwif.c:453:29: sparse:     expected unsigned char [noderef] [usertype] <asn:2> *cfg_regs_base
   drivers/scsi/huawei/hifc/hifc_hwif.c:453:29: sparse:     got void *cfg_reg_base
>> drivers/scsi/huawei/hifc/hifc_hwif.c:454:30: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned char [noderef] [usertype] <asn:2> *intr_regs_base @@     got void *intr_reg_base @@
   drivers/scsi/huawei/hifc/hifc_hwif.c:454:30: sparse:     expected unsigned char [noderef] [usertype] <asn:2> *intr_regs_base
   drivers/scsi/huawei/hifc/hifc_hwif.c:454:30: sparse:     got void *intr_reg_base
>> drivers/scsi/huawei/hifc/hifc_hwif.c:457:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned char [noderef] [usertype] <asn:2> *db_base @@     got void *db_base @@
   drivers/scsi/huawei/hifc/hifc_hwif.c:457:23: sparse:     expected unsigned char [noderef] [usertype] <asn:2> *db_base
   drivers/scsi/huawei/hifc/hifc_hwif.c:457:23: sparse:     got void *db_base
>> drivers/scsi/huawei/hifc/hifc_hwif.c:517:65: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted gfp_t [usertype] flag @@     got unsigned int flag @@
   drivers/scsi/huawei/hifc/hifc_hwif.c:517:65: sparse:     expected restricted gfp_t [usertype] flag
   drivers/scsi/huawei/hifc/hifc_hwif.c:517:65: sparse:     got unsigned int flag
   drivers/scsi/huawei/hifc/hifc_hwif.c:532:65: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted gfp_t [usertype] flag @@     got unsigned int flag @@
   drivers/scsi/huawei/hifc/hifc_hwif.c:532:65: sparse:     expected restricted gfp_t [usertype] flag
   drivers/scsi/huawei/hifc/hifc_hwif.c:532:65: sparse:     got unsigned int flag
   drivers/scsi/huawei/hifc/hifc_hwif.c:442: warning: Function parameter or member 'intr_reg_base' not described in 'hifc_init_hwif'
   drivers/scsi/huawei/hifc/hifc_hwif.c:442: warning: Function parameter or member 'db_base_phy' not described in 'hifc_init_hwif'
   drivers/scsi/huawei/hifc/hifc_hwif.c:442: warning: Function parameter or member 'db_base' not described in 'hifc_init_hwif'
   drivers/scsi/huawei/hifc/hifc_hwif.c:442: warning: Function parameter or member 'dwqe_mapping' not described in 'hifc_init_hwif'
--
   drivers/scsi/huawei/hifc/hifc_cmdq.c:345:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [usertype] db_info @@     got restricted __be32 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_cmdq.c:345:20: sparse:     expected unsigned int [addressable] [usertype] db_info
   drivers/scsi/huawei/hifc/hifc_cmdq.c:345:20: sparse:     got restricted __be32 [usertype]
>> drivers/scsi/huawei/hifc/hifc_cmdq.c:348:28: sparse: sparse: cast removes address space '<asn:2>' of expression
>> drivers/scsi/huawei/hifc/hifc_cmdq.c:348:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] <asn:2> *addr @@     got unsigned char [usertype] * @@
   drivers/scsi/huawei/hifc/hifc_cmdq.c:348:28: sparse:     expected void volatile [noderef] <asn:2> *addr
   drivers/scsi/huawei/hifc/hifc_cmdq.c:348:28: sparse:     got unsigned char [usertype] *
   drivers/scsi/huawei/hifc/hifc_cmdq.c:489:31: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:489:31: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:489:31: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:489:31: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:489:31: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:489:31: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:495:40: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] @@     got restricted __be64 [usertype] @@
   drivers/scsi/huawei/hifc/hifc_cmdq.c:495:40: sparse:     expected unsigned long long [usertype]
   drivers/scsi/huawei/hifc/hifc_cmdq.c:495:40: sparse:     got restricted __be64 [usertype]
   drivers/scsi/huawei/hifc/hifc_cmdq.c:509:21: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:509:21: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:509:21: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:509:21: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:509:21: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:509:21: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1060:27: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1060:27: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1060:27: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1060:27: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1060:27: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1060:27: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1132:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1132:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1132:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1132:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1132:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1132:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1219:37: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1219:37: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1219:37: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1219:37: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1219:37: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1219:37: sparse: sparse: cast to restricted __be32
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1250:31: sparse: sparse: cast to restricted __be64
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1299:26: sparse: sparse: cast removes address space '<asn:2>' of expression
>> drivers/scsi/huawei/hifc/hifc_cmdq.c:1299:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned char [noderef] [usertype] <asn:2> *db_base @@     got unsigned char [usertype] * @@
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1299:23: sparse:     expected unsigned char [noderef] [usertype] <asn:2> *db_base
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1299:23: sparse:     got unsigned char [usertype] *
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1316:5: sparse: sparse: symbol 'hifc_set_cmdq_ctxts' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_cmdq.c:1316:5: warning: no previous prototype for 'hifc_set_cmdq_ctxts' [-Wmissing-prototypes]
    1316 | int hifc_set_cmdq_ctxts(struct hifc_hwdev *hwdev)
         |     ^~~~~~~~~~~~~~~~~~~
--
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:46:6: sparse: sparse: symbol 'cqm_test_mode_init' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:95:5: sparse: sparse: symbol 'cqm_service_capability_init' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:114:5: sparse: sparse: symbol 'cqm_capability_init' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:431:5: sparse: sparse: symbol 'cqm_db_addr_alloc' was not declared. Should it be static?
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:476:6: sparse: sparse: symbol 'cqm_db_addr_free' was not declared. Should it be static?
>> drivers/scsi/huawei/hifc/hifc_cqm_main.c:691:12: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:46:6: warning: no previous prototype for 'cqm_test_mode_init' [-Wmissing-prototypes]
      46 | void cqm_test_mode_init(struct cqm_handle_s *cqm_handle,
         |      ^~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:95:5: warning: no previous prototype for 'cqm_service_capability_init' [-Wmissing-prototypes]
      95 | s32 cqm_service_capability_init(struct cqm_handle_s *cqm_handle,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:114:5: warning: no previous prototype for 'cqm_capability_init' [-Wmissing-prototypes]
     114 | s32 cqm_capability_init(void *ex_handle)
         |     ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:431:5: warning: no previous prototype for 'cqm_db_addr_alloc' [-Wmissing-prototypes]
     431 | s32 cqm_db_addr_alloc(void *ex_handle, void __iomem **db_addr,
         |     ^~~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:476:6: warning: no previous prototype for 'cqm_db_addr_free' [-Wmissing-prototypes]
     476 | void cqm_db_addr_free(void *ex_handle, void __iomem *db_addr,
         |      ^~~~~~~~~~~~~~~~
   drivers/scsi/huawei/hifc/hifc_cqm_main.c:592: warning: Excess function parameter 'service_type' description in 'cqm_service_unregister'
vim +1965 drivers/scsi/huawei/hifc/hifc_queue.c
31015b9ad992c4 Chenguangli 2020-11-16  1947  
31015b9ad992c4 Chenguangli 2020-11-16  1948  static void hifc_ring_root_sq_db(struct hifc_hba_s *v_hba,
31015b9ad992c4 Chenguangli 2020-11-16  1949  				 struct hifc_root_sq_info_s *v_sq_info)
31015b9ad992c4 Chenguangli 2020-11-16  1950  {
31015b9ad992c4 Chenguangli 2020-11-16  1951  	struct nic_tx_doorbell db;
31015b9ad992c4 Chenguangli 2020-11-16  1952  
31015b9ad992c4 Chenguangli 2020-11-16  1953  	UNF_CHECK_VALID(INVALID_VALUE32, UNF_TRUE, NULL != v_sq_info, return);
31015b9ad992c4 Chenguangli 2020-11-16  1954  
31015b9ad992c4 Chenguangli 2020-11-16  1955  	memset(&db, 0, sizeof(struct nic_tx_doorbell));
31015b9ad992c4 Chenguangli 2020-11-16  1956  
31015b9ad992c4 Chenguangli 2020-11-16  1957  	db.bs0.srv_type = HIFC_DOORBELL_SQ_TYPE;
31015b9ad992c4 Chenguangli 2020-11-16  1958  	db.bs0.queue_id = v_sq_info->qid;
31015b9ad992c4 Chenguangli 2020-11-16  1959  	db.bs0.pi_high = v_sq_info->pi >> HIFC_DOORBELL_SQ_PI_HIGH_BITS_SHIFT;
31015b9ad992c4 Chenguangli 2020-11-16  1960  	db.bs0.cos = 0;
31015b9ad992c4 Chenguangli 2020-11-16  1961  
31015b9ad992c4 Chenguangli 2020-11-16  1962  	db.dw0 = cpu_to_be32(db.dw0);
31015b9ad992c4 Chenguangli 2020-11-16  1963  	wmb();
31015b9ad992c4 Chenguangli 2020-11-16  1964  
31015b9ad992c4 Chenguangli 2020-11-16 @1965  	*((unsigned long long *)(v_sq_info->normal_db.virt_map_addr)
31015b9ad992c4 Chenguangli 2020-11-16  1966  	  + (v_sq_info->pi & HIFC_DOORBELL_SQ_PI_LOW_BITS_MASK)) =
31015b9ad992c4 Chenguangli 2020-11-16  1967  						*(unsigned long long *)&db;
31015b9ad992c4 Chenguangli 2020-11-16  1968  }
31015b9ad992c4 Chenguangli 2020-11-16  1969  
:::::: The code at line 1965 was first introduced by commit
:::::: 31015b9ad992c40fc0db81055932bbabe74f2533 scsi/hifc: add hifc driver port resource module
:::::: TO: Chenguangli <chenguangli2(a)huawei.com>
:::::: CC: Yang Yingliang <yangyingliang(a)huawei.com>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1553/23811] drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3553:25: sparse: sparse: symbol 'host_attrs_v2_hw' was not declared. Should it be static?
                        
                        
by kernel test robot 04 Oct '24
                    by kernel test robot 04 Oct '24
04 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: a9cc7cd9ecc843e5cc77a350cfe76ae24421064d [1553/23811] scsi: hisi_sas: add a separate host attribute for every host adapter
config: arm64-randconfig-r111-20241003 (https://download.01.org/0day-ci/archive/20241004/202410040135.yxN1SBCM-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241004/202410040135.yxN1SBCM-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410040135.yxN1SBCM-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned long long [usertype] val @@     got restricted __le64 [usertype] sas_addr @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse:     expected unsigned long long [usertype] val
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse:     got restricted __le64 [usertype] sas_addr
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:26: sparse: sparse: cast from restricted __le64
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] sas_addr @@     got unsigned long long @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:24: sparse:     expected restricted __le64 [usertype] sas_addr
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:968:24: sparse:     got unsigned long long
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] val @@     got restricted __le32 [usertype] trans_tx_fail_type @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse:     expected unsigned int [usertype] val
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse:     got restricted __le32 [usertype] trans_tx_fail_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned int [usertype] trans_tx_fail_type @@     got restricted __le32 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse:     expected unsigned int [usertype] trans_tx_fail_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2045:34: sparse:     got restricted __le32 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] val @@     got restricted __le32 [usertype] trans_rx_fail_type @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse:     expected unsigned int [usertype] val
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse:     got restricted __le32 [usertype] trans_rx_fail_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned int [usertype] trans_rx_fail_type @@     got restricted __le32 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse:     expected unsigned int [usertype] trans_rx_fail_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2046:34: sparse:     got restricted __le32 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse: sparse: cast from restricted __le16
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __le16 [usertype] dma_tx_err_type @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse:     expected unsigned short [usertype] val
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse:     got restricted __le16 [usertype] dma_tx_err_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse: sparse: cast from restricted __le16
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse: sparse: cast from restricted __le16
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned short [usertype] dma_tx_err_type @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse:     expected unsigned short [usertype] dma_tx_err_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2047:31: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse: sparse: cast from restricted __le16
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __le16 [usertype] sipc_rx_err_type @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse:     expected unsigned short [usertype] val
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse:     got restricted __le16 [usertype] sipc_rx_err_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse: sparse: cast from restricted __le16
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse: sparse: cast from restricted __le16
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned short [usertype] sipc_rx_err_type @@     got restricted __le16 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse:     expected unsigned short [usertype] sipc_rx_err_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2048:32: sparse:     got restricted __le16 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] val @@     got restricted __le32 [usertype] dma_rx_err_type @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse:     expected unsigned int [usertype] val
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse:     got restricted __le32 [usertype] dma_rx_err_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: cast from restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned int [usertype] dma_rx_err_type @@     got restricted __le32 [usertype] @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse:     expected unsigned int [usertype] dma_rx_err_type
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2049:31: sparse:     got restricted __le32 [usertype]
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2383:30: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2409:26: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2410:32: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2411:46: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2538:26: sparse: sparse: invalid assignment: |=
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2538:26: sparse:    left side has type restricted __le32
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2538:26: sparse:    right side has type int
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3153:51: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned int [usertype] act_tmp @@     got restricted __le32 [usertype] act @@
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3153:51: sparse:     expected unsigned int [usertype] act_tmp
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3153:51: sparse:     got restricted __le32 [usertype] act
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3156:47: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3165:48: sparse: sparse: restricted __le64 degrades to integer
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3177:45: sparse: sparse: restricted __le32 degrades to integer
>> drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3553:25: sparse: sparse: symbol 'host_attrs_v2_hw' was not declared. Should it be static?
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:773:1: sparse: sparse: context imbalance in 'slot_index_alloc_quirk_v2_hw' - wrong count at exit
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3646:36: warning: 'sas_v2_acpi_match' defined but not used [-Wunused-const-variable=]
    3646 | static const struct acpi_device_id sas_v2_acpi_match[] = {
         |                                    ^~~~~~~~~~~~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c: In function 'clear_itct_v2_hw':
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:987:29: warning: storing the address of local variable 'completion' in '*sas_dev.completion' [-Wdangling-pointer=]
     987 |         sas_dev->completion = &completion;
         |         ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
   In file included from include/linux/srcutree.h:28,
                    from include/linux/srcu.h:62,
                    from include/linux/notifier.h:16,
                    from include/linux/memory_hotplug.h:7,
                    from include/linux/mmzone.h:748,
                    from include/linux/gfp.h:6,
                    from include/linux/slab.h:15,
                    from include/linux/resource_ext.h:19,
                    from include/linux/acpi.h:26,
                    from drivers/scsi/hisi_sas/hisi_sas.h:15,
                    from drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:12:
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:981:36: note: 'completion' declared here
     981 |         DECLARE_COMPLETION_ONSTACK(completion);
         |                                    ^~~~~~~~~~
   include/linux/completion.h:70:27: note: in definition of macro 'DECLARE_COMPLETION_ONSTACK'
      70 |         struct completion work = COMPLETION_INITIALIZER_ONSTACK(work)
         |                           ^~~~
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:979:55: note: 'sas_dev' declared here
     979 |                               struct hisi_sas_device *sas_dev)
         |                               ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3319: warning: Function parameter or member 'hisi_hba' not described in 'interrupt_init_v2_hw'
vim +/host_attrs_v2_hw +3553 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
  3552	
> 3553	struct device_attribute *host_attrs_v2_hw[] = {
  3554		&dev_attr_phy_event_threshold,
  3555		NULL
  3556	};
  3557	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 20638/23811] drivers/i2c/busses/.tmp_i2c-zhaoxin.o: warning: objtool: missing symbol for section .init.text
                        
                        
by kernel test robot 03 Oct '24
                    by kernel test robot 03 Oct '24
03 Oct '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   5c63bd0fa5e86474d30ecd06d67f2393de081434
commit: 735c81b4d33c46ea097f6437f63ea624ccf6dee1 [20638/23811] i2c: Add Zhaoxin I2C driver
config: x86_64-buildonly-randconfig-004-20240923 (https://download.01.org/0day-ci/archive/20241003/202410030906.pfPY7k7C-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241003/202410030906.pfPY7k7C-lkp@…)
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 <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410030906.pfPY7k7C-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/i2c/busses/.tmp_i2c-zhaoxin.o: warning: objtool: missing symbol for section .init.text
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0