From: Ingo Molnar Teach special (recursive) locking code to the lock validator. Has no effect on non-lockdep kernels. Signed-off-by: Ingo Molnar Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton --- sound/core/seq/seq_ports.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN sound/core/seq/seq_ports.c~lock-validator-special-locking-sound-core-seq-seq_portsc sound/core/seq/seq_ports.c --- devel/sound/core/seq/seq_ports.c~lock-validator-special-locking-sound-core-seq-seq_portsc 2006-05-29 18:13:36.000000000 -0700 +++ devel-akpm/sound/core/seq/seq_ports.c 2006-05-29 18:13:36.000000000 -0700 @@ -518,7 +518,7 @@ int snd_seq_port_connect(struct snd_seq_ atomic_set(&subs->ref_count, 2); down_write(&src->list_mutex); - down_write(&dest->list_mutex); + down_write_nested(&dest->list_mutex, SINGLE_DEPTH_NESTING); exclusive = info->flags & SNDRV_SEQ_PORT_SUBS_EXCLUSIVE ? 1 : 0; err = -EBUSY; @@ -591,7 +591,7 @@ int snd_seq_port_disconnect(struct snd_s unsigned long flags; down_write(&src->list_mutex); - down_write(&dest->list_mutex); + down_write_nested(&dest->list_mutex, SINGLE_DEPTH_NESTING); /* look for the connection */ list_for_each(p, &src->list_head) { _