Re: [JANITOR PROPOSAL] Switch ioctl functions to ->unlocked_ioctl

Paolo Ciarrocchi
2008-01-08T20:26:57Z

On Jan 8, 2008 9:21 PM, Matthew Wilcox <matthew@wil.cx> wrote:
> On Tue, Jan 08, 2008 at 01:16:06PM -0700, Matthew Wilcox wrote:
> > On Tue, Jan 08, 2008 at 09:03:13PM +0100, Paolo Ciarrocchi wrote:
> > > Yes of course, I've been silly in didn't verify whether the file compile
> > > but I would appreciate to know whether I'm on the right track or not.
> >
> > Well ... you're not.
>
> Here's what a correct conversion might look like. I haven't tried to
> compile it, so I'm copying and pasting it in order to damage whitespace
> and make sure nobody tries to compile it.
>
> index bf1075e..0c543a8 100644
> --- a/arch/arm/common/rtctime.c
> +++ b/arch/arm/common/rtctime.c
> @@ -174,8 +174,7 @@ static unsigned int rtc_poll(struct file *file, poll_table *
> return data != 0 ? POLLIN | POLLRDNORM : 0;
> }
>
> -static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
> - unsigned long arg)
> +static long rtc_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> {
> struct rtc_ops *ops = file->private_data;
> struct rtc_time tm;
> @@ -183,6 +182,8 @@ static int rtc_ioctl(struct inode *inode, struct file *file,
> void __user *uarg = (void __user *)arg;
> int ret = -EINVAL;
>
> + lock_kernel();
> +
> switch (cmd) {
> case RTC_ALM_READ:
> ret = rtc_arm_read_alarm(ops, &alrm);
> @@ -277,6 +278,9 @@ static int rtc_ioctl(struct inode *inode, struct file *file,
> ret = ops->ioctl(cmd, arg);
> break;
> }
> +
> + unlock_kernel();
> +
> return ret;
> }
>
> @@ -334,7 +338,7 @@ static const struct file_operations rtc_fops = {
> .llseek = no_llseek,
> .read = rtc_read,
> .poll = rtc_poll,
> - .ioctl = rtc_ioctl,
> + .unlocked_ioctl = rtc_ioctl,
> .open = rtc_open,
> .release = rtc_release,
> .fasync = rtc_fasync,
>

Thank you Matthew,
I definitely need to back studying before submitting another patch.

Ciao,
--
Paolo