From: Takashi Iwai 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; } _