From: Frederic Weisbecker <fweisbec@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-kernel@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
Andi Kleen <andi@firstfloor.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: Re: [PATCH 3/5] tty: handle VT specific compat ioctls in vt driver
Date: Fri, 7 Aug 2009 10:04:29 +0200 [thread overview]
Message-ID: <20090807080428.GB4955@nowhere> (raw)
In-Reply-To: <200908070904.11260.arnd@arndb.de>
On Fri, Aug 07, 2009 at 09:04:11AM +0200, Arnd Bergmann wrote:
> On Friday 07 August 2009, Frederic Weisbecker wrote:
>
> > On Thu, Aug 06, 2009 at 03:09:28PM +0200, Arnd Bergmann wrote:
> > > The VT specific compat_ioctl handlers are the only ones
> > > in common code that require the BKL. Moving them into
> > > the vt driver lets us remove the BKL from the other handlers
> > > and cleans up the code.
> >
> >
> > Why does it require the bkl?
> >
>
> All the VT ioctls are currently called under the BKL. I did not try
> to find out why that is but simply kept that state. All other
> compat ioctl do not interact with device driver state at all,
> so they obviously do not need the BKL.
Ah ok.
> > > +
> > > +long vt_compat_ioctl(struct tty_struct *tty, struct file * file,
> > > + unsigned int cmd, unsigned long arg)
> > > +{
> > > + struct vc_data *vc = tty->driver_data;
> > > + struct console_font_op op; /* used in multiple places here */
> > > + struct kbd_struct *kbd;
> > > + unsigned int console;
> > > + void __user *up = (void __user *)arg;
> > > + int perm;
> > > + int ret = 0;
> > > +
> > > + console = vc->vc_num;
> > > +
> > > + lock_kernel();
> >
> >
> >
> > It would be really nice to add a comment here that explain what it
> > is protecting.
> > I would like to work on removing the bkl from tty, and such nude lock_kernel()
> > don't help much to work in this area.
> > This is more than ever a FUD lock, nothing about its role in tty in the Lockronomicon,
> > and even not in the comments :-)
>
> This function is a straight copy from vt_ioctl, with the data structures replaced,
> and calling it vt_ioctl where they are identical.
>
> You are right that this needs more code comments to make that obvious.
>
> Arnd <><
Ok. This looks like a nice series. A bkl pushdown that only goes down
in one site among several others enlightens the understanding of what it
is protecting (beside the nice fact it also burned three bkl callsites :-)
Thanks!
next prev parent reply other threads:[~2009-08-07 8:04 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-06 13:09 [PATCH 0/5] Kill the BKL in compat ioctl handling Arnd Bergmann
2009-08-06 13:09 ` [PATCH 1/5] arch/um: handle compat_ioctl in tty line driver Arnd Bergmann
2009-08-13 5:08 ` Amerigo Wang
2009-08-06 13:09 ` [PATCH 2/5] s390: move keyboard compat ioctls into tty3270 driver Arnd Bergmann
2009-08-06 13:09 ` [PATCH 3/5] tty: handle VT specific compat ioctls in vt driver Arnd Bergmann
2009-08-07 6:23 ` Frederic Weisbecker
2009-08-07 7:04 ` Arnd Bergmann
2009-08-07 8:04 ` Frederic Weisbecker [this message]
2009-08-07 12:02 ` Arnd Bergmann
2009-08-08 0:34 ` Frederic Weisbecker
2009-08-08 0:41 ` Greg KH
2009-08-08 1:03 ` Frederic Weisbecker
2009-08-08 3:20 ` Greg KH
2009-08-10 16:24 ` Arnd Bergmann
2009-08-07 9:57 ` Alan Cox
2009-08-07 19:23 ` Frederic Weisbecker
2009-08-06 13:09 ` [PATCH 4/5] compat_ioctl: remove VT specific ioctl handlers Arnd Bergmann
2009-08-06 13:09 ` [PATCH 5/5] compat_ioctl: do not hold BKL in handlers Arnd Bergmann
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=20090807080428.GB4955@nowhere \
--to=fweisbec@gmail.com \
--cc=andi@firstfloor.org \
--cc=arnd@arndb.de \
--cc=gregkh@suse.de \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.