[kbuild] [sound-unstable:master 15036/15056] sound/core/pcm_native.c:806 snd_pcm_action_mutex() error: double unlock 'mutex:substream-self_group.mutex'

2014-09-03 Thread kbuild test robot
TO: Takashi Iwai ti...@suse.de

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-unstable.git 
master
head:   33a8b5de23c78c47e2e0791118e836e75f3e175a
commit: 32f5bd4b2e7724019b2330358e0f0e05b2ed8e79 [15036/15056] ALSA: pcm: Allow 
nonatomic trigger operations
:: branch date: 2 hours ago
:: commit date: 2 days ago

New smatch warnings:
sound/core/pcm_native.c:806 snd_pcm_action_mutex() error: double unlock 
'mutex:substream-self_group.mutex'

Old smatch warnings:
sound/core/pcm_native.c:2506 snd_pcm_hwsync() warn: missing break? reassigning 
'err'
sound/core/pcm_native.c:2539 snd_pcm_delay() warn: missing break? reassigning 
'err'

git remote add sound-unstable 
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-unstable.git
git remote update sound-unstable
git checkout 32f5bd4b2e7724019b2330358e0f0e05b2ed8e79
vim +806 sound/core/pcm_native.c

^1da177e Linus Torvalds 2005-04-16  790 if (res == 0)
^1da177e Linus Torvalds 2005-04-16  791 
ops-post_action(substream, state);
^1da177e Linus Torvalds 2005-04-16  792 else if (ops-undo_action)
^1da177e Linus Torvalds 2005-04-16  793 
ops-undo_action(substream, state);
^1da177e Linus Torvalds 2005-04-16  794 return res;
^1da177e Linus Torvalds 2005-04-16  795  }
^1da177e Linus Torvalds 2005-04-16  796  
32f5bd4b Takashi Iwai   2014-08-29  797  /* call in mutex-protected context */
32f5bd4b Takashi Iwai   2014-08-29  798  static int snd_pcm_action_mutex(struct 
action_ops *ops,
32f5bd4b Takashi Iwai   2014-08-29  799 struct 
snd_pcm_substream *substream,
32f5bd4b Takashi Iwai   2014-08-29  800 int 
state)
32f5bd4b Takashi Iwai   2014-08-29  801  {
32f5bd4b Takashi Iwai   2014-08-29  802 int res;
32f5bd4b Takashi Iwai   2014-08-29  803  
32f5bd4b Takashi Iwai   2014-08-29  804 if 
(snd_pcm_stream_linked(substream)) {
32f5bd4b Takashi Iwai   2014-08-29  805 if 
(!mutex_trylock(substream-self_group.mutex)) {
32f5bd4b Takashi Iwai   2014-08-29 @806 
mutex_unlock(substream-self_group.mutex);
32f5bd4b Takashi Iwai   2014-08-29  807 
mutex_lock(substream-group-mutex);
32f5bd4b Takashi Iwai   2014-08-29  808 
mutex_lock(substream-self_group.mutex);
32f5bd4b Takashi Iwai   2014-08-29  809 }
32f5bd4b Takashi Iwai   2014-08-29  810 res = 
snd_pcm_action_group(ops, substream, state, 1);
32f5bd4b Takashi Iwai   2014-08-29  811 
mutex_unlock(substream-group-mutex);
32f5bd4b Takashi Iwai   2014-08-29  812 } else {
32f5bd4b Takashi Iwai   2014-08-29  813 res = 
snd_pcm_action_single(ops, substream, state);
32f5bd4b Takashi Iwai   2014-08-29  814 }

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
___
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild


[kbuild] [sound-unstable:master 15036/15056] sound/core/pcm_native.c:806 snd_pcm_action_mutex() error: double unlock 'mutex:substream-self_group.mutex'

2014-09-03 Thread Dan Carpenter
[ It's not immediately clear to me that we intended to drop the lock if
  someone else is holding it.  If so maybe this should have a comment?
  -dan ]


tree:   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-unstable.git 
master
head:   33a8b5de23c78c47e2e0791118e836e75f3e175a
commit: 32f5bd4b2e7724019b2330358e0f0e05b2ed8e79 [15036/15056] ALSA: pcm: Allow 
nonatomic trigger operations

New smatch warnings:
sound/core/pcm_native.c:806 snd_pcm_action_mutex() error: double unlock 
'mutex:substream-self_group.mutex'

git remote add sound-unstable 
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-unstable.git
git remote update sound-unstable
git checkout 32f5bd4b2e7724019b2330358e0f0e05b2ed8e79
vim +806 sound/core/pcm_native.c

^1da177e Linus Torvalds 2005-04-16  790 if (res == 0)
^1da177e Linus Torvalds 2005-04-16  791 
ops-post_action(substream, state);
^1da177e Linus Torvalds 2005-04-16  792 else if (ops-undo_action)
^1da177e Linus Torvalds 2005-04-16  793 
ops-undo_action(substream, state);
^1da177e Linus Torvalds 2005-04-16  794 return res;
^1da177e Linus Torvalds 2005-04-16  795  }
^1da177e Linus Torvalds 2005-04-16  796  
32f5bd4b Takashi Iwai   2014-08-29  797  /* call in mutex-protected context */
32f5bd4b Takashi Iwai   2014-08-29  798  static int snd_pcm_action_mutex(struct 
action_ops *ops,
32f5bd4b Takashi Iwai   2014-08-29  799 struct 
snd_pcm_substream *substream,
32f5bd4b Takashi Iwai   2014-08-29  800 int 
state)
32f5bd4b Takashi Iwai   2014-08-29  801  {
32f5bd4b Takashi Iwai   2014-08-29  802 int res;
32f5bd4b Takashi Iwai   2014-08-29  803  
32f5bd4b Takashi Iwai   2014-08-29  804 if 
(snd_pcm_stream_linked(substream)) {
32f5bd4b Takashi Iwai   2014-08-29  805 if 
(!mutex_trylock(substream-self_group.mutex)) {
32f5bd4b Takashi Iwai   2014-08-29 @806 
mutex_unlock(substream-self_group.mutex);
32f5bd4b Takashi Iwai   2014-08-29  807 
mutex_lock(substream-group-mutex);
32f5bd4b Takashi Iwai   2014-08-29  808 
mutex_lock(substream-self_group.mutex);
32f5bd4b Takashi Iwai   2014-08-29  809 }
32f5bd4b Takashi Iwai   2014-08-29  810 res = 
snd_pcm_action_group(ops, substream, state, 1);
32f5bd4b Takashi Iwai   2014-08-29  811 
mutex_unlock(substream-group-mutex);
32f5bd4b Takashi Iwai   2014-08-29  812 } else {
32f5bd4b Takashi Iwai   2014-08-29  813 res = 
snd_pcm_action_single(ops, substream, state);
32f5bd4b Takashi Iwai   2014-08-29  814 }

---
0-DAY kernel build testing backend  Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
___
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild