> > diff --git a/sound/oss/au1550_ac97.c b/sound/oss/au1550_ac97.c > index c1070e3..3547450 100644 > --- a/sound/oss/au1550_ac97.c > +++ b/sound/oss/au1550_ac97.c > @@ -824,22 +824,26 @@ mixdev_ioctl(struct ac97_codec *codec, unsigned int cmd, > return codec->mixer_ioctl(codec, cmd, arg); > } > > -static int > -au1550_ioctl_mixdev(struct inode *inode, struct file *file, > - unsigned int cmd, unsigned long arg) > +static long > +au1550_ioctl_mixdev(struct file *file, unsigned int cmd, unsigned long arg) > { > struct au1550_state *s = (struct au1550_state *)file->private_data; > struct ac97_codec *codec = s->codec; > + int ret; > + > + lock_kernel(); > + ret = mixdev_ioctl(codec, cmd, arg); > + unlock_kernel(); > > - return mixdev_ioctl(codec, cmd, arg); > + return ret; > } General comment... In several places you declare a local variable of type "int", but the function return a long. I know that mixdev_ioctl() return an int so nothing is lost but it just looks wrong. > diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c > index 3f3c3f7..b5464fb 100644 > --- a/sound/oss/dmasound/dmasound_core.c > +++ b/sound/oss/dmasound/dmasound_core.c > @@ -337,8 +337,8 @@ static int mixer_release(struct inode *inode, struct file *file) > unlock_kernel(); > return 0; > } > -static int mixer_ioctl(struct inode *inode, struct file *file, u_int cmd, > - u_long arg) > + > +static long mixer_ioctl(struct file *file, u_int cmd, u_long arg) > { > if (_SIOC_DIR(cmd) & _SIOC_WRITE) > mixer.modify_counter++; > @@ -362,11 +362,22 @@ static int mixer_ioctl(struct inode *inode, struct file *file, u_int cmd, > return -EINVAL; > } > > +static long mixer_unlocked_ioctl(struct file *file, u_int cmd, u_long arg) > +{ > + int ret; > + > + lock_kernel(); > + ret = mixer_ioctl(file, cmd, arg); > + unlock_kernel(); > + > + return ret; > +} Here it looks like a potential but. mixer_ioctl() return a long which is stored in an int and then we return a long. > -static int sq_ioctl(struct inode *inode, struct file *file, u_int cmd, > - u_long arg) > +static long sq_ioctl(struct file *file, u_int cmd, u_long arg) > { > int val, result; > u_long fmt; > @@ -1114,18 +1124,29 @@ static int sq_ioctl(struct inode *inode, struct file *file, u_int cmd, > return IOCTL_OUT(arg,val); > > default: > - return mixer_ioctl(inode, file, cmd, arg); > + return mixer_ioctl(file, cmd, arg); > } > return -EINVAL; > } > > +static long sq_unlocked_ioctl(struct file *file, u_int cmd, u_long arg) > +{ > + int ret; > + > + lock_kernel(); > + ret = sq_ioctl(file, cmd, arg); > + unlock_kernel(); > + > + return ret; > +} ditto: long -> int -> long Sam _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel