git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
patch-2_6_7-vs1_9_1_12
[linux-2.6.git]
/
sound
/
oss
/
soundcard.c
diff --git
a/sound/oss/soundcard.c
b/sound/oss/soundcard.c
index
ee1f493
..
7e22896
100644
(file)
--- a/
sound/oss/soundcard.c
+++ b/
sound/oss/soundcard.c
@@
-55,7
+55,7
@@
/*
* Table for permanently allocated memory (used when unloading the module)
*/
/*
* Table for permanently allocated memory (used when unloading the module)
*/
-
caddr_t
sound_mem_blocks[1024];
+
void *
sound_mem_blocks[1024];
int sound_nblocks = 0;
/* Persistent DMA buffers */
int sound_nblocks = 0;
/* Persistent DMA buffers */
@@
-110,7
+110,7
@@
int *load_mixer_volumes(char *name, int *levels, int present)
return mixer_vols[n].levels;
}
return mixer_vols[n].levels;
}
-static int set_mixer_levels(
caddr_t
arg)
+static int set_mixer_levels(
void __user *
arg)
{
/* mixer_vol_table is 174 bytes, so IMHO no reason to not allocate it on the stack */
mixer_vol_table buf;
{
/* mixer_vol_table is 174 bytes, so IMHO no reason to not allocate it on the stack */
mixer_vol_table buf;
@@
-123,11
+123,11
@@
static int set_mixer_levels(caddr_t arg)
return 0;
}
return 0;
}
-static int get_mixer_levels(
caddr_t
arg)
+static int get_mixer_levels(
void __user *
arg)
{
int n;
{
int n;
- if (__get_user(n, (int
*)(&(((mixer_vol_table *
)arg)->num))))
+ if (__get_user(n, (int
__user *)(&(((mixer_vol_table *__user
)arg)->num))))
return -EFAULT;
if (n < 0 || n >= num_mixer_volumes)
return -EINVAL;
return -EFAULT;
if (n < 0 || n >= num_mixer_volumes)
return -EINVAL;
@@
-139,7
+139,7
@@
static int get_mixer_levels(caddr_t arg)
/* 4K page size but our output routines use some slack for overruns */
#define PROC_BLOCK_SIZE (3*1024)
/* 4K page size but our output routines use some slack for overruns */
#define PROC_BLOCK_SIZE (3*1024)
-static ssize_t sound_read(struct file *file, char *buf, size_t count, loff_t *ppos)
+static ssize_t sound_read(struct file *file, char
__user
*buf, size_t count, loff_t *ppos)
{
int dev = iminor(file->f_dentry->d_inode);
int ret = -EINVAL;
{
int dev = iminor(file->f_dentry->d_inode);
int ret = -EINVAL;
@@
-172,7
+172,7
@@
static ssize_t sound_read(struct file *file, char *buf, size_t count, loff_t *pp
return ret;
}
return ret;
}
-static ssize_t sound_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
+static ssize_t sound_write(struct file *file, const char
__user
*buf, size_t count, loff_t *ppos)
{
int dev = iminor(file->f_dentry->d_inode);
int ret = -EINVAL;
{
int dev = iminor(file->f_dentry->d_inode);
int ret = -EINVAL;
@@
-282,7
+282,7
@@
static int sound_release(struct inode *inode, struct file *file)
return 0;
}
return 0;
}
-static int get_mixer_info(int dev,
caddr_t
arg)
+static int get_mixer_info(int dev,
void __user *
arg)
{
mixer_info info;
memset(&info, 0, sizeof(info));
{
mixer_info info;
memset(&info, 0, sizeof(info));
@@
-294,7
+294,7
@@
static int get_mixer_info(int dev, caddr_t arg)
return 0;
}
return 0;
}
-static int get_old_mixer_info(int dev,
caddr_t
arg)
+static int get_old_mixer_info(int dev,
void __user *
arg)
{
_old_mixer_info info;
memset(&info, 0, sizeof(info));
{
_old_mixer_info info;
memset(&info, 0, sizeof(info));
@@
-305,7
+305,7
@@
static int get_old_mixer_info(int dev, caddr_t arg)
return 0;
}
return 0;
}
-static int sound_mixer_ioctl(int mixdev, unsigned int cmd,
caddr_t
arg)
+static int sound_mixer_ioctl(int mixdev, unsigned int cmd,
void __user *
arg)
{
if (mixdev < 0 || mixdev >= MAX_MIXER_DEV)
return -ENXIO;
{
if (mixdev < 0 || mixdev >= MAX_MIXER_DEV)
return -ENXIO;
@@
-331,24
+331,25
@@
static int sound_ioctl(struct inode *inode, struct file *file,
{
int err, len = 0, dtype;
int dev = iminor(inode);
{
int err, len = 0, dtype;
int dev = iminor(inode);
+ void __user *p = (void __user *)arg;
if (_SIOC_DIR(cmd) != _SIOC_NONE && _SIOC_DIR(cmd) != 0) {
/*
* Have to validate the address given by the process.
*/
len = _SIOC_SIZE(cmd);
if (_SIOC_DIR(cmd) != _SIOC_NONE && _SIOC_DIR(cmd) != 0) {
/*
* Have to validate the address given by the process.
*/
len = _SIOC_SIZE(cmd);
- if (len < 1 || len > 65536 ||
arg == 0
)
+ if (len < 1 || len > 65536 ||
!p
)
return -EFAULT;
if (_SIOC_DIR(cmd) & _SIOC_WRITE)
return -EFAULT;
if (_SIOC_DIR(cmd) & _SIOC_WRITE)
- if ((err = verify_area(VERIFY_READ,
(void *)arg
, len)) < 0)
+ if ((err = verify_area(VERIFY_READ,
p
, len)) < 0)
return err;
if (_SIOC_DIR(cmd) & _SIOC_READ)
return err;
if (_SIOC_DIR(cmd) & _SIOC_READ)
- if ((err = verify_area(VERIFY_WRITE,
(void *)arg
, len)) < 0)
+ if ((err = verify_area(VERIFY_WRITE,
p
, len)) < 0)
return err;
}
DEB(printk("sound_ioctl(dev=%d, cmd=0x%x, arg=0x%x)\n", dev, cmd, arg));
if (cmd == OSS_GETVERSION)
return err;
}
DEB(printk("sound_ioctl(dev=%d, cmd=0x%x, arg=0x%x)\n", dev, cmd, arg));
if (cmd == OSS_GETVERSION)
- return __put_user(SOUND_VERSION, (int
*)arg
);
+ return __put_user(SOUND_VERSION, (int
__user *)p
);
if (_IOC_TYPE(cmd) == 'M' && num_mixers > 0 && /* Mixer ioctl */
(dev & 0x0f) != SND_DEV_CTL) {
if (_IOC_TYPE(cmd) == 'M' && num_mixers > 0 && /* Mixer ioctl */
(dev & 0x0f) != SND_DEV_CTL) {
@@
-358,32
+359,32
@@
static int sound_ioctl(struct inode *inode, struct file *file,
case SND_DEV_DSP16:
case SND_DEV_AUDIO:
return sound_mixer_ioctl(audio_devs[dev >> 4]->mixer_dev,
case SND_DEV_DSP16:
case SND_DEV_AUDIO:
return sound_mixer_ioctl(audio_devs[dev >> 4]->mixer_dev,
- cmd,
(caddr_t)arg
);
+ cmd,
p
);
default:
default:
- return sound_mixer_ioctl(dev >> 4, cmd,
(caddr_t)arg
);
+ return sound_mixer_ioctl(dev >> 4, cmd,
p
);
}
}
switch (dev & 0x0f) {
case SND_DEV_CTL:
if (cmd == SOUND_MIXER_GETLEVELS)
}
}
switch (dev & 0x0f) {
case SND_DEV_CTL:
if (cmd == SOUND_MIXER_GETLEVELS)
- return get_mixer_levels(
(caddr_t)arg
);
+ return get_mixer_levels(
p
);
if (cmd == SOUND_MIXER_SETLEVELS)
if (cmd == SOUND_MIXER_SETLEVELS)
- return set_mixer_levels(
(caddr_t)arg
);
- return sound_mixer_ioctl(dev >> 4, cmd,
(caddr_t)arg
);
+ return set_mixer_levels(
p
);
+ return sound_mixer_ioctl(dev >> 4, cmd,
p
);
case SND_DEV_SEQ:
case SND_DEV_SEQ2:
case SND_DEV_SEQ:
case SND_DEV_SEQ2:
- return sequencer_ioctl(dev, file, cmd,
(caddr_t)arg
);
+ return sequencer_ioctl(dev, file, cmd,
p
);
case SND_DEV_DSP:
case SND_DEV_DSP16:
case SND_DEV_AUDIO:
case SND_DEV_DSP:
case SND_DEV_DSP16:
case SND_DEV_AUDIO:
- return audio_ioctl(dev, file, cmd,
(caddr_t)arg
);
+ return audio_ioctl(dev, file, cmd,
p
);
break;
case SND_DEV_MIDIN:
break;
case SND_DEV_MIDIN:
- return MIDIbuf_ioctl(dev, file, cmd,
(caddr_t)arg
);
+ return MIDIbuf_ioctl(dev, file, cmd,
p
);
break;
}
break;
}