![](https://secure.gravatar.com/avatar/d881eac637ea7eaffd5d6389c186e588.jpg?s=120&d=mm&r=g)
Hi Cezary,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 564ee9ac788b680e4ec4a6cb3a4a953dc61d5da8]
url: https://github.com/intel-lab-lkp/linux/commits/Cezary-Rojewski/ALSA-pcm-Intr... base: 564ee9ac788b680e4ec4a6cb3a4a953dc61d5da8 patch link: https://lore.kernel.org/r/20230918133940.3676091-3-cezary.rojewski%40intel.c... patch subject: [PATCH v2 02/17] ALSA: pcm: Honor subformat when configuring substream config: x86_64-randconfig-121-20230923 (https://download.01.org/0day-ci/archive/20230923/202309231825.17qi62Yr-lkp@i...) 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/20230923/202309231825.17qi62Yr-lkp@i...)
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@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202309231825.17qi62Yr-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
sound/core/pcm_native.c:2523:43: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int val @@ got restricted snd_pcm_format_t [assigned] [usertype] f @@
sound/core/pcm_native.c:2523:43: sparse: expected unsigned int val sound/core/pcm_native.c:2523:43: sparse: got restricted snd_pcm_format_t [assigned] [usertype] f sound/core/pcm_native.c:95:1: sparse: sparse: context imbalance in 'snd_pcm_group_lock' - different lock contexts for basic block sound/core/pcm_native.c:96:1: sparse: sparse: context imbalance in 'snd_pcm_group_unlock' - unexpected unlock sound/core/pcm_native.c:97:1: sparse: sparse: context imbalance in 'snd_pcm_group_lock_irq' - different lock contexts for basic block sound/core/pcm_native.c:98:1: sparse: sparse: context imbalance in 'snd_pcm_group_unlock_irq' - unexpected unlock sound/core/pcm_native.c:145:9: sparse: sparse: context imbalance in 'snd_pcm_stream_lock_nested' - different lock contexts for basic block sound/core/pcm_native.c:171:9: sparse: sparse: context imbalance in '_snd_pcm_stream_lock_irqsave' - different lock contexts for basic block sound/core/pcm_native.c:184:9: sparse: sparse: context imbalance in '_snd_pcm_stream_lock_irqsave_nested' - different lock contexts for basic block sound/core/pcm_native.c:201:39: sparse: sparse: context imbalance in 'snd_pcm_stream_unlock_irqrestore' - unexpected unlock sound/core/pcm_native.c:1279:44: sparse: sparse: context imbalance in 'snd_pcm_action_group' - unexpected unlock sound/core/pcm_native.c:1349:37: sparse: sparse: context imbalance in 'snd_pcm_stream_group_ref' - different lock contexts for basic block sound/core/pcm_native.c: note: in included file (through arch/x86/include/asm/uaccess.h, include/linux/uaccess.h, include/linux/sched/task.h, ...): arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
vim +2523 sound/core/pcm_native.c
2503 2504 static int snd_pcm_hw_rule_subformats(struct snd_pcm_hw_params *params, 2505 struct snd_pcm_hw_rule *rule) 2506 { 2507 struct snd_mask *sfmask = hw_param_mask(params, SNDRV_PCM_HW_PARAM_SUBFORMAT); 2508 struct snd_mask *fmask = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); 2509 struct snd_pcm_hardware *hw = rule->private; 2510 struct snd_pcm_subformat *sf; 2511 snd_pcm_format_t f; 2512 struct snd_mask m; 2513 bool found; 2514 2515 snd_mask_none(&m); 2516 /* All PCMs support at least the default STD subformat. */ 2517 snd_mask_set(&m, (__force unsigned)SNDRV_PCM_SUBFORMAT_STD); 2518 2519 if (!hw->subformats) 2520 goto exit; 2521 2522 pcm_for_each_format(f) {
2523 if (!snd_mask_test(fmask, f))
2524 continue; 2525 2526 found = false; 2527 for (sf = hw->subformats; sf->mask && !found; sf++) { 2528 if (sf->format != f) 2529 continue; 2530 m.bits[0] |= sf->mask; 2531 found = true; 2532 } 2533 if (!found && snd_pcm_format_linear(f)) 2534 snd_mask_set(&m, (__force unsigned)SNDRV_PCM_SUBFORMAT_MSBITS_MAX); 2535 } 2536 exit: 2537 return snd_mask_refine(sfmask, &m); 2538 } 2539