CC: [email protected]
TO: [email protected]

tree:   https://android.googlesource.com/kernel/common android12-5.4
head:   b69d75c07de5c55d7a85312132f8544bbf2f3561
commit: fd98495a63a8e99ae4b6802b73295ef997684d73 [8477/13064] ANDROID: sound: 
usb: Add vendor's hooking interface
:::::: branch date: 4 days ago
:::::: commit date: 6 months ago
config: x86_64-randconfig-m001-20201227 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

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

Old smatch warnings:
sound/usb/pcm.c:787 configure_sync_endpoint() warn: variable dereferenced 
before check 'subs->stream' (see line 784)

vim +1033 sound/usb/pcm.c

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

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

:::::: TO: Daniel Mack <[email protected]>
:::::: CC: Takashi Iwai <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to