Hi Zhongjun, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tiwai-sound/for-next] [also build test WARNING on linus/master v5.19-rc5 next-20220705] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/intel-lab-lkp/linux/commits/Zhongjun-Tan/ALSA-usb-audio-Fix-unsigned-expression-compared-with-zero/20220706-150825 base: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next config: hexagon-randconfig-r045-20220703 (https://download.01.org/0day-ci/archive/20220706/202207061810.ztYTpLH7-lkp@xxxxxxxxx/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f553287b588916de09c66e3e32bf75e5060f967f) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/10d09dc3ad3a9b823d9097a68058698be90c7a74 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Zhongjun-Tan/ALSA-usb-audio-Fix-unsigned-expression-compared-with-zero/20220706-150825 git checkout 10d09dc3ad3a9b823d9097a68058698be90c7a74 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash sound/usb/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> sound/usb/pcm.c:782:11: warning: comparison of distinct pointer types ('typeof (rmin) *' (aka 'unsigned int *') and 'typeof (r) *' (aka 'int *')) [-Wcompare-distinct-pointer-types] rmin = min(rmin, r); ^~~~~~~~~~~~ include/linux/minmax.h:45:19: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~~~~~~~~~~~~~~~ include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp' (__typecheck(x, y) && __no_side_effects(x, y)) ^~~~~~~~~~~~~~~~~ include/linux/minmax.h:20:28: note: expanded from macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~ >> sound/usb/pcm.c:783:11: warning: comparison of distinct pointer types ('typeof (rmax) *' (aka 'unsigned int *') and 'typeof (r) *' (aka 'int *')) [-Wcompare-distinct-pointer-types] rmax = max(rmax, r); ^~~~~~~~~~~~ include/linux/minmax.h:52:19: note: expanded from macro 'max' #define max(x, y) __careful_cmp(x, y, >) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~~~~~~~~~~~~~~~ include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp' (__typecheck(x, y) && __no_side_effects(x, y)) ^~~~~~~~~~~~~~~~~ include/linux/minmax.h:20:28: note: expanded from macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~ sound/usb/pcm.c:791:12: warning: comparison of distinct pointer types ('typeof (rmin) *' (aka 'unsigned int *') and 'typeof (r) *' (aka 'int *')) [-Wcompare-distinct-pointer-types] rmin = min(rmin, r); ^~~~~~~~~~~~ include/linux/minmax.h:45:19: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~~~~~~~~~~~~~~~ include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp' (__typecheck(x, y) && __no_side_effects(x, y)) ^~~~~~~~~~~~~~~~~ include/linux/minmax.h:20:28: note: expanded from macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~ sound/usb/pcm.c:792:12: warning: comparison of distinct pointer types ('typeof (rmax) *' (aka 'unsigned int *') and 'typeof (r) *' (aka 'int *')) [-Wcompare-distinct-pointer-types] rmax = max(rmax, r); ^~~~~~~~~~~~ include/linux/minmax.h:52:19: note: expanded from macro 'max' #define max(x, y) __careful_cmp(x, y, >) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~~~~~~~~~~~~~~~ include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp' (__typecheck(x, y) && __no_side_effects(x, y)) ^~~~~~~~~~~~~~~~~ include/linux/minmax.h:20:28: note: expanded from macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~ 4 warnings generated. vim +782 sound/usb/pcm.c 7726dce14c5e7e Takashi Iwai 2020-11-23 761 e5779998bf8b70 Daniel Mack 2010-03-04 762 static int hw_rule_rate(struct snd_pcm_hw_params *params, e5779998bf8b70 Daniel Mack 2010-03-04 763 struct snd_pcm_hw_rule *rule) e5779998bf8b70 Daniel Mack 2010-03-04 764 { e5779998bf8b70 Daniel Mack 2010-03-04 765 struct snd_usb_substream *subs = rule->private; 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 766 struct snd_usb_audio *chip = subs->stream->chip; cab941b7e5cf05 Takashi Iwai 2020-11-23 767 const struct audioformat *fp; e5779998bf8b70 Daniel Mack 2010-03-04 768 struct snd_interval *it = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE); 10d09dc3ad3a9b Zhongjun Tan 2022-07-06 769 unsigned int rmin, rmax; 10d09dc3ad3a9b Zhongjun Tan 2022-07-06 770 int i, r; e5779998bf8b70 Daniel Mack 2010-03-04 771 e5779998bf8b70 Daniel Mack 2010-03-04 772 hwc_debug("hw_rule_rate: (%d,%d)\n", it->min, it->max); bc4e94aa8e72e7 Takashi Iwai 2020-11-23 773 rmin = UINT_MAX; bc4e94aa8e72e7 Takashi Iwai 2020-11-23 774 rmax = 0; 88766f04c4142c Eldad Zack 2013-04-03 775 list_for_each_entry(fp, &subs->fmt_list, list) { e5779998bf8b70 Daniel Mack 2010-03-04 776 if (!hw_check_valid_format(subs, params, fp)) e5779998bf8b70 Daniel Mack 2010-03-04 777 continue; 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 778 r = snd_usb_endpoint_get_clock_rate(chip, fp->clock); 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 779 if (r > 0) { 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 780 if (!snd_interval_test(it, r)) 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 781 continue; 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 @782 rmin = min(rmin, r); 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 @783 rmax = max(rmax, r); 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 784 continue; 4e7cf1fbb34ecb Takashi Iwai 2021-09-29 785 } bc4e94aa8e72e7 Takashi Iwai 2020-11-23 786 if (fp->rate_table && fp->nr_rates) { bc4e94aa8e72e7 Takashi Iwai 2020-11-23 787 for (i = 0; i < fp->nr_rates; i++) { bc4e94aa8e72e7 Takashi Iwai 2020-11-23 788 r = fp->rate_table[i]; bc4e94aa8e72e7 Takashi Iwai 2020-11-23 789 if (!snd_interval_test(it, r)) bc4e94aa8e72e7 Takashi Iwai 2020-11-23 790 continue; bc4e94aa8e72e7 Takashi Iwai 2020-11-23 791 rmin = min(rmin, r); bc4e94aa8e72e7 Takashi Iwai 2020-11-23 792 rmax = max(rmax, r); bc4e94aa8e72e7 Takashi Iwai 2020-11-23 793 } e5779998bf8b70 Daniel Mack 2010-03-04 794 } else { bc4e94aa8e72e7 Takashi Iwai 2020-11-23 795 rmin = min(rmin, fp->rate_min); bc4e94aa8e72e7 Takashi Iwai 2020-11-23 796 rmax = max(rmax, fp->rate_max); e5779998bf8b70 Daniel Mack 2010-03-04 797 } e5779998bf8b70 Daniel Mack 2010-03-04 798 } e5779998bf8b70 Daniel Mack 2010-03-04 799 7726dce14c5e7e Takashi Iwai 2020-11-23 800 return apply_hw_params_minmax(it, rmin, rmax); e5779998bf8b70 Daniel Mack 2010-03-04 801 } e5779998bf8b70 Daniel Mack 2010-03-04 802 -- 0-DAY CI Kernel Test Service https://01.org/lkp