sound/core/control.c:390:11: sparse: sparse: incorrect type in assignment (different base types)

From: kernel test robot
Date: Mon Jan 08 2024 - 18:47:34 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5db8752c3b81bd33a549f6f812bab81e3bb61b20
commit: c27e1efb61c545f36c450ef60862df9251d239a4 ALSA: control: Use xarray for faster lookups
date: 1 year, 7 months ago
config: i386-randconfig-063-20240107 (https://download.01.org/0day-ci/archive/20240109/202401090705.hJXfE4sT-lkp@xxxxxxxxx/config)
compiler: ClangBuiltLinux clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240109/202401090705.hJXfE4sT-lkp@xxxxxxxxx/reproduce)

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

sparse warnings: (new ones prefixed by >>)
>> sound/core/control.c:390:11: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long h @@ got restricted snd_ctl_elem_iface_t const [usertype] iface @@
sound/core/control.c:390:11: sparse: expected unsigned long h
sound/core/control.c:390:11: sparse: got restricted snd_ctl_elem_iface_t const [usertype] iface
sound/core/control.c:926:17: sparse: sparse: restricted snd_ctl_elem_type_t degrades to integer
sound/core/control.c:926:26: sparse: sparse: restricted snd_ctl_elem_type_t degrades to integer
sound/core/control.c:927:17: sparse: sparse: restricted snd_ctl_elem_type_t degrades to integer
sound/core/control.c:927:26: sparse: sparse: restricted snd_ctl_elem_type_t degrades to integer
sound/core/control.c:946:48: sparse: sparse: restricted snd_ctl_elem_type_t degrades to integer
sound/core/control.c:1640:40: sparse: sparse: restricted snd_ctl_elem_type_t degrades to integer

vim +390 sound/core/control.c

378
379 #ifdef CONFIG_SND_CTL_FAST_LOOKUP
380 /* Compute a hash key for the corresponding ctl id
381 * It's for the name lookup, hence the numid is excluded.
382 * The hash key is bound in LONG_MAX to be used for Xarray key.
383 */
384 #define MULTIPLIER 37
385 static unsigned long get_ctl_id_hash(const struct snd_ctl_elem_id *id)
386 {
387 unsigned long h;
388 const unsigned char *p;
389
> 390 h = id->iface;
391 h = MULTIPLIER * h + id->device;
392 h = MULTIPLIER * h + id->subdevice;
393 for (p = id->name; *p; p++)
394 h = MULTIPLIER * h + *p;
395 h = MULTIPLIER * h + id->index;
396 h &= LONG_MAX;
397 return h;
398 }
399

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