Update of /cvsroot/alsa/alsa-kernel/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25215
Modified Files: pcm_timer.c Log Message: Fix in snd_pcm_timer_resolution_change() - it no longer oops when 32-bit value overflows. Index: pcm_timer.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/core/pcm_timer.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- pcm_timer.c 13 Aug 2002 16:13:34 -0000 1.6 +++ pcm_timer.c 23 Mar 2004 08:37:09 -0000 1.7 @@ -32,9 +32,9 @@ */ /* Greatest common divisor */ -static int gcd(int a, int b) +static unsigned long gcd(unsigned long a, unsigned long b) { - int r; + unsigned long r; if (a < b) { r = a; a = b; @@ -49,7 +49,7 @@ void snd_pcm_timer_resolution_change(snd_pcm_substream_t *substream) { - unsigned int rate, mult, fsize, l; + unsigned long rate, mult, fsize, l; snd_pcm_runtime_t *runtime = substream->runtime; mult = 1000000000; @@ -67,7 +67,11 @@ mult /= 2; rate /= 2; } - snd_assert(rate != 0, return); + if (rate == 0) { + snd_printk(KERN_ERR "pcm timer resolution out of range (rate = %u, period_size = %lu)\n", runtime->rate, runtime->period_size); + runtime->timer_resolution = -1; + return; + } runtime->timer_resolution = mult * fsize / rate; } ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog