#else
static struct timer_list vnc_timer;
static void vnc_configure_mixer(wavnc_info *devc, unsigned int input_mask);
-static int vnc_private_ioctl(int dev, unsigned int cmd, caddr_t arg);
+static int vnc_private_ioctl(int dev, unsigned int cmd, int __user *arg);
static void vnc_slider_tick(unsigned long data);
#endif
}
static int
-waveartist_ioctl(int dev, unsigned int cmd, caddr_t arg)
+waveartist_ioctl(int dev, unsigned int cmd, void __user * arg)
{
return -EINVAL;
}
}
static int
-waveartist_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg)
+waveartist_mixer_ioctl(int dev, unsigned int cmd, void __user * arg)
{
wavnc_info *devc = (wavnc_info *)audio_devs[dev]->devc;
int ret = 0, val, nr;
nr = cmd & 0xff;
if (_SIOC_DIR(cmd) & _SIOC_WRITE) {
- if (get_user(val, (int *)arg))
+ if (get_user(val, (int __user *)arg))
return -EFAULT;
switch (nr) {
}
if (ret >= 0)
- ret = put_user(ret, (int *)arg) ? -EFAULT : 0;
+ ret = put_user(ret, (int __user *)arg) ? -EFAULT : 0;
}
return ret;
return 0;
}
- if (check_region(hw_config->io_base, 15)) {
+ if (!request_region(hw_config->io_base, 15, hw_config->name)) {
printk(KERN_WARNING "WaveArtist: I/O port conflict\n");
return 0;
}
if (hw_config->irq > 15 || hw_config->irq < 0) {
+ release_region(hw_config->io_base, 15);
printk(KERN_WARNING "WaveArtist: Bad IRQ %d\n",
hw_config->irq);
return 0;
}
if (hw_config->dma != 3) {
+ release_region(hw_config->io_base, 15);
printk(KERN_WARNING "WaveArtist: Bad DMA %d\n",
hw_config->dma);
return 0;
if (hw->dma != hw->dma2 && hw->dma2 != NO_DMA)
devc->audio_flags |= DMA_DUPLEX;
- request_region(hw->io_base, 15, devc->hw.name);
-
devc->mix = mix;
devc->dev_no = waveartist_init(devc);
}
static int
-vnc_private_ioctl(int dev, unsigned int cmd, caddr_t arg)
+vnc_private_ioctl(int dev, unsigned int cmd, int __user * arg)
{
wavnc_info *devc = (wavnc_info *)audio_devs[dev]->devc;
int val;
u_int prev_spkr_mute, prev_line_mute, prev_auto_state;
int val;
- if (get_user(val, (int *)arg))
+ if (get_user(val, arg))
return -EFAULT;
/* check if parameter is logical */
}
case SOUND_MIXER_PRIVATE2:
- if (get_user(val, (int *)arg))
+ if (get_user(val, arg))
return -EFAULT;
switch (val) {
unsigned long flags;
int mixer_reg[15], i, val;
- if (get_user(val, (int *)arg))
+ if (get_user(val, arg))
return -EFAULT;
if (copy_from_user(mixer_reg, (void *)val, sizeof(mixer_reg)))
return -EFAULT;
(devc->telephone_detect ? VNC_PHONE_DETECT : 0) |
(devc->no_autoselect ? VNC_DISABLE_AUTOSWITCH : 0);
- return put_user(val, (int *)arg) ? -EFAULT : 0;
+ return put_user(val, arg) ? -EFAULT : 0;
}
if (_SIOC_DIR(cmd) & _SIOC_WRITE) {
if ((cmd & 0xff) == SOUND_MIXER_SPEAKER) {
unsigned int val, l, r;
- if (get_user(val, (int *)arg))
+ if (get_user(val, arg))
return -EFAULT;
l = val & 0x7f;