Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=208eee2a9db7e70109583e3481371967cd1d4764
Commit:     208eee2a9db7e70109583e3481371967cd1d4764
Parent:     6b97eb45f2edca51250b6c1e3142801f069245fe
Author:     Frederik Deweerdt <[EMAIL PROTECTED]>
AuthorDate: Thu Apr 5 16:57:41 2007 +0200
Committer:  Jaroslav Kysela <[EMAIL PROTECTED]>
CommitDate: Fri May 11 16:55:57 2007 +0200

    [ALSA] pcm_native: lockdep warning when launching jack
    
    When launching 'jackd -d alsa', lockdep issues the following warning:
    [39701.405086] =============================================
    [39701.405093] [ INFO: possible recursive locking detected ]
    [39701.405107] 2.6.21-rc5-mm4 #2
    [39701.405109] ---------------------------------------------
    [39701.405112] jackd/17366 is trying to acquire lock:
    [39701.405114]  (&substream->self_group.lock){....}, at: [<c034d3c0>] 
snd_pcm_action_group+0x90/0x240
    [39701.405131]
    [39701.405131] but task is already holding lock:
    [39701.405134]  (&substream->self_group.lock){....}, at: [<c034d63f>] 
snd_pcm_action_lock_irq+0x3f/0xb0
    [39701.405141]
    [39701.405142] other info that might help us debug this:
    [39701.405145] 3 locks held by jackd/17366:
    [39701.405147]  #0:  (snd_pcm_link_rwlock){....}, at: [<c034d627>] 
snd_pcm_action_lock_irq+0x27/0xb0
    [39701.405155]  #1:  (&substream->group->lock){....}, at: [<c034d638>] 
snd_pcm_action_lock_irq+0x38/0xb0
    [39701.405163]  #2:  (&substream->self_group.lock){....}, at: [<c034d63f>] 
snd_pcm_action_lock_irq+0x3f/0xb0
    [39701.405171]
    [39701.405171] stack backtrace:
    [39701.405174]  [<c0103b8a>] show_trace_log_lvl+0x1a/0x30
    [39701.405179]  [<c0104912>] show_trace+0x12/0x20
    [39701.405183]  [<c01049c6>] dump_stack+0x16/0x20
    [39701.405187]  [<c013b980>] __lock_acquire+0xbd0/0x1040
    [39701.405193]  [<c013be60>] lock_acquire+0x70/0x90
    [39701.405197]  [<c0407846>] _spin_lock+0x36/0x50
    [39701.405203]  [<c034d3c0>] snd_pcm_action_group+0x90/0x240
    [39701.405207]  [<c034d653>] snd_pcm_action_lock_irq+0x53/0xb0
    [39701.405211]  [<c035046f>] snd_pcm_common_ioctl1+0x35f/0xfb0
    [39701.405215]  [<c0351544>] snd_pcm_playback_ioctl1+0x34/0x420
    [39701.405219]  [<c03519f3>] snd_pcm_playback_ioctl+0x43/0x50
    [39701.405223]  [<c017ecc8>] do_ioctl+0x28/0x80
    [39701.405229]  [<c017ed77>] vfs_ioctl+0x57/0x290
    [39701.405233]  [<c017efe9>] sys_ioctl+0x39/0x60
    [39701.405237]  [<c0102bf4>] sysenter_past_esp+0x5d/0x99
    [39701.405240]  =======================
    The attached lockdep annotation silences the warning.
    
    Signed-off-by: Frederik Deweerdt <[EMAIL PROTECTED]>
    Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>
    Signed-off-by: Jaroslav Kysela <[EMAIL PROTECTED]>
---
 sound/core/pcm_native.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 42a039c..a96733a 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -718,7 +718,8 @@ static int snd_pcm_action_group(struct action_ops *ops,
 
        snd_pcm_group_for_each_entry(s, substream) {
                if (do_lock && s != substream)
-                       spin_lock(&s->self_group.lock);
+                       spin_lock_nested(&s->self_group.lock,
+                                        SINGLE_DEPTH_NESTING);
                res = ops->pre_action(s, state);
                if (res < 0)
                        goto _unlock;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to