All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [sound:test/usb-audio-lowlatency 198/198] sound/usb/pcm.c:1322:12: sparse: sparse: context imbalance in 'prepare_playback_urb' - different lock contexts for basic block
Date: Tue, 31 Aug 2021 15:01:41 +0800	[thread overview]
Message-ID: <202108311506.RCzaPFH6-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 10431 bytes --]

CC: kbuild-all(a)lists.01.org
CC: alsa-devel(a)alsa-project.org
TO: Takashi Iwai <tiwai@suse.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git test/usb-audio-lowlatency
head:   0dbf51c865c64e95c711e4adf89a89140077269e
commit: 0dbf51c865c64e95c711e4adf89a89140077269e [198/198] ALSA: usb-audio: Improved lowlatency playback support
:::::: branch date: 17 hours ago
:::::: commit date: 17 hours ago
config: arc-randconfig-s032-20210831 (attached as .config)
compiler: arc-elf-gcc (GCC) 11.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-348-gf0e6938b-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?id=0dbf51c865c64e95c711e4adf89a89140077269e
        git remote add sound https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
        git fetch --no-tags sound test/usb-audio-lowlatency
        git checkout 0dbf51c865c64e95c711e4adf89a89140077269e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arc SHELL=/bin/bash sound/usb/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> sound/usb/pcm.c:1322:12: sparse: sparse: context imbalance in 'prepare_playback_urb' - different lock contexts for basic block

vim +/prepare_playback_urb +1322 sound/usb/pcm.c

