public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: Arnd Bergmann <arndbergmann@googlemail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>,
	John Kacur <jkacur@redhat.com>,
	Sven-Thorsten Dietrich <sven@thebigcorporation.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Alessio Igor Bogani <abogani@texware.it>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH] generic_nvram: Turn nvram_ioctl into an unlocked ioctl
Date: Mon, 12 Oct 2009 00:40:36 +0200	[thread overview]
Message-ID: <20091011224035.GB8146@nowhere> (raw)
In-Reply-To: <200910120025.05208.arnd@arndb.de>

On Mon, Oct 12, 2009 at 12:25:05AM +0200, Arnd Bergmann wrote:
> On Monday 12 October 2009, Frederic Weisbecker wrote:
> > nvram_ioctl is a bkl locked ioctl, but it can be an unlocked ioctl.
> > 
> > - part is provided by the user
> > - offset is provided by pmac_get_partition() which is safe as it only
> >   touches nvram_partitions, an array inistialized on __init time and
> >   read-only the rest of the time.
> > - nvram_sync() only relies on core99_nvram_sync() which checks
> >   is_core_99, nvram_data, nvram_image. Those are variables initialized
> >   on __init time only and their direct values are not touched further.
> >   The rest modifies the nvram image header, protected by nv_lock
> >   already.
> > 
> > So it's safe to call nvram_ioctl without the big kernel lock held.
> > 
> > Reported-by: Arnd Bergmann <arndbergmann@googlemail.com>
> > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Ingo Molnar <mingo@elte.hu>
> > Cc: John Kacur <jkacur@redhat.com>
> > Cc: Sven-Thorsten Dietrich <sven@thebigcorporation.com>
> > Cc: Jonathan Corbet <corbet@lwn.net>
> > Cc: Alessio Igor Bogani <abogani@texware.it>
> > Cc: Arnd Bergmann <arndbergmann@googlemail.com>
> > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
> 
> Hmm, I wish I had not started using the gmail MTA for sending out
> mail, not that address is public forever.


