From: Arnd Bergmann <arnd@arndb.de>
To: Frederic Weisbecker <fweisbec@gmail.com>
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 09:04:11 +0200 [thread overview]
Message-ID: <200908070904.11260.arnd@arndb.de> (raw)
In-Reply-To: <20090807062356.GA4955@nowhere>
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.
> > +
> > +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 <><
next prev parent reply other threads:[~2009-08-07 7: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 [this message]
2009-08-07 8:04 ` Frederic Weisbecker
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=200908070904.11260.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=andi@firstfloor.org \
--cc=fweisbec@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox