All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:android12-kiwi-5.10 291/291] sound/usb/pcm.c:1053 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1049)
@ 2026-10-20  4:56 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-10-20  4:56 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

Unfiltered warning: this smatch report is sent as-is and has not been
reviewed for false positives, so please treat it with due skepticism.

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: cros-kernel-buildreports@googlegroups.com

tree:   https://android.googlesource.com/kernel/common android12-kiwi-5.10
head:   aaa0cf06ed53d6805dfa9099535f6fc052c49086
commit: 1eb185541df90c3f790676b9ac362683de3519f2 [291/291] ANDROID: sound: usb: Add vendor's hooking interface
:::::: branch date: 14 hours ago
:::::: commit date: 6 years ago
config: i386-randconfig-2200-20261020 (https://download.01.org/0day-ci/archive/20261020/202610200641.Ba5XQ2g4-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
smatch: v0.5.0-9187-g5189e3fb

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202610200641.Ba5XQ2g4-lkp@intel.com/

smatch warnings:
sound/usb/pcm.c:1053 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1049)

vim +1053 sound/usb/pcm.c

e5779998bf8b70e Daniel Mack          2010-03-04  1035  
e5779998bf8b70e Daniel Mack          2010-03-04  1036  /*
e5779998bf8b70e Daniel Mack          2010-03-04  1037   * prepare callback
e5779998bf8b70e Daniel Mack          2010-03-04  1038   *
e5779998bf8b70e Daniel Mack          2010-03-04  1039   * only a few subtle things...
e5779998bf8b70e Daniel Mack          2010-03-04  1040   */
e5779998bf8b70e Daniel Mack          2010-03-04  1041  static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
e5779998bf8b70e Daniel Mack          2010-03-04  1042  {
e5779998bf8b70e Daniel Mack          2010-03-04  1043  	struct snd_pcm_runtime *runtime = substream->runtime;
e5779998bf8b70e Daniel Mack          2010-03-04  1044  	struct snd_usb_substream *subs = runtime->private_data;
61a709504b07911 Dylan Reid           2012-09-18  1045  	struct usb_host_interface *alts;
61a709504b07911 Dylan Reid           2012-09-18  1046  	struct usb_interface *iface;
61a709504b07911 Dylan Reid           2012-09-18  1047  	int ret;
e5779998bf8b70e Daniel Mack          2010-03-04  1048  
1eb185541df90c3 JaeHun Jung          2020-05-26 @1049  	ret = snd_vendor_set_pcm_buf(subs->dev, subs->cur_audiofmt->iface);
1eb185541df90c3 JaeHun Jung          2020-05-26  1050  	if (ret)
1eb185541df90c3 JaeHun Jung          2020-05-26  1051  		return ret;
1eb185541df90c3 JaeHun Jung          2020-05-26  1052  
e5779998bf8b70e Daniel Mack          2010-03-04 @1053  	if (! subs->cur_audiofmt) {
0ba41d917eeb87f Takashi Iwai         2014-02-26  1054  		dev_err(&subs->dev->dev, "no format is specified!\n");
e5779998bf8b70e Daniel Mack          2010-03-04  1055  		return -ENXIO;
e5779998bf8b70e Daniel Mack          2010-03-04  1056  	}
e5779998bf8b70e Daniel Mack          2010-03-04  1057  
47ab154593827b1 Takashi Iwai         2015-08-25  1058  	ret = snd_usb_lock_shutdown(subs->stream->chip);
47ab154593827b1 Takashi Iwai         2015-08-25  1059  	if (ret < 0)
47ab154593827b1 Takashi Iwai         2015-08-25  1060  		return ret;
978520b75f0a1ce Takashi Iwai         2012-10-12  1061  	if (snd_BUG_ON(!subs->data_endpoint)) {
978520b75f0a1ce Takashi Iwai         2012-10-12  1062  		ret = -EIO;
978520b75f0a1ce Takashi Iwai         2012-10-12  1063  		goto unlock;
978520b75f0a1ce Takashi Iwai         2012-10-12  1064  	}
edcd3633e72a159 Daniel Mack          2012-04-12  1065  
a0a4959eb4e94ce Jorge Sanjuan        2018-07-31  1066  	ret = snd_usb_pcm_change_state(subs, UAC3_PD_STATE_D0);
a0a4959eb4e94ce Jorge Sanjuan        2018-07-31  1067  	if (ret < 0)
a0a4959eb4e94ce Jorge Sanjuan        2018-07-31  1068  		goto unlock;
a0a4959eb4e94ce Jorge Sanjuan        2018-07-31  1069  
61a709504b07911 Dylan Reid           2012-09-18  1070  	ret = set_format(subs, subs->cur_audiofmt);
61a709504b07911 Dylan Reid           2012-09-18  1071  	if (ret < 0)
978520b75f0a1ce Takashi Iwai         2012-10-12  1072  		goto unlock;
61a709504b07911 Dylan Reid           2012-09-18  1073  
1e2e3fe480064ca Daniel Girnus        2016-12-06  1074  	if (subs->need_setup_ep) {
1e2e3fe480064ca Daniel Girnus        2016-12-06  1075  
61a709504b07911 Dylan Reid           2012-09-18  1076  		iface = usb_ifnum_to_if(subs->dev, subs->cur_audiofmt->iface);
61a709504b07911 Dylan Reid           2012-09-18  1077  		alts = &iface->altsetting[subs->cur_audiofmt->altset_idx];
61a709504b07911 Dylan Reid           2012-09-18  1078  		ret = snd_usb_init_sample_rate(subs->stream->chip,
61a709504b07911 Dylan Reid           2012-09-18  1079  					       subs->cur_audiofmt->iface,
61a709504b07911 Dylan Reid           2012-09-18  1080  					       alts,
61a709504b07911 Dylan Reid           2012-09-18  1081  					       subs->cur_audiofmt,
61a709504b07911 Dylan Reid           2012-09-18  1082  					       subs->cur_rate);
61a709504b07911 Dylan Reid           2012-09-18  1083  		if (ret < 0)
978520b75f0a1ce Takashi Iwai         2012-10-12  1084  			goto unlock;
61a709504b07911 Dylan Reid           2012-09-18  1085  
1eb185541df90c3 JaeHun Jung          2020-05-26  1086  		if (snd_vendor_get_ops()) {
1eb185541df90c3 JaeHun Jung          2020-05-26  1087  			ret = snd_vendor_set_rate(iface,
1eb185541df90c3 JaeHun Jung          2020-05-26  1088  						  subs->cur_audiofmt->iface,
1eb185541df90c3 JaeHun Jung          2020-05-26  1089  						  subs->cur_rate,
1eb185541df90c3 JaeHun Jung          2020-05-26  1090  						  subs->cur_audiofmt->altsetting);
1eb185541df90c3 JaeHun Jung          2020-05-26  1091  			if (!ret) {
1eb185541df90c3 JaeHun Jung          2020-05-26  1092  				subs->need_setup_ep = false;
1eb185541df90c3 JaeHun Jung          2020-05-26  1093  				goto unlock;
1eb185541df90c3 JaeHun Jung          2020-05-26  1094  			}
1eb185541df90c3 JaeHun Jung          2020-05-26  1095  		}
1eb185541df90c3 JaeHun Jung          2020-05-26  1096  
61a709504b07911 Dylan Reid           2012-09-18  1097  		ret = configure_endpoint(subs);
61a709504b07911 Dylan Reid           2012-09-18  1098  		if (ret < 0)
978520b75f0a1ce Takashi Iwai         2012-10-12  1099  			goto unlock;
384dc085c32285e Takashi Iwai         2012-09-18  1100  		subs->need_setup_ep = false;
384dc085c32285e Takashi Iwai         2012-09-18  1101  	}
61a709504b07911 Dylan Reid           2012-09-18  1102  
e5779998bf8b70e Daniel Mack          2010-03-04  1103  	/* some unit conversions in runtime */
edcd3633e72a159 Daniel Mack          2012-04-12  1104  	subs->data_endpoint->maxframesize =
edcd3633e72a159 Daniel Mack          2012-04-12  1105  		bytes_to_frames(runtime, subs->data_endpoint->maxpacksize);
edcd3633e72a159 Daniel Mack          2012-04-12  1106  	subs->data_endpoint->curframesize =
edcd3633e72a159 Daniel Mack          2012-04-12  1107  		bytes_to_frames(runtime, subs->data_endpoint->curpacksize);
e5779998bf8b70e Daniel Mack          2010-03-04  1108  
e5779998bf8b70e Daniel Mack          2010-03-04  1109  	/* reset the pointer */
e5779998bf8b70e Daniel Mack          2010-03-04  1110  	subs->hwptr_done = 0;
e5779998bf8b70e Daniel Mack          2010-03-04  1111  	subs->transfer_done = 0;
294c4fb8ab01728 Pierre-Louis Bossart 2011-09-06  1112  	subs->last_delay = 0;
294c4fb8ab01728 Pierre-Louis Bossart 2011-09-06  1113  	subs->last_frame_number = 0;
e5779998bf8b70e Daniel Mack          2010-03-04  1114  	runtime->delay = 0;
e5779998bf8b70e Daniel Mack          2010-03-04  1115  
edcd3633e72a159 Daniel Mack          2012-04-12  1116  	/* for playback, submit the URBs now; otherwise, the first hwptr_done
edcd3633e72a159 Daniel Mack          2012-04-12  1117  	 * updates for all URBs would happen at the same time when starting */
edcd3633e72a159 Daniel Mack          2012-04-12  1118  	if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK)
1d0f953086f090a Ioan-Adrian Ratiu    2017-01-05  1119  		ret = start_endpoints(subs);
edcd3633e72a159 Daniel Mack          2012-04-12  1120  
978520b75f0a1ce Takashi Iwai         2012-10-12  1121   unlock:
47ab154593827b1 Takashi Iwai         2015-08-25  1122  	snd_usb_unlock_shutdown(subs->stream->chip);
978520b75f0a1ce Takashi Iwai         2012-10-12  1123  	return ret;
e5779998bf8b70e Daniel Mack          2010-03-04  1124  }
e5779998bf8b70e Daniel Mack          2010-03-04  1125  

