* [PATCH] dbri sparc: fixes TS leak
@ 2006-08-23 18:12 Krzysztof Helt
0 siblings, 0 replies; only message in thread
From: Krzysztof Helt @ 2006-08-23 18:12 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 374 bytes --]
From: Krzysztof Helt (krzysztof.h1@wp.pl)
This patch fixes time slot leak in the dbri driver.
Signed-off-by: Krzysztof Helt (krzysztof.h1@wp.pl)
---
----------------------------------------------------
Nic nie musisz zamawiać, nic nie musisz kupować!
Po prostu odszukaj obrazek i wygraj nagrody:
http://klik.wp.pl/?adr=www.pasaz.wp.pl%2Fkonkurs.html&sid=853
[-- Attachment #2: dbri-patch12.diff --]
[-- Type: application/octet-stream, Size: 1497 bytes --]
--- alsa-driver-1.0.12rc2/alsa-kernel/sparc/dbri.c 2006-08-23 19:56:33.000000000 +0200
+++ linux-2.6.17a/sound/sparc/dbri.c 2006-08-23 00:38:05.000000000 +0200
@@ -1045,7 +1045,7 @@ static int setup_descs(struct snd_dbri *
{
struct dbri_streaminfo *info = &dbri->stream_info[streamno];
__u32 dvma_buffer;
- int desc = 0;
+ int desc;
int len;
int first_desc = -1;
int last_desc = -1;
@@ -1088,6 +1088,18 @@ static int setup_descs(struct snd_dbri *
len &= ~3;
}
+ /* Free descriptors if pipe has any */
+ desc = dbri->pipes[info->pipe].first_desc;
+ if ( desc >= 0)
+ do {
+ dbri->dma->desc[desc].nda = dbri->dma->desc[desc].ba = 0;
+ desc = dbri->next_desc[desc];
+ } while (desc != -1 && desc != dbri->pipes[info->pipe].first_desc);
+
+ dbri->pipes[info->pipe].desc = -1;
+ dbri->pipes[info->pipe].first_desc = -1;
+
+ desc = 0;
while (len > 0) {
int mylen;
@@ -2055,6 +2072,7 @@ static int snd_dbri_hw_free(struct snd_p
struct snd_dbri *dbri = snd_pcm_substream_chip(substream);
struct dbri_streaminfo *info = DBRI_STREAM(dbri, substream);
int direction;
+
dprintk(D_USR, "hw_free.\n");
/* hw_free can get called multiple times. Only unmap the DMA once.
@@ -2069,7 +2087,10 @@ static int snd_dbri_hw_free(struct snd_p
substream->runtime->buffer_size, direction);
info->dvma_buffer = 0;
}
- info->pipe = -1;
+ if (info->pipe != -1) {
+ reset_pipe(dbri, info->pipe);
+ info->pipe = -1;
+ }
return snd_pcm_lib_free_pages(substream);
}
[-- Attachment #3: Type: text/plain, Size: 373 bytes --]
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
[-- Attachment #4: Type: text/plain, Size: 161 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-devel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-08-23 18:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-23 18:12 [PATCH] dbri sparc: fixes TS leak Krzysztof Helt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.