Messages in this thread | | | Date | Wed, 9 Jan 2008 13:14:25 +0100 (CET) | From | Jan Engelhardt <> | Subject | Re: [PATCH] Change paride driver to use unlocked_ioctl instead of ioctl |
| |
On Jan 10 2008 14:25, Nikanth Karthikesan wrote: >-static int pt_ioctl(struct inode *inode, struct file *file, >- unsigned int cmd, unsigned long arg) >+static long pt_ioctl(struct file *file, unsigned int cmd, >+ unsigned long arg) > { > struct pt_unit *tape = file->private_data; > struct mtop __user *p = (void __user *)arg; > struct mtop mtop; >+ long err = 0; >+ >+ lock_kernel(); > > switch (cmd) { > case MTIOCTOP: >- if (copy_from_user(&mtop, p, sizeof(struct mtop))) >- return -EFAULT; >+ if (copy_from_user(&mtop, p, sizeof(struct mtop))) { >+ err = -EFAULT; >+ break; >+ }
I wonder why a simple copy_from_user() requires the BKL.. if pt does need locking, then probably some mutex inside pt.
| |