All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@mellanox.co.il>
To: Andi Kleen <ak@suse.de>
Cc: linux-kernel@vger.kernel.org, pavel@suse.cz, discuss@x86-64.org,
	gordon.jin@intel.com
Subject: Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
Date: Wed, 15 Dec 2004 09:46:35 +0200	[thread overview]
Message-ID: <20041215074635.GC11501@mellanox.co.il> (raw)
In-Reply-To: <20041215065650.GM27225@wotan.suse.de>

Hello, Andi!
Quoting r. Andi Kleen (ak@suse.de) "unregister_ioctl32_conversion and modules. ioctl32 revisited.":
> Hallo,
> 
> There seems to be an unfixable module unload race in the current
> register_ioctl32_conversion support. The problem is that
> there is no way to wait for a conversion handler is blocked
> in a sleeping *_user access before module unloading. The module
> count is also not increase in this case.
> 
> I previously thought it could be avoided by always putting
> the compat wrapper into the same module and using the reference
> counting that is done by VFS on ->module of the char device or
> file system converted. But that doesn't work because 
> the ioctl32 lookup is independent from the file descriptor
> and a conversion handler can be entered even after ->release
> when the right number is passed.
> 
> One way to fix it would be to put a pointer to the module
> into the compat ioctl hash table and increase the module count atomically
> from the compat code. But that would bloat the hash table a lot
> and I don't like it very much. Also you would either break the
> register_ioctl32_conversion prototype or make it a macro
> and assume all calls are from the same module, which is also 
> quite ugly.
> 
> A better solution would be to switch the few users of 
> register_ioctl32_conversion() over to a new ->ioctl32 method
> in file_operations and do the conversion from there. This would
> avoid the race because the VFS will take care of the module
> count in open/release.
> 
> Michael did a patch for this some time ago for a different motivation -
> he had some benchmarks where the hash table lookup hurt and it was
> noticeable faster to use a O(1) ->ioctl32 lookup from the file_operations
> for his application.
> 
> An useful side effect would be also to the ability to support 
> a per device ioctl name space. While the core kernel doesn't have
> much (any?) ioctls with duplicated numbers this mistake seems
> to be quite common in out of tree drivers and it is hard to 
> fix without breaking compatibility.
> 
> And it would be faster for this case of course too, so even performance
> critical in kernel ioctls could be slowly converted to ioctl32
> I wouldn't do it for all, because the current central tables work
> reasonably well for them and most ioctls are not speed critical
> anyways.
> 
> As for in kernel code it won't affect much code because near 
> all conversion handlers in the main tree are not modular (alsa 
> is one exception, there are a few others e.g. in some raid drivers). 
> I expect it will be a bigger problem in the future though as ioctl 
> emulation becomes more widespread and is done more in individual drivers.
> 
> averell:lsrc/v2.6/linux% gid register_ioctl32_conversion | wc -l
> 75
> averell:lsrc/v2.6/linux% 
> 
> In tree users are alsa, aaraid, fusion, some s390 stuff, sisfb, alsa
> 
> My proposal would be to dust off Michael's patch and convert 
> all users in tree over to ioctl32 and then deprecate and later remove
> (un)register_ioctl32_conversion 
> 
> Comments?
> 
> -Andi

It certainly helps performance, at least for me.

There were two additional motivations for my patch:
1. Make it possible to avoid the BKL completely by writing
   an ioctl with proper internal locking.
2. As noted by  Juergen Kreileder, the compat hash does not work
   for ioctls that encode additional information in the command, like this:

#define EVIOCGBIT(ev,len)  _IOC(_IOC_READ, 'E', 0x20 + ev, len)

I post the patch (updated for 2.6.10-rc2, boots) that I built for
Juergen, below. If there's interest, let me know.

I'd like to add that my patch does not touch any in-kernel users,
that would have to be done separately, probably as a first step
simply taking the BKL inside ioctl_compat.

MST


Signed-off-by: Michael Tsirkin <mst@mellanox.co.il>

diff -p -ruw linux-2.6.10-rc2-orig/Documentation/filesystems/Locking linux-2.6.10-rc2/Documentation/filesystems/Locking
--- linux-2.6.10-rc2-orig/Documentation/filesystems/Locking	2004-11-19 13:37:15.459406800 +0200
+++ linux-2.6.10-rc2/Documentation/filesystems/Locking	2004-11-19 13:40:34.685119888 +0200
@@ -350,6 +350,10 @@ prototypes:
 	unsigned int (*poll) (struct file *, struct poll_table_struct *);
 	int (*ioctl) (struct inode *, struct file *, unsigned int,
 			unsigned long);
