Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[linux-2.6-block.git] / sound / pci / emu10k1 / emu10k1_patch.c
index 4df668eb32b4359df71151f3601bdd4774f4d642..e10f027bde03a660899e1a440538c2a661d150e9 100644 (file)
  * allocate a sample block and copy data from userspace
  */
 int
-snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
-                      snd_util_memhdr_t *hdr, const void __user *data, long count)
+snd_emu10k1_sample_new(struct snd_emux *rec, struct snd_sf_sample *sp,
+                      struct snd_util_memhdr *hdr,
+                      const void __user *data, long count)
 {
        int offset;
        int truesize, size, loopsize, blocksize;
        int loopend, sampleend;
        unsigned int start_addr;
-       emu10k1_t *emu;
+       struct snd_emu10k1 *emu;
 
        emu = rec->hw;
-       snd_assert(sp != NULL, return -EINVAL);
-       snd_assert(hdr != NULL, return -EINVAL);
+       if (snd_BUG_ON(!sp || !hdr))
+               return -EINVAL;
 
        if (sp->v.size == 0) {
                snd_printd("emu: rom font for sample %d\n", sp->v.sample);
@@ -103,7 +104,8 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
        size = BLANK_HEAD_SIZE;
        if (! (sp->v.mode_flags & SNDRV_SFNT_SAMPLE_8BITS))
                size *= 2;
-       snd_assert(offset + size <= blocksize, return -EINVAL);
+       if (offset + size > blocksize)
+               return -EINVAL;
        snd_emu10k1_synth_bzero(emu, sp->block, offset, size);
        offset += size;
 
@@ -111,7 +113,8 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
        size = loopend;
        if (! (sp->v.mode_flags & SNDRV_SFNT_SAMPLE_8BITS))
                size *= 2;
-       snd_assert(offset + size <= blocksize, return -EINVAL);
+       if (offset + size > blocksize)
+               return -EINVAL;
        if (snd_emu10k1_synth_copy_from_user(emu, sp->block, offset, data, size)) {
                snd_emu10k1_synth_free(emu, sp->block);
                sp->block = NULL;
@@ -128,12 +131,14 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
                        int woffset;
                        unsigned short *wblock = (unsigned short*)block;
                        woffset = offset / 2;
-                       snd_assert(offset + loopsize*2 <= blocksize, return -EINVAL);
+                       if (offset + loopsize * 2 > blocksize)
+                               return -EINVAL;
                        for (i = 0; i < loopsize; i++)
                                wblock[woffset + i] = wblock[woffset - i -1];
                        offset += loopsize * 2;
                } else {
-                       snd_assert(offset + loopsize <= blocksize, return -EINVAL);
+                       if (offset + loopsize > blocksize)
+                               return -EINVAL;
                        for (i = 0; i < loopsize; i++)
                                block[offset + i] = block[offset - i -1];
                        offset += loopsize;
@@ -153,7 +158,8 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
 
        /* loopend -> sample end */
        size = sp->v.size - loopend;
-       snd_assert(size >= 0, return -EINVAL);
+       if (size < 0)
+               return -EINVAL;
        if (! (sp->v.mode_flags & SNDRV_SFNT_SAMPLE_8BITS))
                size *= 2;
        if (snd_emu10k1_synth_copy_from_user(emu, sp->block, offset, data, size)) {
@@ -205,14 +211,14 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
  * free a sample block
  */
 int
-snd_emu10k1_sample_free(snd_emux_t *rec, snd_sf_sample_t *sp,
-                       snd_util_memhdr_t *hdr)
+snd_emu10k1_sample_free(struct snd_emux *rec, struct snd_sf_sample *sp,
+                       struct snd_util_memhdr *hdr)
 {
-       emu10k1_t *emu;
+       struct snd_emu10k1 *emu;
 
        emu = rec->hw;
-       snd_assert(sp != NULL, return -EINVAL);
-       snd_assert(hdr != NULL, return -EINVAL);
+       if (snd_BUG_ON(!sp || !hdr))
+               return -EINVAL;
 
        if (sp->block) {
                snd_emu10k1_synth_free(emu, sp->block);