Re: [PATCH] nvram: Convert nvram_ioctl to unlocked_ioctl, removesmp_lock.h

From: John Kacur
Date: Mon Mar 29 2010 - 09:34:11 EST



----- "John Kacur" <jkacur@xxxxxxxxxx> wrote:

> After removing the BKL from open, we can also convert nvram_ioctl to
> an unlocked_ioctl. It has it's only spin_lock, and doesn't rely on the
> BKL
>
> This file no longer uses the BKL so smp_lock.h can be removed.
>
> Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>
> ---
> drivers/char/nvram.c | 18 ++++++++----------
> 1 files changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
> index 5eb83c3..0c3ba6a 100644
> --- a/drivers/char/nvram.c
> +++ b/drivers/char/nvram.c
> @@ -110,7 +110,6 @@
> #include <linux/spinlock.h>
> #include <linux/io.h>
> #include <linux/uaccess.h>
> -#include <linux/smp_lock.h>
>
> #include <asm/system.h>
>
> @@ -297,8 +296,7 @@ checksum_err:
> return -EIO;
> }
>
> -static int nvram_ioctl(struct inode *inode, struct file *file,
> - unsigned int cmd, unsigned long arg)
> +static long nvram_ioctl(struct file *file, unsigned int cmd, unsigned
> long arg)
> {
> int i;
>
> @@ -419,13 +417,13 @@ static int nvram_add_proc_fs(void)
> #endif /* CONFIG_PROC_FS */
>
> static const struct file_operations nvram_fops = {
> - .owner = THIS_MODULE,
> - .llseek = nvram_llseek,
> - .read = nvram_read,
> - .write = nvram_write,
> - .ioctl = nvram_ioctl,
> - .open = nvram_open,
> - .release = nvram_release,
> + .owner = THIS_MODULE,
> + .llseek = nvram_llseek,
> + .read = nvram_read,
> + .write = nvram_write,
> + .unlocked_ioctl = nvram_ioctl,
> + .open = nvram_open,
> + .release = nvram_release,
> };
>
> static struct miscdevice nvram_dev = {
> --
> 1.6.0.6

Sorry for the double send, I must have messed-up something with
git-send-email. The --compose failed on me, and that part of the message was
lost afaict.

What I wanted to say was, Ingo, in the past you carried nvram fixes, so
if no-one objects to this change, can you integrate this one?

This did have a curiosity in the history. It seems that Linus's tree had the
remove smp_lock.h patch before the patch to remove BKL hit his tree. So
I combined that little bit with my previous patch that turns this into
an unlocked ioctl. (resend of http://lkml.indiana.edu/hypermail/linux/kernel/0910.2/01608.html)

Thanks

John
--
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/