+	long (*ioctl_native) (struct inode *, struct file *, unsigned int,
+			unsigned long);
+	long (*ioctl_compat) (struct inode *, struct file *, unsigned int,
+			unsigned long);
 	int (*mmap) (struct file *, struct vm_area_struct *);
 	int (*open) (struct inode *, struct file *);
 	int (*flush) (struct file *);
@@ -383,6 +387,8 @@ aio_write:		no
 readdir: 		no
 poll:			no
 ioctl:			yes	(see below)
+ioctl_native:		no	(see below)
+ioctl_compat:		no	(see below)
 mmap:			no
 open:			maybe	(see below)
 flush:			no
@@ -428,6 +434,9 @@ move ->readdir() to inode_operations and
 anything that resembles union-mount we won't have a struct file for all
 components. And there are other reasons why the current interface is a mess...
 
+->ioctl() on regular files is superceded by the ->ioctl_native() and
+->ioctl_compat() pair. The lock is not taken for these new calls.
+
 ->read on directories probably must go away - we should just enforce -EISDIR
 in sys_read() and friends.
 
diff -p -ruw linux-2.6.10-rc2-orig/fs/compat.c linux-2.6.10-rc2/fs/compat.c
--- linux-2.6.10-rc2-orig/fs/compat.c	2004-11-19 13:37:51.937861232 +0200
+++ linux-2.6.10-rc2/fs/compat.c	2004-11-19 14:46:22.293992120 +0200
@@ -401,15 +401,20 @@ asmlinkage long compat_sys_ioctl(unsigne
 				unsigned long arg)
 {
 	struct file * filp;
-	int error = -EBADF;
+	long error = -EBADF;
 	struct ioctl_trans *t;
+	int fput_needed;
 
-	filp = fget(fd);
-	if(!filp)
+	filp = fget_light(fd, &fput_needed);
+	if (!filp) {
 		goto out2;
+	}
 
-	if (!filp->f_op || !filp->f_op->ioctl) {
-		error = sys_ioctl (fd, cmd, arg);
+	if (!std_sys_ioctl(fd, cmd, arg, filp, &error)) {
+		goto out;
+	} else if (filp->f_op && filp->f_op->ioctl_compat) {
+		error = filp->f_op->ioctl_compat(filp->f_dentry->d_inode,
+						 filp, cmd, arg);
 		goto out;
 	}
 
@@ -425,9 +430,12 @@ asmlinkage long compat_sys_ioctl(unsigne
 			error = t->handler(fd, cmd, arg, filp);
 			unlock_kernel();
 			up_read(&ioctl32_sem);
-		} else {
+		} else if (filp->f_op && filp->f_op->ioctl) {
 			up_read(&ioctl32_sem);
-			error = sys_ioctl(fd, cmd, arg);
+			lock_kernel();
+			error = filp->f_op->ioctl(filp->f_dentry->d_inode,
+						  filp, cmd, arg);
+			unlock_kernel();
 		}
 	} else {
 		up_read(&ioctl32_sem);
@@ -466,7 +474,7 @@ asmlinkage long compat_sys_ioctl(unsigne
 		}
 	}
 out:
-	fput(filp);
+	fput_light(filp, fput_needed);
 out2:
 	return error;
 }
diff -p -ruw linux-2.6.10-rc2-orig/fs/ioctl.c linux-2.6.10-rc2/fs/ioctl.c
--- linux-2.6.10-rc2-orig/fs/ioctl.c	2004-11-19 13:37:58.693834168 +0200
+++ linux-2.6.10-rc2/fs/ioctl.c	2004-11-19 14:43:25.713836384 +0200
@@ -36,7 +36,9 @@ static int file_ioctl(struct file *filp,
 			if ((error = get_user(block, p)) != 0)
 				return error;
 
+			lock_kernel();
 			res = mapping->a_ops->bmap(mapping, block);
+			unlock_kernel();
 			return put_user(res, p);
 		}
 		case FIGETBSZ:
@@ -46,29 +48,22 @@ static int file_ioctl(struct file *filp,
 		case FIONREAD:
 			return put_user(i_size_read(inode) - filp->f_pos, p);
 	}
-	if (filp->f_op && filp->f_op->ioctl)
-		return filp->f_op->ioctl(inode, filp, cmd, arg);
 	return -ENOTTY;
 }
 
 
-asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+EXPORT_SYMBOL(std_sys_ioctl);
+int std_sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg,
+		  struct file *filp, long *status)
 {	
-	struct file * filp;
 	unsigned int flag;
-	int on, error = -EBADF;
-
-	filp = fget(fd);
-	if (!filp)
-		goto out;
+	int on, error, unknown=0;
 
 	error = security_file_ioctl(filp, cmd, arg);
 	if (error) {
-                fput(filp);
                 goto out;
         }
 
-	lock_kernel();
 	switch (cmd) {
 		case FIOCLEX:
 			set_close_on_exec(fd, 1);
@@ -100,8 +95,11 @@ asmlinkage long sys_ioctl(unsigned int f
 
 			/* Did FASYNC state change ? */
 			if ((flag ^ filp->f_flags) & FASYNC) {
-				if (filp->f_op && filp->f_op->fasync)
+				if (filp->f_op && filp->f_op->fasync) {
+					lock_kernel();
 					error = filp->f_op->fasync(fd, filp, on);
+					unlock_kernel();
+				}
 				else error = -ENOTTY;
 			}
 			if (error != 0)
@@ -125,15 +123,48 @@ asmlinkage long sys_ioctl(unsigned int f
 			break;
 		default:
 			error = -ENOTTY;
-			if (S_ISREG(filp->f_dentry->d_inode->i_mode))
+			if (S_ISREG(filp->f_dentry->d_inode->i_mode)) {
 				error = file_ioctl(filp, cmd, arg);
-			else if (filp->f_op && filp->f_op->ioctl)
-				error = filp->f_op->ioctl(filp->f_dentry->d_inode, filp, cmd, arg);
 	}
+			if (error == -ENOTTY) {
+				unknown=1;
+				goto out;
+			}
+			break;
+	}
+out:
+	*status=error;
+	return unknown;
+}
+
+asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+{	
+	struct file *filp;
+	long error = -EBADF;
+	int fput_needed;
+
+	filp = fget_light(fd, &fput_needed);
+	if (!filp) {
+		goto out2;
+	}
+
+	if (!std_sys_ioctl(fd, cmd, arg, filp, &error)) {
+		goto out;
+	}
+
+	if (filp->f_op && filp->f_op->ioctl_native) {
+		error = filp->f_op->ioctl_native(filp->f_dentry->d_inode,
+						 filp, cmd, arg);
+	} else if (filp->f_op && filp->f_op->ioctl) {
+		lock_kernel();
+		error = filp->f_op->ioctl(filp->f_dentry->d_inode,
+					  filp, cmd, arg);
 	unlock_kernel();
-	fput(filp);
+	}
 
 out:
+	fput_light(filp, fput_needed);
+  out2:
 	return error;
 }
 
diff -p -ruw linux-2.6.10-rc2-orig/include/linux/fs.h linux-2.6.10-rc2/include/linux/fs.h
--- linux-2.6.10-rc2-orig/include/linux/fs.h	2004-11-19 13:38:00.205604344 +0200
+++ linux-2.6.10-rc2/include/linux/fs.h	2004-11-19 13:40:34.688119432 +0200
@@ -915,6 +915,23 @@ struct file_operations {
 	int (*readdir) (struct file *, void *, filldir_t);
 	unsigned int (*poll) (struct file *, struct poll_table_struct *);
 	int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
+	/* The two calls ioctl_native and ioctl_compat described below
+	 * can be used as a replacement for the ioctl call above. They
+	 * take precedence over ioctl: thus if they are set, ioctl is
+	 * not used.  Unlike ioctl, BKL is not taken: drivers manage
+	 * their own locking. */
+
+	/* If ioctl_native is set, it is used instead of ioctl for
+	 * native ioctl syscalls.
+	 * Note that the standard glibc ioctl trims the return code to
+	 * type int, so dont try to put a 64 bit value there.
+	 */
+	long (*ioctl_native) (struct inode *, struct file *, unsigned int, unsigned long);
+	/* If ioctl_compat is set, it is used for a 32 bit compatible
+	 * ioctl (i.e. a 32 bit binary running on a 64 bit OS).
+	 * Note that only the low 32 bit of the return code are passed
+	 * to the user-space application. */
+	long (*ioctl_compat) (struct inode *, struct file *, unsigned int, unsigned long);
 	int (*mmap) (struct file *, struct vm_area_struct *);
 	int (*open) (struct inode *, struct file *);
 	int (*flush) (struct file *);
diff -p -ruw linux-2.6.10-rc2-orig/include/linux/ioctl.h linux-2.6.10-rc2/include/linux/ioctl.h
--- linux-2.6.10-rc2-orig/include/linux/ioctl.h	2004-10-18 23:53:22.000000000 +0200
+++ linux-2.6.10-rc2/include/linux/ioctl.h	2004-11-19 14:05:39.123410504 +0200
@@ -3,5 +3,13 @@
 
 #include <asm/ioctl.h>
 
+/* Handles standard ioctl commands, and returns the result in status.
+   Does nothing and returns non-zero if cmd is not one of the standard commands.
+*/
+
+struct file;
+int std_sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg,
+		  struct file *filp, long *status);
+
 #endif /* _LINUX_IOCTL_H */
 

  reply	other threads:[~2004-12-15  7:46 UTC|newest]

Thread overview: 287+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-15  6:56 unregister_ioctl32_conversion and modules. ioctl32 revisited Andi Kleen
2004-12-15  7:46 ` Michael S. Tsirkin [this message]
2004-12-15  8:00   ` Andi Kleen
2004-12-15  8:21     ` Michael S. Tsirkin
2004-12-15  8:29       ` Andi Kleen
2004-12-15 11:42         ` Michael S. Tsirkin
2004-12-15 13:46           ` Arnd Bergmann
2004-12-15 16:12             ` Andi Kleen
2004-12-15 16:45               ` Arnd Bergmann
2004-12-15 16:57                 ` Andi Kleen
2004-12-15 17:47                   ` Arnd Bergmann
2004-12-15 17:59                     ` Andi Kleen
2004-12-15 18:21                     ` Michael S. Tsirkin
2004-12-16  4:06                       ` Andi Kleen
2004-12-26 22:26                         ` Chris Wedgwood
2004-12-26 22:49                           ` [discuss] " Arnd Bergmann
2004-12-27 11:49                             ` [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited Michael S. Tsirkin
2005-01-05 15:25                             ` Michael S. Tsirkin
2005-01-05 16:07                               ` Arnd Bergmann
2004-12-15 18:20   ` unregister_ioctl32_conversion and modules. ioctl32 revisited Takashi Iwai
2004-12-15 18:30     ` Lee Revell
2004-12-15 19:34       ` Michael S. Tsirkin
2004-12-15 19:34         ` Michael S. Tsirkin
2004-12-16  5:03       ` [discuss] " Andi Kleen
2004-12-16  5:03         ` Andi Kleen
2004-12-16  7:53         ` Ingo Molnar
2004-12-16  8:09           ` Andi Kleen
2004-12-16  8:25             ` Andrew Morton
2004-12-16  8:25               ` Andrew Morton
2004-12-16  8:30               ` Michael S. Tsirkin
2004-12-16  8:38               ` Andi Kleen
2004-12-17  1:43 ` [PATCH] " Michael S. Tsirkin
2004-12-16 16:08   ` Christoph Hellwig
2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
2005-01-03 10:07     ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 17:19       ` 2.6.10-mm1 Jesse Barnes
2005-01-03 23:29         ` 2.6.10-mm1 [failure on AMD64] Rafael J. Wysocki
2005-01-03 23:30           ` Jesse Barnes
2005-01-04 11:23           ` Thomas Molina
2005-01-04 13:22             ` Rafael J. Wysocki
2005-01-04 12:22           ` Andi Kleen
2005-01-04 21:05             ` Rafael J. Wysocki
2005-01-06 11:32       ` 2.6.10-mm1 Christoph Hellwig
2005-01-06 13:04         ` 2.6.10-mm1 David Howells
2005-01-06 13:06           ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 10:25     ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 13:21       ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 13:35       ` 2.6.10-mm1 Michael S. Tsirkin
2005-01-03 11:48     ` 2.6.10-mm1 Christoph Hellwig
2005-01-05 17:27       ` 2.6.10-mm1 Hans Reiser
2005-01-06 13:52         ` 2.6.10-mm1 Vladimir Saveliev
2005-01-07 14:46           ` 2.6.10-mm1 Christoph Hellwig
2005-01-07 17:16             ` [RFC] per thread page reservation patch Vladimir Saveliev
2005-01-07 18:48               ` Andrew Morton
2005-01-07 18:48                 ` Andrew Morton
2005-01-07 20:21                 ` Nikita Danilov
2005-01-07 20:21                   ` Nikita Danilov
2005-01-07 19:05               ` Christoph Hellwig
2005-01-07 19:05                 ` Christoph Hellwig
2005-01-07 19:12                 ` Christoph Hellwig
2005-01-07 19:12                   ` Christoph Hellwig
2005-01-07 19:21                 ` Robert Love
2005-01-07 19:21                   ` Robert Love
2005-01-07 20:48                 ` Nikita Danilov
2005-01-07 20:48                   ` Nikita Danilov
2005-01-07 20:54                   ` Christoph Hellwig
2005-01-07 20:54                     ` Christoph Hellwig
2005-01-07 21:00                     ` Nikita Danilov
2005-01-07 21:00                       ` Nikita Danilov
2005-01-07 21:07                       ` Christoph Hellwig
2005-01-07 21:07                         ` Christoph Hellwig
2005-01-07 19:14               ` Paulo Marques
2005-01-07 19:14                 ` Paulo Marques
2005-01-07 19:32                 ` Christoph Hellwig
2005-01-07 19:32                   ` Christoph Hellwig
2005-01-07 19:42                   ` Andi Kleen
2005-01-07 19:42                     ` Andi Kleen
2005-01-07 20:55                 ` Nikita Danilov
2005-01-07 20:55                   ` Nikita Danilov
2005-01-07 21:24                   ` Andrew Morton
2005-01-07 21:24                     ` Andrew Morton
2005-01-07 21:24                     ` Andi Kleen
2005-01-07 21:24                       ` Andi Kleen
2005-01-07 22:12                     ` Nikita Danilov
2005-01-07 22:12                       ` Nikita Danilov
2005-01-07 23:03                       ` Andrew Morton
2005-01-07 23:03                         ` Andrew Morton
2005-01-07 23:17                         ` Nikita Danilov
2005-01-07 23:17                           ` Nikita Danilov
2005-01-07 23:43                           ` Andrew Morton
2005-01-07 23:43                             ` Andrew Morton
2005-01-08 12:44                             ` Nikita Danilov
2005-01-08 12:44                               ` Nikita Danilov
2005-01-08 13:43                               ` Hugh Dickins
2005-01-08 13:43                                 ` Hugh Dickins
2005-01-09 11:35                             ` Marcelo Tosatti
2005-01-09 11:35                               ` Marcelo Tosatti
2005-01-09 18:16                               ` Nikita Danilov
2005-01-09 18:16                                 ` Nikita Danilov
2005-01-25 16:39                     ` reiser4 core patches: [Was: [RFC] per thread page reservation patch] Vladimir Saveliev
2005-01-25 16:39                       ` Vladimir Saveliev
2005-01-27 10:37                       ` Adrian Bunk
2005-01-27 10:37                         ` Adrian Bunk
2005-01-27 11:01                       ` Christoph Hellwig
2005-01-27 11:01                         ` Christoph Hellwig
2005-01-03 11:51     ` 2.6.10-mm1 Christoph Hellwig
2005-01-04  9:04       ` 2.6.10-mm1 Ingo Molnar
2005-01-04  9:26         ` 2.6.10-mm1 Christoph Hellwig
2005-01-04  9:33           ` 2.6.10-mm1 Ingo Molnar
2005-01-03 15:13     ` 2.6.10-mm1 William Lee Irwin III
2005-01-03 17:17     ` 2.6.10-mm1 Jesse Barnes
2005-01-05 22:38       ` 2.6.10-mm1 Matthew Dobson
2005-01-03 20:42     ` [PATCH] pktcdvd: make two functions static Peter Osterlund
2005-01-03 20:45       ` [PATCH] pktcdvd: grep-friendly function prototypes Peter Osterlund
2005-01-03 20:47         ` [PATCH] pktcdvd: Small documentation update Peter Osterlund
2005-01-03 20:53           ` [PATCH] isofs: Remove useless include Peter Osterlund
2005-01-03 20:58             ` [PATCH] synaptics: Remove unused struct member variable Peter Osterlund
2005-01-03 22:25       ` [PATCH] pktcdvd: make two functions static Bartlomiej Zolnierkiewicz
2005-01-04  9:08     ` 2.6.10-mm1 Ingo Molnar
2005-01-05 14:40     ` [PATCH] deprecate (un)register_ioctl32_conversion Michael S. Tsirkin
2005-01-05 14:46       ` Christoph Hellwig
2005-01-05 15:03         ` Michael S. Tsirkin
2005-01-05 15:11           ` Christoph Hellwig
2005-01-05 21:33           ` Andrew Morton
2005-01-06 14:41             ` Michael S. Tsirkin
2005-01-06 14:55               ` Christoph Hellwig
2005-01-06 15:22                 ` Michael S. Tsirkin
2005-01-06 15:30                   ` Christoph Hellwig
2005-01-06 15:56                     ` Michael S. Tsirkin
2005-01-05 15:19         ` Andi Kleen
2005-01-05 15:55           ` Christoph Hellwig
2005-01-05 18:23       ` Takashi Iwai
2005-01-05 18:23         ` Takashi Iwai
2005-01-05 21:34         ` Andrew Morton
2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
2005-01-06  8:39             ` 2.6.10-mm2 Nick Piggin
2005-01-06  9:11             ` 2.6.10-mm2 Eyal Lebedinsky
2005-01-06  9:24               ` 2.6.10-mm2 Andrew Morton
2005-01-06  9:27               ` 2.6.10-mm2 Christoph Hellwig
2005-01-06 10:17             ` 2.6.10-mm2 Juri Prokofjev
2005-01-06 14:54               ` 2.6.10-mm2 Dave Airlie
2005-01-06 10:17             ` [PATCH 2.6.10-mm2] m32r: build fix Hirokazu Takata
2005-01-06 10:47             ` 2.6.10-mm2 Christoph Hellwig
2005-01-06 11:19             ` 2.6.10-mm2 error: redefinition of `struct cfq_io_context' Helge Hafting
2005-01-06 14:21               ` Helge Hafting
2005-01-06 12:06             ` 2.6.10-mm2 Marcos D. Marado Torres
2005-01-11 14:08               ` acpi_power_off on 2.6.10-mm3 WAS: 2.6.10-mm2 Marcos D. Marado Torres
2005-01-06 12:48             ` 2.6.10-mm2 Sam Ravnborg
2005-01-06 18:15               ` 2.6.10-mm2 Felipe Alfaro Solana
2005-01-06 14:51             ` [PATCH] fget_light/fput_light for ioctls Michael S. Tsirkin
2005-01-06 16:18               ` [PATCH] fget_light/fput_light for ioctls (fixed) Michael S. Tsirkin
2005-01-06 15:00             ` [patch] 2.6.10-mm2: remove umsdos MAINTAINERS entry Adrian Bunk
2005-01-06 15:03             ` [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency Adrian Bunk
2005-01-06 15:03               ` Adrian Bunk
2005-01-08 20:18               ` Jörn Engel
2005-01-08 20:18                 ` Jörn Engel
2005-01-06 17:11             ` 2.6.10-mm2 Alexander Gran
2005-01-06 17:55               ` 2.6.10-mm2 Diego Calleja
2005-01-06 18:17                 ` 2.6.10-mm2 Marc Ballarin
2005-01-06 17:48             ` 2.6.10-mm2: swsusp regression Rafael J. Wysocki
2005-01-06 22:52               ` Pavel Machek
2005-01-06 23:41                 ` Rafael J. Wysocki
2005-01-06 23:48                   ` Pavel Machek
2005-01-07  0:24                     ` Nigel Cunningham
2005-01-07  0:29                       ` Pavel Machek
2005-01-07  0:45                         ` Nigel Cunningham
2005-01-07 12:45                     ` Rafael J. Wysocki
2005-01-07 22:12                       ` Nigel Cunningham
2005-01-08  0:56                         ` Rafael J. Wysocki
2005-01-08  9:49                           ` 2.6.10-mm2: swsusp regression [update] Rafael J. Wysocki
2005-01-08  9:56                             ` Nigel Cunningham
2005-01-08 13:19                             ` Pavel Machek
2005-01-08 15:10                               ` Rafael J. Wysocki
2005-01-08 15:44                                 ` Pavel Machek
2005-01-12 18:51                                   ` Rafael J. Wysocki
2005-01-12 21:01                                     ` Pavel Machek
2005-01-12 22:44                                       ` Rafael J. Wysocki
2005-01-12 22:46                                         ` Pavel Machek
2005-01-12 22:58                                           ` Nigel Cunningham
2005-01-12 23:02                                           ` Rafael J. Wysocki
2005-01-12 23:28                                             ` Nigel Cunningham
2005-01-13  0:59                                               ` [PATCH] Fix a bug in timer_suspend() on x86_64 Rafael J. Wysocki
2005-01-13 10:08                                                 ` Pavel Machek
2005-01-13 10:14                                                   ` Nigel Cunningham
2005-01-13 19:47                                                 ` Andi Kleen
2005-01-08 17:22                                 ` 2.6.10-mm2: swsusp regression [update] Barry K. Nathan
2005-01-06 17:57             ` [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED Adrian Bunk
2005-01-07  6:20               ` Paul Jackson
2005-01-06 18:15             ` [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS Adrian Bunk
2005-05-19  6:25               ` Adrian Bunk
2005-01-06 19:27               ` Ralf Baechle
2005-01-06 19:35                 ` Ilya A. Volynets-Evenbakh
2005-05-19  6:25                   ` Ilya A. Volynets-Evenbakh
2005-01-06 19:46                   ` Greg KH
2005-05-19  6:25                     ` Greg KH
2005-01-07  9:12                     ` Ladislav Michl
2005-05-19  6:25                       ` Ladislav Michl
2005-01-07 19:14                       ` Greg KH
2005-01-06 20:30             ` 2.6.10-mm2 Ramón Rey Vicente
2005-01-07  9:39             ` 2.6.10-mm2 Benoit Boissinot
2005-01-07 13:13               ` 2.6.10-mm2 Brice Goglin
2005-01-09  1:26                 ` 2.6.10-mm2 Dave Airlie
2005-01-09  8:55                   ` 2.6.10-mm2 Brice Goglin
2005-01-08  2:43               ` 2.6.10-mm2 Dave Airlie
2005-01-08 12:27                 ` 2.6.10-mm2 Benoit Boissinot
2005-01-08 13:42                   ` 2.6.10-mm2 Dave Airlie
2005-01-08 14:18                     ` 2.6.10-mm2 Marc Ballarin
2005-01-09  1:23                       ` 2.6.10-mm2 Dave Airlie
2005-01-08 16:46                     ` 2.6.10-mm2 Mike Werner
2005-01-08 13:48                   ` 2.6.10-mm2 Dave Airlie
2005-01-08 15:41                     ` 2.6.10-mm2 Benoit Boissinot
2005-01-09  1:38                       ` 2.6.10-mm2 Dave Airlie
2005-01-09 14:09                         ` 2.6.10-mm2 Benoit Boissinot
2005-01-09 14:15                           ` 2.6.10-mm2 Brice Goglin
2005-01-10  7:40                             ` 2.6.10-mm2 Dave Airlie
2005-01-10  7:49                               ` 2.6.10-mm2 Brice Goglin
     [not found]                                 ` <21d7e9970501100101353cf602@mail.gmail.com>
2005-01-10 10:14                                   ` 2.6.10-mm2 solved Brice Goglin
2005-01-10 16:41                                     ` Brice Goglin
2005-01-08  1:31             ` AGP Oops (was Re: 2.6.10-mm2) Sean Neakums
2005-01-08  1:36               ` Andrew Morton
2005-01-08 13:01                 ` Sean Neakums
2005-01-06 14:06           ` [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat Michael S. Tsirkin
2005-01-06 14:53             ` Christoph Hellwig
2005-01-06 15:09               ` Andi Kleen
2005-01-06 15:14                 ` Christoph Hellwig
2005-01-06 15:22                   ` Lee Revell
2005-01-06 15:31                     ` Christoph Hellwig
2005-01-06 15:38                       ` Lee Revell
     [not found]                         ` <20050106154327.GA19781@infradead.org>
2005-01-06 16:21                           ` new home for alsa-devel archive? (was Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat) Lee Revell
2005-01-06 17:55                             ` new home for alsa-devel archive? Måns Rullgård
2005-01-07  4:26                               ` Eric Dantan Rzewnicki
2005-01-06 19:03                       ` [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat Catalin Marinas
2005-01-06 15:37                   ` Andi Kleen
2005-01-06 16:58                   ` Petr Vandrovec
2005-01-06 16:35               ` Petr Vandrovec
2005-01-06 16:39                 ` Christoph Hellwig
2005-01-06 16:57                 ` Andi Kleen
2005-01-06 17:26                   ` Petr Vandrovec
2005-01-06 17:53                     ` Andi Kleen
2005-01-06 18:19                       ` Petr Vandrovec
2005-01-06 19:35                       ` Greg KH
2005-01-06 19:51                         ` Andi Kleen
2005-01-06 19:59                           ` David S. Miller
2005-01-06 20:44                             ` Andi Kleen
2005-01-06 21:09                               ` Petr Vandrovec
2005-01-06 21:24                                 ` Greg KH
2005-01-06 21:59                                   ` [linux-usb-devel] " David Brownell
2005-01-06 22:48                                     ` Greg KH
2005-01-07 11:49                       ` [discuss] " Arnd Bergmann
2005-01-07 12:30                         ` Andi Kleen
2005-01-06 22:34                 ` Pavel Machek
2005-01-12 20:36             ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Michael S. Tsirkin
2005-01-12 21:29               ` Greg KH
2005-01-12 21:43                 ` Andi Kleen
2005-01-12 22:52                   ` Greg KH
2005-01-12 23:10                     ` Andrew Morton
2005-01-12 23:16                       ` Greg KH
2005-01-16  5:38                         ` Werner Almesberger
2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
2005-01-20  6:53                         ` 2.6.11-rc1-mm2: CONFIG_SMP=n compile error Adrian Bunk
2005-01-20  7:12                           ` Andrew Morton
2005-01-20 17:44                             ` Rafael J. Wysocki
2005-01-20  9:57                         ` 2.6.11-rc1-mm2 Steffen Klassert
2005-01-20 10:39                           ` 2.6.11-rc1-mm2 Christoph Hellwig
2005-01-20 11:40                         ` 2.6.11-rc1-mm2 Benoit Boissinot
2005-01-20 11:49                           ` 2.6.11-rc1-mm2 Benoit Boissinot
2005-01-20 11:58                         ` 2.6.11-rc1-mm2 Christoph Hellwig
2005-01-21  0:09                         ` security hook missing in compat ioctl in 2.6.11-rc1-mm2 Michael S. Tsirkin
2005-01-21  0:10                           ` Chris Wright
2005-01-21  1:26                           ` [PATCH] compat ioctl security hook fixup Chris Wright
2005-01-21  4:19                             ` Andi Kleen
2005-01-21  5:51                               ` Chris Wright
2005-01-21  6:11                                 ` Andi Kleen
2005-01-21  6:35                                   ` [PATCH] compat ioctl security hook fixup (take2) Chris Wright
2005-01-21  8:06                         ` 2.6.11-rc1-mm2 Con Kolivas
2005-01-21  8:30                           ` 2.6.11-rc1-mm2 Andrew Morton
2005-01-21  8:34                           ` 2.6.11-rc1-mm2 Andrew Morton
2005-01-21  8:37                             ` 2.6.11-rc1-mm2 Con Kolivas
2005-01-21 12:48                           ` 2.6.11-rc1-mm2 Adrian Bunk
2005-01-21 22:29                             ` 2.6.11-rc1-mm2 Con Kolivas
2005-01-21 22:43                         ` [PATCH] sched: account rt_tasks as iso_ticks Con Kolivas
2005-02-01  0:34                         ` 2.6.11-rc1-mm2 Ed Tomlinson
2005-02-03 16:36                           ` 2.6.11-rc1-mm2 Alexander Nyberg
2005-01-12 22:13                 ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Andreas Dilger
2005-01-12 22:58                   ` Greg KH
2005-01-13 10:57                     ` Takashi Iwai
  -- strict thread matches above, loose matches on Subject: below --
2004-12-15 22:10 unregister ioctl32 conversion and modules. ioctl32 revisited 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=20041215074635.GC11501@mellanox.co.il \
    --to=mst@mellanox.co.il \
    --cc=ak@suse.de \
    --cc=discuss@x86-64.org \
    --cc=gordon.jin@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@suse.cz \
    /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.