Re: [PATCH] Change paride driver to use unlocked_ioctl instead ofioctl

From: Jan Engelhardt
Date: Wed Jan 09 2008 - 07:14:46 EST



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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/