From: chrisw@osdl.org Date: Tue, 29 Mar 2005 19:18:25 +0000 (-0800) Subject: [PATCH] add alsa-timer-event-fixes.patch X-Git-Tag: v2.6.11.9~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c59e35e0f2762b1ca24b71a79afb31ec67b11ad9;p=thirdparty%2Fkernel%2Fstable-queue.git [PATCH] add alsa-timer-event-fixes.patch --- diff --git a/queue/alsa-timer-event-fixes.patch b/queue/alsa-timer-event-fixes.patch new file mode 100644 index 00000000000..a3706fa8ae1 --- /dev/null +++ b/queue/alsa-timer-event-fixes.patch @@ -0,0 +1,36 @@ +From stable-bounces@linux.kernel.org Tue Mar 29 10:16:52 2005 +Date: Tue, 29 Mar 2005 20:16:27 +0200 +From: Takashi Iwai +To: stable@kernel.org +Subject: [PATCH] Fix Oops with ALSA timer event notification + +the patch below fixes the bug of ALSA timer notification, which is +used in the recent ALSA dmix plugin. + + - fixed Oops in read() + - fixed wake-up polls and signals with new events + +Signed-off-by: Takashi Iwai +Signed-off-by: Chris Wright + +--- linux/sound/core/timer.c 20 Jan 2005 17:37:00 -0000 1.50 ++++ linux/sound/core/timer.c 14 Mar 2005 22:07:32 -0000 +@@ -1117,7 +1117,8 @@ + if (tu->qused >= tu->queue_size) { + tu->overrun++; + } else { +- memcpy(&tu->queue[tu->qtail++], tread, sizeof(*tread)); ++ memcpy(&tu->tqueue[tu->qtail++], tread, sizeof(*tread)); ++ tu->qtail %= tu->queue_size; + tu->qused++; + } + } +@@ -1140,6 +1141,8 @@ + spin_lock(&tu->qlock); + snd_timer_user_append_to_tqueue(tu, &r1); + spin_unlock(&tu->qlock); ++ kill_fasync(&tu->fasync, SIGIO, POLL_IN); ++ wake_up(&tu->qchange_sleep); + } + + static void snd_timer_user_tinterrupt(snd_timer_instance_t *timeri,