:::::: The code at line 1053 was first introduced by commit
:::::: e5779998bf8b70e48a6cc208c8b61b33bd6117ea ALSA: usb-audio: refactor code

:::::: TO: Daniel Mack <daniel@caiaq.de>
:::::: CC: Takashi Iwai <tiwai@suse.de>

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [android-common:android12-kiwi-5.10 291/291] sound/usb/pcm.c:1053 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1049)
@ 2026-10-20  7:07 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2026-10-20  7:07 UTC (permalink / raw)
  To: oe-kbuild, cros-kernel-buildreports; +Cc: lkp, oe-kbuild-all

tree:   https://android.googlesource.com/kernel/common android12-kiwi-5.10
head:   aaa0cf06ed53d6805dfa9099535f6fc052c49086
commit: 1eb185541df90c3f790676b9ac362683de3519f2 [291/291] ANDROID: sound: usb: Add vendor's hooking interface
config: i386-randconfig-2200-20261020 (https://download.01.org/0day-ci/archive/20261020/202610200641.Ba5XQ2g4-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
smatch: v0.5.0-9187-g5189e3fb

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202610200641.Ba5XQ2g4-lkp@intel.com/

smatch warnings:
sound/usb/pcm.c:1053 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1049)

vim +1053 sound/usb/pcm.c

