]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
[PATCH] add alsa-timer-event-fixes.patch
authorchrisw@osdl.org <chrisw@osdl.org>
Tue, 29 Mar 2005 19:18:25 +0000 (11:18 -0800)
committerGreg KH <gregkh@suse.de>
Thu, 12 May 2005 05:15:47 +0000 (22:15 -0700)
queue/alsa-timer-event-fixes.patch [new file with mode: 0644]

diff --git a/queue/alsa-timer-event-fixes.patch b/queue/alsa-timer-event-fixes.patch
new file mode 100644 (file)
index 0000000..a3706fa
--- /dev/null
@@ -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 <tiwai@suse.de>
+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 <tiwai@suse.de>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+
+--- 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,