Sorry, didn't know about that. I'm then taking Arnd Bergmann <arnd@arndb.de>
found in the MAINTAINER file for the v2 patch.


 
> >  drivers/char/generic_nvram.c |   10 +++++-----
> >  1 files changed, 5 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c
> > index c49200e..fd448aa 100644
> > --- a/drivers/char/generic_nvram.c
> > +++ b/drivers/char/generic_nvram.c
> > @@ -118,11 +118,11 @@ static int nvram_ioctl(struct inode *inode, struct file *file,
> >  }
> >  
> >  const struct file_operations nvram_fops = {
> > -	.owner		= THIS_MODULE,
> > -	.llseek		= nvram_llseek,
> > -	.read		= read_nvram,
> > -	.write		= write_nvram,
> > -	.ioctl		= nvram_ioctl,
> > +	.owner			= THIS_MODULE,
> > +	.llseek			= nvram_llseek,
> > +	.read			= read_nvram,
> > +	.write			= write_nvram,
> > +	.unlocked_ioctl		= nvram_ioctl,
> >  };
> >  
> >  static struct miscdevice nvram_dev = {
> 
> The ioctl and unlocked_ioctl functions have a different signature, so you
> need to adapt that, not just rename it.


Hmm, that's the problem with this file I can't event build test. I really
should grab a cross compiler for powerpc targets.


> 
> Not sure if we should do it in the same patch, but this driver should also 
> have a compat_ioctl method pointing to the same function. The ioctl numbers
> in this driver are all 32/64 bit clean, but are not listed in fs/compat_ioctl.c,
> so adding a .compat_ioctl pointer is the easiest way to fix 32 bit userland
> accessing the device.
> 
> 	Arnd <><


Added in my todolist then, for a saperate patch because it fixes another
issue.

Thanks!


  parent reply	other threads:[~2009-10-11 22:41 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-10 15:35 [patch 00/28] BKL removal queued patches Thomas Gleixner
2009-10-10 15:35 ` [patch 01/28] pm_qos: remove BKL Thomas Gleixner
2009-10-10 16:08   ` Frederic Weisbecker
2009-10-13 19:12   ` mgross
2009-10-13 19:21     ` Jonathan Corbet
2009-10-13 19:50       ` mgross
2009-10-14 15:44   ` [tip:bkl/core] " tip-bot for Jonathan Corbet
2009-10-10 15:35 ` [patch 02/28] pm_qos: clean up racy global "name" variable Thomas Gleixner
2009-10-10 19:54   ` John Kacur
2009-10-10 20:03     ` Jonathan Corbet
2009-10-10 20:09       ` Peter Zijlstra
2009-10-10 20:58       ` John Kacur
2009-10-14 15:44   ` [tip:bkl/core] " tip-bot for Jonathan Corbet
2009-10-10 15:35 ` [patch 03/28] net: Remove BKL from tun Thomas Gleixner
2009-10-14  8:19   ` David Miller
2009-10-10 15:35 ` [patch 04/28] x86: Remove BKL from microcode Thomas Gleixner
2009-10-14 15:14   ` [tip:x86/cleanups] " tip-bot for Thomas Gleixner
2009-10-10 15:35 ` [patch 05/28] drivers: Remove BKL from drivers/char/misc.c Thomas Gleixner
2009-10-11 19:24   ` Arnd Bergmann
2009-10-14 15:47   ` [tip:bkl/drivers] drivers: Remove BKL from misc_open tip-bot for Thomas Gleixner
2009-10-14 15:55     ` Arnd Bergmann
2009-10-14 16:07       ` Thomas Gleixner
2009-10-14 16:12     ` Alan Cox
2009-10-14 16:16       ` Thomas Gleixner
2009-10-14 16:54         ` Arnd Bergmann
2009-10-14 17:12           ` Arnd Bergmann
2009-10-14 19:38             ` Thomas Gleixner
2009-10-17 17:09               ` Pavel Machek
2009-10-14 18:12         ` Alan Cox
2009-10-14 19:34           ` Thomas Gleixner
2009-10-14 17:58       ` Ingo Molnar
2009-10-10 15:35 ` [patch 06/28] drivers: Remove BKL from cs5535_gpio Thomas Gleixner
2009-10-14 15:47   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:35 ` [patch 07/28] spi: Remove BKL from spidev_open Thomas Gleixner
2009-10-14 15:48   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:35 ` [patch 08/28] x86: Remove BKL from apm_32 Thomas Gleixner
2009-10-14 15:15   ` [tip:x86/cleanups] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 09/28] sys: Remove BKL from sys_reboot Thomas Gleixner
2009-10-14 15:44   ` [tip:bkl/core] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 10/28] mem_class: Drop the bkl from memory_open() Thomas Gleixner
2009-10-10 15:36 ` [patch 11/28] nvram: Drop the bkl from nvram_llseek() Thomas Gleixner
2009-10-11 19:31   ` Arnd Bergmann
2009-10-11 21:08     ` Frederic Weisbecker
2009-10-11 21:40       ` Frederic Weisbecker
2009-10-11 21:50         ` Arnd Bergmann
2009-10-11 22:14           ` Frederic Weisbecker
2009-10-13 12:40             ` Arnd Bergmann
2009-10-14 21:43               ` Thomas Gleixner
2009-10-11 22:12     ` [PATCH] generic_nvram: Turn nvram_ioctl into an unlocked ioctl Frederic Weisbecker
2009-10-11 22:25       ` Arnd Bergmann
2009-10-11 22:39         ` [PATCH v2] " Frederic Weisbecker
2009-10-11 22:40         ` Frederic Weisbecker [this message]
2009-10-12  8:45           ` [PATCH] " Arnd Bergmann
2009-10-10 15:36 ` [patch 12/28] nvram: Drop the bkl from non-generic nvram_llseek() Thomas Gleixner
2009-10-10 15:36 ` [patch 13/28] s390: Remove BKL from prng Thomas Gleixner
2009-10-13 12:36   ` Jan Glauber
2009-10-14 15:45   ` [tip:bkl/arch] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 14/28] um: Remove BKL from random Thomas Gleixner
2009-10-14 15:45   ` [tip:bkl/arch] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 15/28] um: Remove BKL from mmapper Thomas Gleixner
2009-10-14 15:45   ` [tip:bkl/arch] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 16/28] sparc: Remove BKL from apc Thomas Gleixner
2009-11-03  5:27   ` David Miller
2009-10-10 15:36 ` [patch 17/28] watchdog: Fix probe function of riowd Thomas Gleixner
2009-10-10 15:36 ` [patch 18/28] watchdog: Remove BKL from rio watchdog driver Thomas Gleixner
2009-11-03  5:16   ` David Miller
2009-10-10 15:36 ` [patch 19/28] hw_random: Remove BKL from core Thomas Gleixner
2009-10-14 15:49   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-21 20:51   ` [patch 19/28] " John Kacur
2009-10-10 15:36 ` [patch 20/28] input: Remove BKL from hp_sdc_rtc Thomas Gleixner
2009-10-11 19:47   ` Arnd Bergmann
2009-10-11 19:54     ` Thomas Gleixner
2009-10-14 15:49   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 21/28] bkl: pushdown BKL locking to do_sysctl() Thomas Gleixner
2009-10-11  9:03   ` Benjamin Herrenschmidt
2009-10-14 15:45   ` [tip:bkl/core] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 22/28] macintosh: Remove BKL from ans-lcd Thomas Gleixner
2009-10-10 21:14   ` John Kacur
2009-10-10 23:13     ` Alan Cox
2009-10-10 23:27       ` John Kacur
2009-10-11  9:02   ` Benjamin Herrenschmidt
2009-10-14 15:49   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-21 21:07   ` [PATCH] macintosh: Explicitly set llseek to no_llseek in ans-lcd John Kacur
2009-10-21 21:21     ` Frederic Weisbecker
2009-10-21 21:33       ` John Kacur
2009-10-21 21:45         ` Frederic Weisbecker
2009-10-21 21:53           ` John Kacur
2009-10-21 22:16             ` Frederic Weisbecker
2009-11-02 15:51               ` Arnd Bergmann
2009-11-16 10:54                 ` Christoph Hellwig
2009-11-16 12:09                   ` Arnd Bergmann
2009-10-10 15:37 ` [patch 23/28] i2c: Remove big kernel lock from i2cdev_open Thomas Gleixner
2009-10-10 17:04   ` Jean Delvare
2009-10-10 17:09     ` Thomas Gleixner
2009-10-10 17:39       ` Jean Delvare
2009-10-10 18:10         ` Thomas Gleixner
2009-10-10 18:15           ` Peter Zijlstra
2009-10-10 18:38             ` Thomas Gleixner
2009-10-10 15:37 ` [patch 24/28] rtc: Remove BKL from efirtc Thomas Gleixner
2009-10-14 15:50   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-21 21:13   ` Subject: [PATCH] rtc: Explicitly set llseek to no_llseek John Kacur
2009-11-03 23:48     ` Andrew Morton
2009-11-04  0:43       ` John Kacur
2009-10-10 15:37 ` [patch 25/28] parisc: Remove BKL from eisa_eeprom Thomas Gleixner
2009-10-14 15:50   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-14 17:35   ` [patch 25/28] " Kyle McMartin
2009-10-10 15:37 ` [patch 26/28] drivers: Remove BKL from pc8736x_gpio Thomas Gleixner
2009-10-14 15:50   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 27/28] drivers: Remove BKL from scx200_gpio Thomas Gleixner
2009-10-14 15:50   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 28/28] mips: Remove BKL from tb0219 Thomas Gleixner
2009-10-14 15:51   ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 18:38 ` [patch 00/28] BKL removal queued patches John Kacur
2009-10-14 15:59 ` [PATCH 1/2] compat_ioctl: remove VT specific ioctl handlers Arnd Bergmann
2009-10-14 16:00   ` [PATCH 2/2] compat_ioctl: do not hold BKL in handlers Arnd Bergmann
2009-10-14 16:10   ` [PATCH 1/2] compat_ioctl: remove VT specific ioctl handlers Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091011224035.GB8146@nowhere \
    --to=fweisbec@gmail.com \
    --cc=abogani@texware.it \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=arndbergmann@googlemail.com \
    --cc=corbet@lwn.net \
    --cc=jkacur@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=sven@thebigcorporation.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox