We set "s" before we have capped "speed" so it could be the wrong value.
This could lead to a divide by zero bug.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
 {
        sb_devc *devc = audio_devs[dev]->devc;
        int tmp;
-       int s = speed * devc->channels;
+       int s;
 
        if (speed > 0)
        {
                        speed = 44100;
                if (devc->opened & OPEN_READ && speed > 15000)
                        speed = 15000;
+               s = speed * devc->channels;
                devc->tconst = (256 - ((1000000 + s / 2) / s)) & 0xff;
                tmp = 256 - devc->tconst;
                speed = ((1000000 + tmp / 2) / tmp) / devc->channels;