linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.

  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).