
From: Takashi Iwai <tiwai@suse.de>

there is an unblanced spinlock.



 25-akpm/sound/core/timer.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN sound/core/timer.c~timer-spin-fix sound/core/timer.c
--- 25/sound/core/timer.c~timer-spin-fix	Thu Jul 17 14:49:54 2003
+++ 25-akpm/sound/core/timer.c	Thu Jul 17 14:49:54 2003
@@ -1688,10 +1688,11 @@ static ssize_t snd_timer_user_read(struc
 				break;
 			}
 		}
-		spin_unlock_irq(&tu->qlock);
 		if (err < 0)
 			break;
 
+		spin_unlock_irq(&tu->qlock);
+
 		if (tu->tread) {
 			if (copy_to_user(buffer, &tu->tqueue[tu->qhead++], sizeof(snd_timer_tread_t))) {
 				err = -EFAULT;
@@ -1712,6 +1713,7 @@ static ssize_t snd_timer_user_read(struc
 		spin_lock_irq(&tu->qlock);
 		tu->qused--;
 	}
+	spin_unlock_irq(&tu->qlock);
 	return result > 0 ? result : err;
 }
 

_
