|
@@ -214,8 +214,7 @@ static long proc_reg_unlocked_ioctl(struct file *file, unsigned int cmd, unsigne
|
|
|
{
|
|
|
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
|
|
long rv = -ENOTTY;
|
|
|
- long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long);
|
|
|
- int (*ioctl)(struct inode *, struct file *, unsigned int, unsigned long);
|
|
|
+ long (*ioctl)(struct file *, unsigned int, unsigned long);
|
|
|
|
|
|
spin_lock(&pde->pde_unload_lock);
|
|
|
if (!pde->proc_fops) {
|
|
@@ -223,19 +222,11 @@ static long proc_reg_unlocked_ioctl(struct file *file, unsigned int cmd, unsigne
|
|
|
return rv;
|
|
|
}
|
|
|
pde->pde_users++;
|
|
|
- unlocked_ioctl = pde->proc_fops->unlocked_ioctl;
|
|
|
- ioctl = pde->proc_fops->ioctl;
|
|
|
+ ioctl = pde->proc_fops->unlocked_ioctl;
|
|
|
spin_unlock(&pde->pde_unload_lock);
|
|
|
|
|
|
- if (unlocked_ioctl) {
|
|
|
- rv = unlocked_ioctl(file, cmd, arg);
|
|
|
- if (rv == -ENOIOCTLCMD)
|
|
|
- rv = -EINVAL;
|
|
|
- } else if (ioctl) {
|
|
|
- WARN_ONCE(1, "Procfs ioctl handlers must use unlocked_ioctl, "
|
|
|
- "%pf will be called without the Bkl held\n", ioctl);
|
|
|
- rv = ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
|
|
|
- }
|
|
|
+ if (ioctl)
|
|
|
+ rv = ioctl(file, cmd, arg);
|
|
|
|
|
|
pde_users_dec(pde);
|
|
|
return rv;
|