e0570446773623 Ricard Wanderlof     2015-10-19  1321  
0dbf51c865c64e Takashi Iwai         2021-08-30 @1322  static int prepare_playback_urb(struct snd_usb_substream *subs,
edcd3633e72a15 Daniel Mack          2012-04-12  1323  				struct urb *urb)
edcd3633e72a15 Daniel Mack          2012-04-12  1324  {
edcd3633e72a15 Daniel Mack          2012-04-12  1325  	struct snd_pcm_runtime *runtime = subs->pcm_substream->runtime;
245baf983cc395 Daniel Mack          2012-08-30  1326  	struct snd_usb_endpoint *ep = subs->data_endpoint;
edcd3633e72a15 Daniel Mack          2012-04-12  1327  	struct snd_urb_ctx *ctx = urb->context;
0dbf51c865c64e Takashi Iwai         2021-08-30  1328  	unsigned int counts, frames, bytes, transfer_done;
edcd3633e72a15 Daniel Mack          2012-04-12  1329  	int i, stride, period_elapsed = 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1330  	unsigned long flags;
edcd3633e72a15 Daniel Mack          2012-04-12  1331  
d303c5d38b37ee Takashi Iwai         2021-06-01  1332  	stride = ep->stride;
edcd3633e72a15 Daniel Mack          2012-04-12  1333  
edcd3633e72a15 Daniel Mack          2012-04-12  1334  	frames = 0;
e8a8f09cb0b3b8 Takashi Iwai         2021-06-01  1335  	ctx->queued = 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1336  	urb->number_of_packets = 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1337  	spin_lock_irqsave(&subs->lock, flags);
976b6c064a9574 Alan Stern           2013-09-24  1338  	subs->frame_limit += ep->max_urb_frames;
0dbf51c865c64e Takashi Iwai         2021-08-30  1339  	transfer_done = subs->transfer_done;
edcd3633e72a15 Daniel Mack          2012-04-12  1340  	for (i = 0; i < ctx->packets; i++) {
3d58760f4d0015 Takashi Iwai         2020-11-23  1341  		counts = snd_usb_endpoint_next_packet_size(ep, ctx, i);
edcd3633e72a15 Daniel Mack          2012-04-12  1342  		/* set up descriptor */
d303c5d38b37ee Takashi Iwai         2021-06-01  1343  		urb->iso_frame_desc[i].offset = frames * stride;
d303c5d38b37ee Takashi Iwai         2021-06-01  1344  		urb->iso_frame_desc[i].length = counts * stride;
edcd3633e72a15 Daniel Mack          2012-04-12  1345  		frames += counts;
edcd3633e72a15 Daniel Mack          2012-04-12  1346  		urb->number_of_packets++;
0dbf51c865c64e Takashi Iwai         2021-08-30  1347  		transfer_done += counts;
0dbf51c865c64e Takashi Iwai         2021-08-30  1348  		if (transfer_done >= runtime->period_size) {
0dbf51c865c64e Takashi Iwai         2021-08-30  1349  			transfer_done -= runtime->period_size;
976b6c064a9574 Alan Stern           2013-09-24  1350  			subs->frame_limit = 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1351  			period_elapsed = 1;
edcd3633e72a15 Daniel Mack          2012-04-12  1352  			if (subs->fmt_type == UAC_FORMAT_TYPE_II) {
0dbf51c865c64e Takashi Iwai         2021-08-30  1353  				if (transfer_done > 0) {
edcd3633e72a15 Daniel Mack          2012-04-12  1354  					/* FIXME: fill-max mode is not
edcd3633e72a15 Daniel Mack          2012-04-12  1355  					 * supported yet */
0dbf51c865c64e Takashi Iwai         2021-08-30  1356  					frames -= transfer_done;
0dbf51c865c64e Takashi Iwai         2021-08-30  1357  					counts -= transfer_done;
edcd3633e72a15 Daniel Mack          2012-04-12  1358  					urb->iso_frame_desc[i].length =
d303c5d38b37ee Takashi Iwai         2021-06-01  1359  						counts * stride;
0dbf51c865c64e Takashi Iwai         2021-08-30  1360  					transfer_done = 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1361  				}
edcd3633e72a15 Daniel Mack          2012-04-12  1362  				i++;
edcd3633e72a15 Daniel Mack          2012-04-12  1363  				if (i < ctx->packets) {
edcd3633e72a15 Daniel Mack          2012-04-12  1364  					/* add a transfer delimiter */
edcd3633e72a15 Daniel Mack          2012-04-12  1365  					urb->iso_frame_desc[i].offset =
d303c5d38b37ee Takashi Iwai         2021-06-01  1366  						frames * stride;
edcd3633e72a15 Daniel Mack          2012-04-12  1367  					urb->iso_frame_desc[i].length = 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1368  					urb->number_of_packets++;
edcd3633e72a15 Daniel Mack          2012-04-12  1369  				}
edcd3633e72a15 Daniel Mack          2012-04-12  1370  				break;
edcd3633e72a15 Daniel Mack          2012-04-12  1371  			}
edcd3633e72a15 Daniel Mack          2012-04-12  1372  		}
976b6c064a9574 Alan Stern           2013-09-24  1373  		/* finish at the period boundary or after enough frames */
0dbf51c865c64e Takashi Iwai         2021-08-30  1374  		if ((period_elapsed || transfer_done >= subs->frame_limit) &&
976b6c064a9574 Alan Stern           2013-09-24  1375  		    !snd_usb_endpoint_implicit_feedback_sink(ep))
edcd3633e72a15 Daniel Mack          2012-04-12  1376  			break;
edcd3633e72a15 Daniel Mack          2012-04-12  1377  	}
d24f5061ee7b9b Daniel Mack          2013-04-17  1378  
0dbf51c865c64e Takashi Iwai         2021-08-30  1379  	/* check the appl_ptr in low latency mode */
0dbf51c865c64e Takashi Iwai         2021-08-30  1380  	if (!subs->early_playback_start &&
0dbf51c865c64e Takashi Iwai         2021-08-30  1381  	    frames > snd_pcm_playback_hw_avail(runtime))
0dbf51c865c64e Takashi Iwai         2021-08-30  1382  		return -EAGAIN;
0dbf51c865c64e Takashi Iwai         2021-08-30  1383  
0dbf51c865c64e Takashi Iwai         2021-08-30  1384  	bytes = frames * stride;
0dbf51c865c64e Takashi Iwai         2021-08-30  1385  	subs->transfer_done = transfer_done;
6aa719d15a1903 Takashi Iwai         2020-11-23  1386  	if (unlikely(ep->cur_format == SNDRV_PCM_FORMAT_DSD_U16_LE &&
d24f5061ee7b9b Daniel Mack          2013-04-17  1387  		     subs->cur_audiofmt->dsd_dop)) {
d24f5061ee7b9b Daniel Mack          2013-04-17  1388  		fill_playback_urb_dsd_dop(subs, urb, bytes);
6aa719d15a1903 Takashi Iwai         2020-11-23  1389  	} else if (unlikely(ep->cur_format == SNDRV_PCM_FORMAT_DSD_U8 &&
44dcbbb1cd6156 Daniel Mack          2013-04-17  1390  			   subs->cur_audiofmt->dsd_bitrev)) {
4f083917994fdd Takashi Iwai         2021-06-01  1391  		fill_playback_urb_dsd_bitrev(subs, urb, bytes);
d24f5061ee7b9b Daniel Mack          2013-04-17  1392  	} else {
d24f5061ee7b9b Daniel Mack          2013-04-17  1393  		/* usual PCM */
e0570446773623 Ricard Wanderlof     2015-10-19  1394  		if (!subs->tx_length_quirk)
b97a936910c8d6 Ricard Wanderlof     2015-10-19  1395  			copy_to_urb(subs, urb, 0, stride, bytes);
e0570446773623 Ricard Wanderlof     2015-10-19  1396  		else
e0570446773623 Ricard Wanderlof     2015-10-19  1397  			bytes = copy_to_urb_quirk(subs, urb, stride, bytes);
e0570446773623 Ricard Wanderlof     2015-10-19  1398  			/* bytes is now amount of outgoing data */
d24f5061ee7b9b Daniel Mack          2013-04-17  1399  	}
d24f5061ee7b9b Daniel Mack          2013-04-17  1400  
fbcfbf5f673847 Daniel Mack          2012-08-30  1401  	subs->last_frame_number = usb_get_current_frame_number(subs->dev);
fbcfbf5f673847 Daniel Mack          2012-08-30  1402  
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1403  	if (subs->trigger_tstamp_pending_update) {
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1404  		/* this is the first actual URB submitted,
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1405  		 * update trigger timestamp to reflect actual start time
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1406  		 */
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1407  		snd_pcm_gettime(runtime, &runtime->trigger_tstamp);
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1408  		subs->trigger_tstamp_pending_update = false;
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1409  	}
ea33d359c4421f Pierre-Louis Bossart 2015-02-06  1410  
4267c5a8f3133d Takashi Iwai         2021-08-27  1411  	if (period_elapsed && !subs->running && !subs->early_playback_start) {
307cc9baac5c07 Takashi Iwai         2021-07-07  1412  		subs->period_elapsed_pending = 1;
307cc9baac5c07 Takashi Iwai         2021-07-07  1413  		period_elapsed = 0;
307cc9baac5c07 Takashi Iwai         2021-07-07  1414  	}
edcd3633e72a15 Daniel Mack          2012-04-12  1415  	spin_unlock_irqrestore(&subs->lock, flags);
edcd3633e72a15 Daniel Mack          2012-04-12  1416  	urb->transfer_buffer_length = bytes;
edcd3633e72a15 Daniel Mack          2012-04-12  1417  	if (period_elapsed)
edcd3633e72a15 Daniel Mack          2012-04-12  1418  		snd_pcm_period_elapsed(subs->pcm_substream);
0dbf51c865c64e Takashi Iwai         2021-08-30  1419  	return 0;
edcd3633e72a15 Daniel Mack          2012-04-12  1420  }
edcd3633e72a15 Daniel Mack          2012-04-12  1421  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27558 bytes --]

             reply	other threads:[~2021-08-31  7:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-31  7:01 kernel test robot [this message]
2021-08-31  7:10 ` [sound:test/usb-audio-lowlatency 198/198] sound/usb/pcm.c:1322:12: sparse: sparse: context imbalance in 'prepare_playback_urb' - different lock contexts for basic block kernel test robot
2021-08-31  7:10   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202108311506.RCzaPFH6-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.