From: "Michael S. Tsirkin" <mst@mellanox.co.il>
To: Andi Kleen <ak@suse.de>
Cc: hch@infradead.org, linux-kernel@vger.kernel.org, chrisw@osdl.org,
davem@davemloft.net
Subject: Re: [PATCH] move common compat ioctls to hash
Date: Wed, 26 Jan 2005 10:40:13 +0200 [thread overview]
Message-ID: <20050126084013.GA3791@mellanox.co.il> (raw)
In-Reply-To: <20050125061741.GA27013@wotan.suse.de>
Quoting r. Andi Kleen <ak@suse.de>:
> Subject: Re: [PATCH] move common compat ioctls to hash
>
> On Mon, Jan 24, 2005 at 10:26:09PM +0200, Michael S. Tsirkin wrote:
> > Hi!
> > The new ioctl code in fs/compat.c can be streamlined a little
> > using the compat hash instead of an explicit switch statement.
> >
> > The attached patch is against 2.6.11-rc2-bk2.
> > Andi, could you please comment? Does this make sence?
>
> Problem is that when a compat_ioctl handler returns -EINVAL
> instead of -ENOIOCTLCMD on unknown ioctl it won't check the common
> ones.
>
> I fear this mistake would be common, that is why I put in the switch.
>
> -Andi
Still, many drivers still need the compat hash lookup to work
properly, and these still require -ENOIOCTLCMD to work properly.
So is it worth it wasting CPU cycles working around only part of the problem?
How about:
1. Adding a comment in fs.h
2. Changing unlocked_ioctl to behave in the same way as compat_ioctl
(this will help since unlocked_ioctl will be well tested),
something along the lines of my old patch below [its against 2.6.11-rc1-bk5].
As a bonus, I expect a small speedup in code using unlocked_ioctl
(as well as compat_ioctl) for datapath things like usb transfers.
Andy, if this sounds convincing, let me know and I'll build a real patch.
MST
diff -rup linux-2.6.10-orig/fs/ioctl.c linux-2.6.10-ioctl-sym/fs/ioctl.c
--- linux-2.6.10-orig/fs/ioctl.c 2005-01-18 10:58:33.609880024 +0200
+++ linux-2.6.10-ioctl-sym/fs/ioctl.c 2005-01-18 10:51:55.690372984 +0200
@@ -24,12 +24,7 @@ static long do_ioctl(struct file *filp,
if (!filp->f_op)
goto out;
- if (filp->f_op->unlocked_ioctl) {
- error = filp->f_op->unlocked_ioctl(filp, cmd, arg);
- if (error == -ENOIOCTLCMD)
- error = -EINVAL;
- goto out;
- } else if (filp->f_op->ioctl) {
+ if (filp->f_op->ioctl) {
lock_kernel();
error = filp->f_op->ioctl(filp->f_dentry->d_inode,
filp, cmd, arg);
@@ -93,6 +91,12 @@ asmlinkage long sys_ioctl(unsigned int f
if (error)
goto out_fput;
+ if (filp->f_op && filp->f_op->unlocked_ioctl) {
+ error = filp->f_op->unlocked_ioctl(filp, cmd, arg);
+ if (error != -ENOIOCTLCMD)
+ goto out_fput;
+ }
+
switch (cmd) {
case FIOCLEX:
set_close_on_exec(fd, 1);
--
I dont speak for Mellanox.
next prev parent reply other threads:[~2005-01-26 8:39 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-18 7:21 [PATCH] Some fixes for compat ioctl Andi Kleen
2005-01-18 10:34 ` Michael S. Tsirkin
2005-01-18 10:45 ` [PATCH 1/5] compat_ioctl call seems to miss a security hook Michael S. Tsirkin
2005-01-18 19:22 ` Chris Wright
2005-01-20 0:28 ` Michael S. Tsirkin
2005-01-20 0:43 ` Chris Wright
2005-01-20 1:06 ` Michael S. Tsirkin
2005-01-20 1:16 ` Chris Wright
2005-01-20 1:42 ` Michael S. Tsirkin
2005-01-18 10:48 ` [PATCH 2/5] socket ioctl fix (from Andi) Michael S. Tsirkin
2005-01-18 10:55 ` Christoph Hellwig
2005-01-18 11:01 ` Andi Kleen
2005-01-18 10:52 ` [PATCH 3/5] make common ioctls apply for compat Michael S. Tsirkin
2005-01-18 10:57 ` [PATCH 4/5] reminder comment about register_ioctl32_conversion Michael S. Tsirkin
2005-01-18 11:04 ` [PATCH 5/5] symmetry between compat_ioctl and unlocked_ioctl Michael S. Tsirkin
2005-01-24 10:15 ` 2.6.11-rc2-mm1 Andrew Morton
2005-01-24 10:36 ` 2.6.11-rc2-mm1 Adrian Bunk
2005-01-24 11:17 ` 2.6.11-rc2-mm1: v4l-saa7134-module compile error Adrian Bunk
2005-01-24 13:57 ` Gerd Knorr
2005-01-24 17:45 ` Adrian Bunk
2005-01-25 10:15 ` Gerd Knorr
2005-01-25 10:38 ` Adrian Bunk
2005-01-24 11:56 ` 2.6.11-rc2-mm1 Brice Goglin
2005-01-24 13:41 ` 2.6.11-rc2-mm1 Brice Goglin
2005-01-24 14:35 ` 2.6.11-rc2-mm1 Florian Bohrer
2005-01-24 18:52 ` 2.6.11-rc2-mm1 Dave Jones
2005-01-24 20:44 ` 2.6.11-rc2-mm1 Dave Jones
2005-01-24 21:31 ` 2.6.11-rc2-mm1 Brice Goglin
2005-01-25 19:38 ` 2.6.11-rc2-mm1 Dave Jones
2005-01-25 19:58 ` 2.6.11-rc2-mm1 Brice Goglin
2005-01-25 20:29 ` 2.6.11-rc2-mm1 Dave Jones
2005-01-24 12:12 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-24 20:36 ` 2.6.11-rc2-mm1 Karsten Keil
2005-01-24 23:26 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-25 0:35 ` 2.6.11-rc2-mm1 Karsten Keil
2005-01-24 23:32 ` 2.6.11-rc2-mm1 Bartlomiej Zolnierkiewicz
2005-01-24 21:03 ` 2.6.11-rc2-mm1 Andrew Morton
2005-01-24 12:17 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-31 22:42 ` [patch] generic notification layer Robert Love
2005-02-07 11:57 ` 2.6.11-rc2-mm1 Ingo Molnar
2005-02-07 17:30 ` 2.6.11-rc2-mm1 Robert Love
2005-02-07 21:02 ` 2.6.11-rc2-mm1 John McCutchan
2005-01-24 12:25 ` [-mm patch] fix SuperIO compilation Adrian Bunk
2005-01-24 12:34 ` Christoph Hellwig
2005-01-24 13:04 ` Evgeniy Polyakov
2005-01-24 13:56 ` Evgeniy Polyakov
2005-01-24 14:14 ` [1/1] superio: remove unneded exports and make some functions static Evgeniy Polyakov
2005-01-25 6:19 ` Greg KH
2005-01-24 12:48 ` 2.6.11-rc2-mm1: DVB compile error Adrian Bunk
2005-01-24 23:56 ` [linux-dvb-maintainer] " Johannes Stezenbach
2005-01-24 13:52 ` 2.6.11-rc2-mm1 Roman Zippel
2005-01-24 14:24 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-24 14:58 ` 2.6.11-rc2-mm1 Benoit Boissinot
2005-01-24 15:11 ` 2.6.11-rc2-mm1 [compile fix] Benoit Boissinot
2005-01-24 17:25 ` Adrian Bunk
2005-01-24 17:54 ` 2.6.11-rc2-mm1: SuperIO scx200 breakage Adrian Bunk
2005-01-24 18:43 ` Evgeniy Polyakov
2005-01-24 18:29 ` Adrian Bunk
2005-01-24 19:19 ` Evgeniy Polyakov
2005-01-24 19:03 ` Adrian Bunk
2005-01-24 19:46 ` Evgeniy Polyakov
2005-01-24 18:41 ` Jurriaan
2005-01-24 19:23 ` Evgeniy Polyakov
2005-01-24 19:05 ` Adrian Bunk
2005-01-24 19:39 ` Evgeniy Polyakov
2005-01-24 19:32 ` Dmitry Torokhov
2005-01-24 20:28 ` Evgeniy Polyakov
2005-01-27 15:19 ` Bill Davidsen
2005-01-27 16:21 ` Evgeniy Polyakov
2005-01-27 23:12 ` Bill Davidsen
2005-01-24 20:33 ` Christoph Hellwig
2005-01-24 21:10 ` Evgeniy Polyakov
2005-01-24 21:34 ` Greg KH
2005-01-24 21:47 ` Christoph Hellwig
2005-01-25 6:02 ` Greg KH
2005-01-25 7:11 ` Christoph Hellwig
2005-01-25 18:59 ` Jean Delvare
2005-01-25 21:39 ` Evgeniy Polyakov
2005-01-25 21:40 ` Jean Delvare
2005-01-25 22:35 ` Evgeniy Polyakov
2005-01-26 9:55 ` Jean Delvare
2005-01-26 10:55 ` Evgeniy Polyakov
2005-01-26 14:34 ` Jean Delvare
2005-01-26 16:10 ` Evgeniy Polyakov
2005-01-26 19:20 ` Jean Delvare
2005-01-26 20:21 ` Evgeniy Polyakov
2005-01-26 10:14 ` Christoph Hellwig
2005-01-26 10:59 ` Evgeniy Polyakov
2005-01-26 14:00 ` Dmitry Torokhov
2005-01-26 16:38 ` Evgeniy Polyakov
2005-01-26 18:19 ` Adrian Bunk
2005-01-26 19:27 ` Evgeniy Polyakov
2005-01-27 10:20 ` Adrian Bunk
2005-01-27 11:53 ` Evgeniy Polyakov
2005-01-26 18:06 ` Adrian Bunk
2005-01-26 13:12 ` Russell King
2005-01-26 20:01 ` Christoph Hellwig
2005-01-24 18:58 ` 2.6.11-rc2-mm1 Benoit Boissinot
2005-01-24 19:09 ` 2.6.11-rc2-mm1 Adrian Bunk
2005-01-24 19:44 ` 2.6.11-rc2-mm1 - fix a typo in nfs3proc.c Benoit Boissinot
2005-01-24 20:24 ` 2.6.11-rc2-mm1 - compile fix Benoit Boissinot
2005-01-24 20:26 ` [PATCH] move common compat ioctls to hash Michael S. Tsirkin
2005-01-25 6:17 ` Andi Kleen
2005-01-26 8:40 ` Michael S. Tsirkin [this message]
2005-01-25 0:03 ` 2.6.11-rc2-mm1: fuse patch needs new libs Sytse Wielinga
2005-01-25 7:31 ` Miklos Szeredi
2005-01-27 15:45 ` Bill Davidsen
2005-01-27 15:56 ` Sytse Wielinga
2005-01-27 16:11 ` Miklos Szeredi
2005-01-27 18:09 ` Christoph Hellwig
2005-01-25 1:01 ` 2.6.11-rc2-mm1 Brice Goglin
2005-01-25 1:30 ` 2.6.11-rc2-mm1 (AE_AML_NO_OPERAND) Len Brown
2005-01-25 18:41 ` 2.6.11-rc2-mm1 Pavel Machek
2005-01-25 19:10 ` 2.6.11-rc2-mm1 Espen Fjellvær Olsen
2005-01-25 12:53 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-25 14:11 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-25 14:23 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-25 15:24 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-25 15:34 ` 2.6.11-rc2-mm1 Bartlomiej Zolnierkiewicz
2005-01-25 16:04 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-25 18:21 ` 2.6.11-rc2-mm1 Jörn Engel
2005-01-25 21:17 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 2:20 ` 2.6.11-rc2-mm1 Jörn Engel
2005-01-25 15:36 ` 2.6.11-rc2-mm1 Paulo Marques
2005-01-25 21:08 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-25 16:11 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-25 21:14 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 4:57 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 8:25 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 13:46 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 14:59 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 15:26 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 15:54 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 16:25 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 16:46 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 16:55 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 17:39 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 18:26 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 20:07 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 20:22 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-27 17:33 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-25 22:42 ` 2.6.11-rc2-mm1 Christoph Hellwig
2005-01-26 8:31 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-26 13:32 ` 2.6.11-rc2-mm1 Dmitry Torokhov
2005-01-26 14:44 ` 2.6.11-rc2-mm1 Evgeniy Polyakov
2005-01-25 19:35 ` 2.6.11-rc2-mm1 Pavel Machek
2005-01-25 19:12 ` 2.6.11-rc2-mm1 Marcos D. Marado Torres
2005-01-25 23:07 ` 2.6.11-rc2-mm1 Barry K. Nathan
2005-01-26 2:40 ` 2.6.11-rc2-mm1 William Lee Irwin III
2005-01-26 4:44 ` [PATCH] ppc64: fix use kref for device_node refcounting Nathan Lynch
2005-01-27 6:18 ` 2.6.11-rc2-mm1 William Lee Irwin III
2005-01-27 9:14 ` 2.6.11-rc2-mm1 William Lee Irwin III
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=20050126084013.GA3791@mellanox.co.il \
--to=mst@mellanox.co.il \
--cc=ak@suse.de \
--cc=chrisw@osdl.org \
--cc=davem@davemloft.net \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).