e5779998bf8b70e Daniel Mack          2010-03-04  1041  static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
e5779998bf8b70e Daniel Mack          2010-03-04  1042  {
e5779998bf8b70e Daniel Mack          2010-03-04  1043  	struct snd_pcm_runtime *runtime = substream->runtime;
e5779998bf8b70e Daniel Mack          2010-03-04  1044  	struct snd_usb_substream *subs = runtime->private_data;
61a709504b07911 Dylan Reid           2012-09-18  1045  	struct usb_host_interface *alts;
61a709504b07911 Dylan Reid           2012-09-18  1046  	struct usb_interface *iface;
61a709504b07911 Dylan Reid           2012-09-18  1047  	int ret;
e5779998bf8b70e Daniel Mack          2010-03-04  1048  
1eb185541df90c3 JaeHun Jung          2020-05-26 @1049  	ret = snd_vendor_set_pcm_buf(subs->dev, subs->cur_audiofmt->iface);
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
Android adds this vender hook

1eb185541df90c3 JaeHun Jung          2020-05-26  1050  	if (ret)
1eb185541df90c3 JaeHun Jung          2020-05-26  1051  		return ret;
1eb185541df90c3 JaeHun Jung          2020-05-26  1052  
e5779998bf8b70e Daniel Mack          2010-03-04 @1053  	if (! subs->cur_audiofmt) {
                                                              ^^^^^^^^^^^^^^^^^^
before the NULL check

0ba41d917eeb87f Takashi Iwai         2014-02-26  1054  		dev_err(&subs->dev->dev, "no format is specified!\n");
e5779998bf8b70e Daniel Mack          2010-03-04  1055  		return -ENXIO;
e5779998bf8b70e Daniel Mack          2010-03-04  1056  	}
e5779998bf8b70e Daniel Mack          2010-03-04  1057  
47ab154593827b1 Takashi Iwai         2015-08-25  1058  	ret = snd_usb_lock_shutdown(subs->stream->chip);
47ab154593827b1 Takashi Iwai         2015-08-25  1059  	if (ret < 0)

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-20  7:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20  4:56 [android-common:android12-kiwi-5.10 291/291] sound/usb/pcm.c:1053 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1049) kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2026-10-20  7:07 Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.