#include "emu8000_local.h"
#include <asm/uaccess.h>
+#include <linux/moduleparam.h>
-MODULE_PARM(emu8000_reset_addr, "i");
+static int emu8000_reset_addr = 0;
+module_param(emu8000_reset_addr, int, 0444);
MODULE_PARM_DESC(emu8000_reset_addr, "reset write address at each time (makes slowdown)");
-int emu8000_reset_addr = 0;
-
/*
* Open up channels.
unsigned short c;
if (mode & SNDRV_SFNT_SAMPLE_8BITS) {
unsigned char cc;
- get_user(cc, (unsigned char*)buf + offset);
+ get_user(cc, (unsigned char __user *)buf + offset);
c = cc << 8; /* convert 8bit -> 16bit */
} else {
#ifdef SNDRV_LITTLE_ENDIAN
- get_user(c, (unsigned short*)buf + offset);
+ get_user(c, (unsigned short __user *)buf + offset);
#else
unsigned short cc;
- get_user(cc, (unsigned short*)buf + offset);
+ get_user(cc, (unsigned short __user *)buf + offset);
c = swab16(cc);
#endif
}
int dram_offset, dram_start;
emu8000_t *emu;
- emu = snd_magic_cast(emu8000_t, rec->hw, return -EINVAL);
+ emu = rec->hw;
snd_assert(sp != NULL, return -EINVAL);
if (sp->v.size == 0)
}
if (sp->v.mode_flags & SNDRV_SFNT_SAMPLE_8BITS) {
- if (verify_area(VERIFY_READ, data, sp->v.size))
+ if (!access_ok(VERIFY_READ, data, sp->v.size))
return -EFAULT;
} else {
- if (verify_area(VERIFY_READ, data, sp->v.size * 2))
+ if (!access_ok(VERIFY_READ, data, sp->v.size * 2))
return -EFAULT;
}