linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* unregister_ioctl32_conversion and modules. ioctl32 revisited.
@ 2004-12-15  6:56 Andi Kleen
  2004-12-15  7:46 ` Michael S. Tsirkin
  2004-12-17  1:43 ` [PATCH] " Michael S. Tsirkin
  0 siblings, 2 replies; 246+ messages in thread
From: Andi Kleen @ 2004-12-15  6:56 UTC (permalink / raw)
  To: mst, linux-kernel; +Cc: pavel, discuss, gordon.jin

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

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  6:56 unregister_ioctl32_conversion and modules. ioctl32 revisited Andi Kleen
@ 2004-12-15  7:46 ` Michael S. Tsirkin
  2004-12-15  8:00   ` Andi Kleen
  2004-12-15 18:20   ` unregister_ioctl32_conversion and modules. ioctl32 revisited Takashi Iwai
  2004-12-17  1:43 ` [PATCH] " Michael S. Tsirkin
  1 sibling, 2 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-15  7:46 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel, pavel, discuss, gordon.jin

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 */
 

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  7:46 ` Michael S. Tsirkin
@ 2004-12-15  8:00   ` Andi Kleen
  2004-12-15  8:21     ` Michael S. Tsirkin
  2004-12-15 18:20   ` unregister_ioctl32_conversion and modules. ioctl32 revisited Takashi Iwai
  1 sibling, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-15  8:00 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

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

Good point.  It is the first step towards BKL less native ioctls. So it's 
certainly a good idea even for the non compat case.

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

Patch looks good to me, except for some messed up white space
that is probably easily fixed.

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

I doubt any of the compat wrappers need BKL, they never touch
any global state and then just call sys_ioctl which takes the BKL
only when needed.

Ok there is a slight possibility that out of tree code wrote
compat wrappers that need BKL, but in that case they will just
have to deal with the bugs. Removing register_ioctl32_conversion
and some comments would take care of them anyways.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  8:00   ` Andi Kleen
@ 2004-12-15  8:21     ` Michael S. Tsirkin
  2004-12-15  8:29       ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-15  8:21 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel, pavel, discuss, gordon.jin

Hello!
Quoting r. Andi Kleen (ak@suse.de) "Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.":
> > 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.
> 
> Good point.  It is the first step towards BKL less native ioctls. So it's 
> certainly a good idea even for the non compat case.
> 
> > 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.
> 
> Patch looks good to me, except for some messed up white space
> that is probably easily fixed.

I did try so .. Where? :)

> > 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.
> 
> I doubt any of the compat wrappers need BKL, they never touch
> any global state and then just call sys_ioctl which takes the BKL
> only when needed.
> 
> Ok there is a slight possibility that out of tree code wrote
> compat wrappers that need BKL, but in that case they will just
> have to deal with the bugs. Removing register_ioctl32_conversion
> and some comments would take care of them anyways.

I mean out of tree code can just implement ioctl_compat by taking the BKL
if it needs it.

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  8:21     ` Michael S. Tsirkin
@ 2004-12-15  8:29       ` Andi Kleen
  2004-12-15 11:42         ` Michael S. Tsirkin
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-15  8:29 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

On Wed, Dec 15, 2004 at 10:21:28AM +0200, Michael S. Tsirkin wrote:
> > > 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.
> > 
> > Patch looks good to me, except for some messed up white space
> > that is probably easily fixed.
> 
> I did try so .. Where? :)

Most of it actually. But perhaps your mailer just messed up the patch?

Anyways, if there are no negative comments I would recommend you
submit your patch (preferably in a non messed up form) to akpm@osdl.org
for inclusion into -mm*. The other parts of the proposal (converting
the existing users and deprecating register_ioctl32_conversion) could be 
attacked then.

There is also some related work that could be done easily then,
e.g. the network stack ioctls currently drop the BKL as first thing.
With ioctl_native that could be probably done better. There may 
be other such low hanging fruit areas too.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  8:29       ` Andi Kleen
@ 2004-12-15 11:42         ` Michael S. Tsirkin
  2004-12-15 13:46           ` Arnd Bergmann
  0 siblings, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-15 11:42 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel, pavel, discuss, gordon.jin

Hello!
Quoting r. Andi Kleen (ak@suse.de) "Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.":
> On Wed, Dec 15, 2004 at 10:21:28AM +0200, Michael S. Tsirkin wrote:
> > > > 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.
> > > 
> > > Patch looks good to me, except for some messed up white space
> > > that is probably easily fixed.
> > 
> > I did try so .. Where? :)
> 
> Most of it actually. But perhaps your mailer just messed up the patch?
> 
> Anyways, if there are no negative comments I would recommend you
> submit your patch (preferably in a non messed up form) to akpm@osdl.org
> for inclusion into -mm*. The other parts of the proposal (converting
> the existing users and deprecating register_ioctl32_conversion) could be 
> attacked then.
> 
> There is also some related work that could be done easily then,
> e.g. the network stack ioctls currently drop the BKL as first thing.
> With ioctl_native that could be probably done better. There may 
> be other such low hanging fruit areas too.
> 
> -Andi

OK, so here's a cleaned-up version, against 2.6.10-rc3.
Please comment (and please Cc me, I'm not on the list).
If there are no negative comments I will try to submit to akpm@osdl.org

Andi, I'm trying again with an in-line patch,
if the white-space is mangled by the mail system again,
please let me know so I know to resend as an attachment.

Thanks,
MST

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

diff -rpu linux-2.6.10-rc3-orig/Documentation/filesystems/Locking linux-2.6.10-rc3/Documentation/filesystems/Locking
--- linux-2.6.10-rc3-orig/Documentation/filesystems/Locking	2004-12-15 11:22:12.412171568 +0200
+++ linux-2.6.10-rc3/Documentation/filesystems/Locking	2004-12-15 11:24:47.441603512 +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 -rpu linux-2.6.10-rc3-orig/include/linux/fs.h linux-2.6.10-rc3/include/linux/fs.h
--- linux-2.6.10-rc3-orig/include/linux/fs.h	2004-12-15 11:22:15.977629536 +0200
+++ linux-2.6.10-rc3/include/linux/fs.h	2004-12-15 11:24:47.444603056 +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 -rpu linux-2.6.10-rc3-orig/include/linux/ioctl.h linux-2.6.10-rc3/include/linux/ioctl.h
--- linux-2.6.10-rc3-orig/include/linux/ioctl.h	2004-10-18 23:53:22.000000000 +0200
+++ linux-2.6.10-rc3/include/linux/ioctl.h	2004-12-15 11:24:47.445602904 +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 */
 
diff -rpu linux-2.6.10-rc3-orig/fs/ioctl.c linux-2.6.10-rc3/fs/ioctl.c
--- linux-2.6.10-rc3-orig/fs/ioctl.c	2004-12-15 11:22:15.397717696 +0200
+++ linux-2.6.10-rc3/fs/ioctl.c	2004-12-15 13:09:30.314461656 +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,21 @@ 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);
+	if (error)
                 goto out;
-        }
 
-	lock_kernel();
 	switch (cmd) {
 		case FIOCLEX:
 			set_close_on_exec(fd, 1);
@@ -100,8 +94,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 +122,46 @@ 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);
 	}
-	unlock_kernel();
-	fput(filp);
+			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();
+	}
 
 out:
+	fput_light(filp, fput_needed);
+out2:
 	return error;
 }
 
diff -rpu linux-2.6.10-rc3-orig/fs/compat.c linux-2.6.10-rc3/fs/compat.c
--- linux-2.6.10-rc3-orig/fs/compat.c	2004-12-15 11:22:15.332727576 +0200
+++ linux-2.6.10-rc3/fs/compat.c	2004-12-15 13:03:22.778335640 +0200
@@ -401,15 +401,19 @@ 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 +429,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 +473,7 @@ asmlinkage long compat_sys_ioctl(unsigne
 		}
 	}
 out:
-	fput(filp);
+	fput_light(filp, fput_needed);
 out2:
 	return error;
 }

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 11:42         ` Michael S. Tsirkin
@ 2004-12-15 13:46           ` Arnd Bergmann
  2004-12-15 16:12             ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: Arnd Bergmann @ 2004-12-15 13:46 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

[-- Attachment #1: Type: text/plain, Size: 967 bytes --]

On Middeweken 15 Dezember 2004 12:42, Michael S. Tsirkin wrote:
> +       /* 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. */

I don't really understand how this should deal with drivers that have
both generic and private ioctl conversion handlers. E.g. 
drivers/s390/block/dasd*.c want to go through the handlers in 
fs/compat_ioctl.c for stuff like BLKGETSIZE, while it also allows
third party modules to dynamically register additional ioctls.
See drivers/s390/block/dasd_cmb.c for an example, I think EMC are
doing something similar to support their drives.

If the dasd driver now implements an ioctl_compat() method, who will
call the standard conversion handlers?

 Arnd <><



[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 13:46           ` Arnd Bergmann
@ 2004-12-15 16:12             ` Andi Kleen
  2004-12-15 16:45               ` Arnd Bergmann
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-15 16:12 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Michael S. Tsirkin, Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

> I don't really understand how this should deal with drivers that have
> both generic and private ioctl conversion handlers. E.g. 
> drivers/s390/block/dasd*.c want to go through the handlers in 
> fs/compat_ioctl.c for stuff like BLKGETSIZE, while it also allows
> third party modules to dynamically register additional ioctls.
> See drivers/s390/block/dasd_cmb.c for an example, I think EMC are
> doing something similar to support their drives.
> 
> If the dasd driver now implements an ioctl_compat() method, who will
> call the standard conversion handlers?

How about just calling back to a special function from these
special ioctl handlers?

-Andi


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 16:12             ` Andi Kleen
@ 2004-12-15 16:45               ` Arnd Bergmann
  2004-12-15 16:57                 ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: Arnd Bergmann @ 2004-12-15 16:45 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Michael S. Tsirkin, linux-kernel, pavel, discuss, gordon.jin

[-- Attachment #1: Type: text/plain, Size: 857 bytes --]

On Middeweken 15 Dezember 2004 17:12, Andi Kleen wrote:
> > 
> > If the dasd driver now implements an ioctl_compat() method, who will
> > call the standard conversion handlers?
> 
> How about just calling back to a special function from these
> special ioctl handlers?
> 
Sorry, I don't understand. AFAICS, if the driver does not have a
ioctl_compat() file op, it will only be called for those ioctl numbers
that are registered in fs/compat_ioctl.c, but not for the ones that were
added by a third party module.
If it has a ioctl_compat() function, it can handle its own ioctls including
those that are dynamically added, but not any generic ones that have static
conversion functions in fs/compat_ioctl.c. Do you mean it should call back
from its private ioctl_compat() function to the global ioctl32_hash_table[]
lookup?

 Arnd <><



[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 16:45               ` Arnd Bergmann
@ 2004-12-15 16:57                 ` Andi Kleen
  2004-12-15 17:47                   ` Arnd Bergmann
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-15 16:57 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Andi Kleen, Michael S. Tsirkin, linux-kernel, pavel, discuss, gordon.jin

> Do you mean it should call back
> from its private ioctl_compat() function to the global ioctl32_hash_table[]
> lookup?

Yes.

Some ioctl paths already work this way, e.g. in the block layer.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  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
  0 siblings, 2 replies; 246+ messages in thread
From: Arnd Bergmann @ 2004-12-15 17:47 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Michael S. Tsirkin, linux-kernel, pavel, discuss, gordon.jin

[-- Attachment #1: Type: text/plain, Size: 868 bytes --]

On Middeweken 15 Dezember 2004 17:57, Andi Kleen wrote:
> > Do you mean it should call back
> > from its private ioctl_compat() function to the global ioctl32_hash_table[]
> > lookup?
> 
> Yes.
> 
> Some ioctl paths already work this way, e.g. in the block layer.

Hmm. I just had another idea. Maybe it's easier to return -ENOIOCTLCMD
from ->ioctl_compat() in order to get back to the hash lookup. How
about the change below?

      Arnd <><

--- mst/fs/compat.c
+++ arnd/fs/compat.c
@@ somewhere in compat_sys_ioctl() @@
        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;
+               if (error != -ENOIOCTLCMD)
+                        goto out;
        }
 



[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 17:47                   ` Arnd Bergmann
@ 2004-12-15 17:59                     ` Andi Kleen
  2004-12-15 18:21                     ` Michael S. Tsirkin
  1 sibling, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2004-12-15 17:59 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Andi Kleen, Michael S. Tsirkin, linux-kernel, pavel, discuss, gordon.jin

> Hmm. I just had another idea. Maybe it's easier to return -ENOIOCTLCMD
> from ->ioctl_compat() in order to get back to the hash lookup. How
> about the change below?

Looks good too to me.

-Andi

> 
>       Arnd <><
> 
> --- mst/fs/compat.c
> +++ arnd/fs/compat.c
> @@ somewhere in compat_sys_ioctl() @@
>         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;
> +               if (error != -ENOIOCTLCMD)
> +                        goto out;
>         }
>  
> 
> 



^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  7:46 ` Michael S. Tsirkin
  2004-12-15  8:00   ` Andi Kleen
@ 2004-12-15 18:20   ` Takashi Iwai
  2004-12-15 18:30     ` Lee Revell
  1 sibling, 1 reply; 246+ messages in thread
From: Takashi Iwai @ 2004-12-15 18:20 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

At Wed, 15 Dec 2004 09:46:35 +0200,
Michael S. Tsirkin wrote:
> 
> 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 like the idea very well.  Other benifits in addition:

3. Can avoid conflict of ioctls with the same value since the
   convertor is registered locally.

4. Can reject unsupported ioctls for the device (but may be valid for
   other devices) before converting the data - the same reason as
   above.

--
Takashi Iwai <tiwai@suse.de>		ALSA Developer - www.alsa-project.org

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-15 18:21 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

Hello!
Quoting r. Arnd Bergmann (arnd@arndb.de) "Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.":
> On Middeweken 15 Dezember 2004 17:57, Andi Kleen wrote:
> > > Do you mean it should call back
> > > from its private ioctl_compat() function to the global
> ioctl32_hash_table[]
> > > lookup?
> > 
> > Yes.
> > 
> > Some ioctl paths already work this way, e.g. in the block layer.
> 
> Hmm. I just had another idea. Maybe it's easier to return -ENOIOCTLCMD
> from ->ioctl_compat() in order to get back to the hash lookup. How
> about the change below?
> 
>       Arnd <><
> 
> --- mst/fs/compat.c
> +++ arnd/fs/compat.c
> @@ somewhere in compat_sys_ioctl() @@
>         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;
> +               if (error != -ENOIOCTLCMD)
> +                        goto out;
>         }
>  

But what if you really wanted to return -ENOIOCTLCMD?
And, the idea was to get rid of the hash eventually?

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  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-16  5:03       ` [discuss] " Andi Kleen
  0 siblings, 2 replies; 246+ messages in thread
From: Lee Revell @ 2004-12-15 18:30 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Michael S. Tsirkin, Andi Kleen, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, Ingo Molnar

On Wed, 2004-12-15 at 19:20 +0100, Takashi Iwai wrote:
> At Wed, 15 Dec 2004 09:46:35 +0200,
> Michael S. Tsirkin wrote:
> > 
> > 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 like the idea very well.  Other benifits in addition:
> 

How does this all relate to Ingo's ->unlocked_ioctl stuff which is "an
official way to do BKL-less ioctls"?

http://lkml.org/lkml/2004/12/14/53

Lee


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 18:30     ` Lee Revell
@ 2004-12-15 19:34       ` Michael S. Tsirkin
  2004-12-16  5:03       ` [discuss] " Andi Kleen
  1 sibling, 0 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-15 19:34 UTC (permalink / raw)
  To: Lee Revell
  Cc: Takashi Iwai, Andi Kleen, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, Ingo Molnar

Hello!
Quoting r. Lee Revell (rlrevell@joe-job.com) "Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.":
> On Wed, 2004-12-15 at 19:20 +0100, Takashi Iwai wrote:
> > At Wed, 15 Dec 2004 09:46:35 +0200,
> > Michael S. Tsirkin wrote:
> > > 
> > > 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 like the idea very well.  Other benifits in addition:
> > 
> 
> How does this all relate to Ingo's ->unlocked_ioctl stuff which is "an
> official way to do BKL-less ioctls"?
> 
> http://lkml.org/lkml/2004/12/14/53
> 
> Lee

It conflicts :) When I wrote the original patch for 2.6.8.1
I didnt see the unlocked_ioctl.patch.

unlocked_ioctl is the same as ioctl_native in my patch, except that

1. I added more documentation in several places :)
   (notably Documentation/filesystems/Locking)

2. I thought it a bit silly to name a function for what
   it does not do (does not take a lock), and we
   still need a call for the compat layer.

My patch adds another call to enable special handling
for 32 bit ioctls on 64 bit systems.

I could look at porting to -rc3-mm1, unless
we dont want to back unlocked_ioctl.patch off.
What do people here think?

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 18:21                     ` Michael S. Tsirkin
@ 2004-12-16  4:06                       ` Andi Kleen
  2004-12-26 22:26                         ` Chris Wedgwood
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-16  4:06 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Arnd Bergmann, Andi Kleen, linux-kernel, pavel, discuss, gordon.jin

> But what if you really wanted to return -ENOIOCTLCMD?

It's an internal error code as Arnd pointed out.

> And, the idea was to get rid of the hash eventually?

Just rid of the dynamic hash changes. I don't have any plans 
to convert all the static ioctls in fs/compat_ioctl.c (that would
be a lot of work without clear gain) 

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15 18:30     ` Lee Revell
  2004-12-15 19:34       ` Michael S. Tsirkin
@ 2004-12-16  5:03       ` Andi Kleen
  2004-12-16  7:53         ` Ingo Molnar
  1 sibling, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-16  5:03 UTC (permalink / raw)
  To: Lee Revell
  Cc: Takashi Iwai, Michael S. Tsirkin, Andi Kleen, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, Ingo Molnar

On Wed, Dec 15, 2004 at 01:30:59PM -0500, Lee Revell wrote:
> On Wed, 2004-12-15 at 19:20 +0100, Takashi Iwai wrote:
> > At Wed, 15 Dec 2004 09:46:35 +0200,
> > Michael S. Tsirkin wrote:
> > > 
> > > 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 like the idea very well.  Other benifits in addition:
> > 
> 
> How does this all relate to Ingo's ->unlocked_ioctl stuff which is "an
> official way to do BKL-less ioctls"?

This is another "official" way which is more powerful. I suppose it will
replace Ingo's patch.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-16  5:03       ` [discuss] " Andi Kleen
@ 2004-12-16  7:53         ` Ingo Molnar
  2004-12-16  8:09           ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: Ingo Molnar @ 2004-12-16  7:53 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Lee Revell, Takashi Iwai, Michael S. Tsirkin, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, Andrew Morton, Greg KH


* Andi Kleen <ak@suse.de> wrote:

> > How does this all relate to Ingo's ->unlocked_ioctl stuff which is "an
> > official way to do BKL-less ioctls"?
> 
> This is another "official" way which is more powerful. I suppose it
> will replace Ingo's patch.

the ALSA changes are mine but i'm otherwise building ontop of the 
following patch in -rc3-mm1:

 http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc3/2.6.10-rc3-mm1/broken-out/unlocked_ioctl.patch

whichever approach gets adopted upstream, the various actors ought to
synchronize a bit more - this is the third approach so far in a very
short interval to get rid of the BKL in ioctls :-)

	Ingo

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-16  7:53         ` Ingo Molnar
@ 2004-12-16  8:09           ` Andi Kleen
  2004-12-16  8:25             ` Andrew Morton
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2004-12-16  8:09 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Andi Kleen, Lee Revell, Takashi Iwai, Michael S. Tsirkin,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel,
	Andrew Morton, Greg KH

On Thu, Dec 16, 2004 at 08:53:01AM +0100, Ingo Molnar wrote:
> 
> * Andi Kleen <ak@suse.de> wrote:
> 
> > > How does this all relate to Ingo's ->unlocked_ioctl stuff which is "an
> > > official way to do BKL-less ioctls"?
> > 
> > This is another "official" way which is more powerful. I suppose it
> > will replace Ingo's patch.
> 
> the ALSA changes are mine but i'm otherwise building ontop of the 
> following patch in -rc3-mm1:
> 
>  http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc3/2.6.10-rc3-mm1/broken-out/unlocked_ioctl.patch
> 
> whichever approach gets adopted upstream, the various actors ought to
> synchronize a bit more - this is the third approach so far in a very
> short interval to get rid of the BKL in ioctls :-)

I think Michael's patch is best (but I'm probably biased) because it addresses
the independent problem of a race in unregister_ioctl32_conversion() too
(and some other smaller issues in ioctl 32bit emulation)

Andrew, could we replace unlocked_ioctl.patch with Michael's patch? Adapting
depending code should be very easy, since only the name of the function
vector has changed.

-Andi


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-16  8:09           ` Andi Kleen
@ 2004-12-16  8:25             ` Andrew Morton
  2004-12-16  8:30               ` Michael S. Tsirkin
  2004-12-16  8:38               ` Andi Kleen
  0 siblings, 2 replies; 246+ messages in thread
From: Andrew Morton @ 2004-12-16  8:25 UTC (permalink / raw)
  To: Andi Kleen
  Cc: mingo, ak, rlrevell, tiwai, mst, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Andi Kleen <ak@suse.de> wrote:
>
> I think Michael's patch is best (but I'm probably biased) because it addresses
>  the independent problem of a race in unregister_ioctl32_conversion() too
>  (and some other smaller issues in ioctl 32bit emulation)

They should be separate patches.

>  Andrew, could we replace unlocked_ioctl.patch with Michael's patch?

Where would one locate Michael's patch?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-16  8:25             ` Andrew Morton
@ 2004-12-16  8:30               ` Michael S. Tsirkin
  2004-12-16  8:38               ` Andi Kleen
  1 sibling, 0 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-16  8:30 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Andi Kleen, mingo, rlrevell, tiwai, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Hello!
Quoting r. Andrew Morton (akpm@osdl.org) "Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.":
> Andi Kleen <ak@suse.de> wrote:
> >
> > I think Michael's patch is best (but I'm probably biased) because it addresses
> >  the independent problem of a race in unregister_ioctl32_conversion() too
> >  (and some other smaller issues in ioctl 32bit emulation)
> 
> They should be separate patches.
> 
> >  Andrew, could we replace unlocked_ioctl.patch with Michael's patch?
> 
> Where would one locate Michael's patch?

Here it is for review (against 2.6.10-rc3) http://lkml.org/lkml/2004/12/15/62
I plan to incorporate Arnd Bergmann's comments and repost later today.

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-16  8:25             ` Andrew Morton
  2004-12-16  8:30               ` Michael S. Tsirkin
@ 2004-12-16  8:38               ` Andi Kleen
  1 sibling, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2004-12-16  8:38 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Andi Kleen, mingo, rlrevell, tiwai, mst, linux-kernel, pavel,
	discuss, gordon.jin, alsa-devel, greg

On Thu, Dec 16, 2004 at 12:25:39AM -0800, Andrew Morton wrote:
> Andi Kleen <ak@suse.de> wrote:
> >
> > I think Michael's patch is best (but I'm probably biased) because it addresses
> >  the independent problem of a race in unregister_ioctl32_conversion() too
> >  (and some other smaller issues in ioctl 32bit emulation)
> 
> They should be separate patches.

The two new methods (ioctl_native and ioctl_compat) are in the same patch
because they basically touch the same piece of code and would be hard
to separate. The other stuff (actually replacing register_ioctl32_conversion and 
converting a few obvious users to use the BKL less fast path) will be addon patches.

> 
> >  Andrew, could we replace unlocked_ioctl.patch with Michael's patch?
> 
> Where would one locate Michael's patch?

See his mail.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] unregister_ioctl32_conversion and modules. ioctl32 revisited.
  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
  1 sibling, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2004-12-16 16:08 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, Andi Kleen, mingo, rlrevell, tiwai, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, greg

> +	long (*ioctl_native) (struct inode *, struct file *, unsigned int,
> +			unsigned long);
> +	long (*ioctl_compat) (struct inode *, struct file *, unsigned int,
> +			unsigned long);

Please remove the struct inode * argument, it's easily retrievable
from file->f_dentry->d_inode.  The ioctl prototype is a leftover from
really old days where that wasn't true.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-15  6:56 unregister_ioctl32_conversion and modules. ioctl32 revisited Andi Kleen
  2004-12-15  7:46 ` Michael S. Tsirkin
@ 2004-12-17  1:43 ` Michael S. Tsirkin
  2004-12-16 16:08   ` Christoph Hellwig
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
  1 sibling, 2 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-17  1:43 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Andi Kleen, mingo, rlrevell, tiwai, mst, linux-kernel, pavel,
	discuss, gordon.jin, alsa-devel, greg

Hello, Andrew!
Since I didnt get any negative comments on this (and some positive)
Andi Kleen suggested I submit the following patch to you.
It boots fine for me, please consider for mainline inclusion.

Dependencies:
The patch below is against 2.6.10-rc3. Please note it replaces
Ingo's ->unlocked_ioctl patch from rc3-mm1, so you have to back that off
before applying mine to mm:

http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc3/2.6.10-rc3-mm1/broken-out/unlocked_ioctl.patch

Please mail me directly with comments since I'm not on the list.

Changes from the last version I posted ( http://lkml.org/lkml/2004/12/15/62 )
- Two whitespace cleanups. I hope its all good now.
- Arnd Bergmann's idea: make it possible to go back from ioctl_compat
  to hash lookup (good for static ioctl tables) by returning -ENOIOCTLCMD
  from ioctl_compat
- Petr Vandrovec's idea: add HAVE_... macros to make it easier for
  out-of-kernel modules to detect the new file_operations.

Description:
The patch introduces two new methods (ioctl_native and ioctl_compat):
ioctl_native is called on native ioctl syscall, without BKL being taken,
and is, in that respect, equivalent to Ingo's unlocked_ioctl (which is
why it conflicts).
ioctl_compat is called on compat (i.e. 32 bit app on 64 bit OS) ioctl,
again without BKL being taken.
If a new call is not defined, default to the old behaviour.
(It should be possible for me to build a patch that applies on top of Ingo's
unlocked_ioctl, if its really needed let me know and I'll look at it the next
week.)


Motivation: Quoting Andi Kleen:
> 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.
> ...

[Snip]

> 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 

There was an additional motivation for my patch:
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)

Comments?

Thanks,
MST

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

diff -rup linux-2.6.10-rc3/Documentation/filesystems/Locking linux-2.6.10-rc3-mstioctl/Documentation/filesystems/Locking
--- linux-2.6.10-rc3/Documentation/filesystems/Locking	2004-12-16 15:20:36.000000000 +0200
+++ linux-2.6.10-rc3-mstioctl/Documentation/filesystems/Locking	2004-12-16 18:25:35.289970464 +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 -rup linux-2.6.10-rc3/include/linux/fs.h linux-2.6.10-rc3-mstioctl/include/linux/fs.h
--- linux-2.6.10-rc3/include/linux/fs.h	2004-12-16 15:20:46.000000000 +0200
+++ linux-2.6.10-rc3-mstioctl/include/linux/fs.h	2004-12-16 18:25:35.291970160 +0200
@@ -900,6 +900,12 @@ typedef struct {
 
 typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
 
+/* These macros are for out of kernel modules to test that
+ * the kernel supports the ioctl_native and ioctl_compat
+ * fields in struct file_operations. */
+#define HAVE_IOCTL_COMPAT 1
+#define HAVE_IOCTL_NATIVE 1
+
 /*
  * NOTE:
  * read, write, poll, fsync, readv, writev can be called
@@ -915,6 +921,24 @@ 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).
+	 * Return -ENOIOCTLCMD if you dont handle it.
+	 * 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 -rup linux-2.6.10-rc3/include/linux/ioctl.h linux-2.6.10-rc3-mstioctl/include/linux/ioctl.h
--- linux-2.6.10-rc3/include/linux/ioctl.h	2004-12-16 15:19:34.000000000 +0200
+++ linux-2.6.10-rc3-mstioctl/include/linux/ioctl.h	2004-12-16 18:25:35.291970160 +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 */
 
diff -rup linux-2.6.10-rc3/fs/ioctl.c linux-2.6.10-rc3-mstioctl/fs/ioctl.c
--- linux-2.6.10-rc3/fs/ioctl.c	2004-12-16 15:20:45.000000000 +0200
+++ linux-2.6.10-rc3-mstioctl/fs/ioctl.c	2004-12-16 18:27:21.000899960 +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,21 @@ 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)
-{	
-	struct file * filp;
+EXPORT_SYMBOL(std_sys_ioctl);
+int std_sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg,
+		  struct file *filp, long *status)
+{
 	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);
+	if (error)
                 goto out;
-        }
 
-	lock_kernel();
 	switch (cmd) {
 		case FIOCLEX:
 			set_close_on_exec(fd, 1);
@@ -100,8 +94,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 +122,46 @@ 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();
 	}
-	unlock_kernel();
-	fput(filp);
 
 out:
+	fput_light(filp, fput_needed);
+out2:
 	return error;
 }
 
diff -rup linux-2.6.10-rc3/fs/compat.c linux-2.6.10-rc3-mstioctl/fs/compat.c
--- linux-2.6.10-rc3/fs/compat.c	2004-12-16 15:20:45.000000000 +0200
+++ linux-2.6.10-rc3-mstioctl/fs/compat.c	2004-12-16 18:26:23.013715352 +0200
@@ -401,16 +401,21 @@ 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);
+		if (error != -ENOIOCTLCMD)
+			goto out;
 	}
 
 	down_read(&ioctl32_sem);
@@ -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;
 }

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-16  4:06                       ` Andi Kleen
@ 2004-12-26 22:26                         ` Chris Wedgwood
  2004-12-26 22:49                           ` [discuss] " Arnd Bergmann
  0 siblings, 1 reply; 246+ messages in thread
From: Chris Wedgwood @ 2004-12-26 22:26 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Michael S. Tsirkin, Arnd Bergmann, linux-kernel, pavel, discuss,
	gordon.jin

On Thu, Dec 16, 2004 at 05:06:08AM +0100, Andi Kleen wrote:

> > But what if you really wanted to return -ENOIOCTLCMD?
>
> It's an internal error code as Arnd pointed out.

can we be sure this will never escape to userspace?  i can think of
somewhere else we already do this (EFSCORRUPTED) and it does (somewhat
deliberately escape to userspace) and this causes confusion from time
to time when applications see 'errno == 990'


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.
  2004-12-26 22:26                         ` Chris Wedgwood
@ 2004-12-26 22:49                           ` 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
  0 siblings, 2 replies; 246+ messages in thread
From: Arnd Bergmann @ 2004-12-26 22:49 UTC (permalink / raw)
  To: discuss
  Cc: Chris Wedgwood, Andi Kleen, Michael S. Tsirkin, linux-kernel,
	pavel, gordon.jin

[-- Attachment #1: Type: text/plain, Size: 802 bytes --]

On Sünndag 26 Dezember 2004 23:26, Chris Wedgwood wrote:
> > It's an internal error code as Arnd pointed out.
> 
> can we be sure this will never escape to userspace?  i can think of
> somewhere else we already do this (EFSCORRUPTED) and it does (somewhat
> deliberately escape to userspace) and this causes confusion from time
> to time when applications see 'errno == 990'

It's safe for the compat ioctl case. If someone wants to use the
same function for the compat and native handler, it would be a bug
to return -ENOIOCTLCMD from that handler with the current code.

To work around this, we could either convert -ENOIOCTLCMD to -EINVAL
when returning from sys_ioctl(). Or we could WARN_ON(err == -ENOIOCTLCMD)
for the native path in order to make the intention clear.

 Arnd <><

[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited.
  2004-12-26 22:49                           ` [discuss] " Arnd Bergmann
@ 2004-12-27 11:49                             ` Michael S. Tsirkin
  2005-01-05 15:25                             ` Michael S. Tsirkin
  1 sibling, 0 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2004-12-27 11:49 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: discuss, Chris Wedgwood, Andi Kleen, linux-kernel, pavel, gordon.jin

Hello!
Quoting r. Arnd Bergmann (arnd@arndb.de) "Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited.":
> On Sünndag 26 Dezember 2004 23:26, Chris Wedgwood wrote:
> > > It's an internal error code as Arnd pointed out.
> > 
> > can we be sure this will never escape to userspace?  i can think of
> > somewhere else we already do this (EFSCORRUPTED) and it does (somewhat
> > deliberately escape to userspace) and this causes confusion from time
> > to time when applications see 'errno == 990'
> 
> It's safe for the compat ioctl case. If someone wants to use the
> same function for the compat and native handler, it would be a bug
> to return -ENOIOCTLCMD from that handler with the current code.
> 
> To work around this, we could either convert -ENOIOCTLCMD to -EINVAL
> when returning from sys_ioctl().

That would be -ENOTTY, I think.

> Or we could WARN_ON(err ==
> -ENOIOCTLCMD)
> for the native path in order to make the intention clear.
> 
>  Arnd <><

^ permalink raw reply	[flat|nested] 246+ messages in thread

* 2.6.10-mm1
@ 2005-01-03  9:11   ` Andrew Morton
  2005-01-03 10:07     ` 2.6.10-mm1 Christoph Hellwig
                       ` (8 more replies)
  0 siblings, 9 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-03  9:11 UTC (permalink / raw)
  To: linux-kernel


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm1


- Added new bk-kconfig tree from Sam

- The bk-usb tree has been dropped due to a tendency to oops.

- Lots of stuff.


Changes since 2.6.10-rc3-mm1:


 linus.patch
 bk-acpi.patch
 bk-alsa.patch
 bk-cifs.patch
 bk-cpufreq.patch
 bk-i2c.patch
 bk-ide-dev.patch
 bk-input.patch
 bk-dtor-input.patch
 bk-jfs.patch
 bk-kbuild.patch
 bk-kconfig.patch
 bk-mtd.patch
 bk-netdev.patch
 bk-ntfs.patch
 bk-pci.patch
 bk-scsi.patch

 External bk trees

-ppc64-make-up-kernel-run-on-power4-logical-partition.patch
-direct-io-set-PF_SYNCWRITE.patch
-msync-set-PF_SYNCWRITE.patch
-reduce-ext3-log-spamming-blank-lines.patch
-do_task_stat-use-pid_alive.patch
-fix-ext2-ext3-memory-leak.patch
-uml-ramdisk-config-fix.patch
-shmctl-shm_lock-perms.patch
-vmlib-wrapped-executable-brk.patch
-vmlib-wrapped-mprotect-flags.patch
-ppc64-workaround-pci-issue-on-g5.patch
-ppc64-pseries-shared-processor-fixes.patch
-highmemc-fix-bio-error-propagation.patch
-documentation-for-ia64-serial-device-name-changes.patch
-add-missing-__kernel__-or-other-protections.patch
-scsi-imm-fix.patch
-gcc4-fixes.patch
-include-asm-x86_64-pgtableh-pgd_offset_gate.patch
-swsusp-bugfixes-do-not-oops-when-not-enough-memory-during-resume.patch
-swsusp-bugfixes-fix-memory-leak.patch
-swsusp-fixes-fix-confusing-printk.patch
-swsusp-fix-header-typo.patch
-swsusp-fix-types.patch
-ppc64-make-sure-lppaca-doesnt-cross-page-boundary.patch
-arcnet-fixes.patch
-x25-when-receiving-a-call-check-listening-sockets-for-matching-call-user-data.patch
-x25-remove-unused-header-files.patch
-net-socketc__sock_create-cleanup.patch
-remove-netfilter-warnings-on-copy_to_user.patch
-small-drivers-atm-cleanups.patch
-ppc64-fix-signal-mask-on-delivery-error.patch
-ppc64-sigmasking-fix.patch
-xen-vmm-4-alloc_skb_from_cache.patch
-sis-drm-bool-bitfields.patch
-allocate-sysfs_dirent-structures-from-their-own-slab.patch
-parenthesize-init_wait.patch
-fix-concurrent-access-to-dev-urandom.patch
-ide-cd-unable-to-read-multisession-dvds.patch
-fix-bogus-echild-return-from-wait-with-zombie-group-leader.patch
-code-to-register-amba-serial-console-is-missing.patch
-selinux-adds-a-private-inode-operation.patch
-reiserfs-private-inode-abstracted-to-static-inline.patch
-reiserfs-fixes-to-allow-reiserfs-to-use-selinux-attributes.patch
-reiserfs-cleaning-up-const-checks.patch
-selinux-hooks-cleanup.patch
-dvb-saa7146-driver-misc-updates.patch
-dvb-b2c2-driver-splitup.patch
-dvb-update-dib-usb-driver.patch
-dvb-dvb-core-update.patch
-dvb-frontend-update.patch
-dvb-av7110-driver-update.patch
-documentation-mem=.patch
-rocket-documentation-changes.patch
-remove-speedstep_coppermine-docs.patch
-final-polish-on-disk-ioctl-documentation.patch
-scsi-qla2xxx-qla_rscnc-remove-unused-functions-fwd.patch

 Merged

+vmscan-total_scanned-fix.patch

 Fix kswapd CPU utilisation problem

-iounmap-fix.patch
-pageattr-fix.patch
-pageattr-flush-tlb-fix.patch
-pageattr-guard-page.patch

 These were conflicting with other patches

-4level-core-patch.patch
-4level-bogus-bug_on.patch
-4level-fix-vmalloc-overflow.patch
-4level-core-tweaks.patch
-4level-highpte-fix.patch
-4level-architecture-changes-for-alpha.patch
-4level-architecture-changes-for-arm.patch
-4level-fixes-arm.patch
-4level-architecture-changes-for-cris.patch
-4level-convert-drm-to-4levels.patch
-4level-add-asm-generic-support-for-emulating.patch
-4level-make-3level-fallback-more-type-safe.patch
-4level-ia64-support.patch
-4level-ia64-support-fix.patch
-pml4-ia64-build-fix.patch
-4level-architecture-changes-for-i386.patch
-4level-architecture-changes-for-i386-fix.patch
-4level-architecture-changes-for-m32r.patch
-4level-architecture-changes-for-ppc.patch
-4level-architecture-changes-for-ppc64.patch
-4level-architecture-changes-for-s390.patch
-4level-architecture-changes-for-s390-fix.patch
-4level-architecture-changes-for-sh.patch
-4level-architecture-changes-for-sh64.patch
-4level-architecture-changes-for-sparc.patch
-4level-architecture-changes-for-sparc64.patch
-4level-architecture-changes-for-x86_64.patch
-4level-architecture-changes-for-x86_64-pml4_offset_gate-fix.patch
-uml-pml4-support.patch
-uml-config_highmem-atomicity-fix.patch

 Andi and Nick's 4-level-pagetable implementation was merged.

+ide-dev-build-fix.patch

 Fix build error in bk-ide-dev.patch

+bk-kbuild-in_gate_area_no_task-warning-fix.patch

 Fix build error in bk-kbuild.patch

-numa-policies-for-file-mappings-mpol_mf_move.patch

 Dropped due to patch clashes.  Is being redone.

+slab-add-more-arch-overrides-to-control-object-alignment.patch

 Allow architecture to override slab minimum alignment.

+collect-page_states-only-from-online-cpus.patch
+collect-page_states-only-from-online-cpus-tidy.patch

 get_page_state() SMP speedup.

+alloc_large_system_hash-numa-interleaving.patch
+filesystem-hashes-numa-interleaving.patch
+tcp-hashes-numa-interleaving.patch

 Spread the large hashtables across NUMA nodes

-page-fault-scalability-patch-v11-ia64-atomic-pte-operations.patch
-page-fault-scalability-patch-v11-universal-cmpxchg-for-i386.patch
-page-fault-scalability-patch-v11-i386-atomic-pte-operations.patch
-page-fault-scalability-patch-v11-x86_64-atomic-pte-operations.patch
-page-fault-scalability-patch-v11-s390-atomic-pte-operations.patch

 These were causing patch clashes and aren't a lot of use on their own.

+xircom_tulip_cb-build-fix-warning-fix.patch

 Fix xircom_cb warning

+netfilter-fix-return-values-of-ipt_recent-checkentry.patch
+netfilter-fix-ip_conntrack_proto_sctp-exit-on-sysctl.patch
+netfilter-fix-ip_ct_selective_cleanup-and-rename.patch
+netfilter-add-comment-above-remove_expectations-in.patch
+netfilter-remove-ipchains-and-ipfwadm-compatibility.patch
+netfilter-remove-copy_to_user-warnings-in-netfilter.patch
+netfilter-fix-cleanup-in-ipt_recent-should-ipt_registrater_match-error.patch
+fix-broken-rst-handling-in-ip_conntrack.patch

 netfilter fixes

+ppc32-add-uimage-to-default-targets.patch
+ppc32-fix-io_remap_page_range-for-36-bit-phys-platforms.patch
+ppc32-resurrect-documentation-powerpc-cpu_featurestxt.patch

 ppc32 udpates

-remove-unnecessary-inclusions-of-asm-aouth.patch

 This broke the build.

+gp-rel-data-support-vs-bk-kbuild-fix.patch

 Fix gp-rel-data-support.patch versus bk-kbuild.

+frv-debugging-fixes.patch
+frv-minix-ext2-bitops-fixes.patch
+frv-perfctr_info-syscall.patch
+frv-update-the-trap-tables-comment.patch
+frv-accidental-tlb-entry-write-protect-fix.patch
+frv-pagetable-handling-fixes.patch
+frv-fr55x-cpu-support-fixes.patch

 FRV arch updates

+implement-nommu-find_vma.patch
+fix-nommu-map_shared-handling.patch
+permit-nommu-map_shared-of-memory-backed-files.patch
+cross-reference-nommu-vmas-with-mappings.patch

 nommu fixes

+trivial-cleanup-in-arch-i386-kernel-heads.patch
+remove-pfn_to_pgdat-on-x86.patch
+boot_ap_for_nondefault_kernel.patch
+i386-boot-loader-ids.patch
+proc-sys-kernel-bootloader_type.patch

 x86 updates

-x86_64-cleanups-preparing-for-memory-hotplug.patch

 THis broke and is being redone

+xen-vmm-4-return-code-for-arch_free_page-fix.patch

 Fix xen-vmm-4-return-code-for-arch_free_page.patch

+arm26-remove-arm32-cruft.patch
+arm26-update-the-atomic-ops.patch
+arm26-build-system-updates.patch
+arm26-update-comments-headers-notes.patch
+arm26-necessary-compilation-fixes-for-2610.patch
+arm26cleanup-trap-handling-assembly.patch
+arm26-new-execve-code.patch
+arm26-move-some-files-to-better-locations.patch
+arm26-remove-shark-arm32-from-arm26.patch
+arm26-softirq-update.patch
+arm26-update-systemh-to-some-semblance-of-recentness.patch
+arm26-replace-arm32-time-handling-code-with-smaller-version.patch
+arm26-tlb-update.patch
+arm26-better-put_user-macros.patch
+arm26-better-unistdh-reimplemented-based-on-arm32.patch

 arm26 architecture update

+fix-naming-in-swsusp.patch
+swsusp-kill-unused-variable.patch
+swsusp-kill-one-line-helpers-handle-read-errors.patch
+swsusp-small-cleanups.patch
+swsusp-kill-on2-algorithm-in-swsusp.patch
+swsusp-try_to_freeze-to-make-freezing-hooks-nicer.patch
+swsusp-try_to_freeze-to-make-freezing-hooks-nicer-fix.patch

 swsusp update

+m32r-add-new-relocation-types-to-elfh.patch
+m32r-support-pgprot_noncached.patch
+m32r-update-ptracec-for-multithread.patch
+m32r-fix-not-to-execute-noexec-pages-0-3.patch
+m32r-cause-sigsegv-for-nonexec-page.patch
+m32r-dont-encode-ace_instruction-in.patch
+m32r-clean-up-arch-m32r-mm-faultc-3-3.patch
+m32r-clean-up-include-asm-m32r-pgtableh.patch
+m32r-support-page_none-1-3.patch
+m32r-remove-page_user-2-3.patch
+m32r-clean-up.patch
+m32r-include-asm-m32r-thread_infoh-minor.patch
+m32r-use-kmalloc-for-m32r-stacks-2-2.patch
+m32r-make-kernel-headers-for-mutual.patch
+m32r-use-generic-hardirq-framework.patch
+m32r-update-include-asm-m32r-systemh.patch
+m32r-update-include-asm-m32r-mmu_contexth.patch

 m32r update

-uml-fix-__pgd_alloc-declaration.patch

 Not needed any more

+s390-core-patches.patch
+s390-common-i-o-layer.patch
+s390-network-device-driver-patches.patch
+s390-dasd-driver.patch
+s390-character-device-drivers.patch
+s390-dcss-driver-cleanup-fix.patch
+s390-sclp-device-driver-cleanup.patch

 S/390 update

-rcu-eliminate-rcu_datalast_qsctr.patch
+rcu-make-two-internal-structs-static.patch
+rcu-simplify-quiescent-state-detection.patch

 rcu cleanups

-ioctl-cleanup.patch
-unlocked_ioctl.patch
+ioctl-rework.patch

 New version of the dont-hold-BKL-across-ioctl patch.

+remove-rcu-abuse-in-cpu_idle-warning-fix.patch

 RCU cleanup

+udf-simplify-udf_iget-fix-race.patch
+udf-fix-reservation-discarding.patch

 UDF fixes

+remove-dead-ext3_put_inode-prototype.patch

 ext3 cleanup

+compat-sigtimedwait.patch
+compat-sigtimedwait-sparc64-fix.patch
+compat-sigtimedwait-ppc64-fix.patch

 compat signal fixes

+prio_tree-roll-call-to-prio_tree_first-into-prio_tree_next.patch
+prio_tree-generalization.patch
+prio_tree-move-general-code-from-mm-to-lib.patch

 priority tree generalisation

+lcd-fix-memory-leak-code-cleanup.patch

 Fix this char driver

+initramfs-unprivileged-image-creation.patch

 initramfs permissions fix

+fix-conflicting-cpu_idle-declarations.patch

 cleanup and fix up cpu_idle() declarations

+removes-redundant-sys_delete_module.patch

 Remove unneeded function.

+task_structexit_state-usage.patch

 Fix the handling of task_struct.state bits.

+trivial-uninline-kill-__exit_mm.patch

 Code cleanup

+pcmcia-rename-pcmcia-devices.patch
+pcmcia-pd6729-e-mail-update.patch
+pcmcia-pd6729-cleanups.patch
+pcmcia-pd6729-isa_irq-handling.patch
+pcmcia-remove-obsolete-code.patch
+pcmcia-remove-pending_events.patch
+pcmcia-remove-client_attributes.patch
+pcmcia-remove-unneeded-parameter-from-rsrc_mgr.patch
+pcmcia-remove-dev_info-from-client.patch
+pcmcia-remove-mtd-and-bulkmem-replaced-by-pcmciamtd.patch
+pcmcia-per-socket-resource-database.patch
+pcmcia-validate_mem-only-for-non-statically-mapped-sockets.patch
+pcmcia-adjust_io_region-only-for-non-statically-mapped-sockets.patch
+pcmcia-find_io_region-only-for-non-statically-mapped-sockets.patch
+pcmcia-find_mem_region-only-for-non-statically-mapped-sockets.patch
+pcmcia-adjust_-and-release_resources-only-for-non-statically-mapped-sockets.patch
+pcmcia-move-resource-handling-code-only-for-non-statically-mapped-sockets-to-other-file.patch
+pcmcia-make-rsrc_nonstatic-an-independend-module.patch
+pcmcia-allocate-resource-database-per-socket.patch
+pcmcia-remove-typedef.patch
+pcmcia-grab-lock-in-resource_release.patch

 pcmcia update

+knfsd-move-nfserr_openmode-checking-from-nfsd_read-write-into-nfs4_preprocess_stateid_op-in-preperation-for-delegation-state.patch
+knfsd-check-the-callback-netid-in-gen_callback.patch
+knfsd-count-the-nfs4_client-structure-usage.patch
+knfsd-preparation-for-delegation-client-callback-probe.patch
+knfsd-preparation-for-delegation-client-callback-probe-warning-fixes.patch
+knfsd-probe-the-callback-path-upon-a-successful-setclientid_confirm.patch
+knfsd-check-for-existence-of-file_lock-parameter-inside-of-the-kernel-lock.patch
+knfsd-get-rid-of-the-special-delegation_stateid_t-use-the-existing-stateid_t.patch
+knfsd-add-structures-for-delegation-support.patch
+knfsd-allocate-and-initialize-the-delegation-structure.patch
+knfsd-find-a-delegation-for-a-file-given-a-stateid.patch
+knfsd-add-the-delegation-release-and-free-functions.patch
+knfsd-changes-to-expire_client.patch
+knfsd-delay-nfsd_colse-for-delegations-until-reaping.patch
+knfsd-delegation-recall-callback-rpc.patch
+knfsd-kernel-thread-for-delegation-callback.patch
+knfsd-helper-functions-for-deciding-to-grant-a-delegation.patch
+knfsd-attempt-to-hand-out-a-delegation.patch
+knfsd-remove-unnecessary-stateowner-existence-check.patch
+knfsd-check-for-openmode-violations-given-a-delegation-stateid.patch
+knfsd-add-checking-of-delegation-stateids-to-nfs4_preprocess_stateid_op.patch
+knfsd-add-the-delegreturn-operation.patch
+knfsd-add-to-the-laundromat-service-for-delegations.patch
+knfsd-clear-the-recall_lru-of-delegations-at-shutdown.patch

 knfsd update

+export-sched_setscheduler-for-kernel-module-use.patch

 Allow modules to set kernel thread scheduling policy

+sched-fix-scheduling-latencies-in-mttrc-reenables-interrupts.patch

 Fix sched-fix-scheduling-latencies-in-mttrc.patch

+replace-numnodes-with-node_online_map-alpha.patch
+replace-numnodes-with-node_online_map-arm.patch
+replace-numnodes-with-node_online_map-i386.patch
+replace-numnodes-with-node_online_map-ia64.patch
+replace-numnodes-with-node_online_map-m32r.patch
+replace-numnodes-with-node_online_map-mips.patch
+replace-numnodes-with-node_online_map-parisc.patch
+replace-numnodes-with-node_online_map-ppc64.patch
+replace-numnodes-with-node_online_map-x86_64.patch
+replace-numnodes-with-node_online_map.patch

 Clean up and fix numa node ID handling

-remove-rcu-abuse-in-cpu_idle-warning-fix.patch

 Not needed

+ppc64-fix-cpu-hotplug.patch

 Fix i386-cpu-hotplug-updated-for-mm.patch for ppc64

 reiser4-export-inode_lock.patch
 reiser4-export-pagevec-funcs.patch
 reiser4-export-radix_tree_preload.patch
+reiser4-export-find_get_pages.patch
 reiser4-radix-tree-tag.patch
 reiser4-radix_tree_lookup_slot.patch
-reiser4-aliased-dir.patch
-reiser4-kobject-umount-race.patch
-reiser4-kobject-umount-race-cleanup.patch
+#reiser4-aliased-dir.patch
+#reiser4-kobject-umount-race.patch
+#reiser4-kobject-umount-race-cleanup.patch
 reiser4-perthread-pages.patch
 reiser4-unstatic-kswapd.patch
 reiser4-include-reiser4.patch
 reiser4-doc.patch
 reiser4-only.patch
-reiser4-page_cache_readahead-fix.patch
-reiser4-fix-a-use-after-free-bug-in-reiser4_parse_options.patch
-reiser4-missing-context-creation-is-added.patch
-reiser4-crypto-update.patch
-reiser4-max_cbk_iteration-fix.patch
-reiser4-reduce-stack-usage.patch
-reiser4-fix-deadlock.patch
-reiser4-dont-use-shrink_dcache_anon.patch
-reiser4-kmap-atomic-fixes.patch
+reiser4-recover-read-performance.patch
+reiser4-export-find_get_pages_tag.patch
+reiser4-add-missing-context.patch

 New reiser4 code drop

+fix-rom-enable-disable-in-r128-and-radeon-fb-drivers.patch
+fbdev-cleanup-i2c-code-of-rivafb.patch
+fbdev-revive-bios-less-booting-for-rage-xl-cards.patch
+fbdev-revive-global_mode_option.patch
+fbcon-fbdev-add-blanking-notification.patch
+fbcon-fbdev-add-blanking-notification-fix.patch
+fbdev-check-return-value-of-fb_add_videomode.patch
+fbdev-do-a-symbol_put-for-each-symbol_get-in-savagefb.patch
+fbdev-add-viewsonic-pf775a-to-broken-display-database.patch
+fbdev-fix-default-timings-in-vga16fb.patch
+fbdev-reduce-stack-usage-of-intelfb.patch
+zr36067-driver-correct-jpeg-app-com-markers.patch
+zr36067-driver-ppc-be-port.patch
+zr36067-driver-reduce-stack-size-usage.patch

 fbdev updates

+moxa-update-status-of-moxa-smartio-driver.patch
+moxa-remove-ancient-changelog-readmemoxa.patch
+moxa-remove-readmemoxa-from-documentation-00-index.patch
+specialix-remove-bouncing-e-mail-address.patch
+stallion-update-to-documentation-stalliontxt.patch
+riscom8-update-staus-and-documentation-of-driver.patch
+pm-remove-outdated-docs.patch
+docs-add-sparse-howto.patch
+cciss-documentation-update.patch
+cciss-correct-mailing-list-address-in-source-code.patch
+cpqarray-correct-mailing-list-address-in-source-code.patch
+sh-remove-x86-specific-help-in-kconfig.patch
+cyclades-put-readmecycladez-in-documentation-serial.patch
+tipar-document-driver-options.patch
+tipar-code-cleanup.patch

 Various documentaiton updates and char driver cleanups

+binfmt_scriptc-make-em86_format-static.patch
+remove-unused-include-asm-m68k-adb_mouseh.patch
+scsi-aic7xxx-remove-two-useless-variables.patch
+remove-in_string_c.patch
+remove-ct_to_secs-ct_to_usecs.patch
+bttv-driverc-make-some-variables-static.patch
+arch-alpha-kconfig-kill-stale-reference-to-documentation-smptex.patch
+init-initramfsc-make-unpack_to_rootfs-static.patch
+oss-misc-cleanups.patch
+inux-269-fs-proc-basec-array-size.patch
+linux-269-fs-proc-proc_ttyc-avoid-array.patch
+signalc-convert-assertion-to-bug_on.patch
+right-severity-level-for-fatal-message.patch
+remove-unused-drivers-char-rio-cdprotoh.patch
+remove-unused-drivers-char-rsf16fmih.patch
+mtd-added-nec-upd29f064115-support.patch

 Various code cleanups

+optimize-prefetch-usage-in-list_for_each_xxx.patch

 speed up list_for_each()

+waiting-10s-before-mounting-root-filesystem.patch

 Retry the mount of the root filesytem during bootup.


number of patches in -mm: 896
number of changesets in external trees: 453
number of patches in -mm only: 879
total patches: 1332



All 896 patches:


linus.patch

expose-reiserfs_sync_fs.patch
  Expose reiserfs_sync_fs()

fix-reiserfs-quota-debug-messages.patch
  Fix reiserfs quota debug messages

fix-of-quota-deadlock-on-pagelock-quota-core.patch
  Fix of quota deadlock on pagelock: quota core

vfs_quota_off-oops-fix.patch
  vfs_quota_off-oops-fix

quota-umount-race-fix.patch
  quota umount race fix

fix-of-quota-deadlock-on-pagelock-ext2.patch
  Fix of quota deadlock on pagelock: ext2

fix-of-quota-deadlock-on-pagelock-ext2-tweaks.patch
  fix-of-quota-deadlock-on-pagelock-ext2-tweaks

fix-of-quota-deadlock-on-pagelock-ext3.patch
  Fix of quota deadlock on pagelock: ext3

fix-of-quota-deadlock-on-pagelock-ext3-tweaks.patch
  fix-of-quota-deadlock-on-pagelock-ext3-tweaks

fix-of-quota-deadlock-on-pagelock-reiserfs.patch
  Fix of quota deadlock on pagelock: reiserfs

fix-of-quota-deadlock-on-pagelock-reiserfs-fix.patch
  fix-of-quota-deadlock-on-pagelock-reiserfs-fix

reiserfs-bug-fix-do-not-clear-ms_active-mount-flag.patch
  reiserfs bug fix: do not clear MS_ACTIVE mount flag

allow-disabling-quota-messages-to-console.patch
  Allow disabling quota messages to console

vmscan-total_scanned-fix.patch
  vmscan: total_scanned fix

cs461x-gameport-code-isnt-being-included-in-build.patch
  CS461x gameport code isn't being included in build

bk-acpi.patch

acpi-report-errors-in-fanc.patch
  ACPI: report errors in fan.c

acpi-flush-tlb-when-pagetable-changed.patch
  acpi: flush TLB when pagetable changed

bk-alsa.patch

bk-cifs.patch

bk-cpufreq.patch

bk-i2c.patch

bk-ide-dev.patch

ide-dev-build-fix.patch
  ide-dev-build-fix

bk-input.patch

bk-dtor-input.patch

bk-jfs.patch

bk-kbuild.patch

bk-kbuild-in_gate_area_no_task-warning-fix.patch
  bk-kbuild-in_gate_area_no_task-warning-fix

bk-kconfig.patch

bk-mtd.patch

bk-netdev.patch

via-rhine-warning-fix.patch
  via-rhine warning fix

hostap-fix-kconfig-typos-and-missing-select-crypto.patch
  hostap: fix Kconfig typos and missing select CRYPTO

ixgb-lr-card-support.patch
  ixgb LR card support

bk-ntfs.patch

bk-pci.patch

bk-scsi.patch

mm.patch
  add -mmN to EXTRAVERSION

fix-smm-failures-on-e750x-systems.patch
  fix SMM failures on E750x systems

mm-keep-count-of-free-areas.patch
  mm: keep count of free areas

mm-higher-order-watermarks.patch
  mm: higher order watermarks

mm-higher-order-watermarks-fix.patch
  higher order watermarks fix

mm-teach-kswapd-about-higher-order-areas.patch
  mm: teach kswapd about higher order areas

simplified-readahead.patch
  Simplified readahead

simplified-readahead-fix.patch
  Simplified readahead fix

simplified-readahead-cleanups.patch
  simplified-readahead-cleanups

readahead-congestion-control.patch
  Simplified readahead

make-tree_lock-an-rwlock.patch
  make mapping->tree_lock an rwlock

mempolicy-optimization.patch
  mempolicy optimisation

mm-overcommit-updates.patch
  mm: overcommit updates

kill-off-highmem_start_page.patch
  kill off highmem_start_page

make-sure-ioremap-only-tests-valid-addresses.patch
  make sure ioremap only tests valid addresses

mark_page_accessed-for-reads-on-non-page-boundaries.patch
  mark_page_accessed() for read()s on non-page boundaries

do_anonymous_page-use-setpagereferenced.patch
  do_anonymous_page() use SetPageReferenced

slab-add-more-arch-overrides-to-control-object-alignment.patch
  slab: Add more arch overrides to control object alignment

collect-page_states-only-from-online-cpus.patch
  collect page_states only from online cpus

collect-page_states-only-from-online-cpus-tidy.patch
  collect-page_states-only-from-online-cpus-tidy

alloc_large_system_hash-numa-interleaving.patch
  alloc_large_system_hash: NUMA interleaving

filesystem-hashes-numa-interleaving.patch
  filesystem hashes: NUMA interleaving

tcp-hashes-numa-interleaving.patch
  TCP hashes: NUMA interleaving

must-fix.patch
  must fix lists update
  must fix list update
  mustfix update
  must-fix update
  mustfix lists

xircom_tulip_cb-build-fix.patch
  xircom_tulip_cb.c build fix

xircom_tulip_cb-build-fix-warning-fix.patch
  xircom_tulip_cb-build-fix warning fix

net-netconsole-poll-support-for-3c509.patch
  net: Netconsole poll support for 3c509

pcnet32-79c976-with-fiber-optic.patch
  pcnet32: 79c976 with fiber optic fix

multicast-filtering-for-tunc.patch
  Multicast filtering for tun.c

r8169-missing-netif_poll_enable-and-irq-ack.patch
  r8169: missing netif_poll_enable and irq ack

r8169-c-101.patch
  r8169: C 101

r8169-large-send-enablement.patch
  r8169: Large Send enablement

r8169-reduce-max-mtu-for-large-frames.patch
  r8169: reduce max MTU for large frames

r8169-oversized-driver-field-for-ethtool.patch
  r8169: oversized driver field for ethtool

fix-ibm_emac-autonegotiation-result-parsing.patch
  EMAC: fix ibm_emac autonegotiation result parsing

netfilter-fix-return-values-of-ipt_recent-checkentry.patch
  netfilter: fix return values of ipt_recent checkentry

netfilter-fix-ip_conntrack_proto_sctp-exit-on-sysctl.patch
  netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail

netfilter-fix-ip_ct_selective_cleanup-and-rename.patch
  netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup()

netfilter-add-comment-above-remove_expectations-in.patch
  netfilter: Add comment above remove_expectations in destroy_conntrack()

netfilter-remove-ipchains-and-ipfwadm-compatibility.patch
  netfilter: Remove IPCHAINS and IPFWADM compatibility

netfilter-remove-copy_to_user-warnings-in-netfilter.patch
  netfilter: Remove copy_to_user Warnings in Netfilter

netfilter-fix-cleanup-in-ipt_recent-should-ipt_registrater_match-error.patch
  netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error

fix-broken-rst-handling-in-ip_conntrack.patch
  Fix broken RST handling in ip_conntrack

ppc32-freescale-book-e-mmu-cleanup.patch
  ppc32: freescale Book-E MMU cleanup

ppc32-refactor-common-book-e-exception-code.patch
  ppc32: refactor common book-e exception code

ppc32-switch-to-kbuild_defconfig.patch
  ppc32: Switch to KBUILD_DEFCONFIG

ppc32-marvell-host-bridge-support-mv64x60.patch
  ppc32: Marvell host bridge support (mv64x60)

ppc32-marvell-host-bridge-support-mv64x60-review-fixes.patch
  ppc32-marvell-host-bridge-support-mv64x60 review fixes

ppc32-support-for-marvell-ev-64260-bp-eval-platform.patch
  ppc32: support for Marvell EV-64260[ab]-BP eval platform

ppc32-support-for-force-cpci-690-board.patch
  ppc32: support for Force CPCI-690 board

ppc32-support-for-artesyn-katana-cpci-boards.patch
  ppc32: support for Artesyn Katana cPCI boards

ppc32-add-support-for-ibm-750fx-and-750gx-eval-boards.patch
  ppc32: add Support for IBM 750FX and 750GX Eval Boards

ppc32-ppc4xx-pic-rewrite-cleanup.patch
  ppc32: PPC4xx PIC rewrite/cleanup

ppc32-performance-monitor-oprofile-support-for-e500.patch
  ppc32: performance Monitor/Oprofile support for e500

ppc32-performance-monitor-oprofile-support-for-e500-review-fixes.patch
  Fix prototypes & externs in e500 oprofile support

ppc32-fix-ebonyc-warnings.patch
  ppc32: fix ebony.c warnings

ppc32-remove-bogus-sprn_cpc0_gpio-define.patch
  ppc32: remove bogus SPRN_CPC0_GPIO define

ppc32-debug-setcontext-syscall-implementation.patch
  PPC debug setcontext syscall implementation.

ppc32-add-uimage-to-default-targets.patch
  ppc32: add uImage to default targets

ppc32-fix-io_remap_page_range-for-36-bit-phys-platforms.patch
  ppc32: fix io_remap_page_range for 36-bit phys platforms

ppc32-resurrect-documentation-powerpc-cpu_featurestxt.patch
  ppc32: Resurrect Documentation/powerpc/cpu_features.txt

ppc64-kprobes-implementation.patch
  ppc64: kprobes implementation

ppc64-tweaks-to-cpu-sysfs-information.patch
  ppc64: tweaks to ppc64 cpu sysfs information

ppc64-reloc_hide.patch

kprobes-wrapper-to-define-jprobeentry.patch
  Kprobes: wrapper to define jprobe.entry

termio-userspace-access-error-handling.patch
  Termio userspace access error handling

ide_arch_obsolete_init-fix.patch
  IDE_ARCH_OBSOLETE_INIT fix

out-of-line-implementation-of-find_next_bit.patch
  out-of-line implementation of find_next_bit()

gp-rel-data-support.patch
  GP-REL data support

gp-rel-data-support-vs-bk-kbuild-fix.patch
  gp-rel-data-support-vs-bk-kbuild-fix

vm-routine-fixes.patch
  VM routine fixes

vm-routine-fixes-CONFIG_SHMEM-fix.patch
  vm-routine-fixes CONFIG_SHMEM fix

frv-fujitsu-fr-v-cpu-arch-maintainer-record.patch
  FRV: Fujitsu FR-V CPU arch maintainer record

frv-fujitsu-fr-v-arch-documentation.patch
  FRV: Fujitsu FR-V arch documentation

frv-fujitsu-fr-v-cpu-arch-implementation-part-1.patch
  FRV: Fujitsu FR-V CPU arch implementation part 1

frv-fujitsu-fr-v-cpu-arch-implementation-part-2.patch
  FRV: Fujitsu FR-V CPU arch implementation part 2

frv-fujitsu-fr-v-cpu-arch-implementation-part-3.patch
  FRV: Fujitsu FR-V CPU arch implementation part 3

frv-fujitsu-fr-v-cpu-arch-implementation-part-4.patch
  FRV: Fujitsu FR-V CPU arch implementation part 4

frv-fujitsu-fr-v-cpu-arch-implementation-part-5.patch
  FRV: Fujitsu FR-V CPU arch implementation part 5

frv-fujitsu-fr-v-cpu-arch-implementation-part-6.patch
  FRV: Fujitsu FR-V CPU arch implementation part 6

frv-fujitsu-fr-v-cpu-arch-implementation-part-7.patch
  FRV: Fujitsu FR-V CPU arch implementation part 7

frv-fujitsu-fr-v-cpu-arch-implementation-part-8.patch
  FRV: Fujitsu FR-V CPU arch implementation part 8

frv-fujitsu-fr-v-cpu-arch-implementation-part-9.patch
  FRV: Fujitsu FR-V CPU arch implementation part 9

put-memory-in-dma-zone-not-normal-zone-in-frv-arch.patch
  Put memory in DMA zone not Normal zone in FRV arch

frv-kill-off-highmem_start_page.patch
  kill off highmem_start_page

frv-first-batch-of-fujitsu-fr-v-arch-include-files.patch
  FRV: First batch of Fujitsu FR-V arch include files

frv-remove-obsolete-hardirq-stuff-from-includes.patch
  frv: emove obsolete hardirq stuff from includes

frv-pci-dma-fixes.patch
  frv: PCI DMA fixes

fix-frv-pci-config-space-write.patch
  frv: Fix PCI config space write

frv-more-fujitsu-fr-v-arch-include-files.patch
  FRV: More Fujitsu FR-V arch include files

convert-frv-to-use-remap_pfn_range.patch
  convert FRV to use remap_pfn_range

frv-yet-more-fujitsu-fr-v-arch-include-files.patch
  FRV: Yet more Fujitsu FR-V arch include files

frv-remaining-fujitsu-fr-v-arch-include-files.patch
  FRV: Remaining Fujitsu FR-V arch include files

frv-make-calibrate_delay-optional.patch
  FRV: Make calibrate_delay() optional

frv-better-mmap-support-in-uclinux.patch
  FRV: Better mmap support in uClinux

frv-procfs-changes-for-nommu-changes.patch
  FRV: procfs changes for nommu changes

frv-change-setup_arg_pages-to-take-stack-pointer.patch
  FRV: change setup_arg_pages() to take stack pointer

frv-change-setup_arg_pages-to-take-stack-pointer-fixes.patch
  Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64

frv-add-fdpic-elf-binary-format-driver.patch
  FRV: Add FDPIC ELF binary format driver

fix-some-elf-fdpic-binfmt-problems.patch
  Fix some ELF-FDPIC binfmt problems

further-nommu-changes.patch
  Further nommu changes

further-nommu-proc-changes.patch
  Further nommu /proc changes

frv-arch-nommu-changes.patch
  frv: nommu changes

make-more-syscalls-available-for-the-fr-v-arch.patch
  Make more syscalls available for the FR-V arch

frv-debugging-fixes.patch
  FRV: debugging fixes

frv-minix-ext2-bitops-fixes.patch
  frv: Minix & ext2 bitops fixes

frv-perfctr_info-syscall.patch
  frv: perfctr_info syscall

frv-update-the-trap-tables-comment.patch
  frv: update the trap tables comment

frv-accidental-tlb-entry-write-protect-fix.patch
  frv: accidental TLB entry write-protect fix

frv-pagetable-handling-fixes.patch
  FRV: pagetable handling fixes

frv-fr55x-cpu-support-fixes.patch
  FRV: FR55x CPU support fixes

implement-nommu-find_vma.patch
  Implement nommu find_vma()

fix-nommu-map_shared-handling.patch
  Fix nommu MAP_SHARED handling

permit-nommu-map_shared-of-memory-backed-files.patch
  Permit nommu MAP_SHARED of memory backed files

cross-reference-nommu-vmas-with-mappings.patch
  Cross-reference nommu VMAs with mappings

superhyway-bus-support.patch
  SuperHyway bus support

assign-pkmap_base-dynamically.patch
  Assign PKMAP_BASE dynamically

x86-remove-data-header-and-code-overlap-in-boot-setups.patch
  x86: remove data-header and code overlap in boot/setup.S

cyrix-mii-cpuid-returns-stale-%ecx.patch
  Cyrix MII cpuid returns stale %ecx

nx-fix-noexec-kernel-parameter.patch
  NX: Fix noexec kernel parameter

nx-triple-fault-with-4k-kernel-mappings-and-pae.patch
  NX: Triple fault with 4k kernel mappings and PAE

trivial-cleanup-in-arch-i386-kernel-heads.patch
  Trivial cleanup in arch/i386/kernel/head.S

remove-pfn_to_pgdat-on-x86.patch
  remove pfn_to_pgdat() on x86

boot_ap_for_nondefault_kernel.patch
  Secondary cpus boot-up for non defalut location built kernels

i386-boot-loader-ids.patch
  i386 boot loader IDs

proc-sys-kernel-bootloader_type.patch
  /proc/sys/kernel/bootloader_type

intel-thermal-monitor-for-x86_64.patch
  Intel thermal monitor for x86_64

x86_64-do_general_protection-retval-check.patch
  x86_64: do_general_protection() retval check

x86_64-add-a-real-pfn_valid.patch
  x86_64: Add a real pfn_valid

x86_64-fix-bugs-in-the-amd-k8-cmp-support-code.patch
  x86_64: Fix bugs in the AMD K8 CMP support code.

x86_64-fix-bugs-in-the-amd-k8-cmp-support-code-fix.patch
  x86_64: numa_add_cpu() fix

x86_64-reenable-mga-dri-on-x86-64.patch
  x86_64: Reenable MGA DRI on x86-64

x86_64-remove-duplicated-fake_stack_frame-macro.patch
  x86_64: Remove duplicated FAKE_STACK_FRAME macro.

x86_64-remove-bios-reboot-code.patch
  x86_64: Remove BIOS reboot code

x86_64-add-reboot=force.patch
  x86_64: Add reboot=force

x86_64-collected-ioremap-fixes.patch
  x86_64: Collected ioremap fixes

x86_64-handle-nx-correctly-in-pageattr.patch
  x86_64: Handle NX correctly in pageattr

x86_64-split-acpi-boot-table-parsing.patch
  x86_64: Split ACPI boot table parsing

x86_64-split-acpi-boot-table-parsing-fix.patch
  x86_64-split-acpi-boot-table-parsing-fix

x86_64-add-srat-numa-discovery-to-x86-64.patch
  x86_64: Add SRAT NUMA discovery to x86-64.

x86_64-update-uptime-after-suspend.patch
  x86_64: Update uptime after suspend

x86_64-allow-a-kernel-debugger-to-hide-single-steps-in.patch
  x86_64: Allow a kernel debugger to hide single steps in more cases.

x86_64-remove-debug-information-for-vsyscalls.patch
  x86_64: Remove debug information for vsyscalls

x86_64-rename-htvalid-to-cmp_legacy.patch
  x86_64: Rename HTVALID to CMP_LEGACY

x86_64-scheduler-support-for-amd-cmp.patch
  x86_64: Scheduler support for AMD CMP

x86_64-add-a-missing-__iomem-pointed-out-by-linus.patch
  x86_64: Add a missing __iomem pointed out by Linus.

x86_64-add-a-missing-newline-in-proc-cpuinfo.patch
  x86_64: Add a missing newline in /proc/cpuinfo

x86_64-always-print-segfaults-for-init.patch
  x86_64: Always print segfaults for init.

x86_64-export-phys_proc_id.patch
  x86_64: Export phys_proc_id

x86_64-allow-to-configure-more-cpus-and-nodes.patch
  x86_64: Allow to configure more CPUs and nodes.

x86_64-allow-to-configure-more-cpus-and-nodes-fix.patch
  x86_64-allow-to-configure-more-cpus-and-nodes fix

x86_64-fix-a-warning-in-the-cmp-support-code-for.patch
  x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA

x86_64-fix-some-outdated-assumptions-that-cpu-numbers.patch
  x86_64: Fix some outdated assumptions that CPU numbers are equal numbers.

x86_64-fix-em64t-config-description.patch
  x86_64: Fix EM64T config description

x86_64-remove-unneeded-ifdef-in-hardirqh.patch
  x86_64: Remove unneeded ifdef in hardirq.h

x86_64-add-slit-inter-node-distance-information-to.patch
  x86_64: Add SLIT (inter node distance) information to sysfs.

x86_64-add-x86_64-support-for-jack-steiners-slit-sysfs.patch
  x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch

x86_64-eliminate-some-useless-printks-in-acpi-numac.patch
  x86_64: Eliminate some useless printks in ACPI numa.c

xen-vmm-4-add-ptep_establish_new-to-make-va-available.patch
  Xen VMM #4: add ptep_establish_new to make va available

xen-vmm-4-return-code-for-arch_free_page.patch
  Xen VMM #4: return code for arch_free_page

xen-vmm-4-return-code-for-arch_free_page-fix.patch
  Get rid of arch_free_page() warning

xen-vmm-4-runtime-disable-of-vt-console.patch
  Xen VMM #4: runtime disable of VT console

xen-vmm-4-has_arch_dev_mem.patch
  Xen VMM #4: HAS_ARCH_DEV_MEM

xen-vmm-4-split-free_irq-into-teardown_irq.patch
  Xen VMM #4: split free_irq into teardown_irq

h8-300-new-systemcall-support.patch
  H8/300 new systemcall support

arm26-remove-arm32-cruft.patch
  arm26: remove arm32 cruft

arm26-update-the-atomic-ops.patch
  arm26: update the atomic ops

arm26-build-system-updates.patch
  arm26 build system updates

arm26-update-comments-headers-notes.patch
  arm26: update comments, headers, notes

arm26-necessary-compilation-fixes-for-2610.patch
  arm26: necessary compilation fixes for 2.6.10

arm26cleanup-trap-handling-assembly.patch
  arm26:cleanup trap handling assembly

arm26-new-execve-code.patch
  arm26: new execve code

arm26-move-some-files-to-better-locations.patch
  arm26: move some files to better locations

arm26-remove-shark-arm32-from-arm26.patch
  arm26: remove shark (arm32) from arm26

arm26-softirq-update.patch
  arm26: softirq update

arm26-update-systemh-to-some-semblance-of-recentness.patch
  arm26: update system.h to some semblance of recentness.

arm26-replace-arm32-time-handling-code-with-smaller-version.patch
  arm26: replace arm32 time handling code with smaller version

arm26-tlb-update.patch
  arm26: TLB update

arm26-better-put_user-macros.patch
  arm26: better put_user macros.

arm26-better-unistdh-reimplemented-based-on-arm32.patch
  arm26: better unistd.h (reimplemented based on arm32)

ia64-remove-hcdp-support-for-early-printk.patch
  ia64: remove HCDP support for early printk

typeofdev-powersaved_state.patch
  typeof(dev->power.saved_state)

fix-naming-in-swsusp.patch
  fix naming in swsusp

swsusp-kill-unused-variable.patch
  swsusp: kill unused variable

swsusp-kill-one-line-helpers-handle-read-errors.patch
  swsusp: kill one-line helpers, handle read errors

swsusp-small-cleanups.patch
  From: Pavel Machek <pavel@ucw.cz>
  Subject: swsusp: Small cleanups

swsusp-kill-on2-algorithm-in-swsusp.patch
  swsusp: Kill O(n^2) algorithm in swsusp

swsusp-try_to_freeze-to-make-freezing-hooks-nicer.patch
  swsusp: try_to_freeze to make freezing hooks nicer

swsusp-try_to_freeze-to-make-freezing-hooks-nicer-fix.patch
  swsusp-try_to_freeze-to-make-freezing-hooks-nicer fix

m32r-add-new-relocation-types-to-elfh.patch
  m32r: Add new relocation types to elf.h

m32r-support-pgprot_noncached.patch
  m32r: Support pgprot_noncached()

m32r-update-ptracec-for-multithread.patch
  m32r: Update ptrace.c for multithread  debugging

m32r-fix-not-to-execute-noexec-pages-0-3.patch
  Subject: [PATCH 2.6.10-rc3-mm1] m32r: Fix not to execute noexec pages (0/3)

m32r-cause-sigsegv-for-nonexec-page.patch
  Subject: [PATCH 2.6.10-rc3-mm1] m32r: Cause SIGSEGV for nonexec page  execution (1/3)

m32r-dont-encode-ace_instruction-in.patch
  Subject: [PATCH 2.6.10-rc3-mm1] m32r: Don't encode ACE_INSTRUCTION in  address (2/3)

m32r-clean-up-arch-m32r-mm-faultc-3-3.patch
  Subject: [PATCH 2.6.10-rc3-mm1] m32r: Clean up arch/m32r/mm/fault.c (3/3)

m32r-clean-up-include-asm-m32r-pgtableh.patch
  Subject: [PATCH 2.6.10-rc3-mm1] m32r: Clean up include/asm-m32r/pgtable.h

m32r-support-page_none-1-3.patch
  m32r: Support PAGE_NONE

m32r-remove-page_user-2-3.patch
  m32r: Remove PAGE_USER

m32r-clean-up.patch
  m32r: Clean up include/asm-m32r/pgtable-2level.h

m32r-include-asm-m32r-thread_infoh-minor.patch
  m32r: include/asm-m32r/thread_info.h minor  updates

m32r-use-kmalloc-for-m32r-stacks-2-2.patch
  m32r: Use kmalloc for m32r stacks

m32r-make-kernel-headers-for-mutual.patch
  m32r: Make kernel headers for mutual  exclusion

m32r-use-generic-hardirq-framework.patch
  m32r: Use generic hardirq framework

m32r-update-include-asm-m32r-systemh.patch
  m32r: Update include/asm-m32r/system.h

m32r-update-include-asm-m32r-mmu_contexth.patch
  m32r: Update include/asm-m32r/mmu_context.h

uml-remove-most-devfs_mk_symlink-calls.patch
  uml: remove most devfs_mk_symlink calls

uml-fix-__wrap_free-comment.patch
  uml: fix __wrap_free comment

uml-fix-some-ptrace-functions-returns-values.patch
  uml: fix some ptrace functions returns values

uml-redo-the-signal-delivery-mechanism.patch
  uml: redo the signal delivery mechanism

uml-make-restorer-match-i386.patch
  uml: make restorer match i386

uml-unistdh-cleanup.patch
  uml: unistd.h cleanup

uml-remove-a-quilt-induced-duplicity.patch
  uml: remove a quilt-induced duplicity

uml-fix-sigreturn-to-not-copy_user-under-a-spinlock.patch
  uml: fix sigreturn to not copy_user under a spinlock

uml-close-host-file-descriptors-properly.patch
  uml: close host file descriptors properly

uml-free-host-resources-associated-with-freed-irqs.patch
  uml: free host resources associated with freed IRQs

uml-unregister-signal-handlers-at-reboot.patch
  uml: unregister signal handlers at reboot

hostfs-uml-set-sendfile-to-generic_file_sendfile.patch
  hostfs: uml: set .sendfile to generic_file_sendfile

hostfs-uml-add-some-other-pagecache-methods.patch
  hostfs: uml: add some other pagecache methods

uml-terminal-cleanup.patch
  uml: terminal cleanup

uml-first-part-rework-of-run_helper-and-users.patch
  Uml: first part rework of run_helper() and users.

uml-finish-fixing-run_helper-failure-path.patch
  uml: finish fixing run_helper failure path

uml-add-elf-vsyscall-support.patch
  uml: add elf vsyscall support

uml-make-vsyscall-page-into-process-page-tables.patch
  uml: make vsyscall page into process page tables

uml-include-vsyscall-page-in-core-dumps.patch
  uml: include vsyscall page in core dumps

uml-add-tracesysgood-support.patch
  uml: Add TRACESYSGOOD support

uml-kill-host-processes-properly.patch
  uml: kill host processes properly

uml-defconfig-update.patch
  uml: defconfig update

uml-small-vsyscall-fixes.patch
  uml: small vsyscall fixes

uml-export-end_iomem.patch
  uml: export end_iomem

uml-system-call-restart-fixes.patch
  uml: system call restart fixes

uml-fix-setting-of-tif_sigpending.patch
  uml: Fix setting of TIF_SIGPENDING

uml-allow-vsyscall-code-to-build-on-24.patch
  uml: Allow vsyscall code to build on 2.4

uml-sysemu-fixes.patch
  uml: SYSEMU fixes

uml-correctly-restore-extramask-in-sigreturn.patch
  uml: correctly restore extramask in sigreturn

uml-fix-update_process_times-call.patch
  uml: fix update_process_times call

uml-detect-sysemu_singlestep.patch
  uml: detect SYSEMU_SINGLESTEP

uml-use-sysemu_singlestep.patch
  uml: use SYSEMU_SINGLESTEP

uml-declare-ptrace_setfpregs.patch
  uml: declare ptrace_setfpregs

uml-remove-bogus-__nr_sigreturn-check.patch
  uml: Remove bogus __NR_sigreturn check

uml-fix-highmem-compilation.patch
  uml: Fix highmem compilation

uml-symbol-export.patch
  uml: symbol export

uml-fix-umldir-init-order.patch
  uml: fix umldir init order

uml-raise-tty-limit.patch
  uml: raise tty limit

uml-sysfs-support-for-uml-network-driver.patch
  uml: sysfs support for uml network driver.

uml-sysfs-support-for-the-uml-block-devices.patch
  uml: sysfs support for the uml block devices.

s390-remove-compat-setup_arg_pages32.patch
  s390: remove compat setup_arg_pages32

s390-core-patches.patch
  s390: core patches

s390-common-i-o-layer.patch
  s390: Common I/O layer

s390-network-device-driver-patches.patch
  s390: Network device driver patches

s390-dasd-driver.patch
  s390: DASD driver

s390-character-device-drivers.patch
  s390: Character device drivers

s390-dcss-driver-cleanup-fix.patch
  s390: DCSS driver cleanup fix

s390-sclp-device-driver-cleanup.patch
  From: Heiko Carstens <heiko.carstens@de.ibm.com>
  Subject: [PATCH 8/8] s390: SCLP device driver cleanup

enhanced-i-o-accounting-data-patch.patch
  enhanced I/O accounting data patch

enhanced-memory-accounting-data-collection.patch
  enhanced Memory accounting data collection

enhanced-memory-accounting-data-collection-tidy.patch
  enhanced-memory-accounting-data-collection-tidy

wacom-tablet-driver.patch
  wacom tablet driver

force-feedback-support-for-uinput.patch
  Force feedback support for uinput

kmap_atomic-takes-char.patch
  kmap_atomic takes char*

kmap_atomic-takes-char-fix.patch
  kmap_atomic-takes-char-fix

kmap_atomic-fallout.patch
  kmap_atomic fallout

kunmap-fallout-more-fixes.patch
  kunmap-fallout-more-fixes

4-4gb-incorrect-bound-check-in-do_getname.patch
  4/4GB: Incorrect bound check in do_getname()

handle-quoted-module-parameters.patch
  handle quoted module parameters

CONFIG_SOUND_VIA82CXXX_PROCFS.patch
  Add CONFIG_SOUND_VIA82CXXX_PROCFS

make-sysrq-f-call-oom_kill.patch
  make sysrq-F call oom_kill()

allow-admin-to-enable-only-some-of-the-magic-sysrq-functions.patch
  Allow admin to enable only some of the Magic-Sysrq functions

gen_init_cpio-symlink-pipe-socket-support.patch
  gen_init_cpio symlink, pipe and socket support

gen_init_cpio-slink_pipe_sock_2.patch
  gen_init_cpio-slink_pipe_sock_2

initramfs-allow-no-trailer.patch
  INITRAMFS: allow no trailer

move-irq_enter-and-irq_exit-to-common-code.patch
  move irq_enter and irq_exit to common code

remove-unused-irq_cpustat-fields.patch
  remove unused irq_cpustat fields

hold-bkl-for-shorter-period-in-generic_shutdown_super.patch
  Hold BKL for shorter period in generic_shutdown_super().

cleanups-for-the-ipmi-driver.patch
  Cleanups for the IPMI driver

htree-telldir-fix.patch
  ext3 htree telldir() fix

kill-blkh.patch
  kill blk.h

ext3-cleanup-handling-of-aborted-transactions.patch
  ext3: cleanup handling of aborted transactions.

ext3-handle-attempted-delete-of-bitmap-blocks.patch
  ext3: handle attempted delete of bitmap blocks.

ext3-handle-attempted-double-delete-of-metadata.patch
  ext3: handle attempted double-delete of metadata.

cpumask_t-initializers.patch
  cpumask_t initializers

time-run-too-fast-after-s3.patch
  time runx too fast after S3

fork-total_forks-not-counted-under-tasklist_lock.patch
  fork: total_forks not counted under tasklist_lock

suppress-might_sleep-if-oopsing.patch
  suppress might_sleep() if oopsing

file-sync-no-i_sem.patch
  Reduce i_sem usage during file sync operations

ext3-support-for-ea-in-inode.patch
  ext3: support for EA in inode

ext3-support-for-ea-in-inode-warning-fix.patch
  ext3-xattr-warning-fix

off-by-one-in-drivers-parport-probec.patch
  Off by one in drivers/parport/probe.c

compile-with-ffreestanding.patch
  compile with -ffreestanding

sys_stime-needs-a-compat-function.patch
  sys_stime needs a compat function

sys_stime-needs-a-compat-function-update.patch

sync-in-core-time-granuality-with-filesystems.patch
  Sync in core time granuality with filesystems

sync-in-core-time-granuality-with-filesystems-sonypi-fix.patch
  sync-in-core-time-granuality-with-filesystems-sonypi-fix

remove-ip2-programs.patch
  remove ip2 programs

rcu-eliminate-rcu_ctrlblklock.patch
  rcu: eliminate rcu_ctrlblk.lock

rcu-make-two-internal-structs-static.patch
  rcu: make two internal structs static

rcu-simplify-quiescent-state-detection.patch
  rcu: simplify quiescent state detection

smb_file_open-retval-fix.patch
  smb_file_open() retval fix

sys_sched_setaffinity-on-up-should-fail-for-non-zero.patch
  sys_sched_setaffinity() on UP should fail for non-zero CPUs.

make-gconfig-work-with-gtk-24.patch
  make gconfig work with gtk-2.4

edd-add-edd=off-and-edd=skipmbr-options.patch
  EDD: add edd=off and edd=skipmbr options

panic_timeout-move-to-kernelh.patch
  panic_timeout: move to kernel.h

add-pr_get_name.patch
  Add PR_GET_NAME

fix-alt-sysrq-deadlock.patch
  fix alt-sysrq deadlock

cpumask-range-check-before-using-value.patch
  cpumask: range check before using value

noop-iosched-make-code-static.patch
  noop iosched: make code static

noop-iosched-remove-unused-includes.patch
  noop iosched: remove unused includes

loop-device-recursion-avoidance.patch
  loop device resursion avoidance

noone-uses-have_arch_si_codes-or-have_arch_sigevent_t.patch
  noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T

get_blkdev_list-cleanup.patch
  get_blkdev_list() cleanup

ext-apply-umask-to-symlinks-with-acls-configured-out.patch
  Ext[23]: apply umask to symlinks with ACLs configured out

fix-missing-wakeup-in-ipc-sem.patch
  fix missing wakeup in ipc/sem

irq-resource-deallocation-acpi.patch
  IRQ resource deallocation: ACPI

irq-resource-deallocation-ia64.patch
  IRQ resource deallocation: ia64

ioctl-rework.patch
  ioctl rework

__getblk_slow-can-loop-forever-when-pages-are-partially.patch
  __getblk_slow can loop forever when pages are partially mapped

remove-rcu-abuse-in-cpu_idle.patch
  Remove RCU abuse in cpu_idle()

remove-rcu-abuse-in-cpu_idle-warning-fix.patch
  remove-rcu-abuse-in-cpu_idle-warning-fix

udf-simplify-udf_iget-fix-race.patch
  udf: simplify udf_iget, fix race

udf-fix-reservation-discarding.patch
  udf: fix reservation discarding

remove-dead-ext3_put_inode-prototype.patch
  remove dead ext3_put_inode prototype

compat-sigtimedwait.patch
  compat: sigtimedwait

compat-sigtimedwait-sparc64-fix.patch
  compat-sigtimedwait-sparc64-fix

compat-sigtimedwait-ppc64-fix.patch
  compat-sigtimedwait ppc64 fix

msync-set-PF_SYNCWRITE.patch
  msync(): set PF_SYNCWRITE

prio_tree-roll-call-to-prio_tree_first-into-prio_tree_next.patch
  prio_tree: roll call to prio_tree_first into prio_tree_next

prio_tree-generalization.patch
  prio_tree: generalization

prio_tree-move-general-code-from-mm-to-lib.patch
  prio_tree: move general code from mm/ to lib/

lcd-fix-memory-leak-code-cleanup.patch
  lcd: fix memory leak, code cleanup

initramfs-unprivileged-image-creation.patch
  initramfs: unprivileged image creation

fix-conflicting-cpu_idle-declarations.patch
  fix conflicting cpu_idle() declarations

removes-redundant-sys_delete_module.patch
  remove redundant sys_delete_module()

fix-stop-signal-race.patch
  fix stop signal race

move-group_exit-flag-into-signal_structflags-word.patch
  move group_exit flag into signal_struct.flags word

fix-ptracer-death-race-yielding-bogus-bug_on.patch
  fix ptracer death race yielding bogus BUG_ON

move-waitchld_exit-from-task_struct-to-signal_struct.patch
  move waitchld_exit from task_struct to signal_struct

task_structexit_state-usage.patch
  task_struct.exit_state usage

trivial-uninline-kill-__exit_mm.patch
  uninline/kill __exit_mm()

selinux-scalability-add-spin_trylock_irq-and.patch
  SELinux scalability: add spin_trylock_irq and  spin_trylock_irqsave

selinux-scalability-convert-avc-to-rcu.patch
  SELinux scalability: convert AVC to RCU

selinux-scalability-convert-avc-to-rcu-fix.patch
  SELinux: fix bug in avc_update_node()

selinux-atomic_dec_and_test-bug.patch
  SELinux: atomic_dec_and_test() bug

selinux-scalability-avc-statistics-and-tuning.patch
  SELinux scalability: AVC statistics and tuning

selinux-regenerate-selinux-module-headers.patch
  SELinux: regenerate SELinux module headers

selinux-update-selinux_task_setscheduler.patch
  SELinux: update selinux_task_setscheduler

selinux-audit-task-comm-if-exe-cannot-be-determined.patch
  SELinux: audit task comm if exe cannot be determined

selinux-add-dynamic-context-transition-support-to-selinux.patch
  SELinux: add dynamic context transition support to SELinux

selinux-enhance-selinux-control-of-executable-mappings.patch
  SELinux: enhance SELinux control of executable mappings

selinux-add-member-node-to-selinuxfs.patch
  SELinux: add member node to selinuxfs

selinux-eliminate-unaligned-accesses-by-policy-loading-code.patch
  SELinux: eliminate unaligned accesses by policy loading code

oprofile-add-check_user_page_readable.patch
  oprofile: add check_user_page_readable()

oprofile-arch-independent-code-for-stack-trace.patch
  oprofile: arch-independent code for stack trace sampling

oprofile-arch-independent-code-for-stack-trace-rename-timer_init.patch
  oprofile-arch-independent-code-for-stack-trace: rename timer_init

oprofile-timer-backtrace-fix-2.patch
  oprofile: backtrace operation does not initialized

oprofile-i386-support-for-stack-trace-sampling.patch
  oprofile: i386 support for stack trace sampling

oprofile-i386-support-for-stack-trace-sampling-cleanup.patch
  oprofile-i386-support-for-stack-trace-sampling-cleanup

oprofile-i386-support-for-stack-trace-sampling-fix.patch
  oprofile-i386-support-for-stack-trace-sampling x86_64 fix

oprofile-ia64-support-for-oprofile-stack-trace.patch
  oprofile: ia64 support for oprofile stack trace sampling

oprofile-update-alpha-for-api-changes.patch
  oprofile: update alpha for api changes

oprofile-update-arm-for-api-changes.patch
  oprofile: update arm for api changes

oprofile-update-ppc-for-api-changes.patch
  oprofile: update ppc for api changes

oprofile-update-parisc-for-api-changes.patch
  oprofile: update parisc for api changes

oprofile-update-s390-for-api-changes.patch
  oprofile: update s390 for api changes

oprofile-update-sh-for-api-changes.patch
  oprofile: update sh for api changes

oprofile-update-sparc64-for-api-changes.patch
  oprofile: update sparc64 for api changes

oprofile-minor-cleanups.patch
  oprofile: minor cleanups

pcmcia-new-ds-cs-interface.patch
  pcmcia: new ds - cs interface

pcmcia-call-device-drivers-from-ds-not-from-cs.patch
  pcmcia: call device drivers from ds, not from cs

pcmcia-unify-bind_mtd-and-pcmcia_bind_mtd.patch
  pcmcia: unify bind_mtd and pcmcia_bind_mtd

pcmcia-unfiy-bind_device-and-pcmcia_bind_device.patch
  pcmcia: unfiy bind_device and pcmcia_bind_device

pcmcia-device-model-integration-can-only-be-submitted-under-gpl.patch
  pcmcia: device model integration can only be submitted under GPL

pcmcia-add-pcmcia_devices.patch
  pcmcia: add pcmcia_device(s)

pcmcia-remove-socket_bind_t-use-pcmcia_devices-instead.patch
  pcmcia: remove socket_bind_t, use pcmcia_devices instead

pcmcia-remove-internal-module-use-count-use-module_refcount-instead.patch
  pcmcia: remove internal module use count, use module_refcount instead

pcmcia-set-drivers-owner-field.patch
  pcmcia: set driver's .owner field

pcmcia-move-pcmcia_unregister_client-to-ds.patch
  pcmcia: move pcmcia_(un,)register_client to ds

pcmcia-device-model-integration-can-only-be-submitted-under-gpl-part-2.patch
  pcmcia: device model integration can only be submitted under GPL, part 2

pcmcia-use-kref-instead-of-native-atomic-counter.patch
  pcmcia: use kref instead of native atomic counter

pcmcia-add-pcmcia_putget_socket.patch
  pcmcia: add pcmcia_(put,get)_socket

pcmcia-grab-a-reference-to-the-cs-socket-in-ds.patch
  pcmcia: grab a reference to the cs-socket in ds

pcmcia-get-a-reference-to-ds-socket-for-each-pcmcia_device.patch
  pcmcia: get a reference to ds-socket for each pcmcia_device

pcmcia-add-a-pointer-to-client-in-struct-pcmcia_device.patch
  pcmcia: add a pointer to client in struct pcmcia_device

pcmcia-use-pcmcia_device-in-send_event.patch
  pcmcia: use pcmcia_device in send_event

pcmcia-use-pcmcia_device-to-mark-clients-as-stale.patch
  pcmcia: use pcmcia_device to mark clients as stale

pcmcia-code-moving-in-ds.patch
  pcmcia: code moving in ds

pcmcia-use-pcmcia_device-in-register_client.patch
  pcmcia: use pcmcia_device in register_client

pcmcia-direct-ordered-unbind-of-devices.patch
  pcmcia: direct-ordered unbind of devices

pcmcia-bug-on-dev_list-=-null.patch
  pcmcia: BUG on dev_list != NULL

pcmcia-bug-if-clients-are-kept-too-long.patch
  pcmcia: BUG() if clients are kept too long

pcmcia-move-struct-client_t-inside-struct-pcmcia_device.patch
  pcmcia: move struct client_t inside struct pcmcia_device

pcmcia-use-driver_find-in-ds.patch
  pcmcia: use driver_find in ds

pcmcia-set_netdev-for-network-devices.patch
  pcmcia: SET_NETDEV for network devices

pcmcia-set_netdev-for-wireless-network-devices.patch
  pcmcia: SET_NETDEV for wireless network devices

pcmcia-reduce-stack-usage-in-ds_ioctl-randy-dunlap.patch
  pcmcia: reduce stack usage in ds_ioctl (Randy Dunlap)

pcmcia-add-disable_clkrun-option.patch
  pcmcia: Add disable_clkrun option

pcmcia-rename-pcmcia-devices.patch
  pcmcia: rename PCMCIA devices

pcmcia-pd6729-e-mail-update.patch
  pcmcia: pd6729: e-mail update

pcmcia-pd6729-cleanups.patch
  pcmcia: pd6729: cleanups

pcmcia-pd6729-isa_irq-handling.patch
  pcmcia: pd6729: isa_irq handling

pcmcia-remove-obsolete-code.patch
  pcmcia: remove obsolete code

pcmcia-remove-pending_events.patch
  pcmcia: remove pending_events

pcmcia-remove-client_attributes.patch
  pcmcia: remove client_attributes

pcmcia-remove-unneeded-parameter-from-rsrc_mgr.patch
  pcmcia: remove unneeded parameter from rsrc_mgr

pcmcia-remove-dev_info-from-client.patch
  pcmcia: remove dev_info from client

pcmcia-remove-mtd-and-bulkmem-replaced-by-pcmciamtd.patch
  pcmcia: remove mtd and bulkmem (replaced by pcmciamtd)

pcmcia-per-socket-resource-database.patch
  pcmcia: per-socket resource database

pcmcia-validate_mem-only-for-non-statically-mapped-sockets.patch
  pcmcia: validate_mem only for non-statically mapped sockets

pcmcia-adjust_io_region-only-for-non-statically-mapped-sockets.patch
  pcmcia: adjust_io_region only for non-statically mapped sockets

pcmcia-find_io_region-only-for-non-statically-mapped-sockets.patch
  pcmcia: find_io_region only for non-statically mapped sockets

pcmcia-find_mem_region-only-for-non-statically-mapped-sockets.patch
  pcmcia: find_mem_region only for non-statically mapped sockets

pcmcia-adjust_-and-release_resources-only-for-non-statically-mapped-sockets.patch
  pcmcia: adjust_ and release_resources only for non-statically mapped sockets

pcmcia-move-resource-handling-code-only-for-non-statically-mapped-sockets-to-other-file.patch
  pcmcia: move resource handling code only for non-statically mapped sockets to other file

pcmcia-make-rsrc_nonstatic-an-independend-module.patch
  pcmcia: make rsrc_nonstatic an independend module

pcmcia-allocate-resource-database-per-socket.patch
  pcmcia: allocate resource database per-socket

pcmcia-remove-typedef.patch
  pcmcia: remove typedef

pcmcia-grab-lock-in-resource_release.patch
  pcmcia: grab lock in resource_release

knfsd-nfsd_translate_wouldblocks.patch
  knfsd: nfsd_translate_wouldblocks

knfsd-svcrpc-auth_null-fixes.patch
  knfsd: svcrpc: auth_null fixes

knfsd-svcrpc-share-code-duplicated-between-auth_unix-and-auth_null.patch
  knfsd: svcrpc: share code duplicated between auth_unix and auth_null

knfsd-nfsd4-fix-open_downgrade-decode-error.patch
  knfsd: nfsd4: fix open_downgrade decode error.

knfsd-rpcsec_gss-comparing-pointer-to-0-instead-of-null.patch
  knfsd: rpcsec_gss: comparing pointer to 0 instead of NULL

knfsd-nfsd4-fix-fileid-in-readdir-responses.patch
  knfsd: nfsd4: fix fileid in readdir responses

knfsd-nfsd4-use-the-fsid-export-option-when-returning-the-fsid-attribute.patch
  knfsd: nfsd4: use the fsid export option when returning the fsid attribute

knfsd-nfsd4-encode_dirent-cleanup.patch
  knfsd: nfsd4 encode_dirent cleanup

knfsd-nfsd4-encode_dirent-superfluous-assignment.patch
  knfsd: nfsd4: encode_dirent: superfluous assignment

knfsd-nfsd4-encode_dirent-superfluous-local-variables.patch
  knfsd: nfsd4: encode_dirent: superfluous local variables

knfsd-nfsd4-encode_dirent-more-readdir-attribute-encoding-to-new-function.patch
  knfsd: nfsd4: encode_dirent: more readdir attribute encoding to new function

knfsd-nfsd4-encode_dirent-simplify-nfs4_encode_dirent_fattr.patch
  knfsd: nfsd4: encode_dirent: simplify nfs4_encode_dirent_fattr

knfsd-nfsd4-encode_dirent-move-rdattr_error-code-to-new-function.patch
  knfsd: nfsd4: encode_dirent: move rdattr_error code to new function

knfsd-nfsd4-encode_dirent-simplify-error-handling.patch
  knfsd: nfsd4: encode_dirent: simplify error handling

knfsd-nfsd4-encode_dirent-simplify-control-flow.patch
  knfsd: nfsd4: encode_dirent: simplify control flow

knfsd-nfsd4-encode_dirent-fix-dropit-return.patch
  knfsd: nfsd4: encode_dirent: fix dropit return

knfsd-nfsd4-encode_dirent-trivial-cleanup.patch
  knfsd: nfsd4: encode_dirent: trivial cleanup

knfsd-move-nfserr_openmode-checking-from-nfsd_read-write-into-nfs4_preprocess_stateid_op-in-preperation-for-delegation-state.patch
  knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preperation for delegation state.

knfsd-check-the-callback-netid-in-gen_callback.patch
  knfsd: check the callback netid in gen_callback.

knfsd-count-the-nfs4_client-structure-usage.patch
  knfsd: count the nfs4_client structure usage

knfsd-preparation-for-delegation-client-callback-probe.patch
  knfsd: preparation for delegation: client callback probe

knfsd-preparation-for-delegation-client-callback-probe-warning-fixes.patch
  knfsd-preparation-for-delegation-client-callback-probe-warning-fixes

knfsd-probe-the-callback-path-upon-a-successful-setclientid_confirm.patch
  knfsd: probe the callback path upon a successful setclientid_confirm

knfsd-check-for-existence-of-file_lock-parameter-inside-of-the-kernel-lock.patch
  knfsd: check for existence of file_lock parameter inside of the kernel lock.

knfsd-get-rid-of-the-special-delegation_stateid_t-use-the-existing-stateid_t.patch
  knfsd: get rid of the special delegation_stateid_t, use the existing stateid_t.

knfsd-add-structures-for-delegation-support.patch
  knfsd: add structures for delegation support

knfsd-allocate-and-initialize-the-delegation-structure.patch
  knfsd: allocate and initialize the delegation structure.

knfsd-find-a-delegation-for-a-file-given-a-stateid.patch
  knfsd: find a delegation for a file given a stateid.

knfsd-add-the-delegation-release-and-free-functions.patch
  knfsd: add the delegation release and free functions

knfsd-changes-to-expire_client.patch
  knfsd: changes to expire_client

knfsd-delay-nfsd_colse-for-delegations-until-reaping.patch
  knfsd: delay nfsd_colse for delegations until reaping

knfsd-delegation-recall-callback-rpc.patch
  knfsd: delegation recall callback rpc.

knfsd-kernel-thread-for-delegation-callback.patch
  knfsd: kernel thread for delegation callback

knfsd-helper-functions-for-deciding-to-grant-a-delegation.patch
  knfsd: helper functions for deciding to grant a delegation.

knfsd-attempt-to-hand-out-a-delegation.patch
  knfsd: attempt to hand out a delegation

knfsd-remove-unnecessary-stateowner-existence-check.patch
  knfsd: remove unnecessary stateowner existence check.

knfsd-check-for-openmode-violations-given-a-delegation-stateid.patch
  knfsd: check for openmode violations given a delegation stateid.

knfsd-add-checking-of-delegation-stateids-to-nfs4_preprocess_stateid_op.patch
  knfsd: add checking of delegation stateids to nfs4_preprocess_stateid_op.

knfsd-add-the-delegreturn-operation.patch
  knfsd: add the DELEGRETURN operation.

knfsd-add-to-the-laundromat-service-for-delegations.patch
  knfsd: add to the laundromat service for delegations.

knfsd-clear-the-recall_lru-of-delegations-at-shutdown.patch
  knfsd: clear the recall_lru of delegations at shutdown

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)
  kgdbL warning fix
  kgdb buffer overflow fix
  kgdbL warning fix
  kgdb: CONFIG_DEBUG_INFO fix
  x86_64 fixes
  correct kgdb.txt Documentation link (against  2.6.1-rc1-mm2)
  kgdb: fix for recent gcc
  kgdb warning fixes
  THREAD_SIZE fixes for kgdb
  Fix stack overflow test for non-8k stacks
  kgdb-ga.patch fix for i386 single-step into sysenter
  fix TRAP_BAD_SYSCALL_EXITS on i386
  add TRAP_BAD_SYSCALL_EXITS config for i386
  kgdb-is-incompatible-with-kprobes
  kgdb-ga-build-fix
  kgdb-ga-fixes

kgdb-kill-off-highmem_start_page.patch
  kgdb: kill off highmem_start_page

kgdboe-netpoll.patch
  kgdb-over-ethernet via netpoll
  kgdboe: fix configuration of MAC address

kgdb-x86_64-support.patch
  kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
  kgdb-x86_64-warning-fixes
  kgdb-x86_64-fix
  kgdb-x86_64-serial-fix
  kprobes exception notifier fix

invalidate_inodes-speedup.patch
  invalidate_inodes speedup
  more invalidate_inodes speedup fixes

dev-mem-restriction-patch.patch
  /dev/mem restriction patch

dev-mem-restriction-patch-allow-reads.patch
  dev-mem-restriction-patch: allow reads

jbd-remove-livelock-avoidance.patch
  JBD: remove livelock avoidance code in journal_dirty_data()

journal_add_journal_head-debug.patch
  journal_add_journal_head-debug

list_del-debug.patch
  list_del debug check

unplug-can-sleep.patch
  unplug functions can sleep

firestream-warnings.patch
  firestream warnings

perfctr-core.patch
  perfctr: core

perfctr-i386.patch
  perfctr: i386

perfctr-x86-core-updates.patch
  perfctr x86 core updates

perfctr-x86-driver-updates.patch
  perfctr x86 driver updates

perfctr-x86-driver-cleanup.patch
  perfctr: x86 driver cleanup

perfctr-prescott-fix.patch
  Prescott fix for perfctr

perfctr-x86-update-2.patch
  perfctr x86 update 2

perfctr-x86_64.patch
  perfctr: x86_64

perfctr-x86_64-core-updates.patch
  perfctr x86_64 core updates

perfctr-ppc.patch
  perfctr: PowerPC

perfctr-ppc32-driver-update.patch
  perfctr: ppc32 driver update

perfctr-ppc32-mmcr0-handling-fixes.patch
  perfctr ppc32 MMCR0 handling fixes

perfctr-ppc32-update.patch
  perfctr ppc32 update

perfctr-ppc32-update-2.patch
  perfctr ppc32 update

perfctr-virtualised-counters.patch
  perfctr: virtualised counters

perfctr-remap_page_range-fix.patch

virtual-perfctr-illegal-sleep.patch
  virtual perfctr illegal sleep

make-perfctr_virtual-default-in-kconfig-match-recommendation.patch
  Make PERFCTR_VIRTUAL default in Kconfig match recommendation  in help text

perfctr-ifdef-cleanup.patch
  perfctr ifdef cleanup

perfctr-update-2-6-kconfig-related-updates.patch
  perfctr: Kconfig-related updates

perfctr-virtual-updates.patch
  perfctr virtual updates

perfctr-virtual-cleanup.patch
  perfctr: virtual cleanup

perfctr-ppc32-preliminary-interrupt-support.patch
  perfctr ppc32 preliminary interrupt support

perfctr-update-5-6-reduce-stack-usage.patch
  perfctr: reduce stack usage

perfctr-interrupt-support-kconfig-fix.patch
  perfctr interrupt_support Kconfig fix

perfctr-low-level-documentation.patch
  perfctr low-level documentation

perfctr-inheritance-1-3-driver-updates.patch
  perfctr inheritance: driver updates

perfctr-inheritance-2-3-kernel-updates.patch
  perfctr inheritance: kernel updates

perfctr-inheritance-3-3-documentation-updates.patch
  perfctr inheritance: documentation updates

perfctr-inheritance-locking-fix.patch
  perfctr inheritance locking fix

perfctr-api-changes-first-step.patch
  perfctr API changes: first step

perfctr-virtual-update.patch
  perfctr virtual update

perfctr-x86-64-ia32-emulation-fix.patch
  perfctr x86-64 ia32 emulation fix

perfctr-sysfs-update-1-4-core.patch
  perfctr sysfs update: core

perfctr-sysfs-update.patch
  Perfctr sysfs update

perfctr-sysfs-update-2-4-x86.patch
  perfctr sysfs update: x86

perfctr-sysfs-update-3-4-x86-64.patch
  perfctr sysfs update: x86-64

perfctr-sysfs-update-4-4-ppc32.patch
  perfctr sysfs update: ppc32

sched-more-agressive-wake_idle.patch
  sched: more agressive wake_idle()

sched-can_migrate-exception-for-idle-cpus.patch
  sched: can_migrate exception for idle cpus

sched-newidle-fix.patch
  sched: newidle fix

sched-active_load_balance-fixlet.patch
  sched: active_load_balance() fixlet

sched-reset-cache_hot_time.patch
  sched: reset cache_hot_time

schedc-whitespace-mangler.patch
  sched.c whitespace mangler

sched-alter_kthread_prio.patch
  sched: alter_kthread_prio

sched-adjust_timeslice_granularity.patch
  sched: adjust_timeslice_granularity

sched-add_requeue_task.patch
  sched: add_requeue_task

requeue_granularity.patch
  sched: requeue_granularity

sched-remove_interactive_credit.patch
  sched: remove_interactive_credit

sched-use-cached-current-value.patch
  sched: use cached current value

dont-hide-thread_group_leader-from-grep.patch
  don't hide thread_group_leader() from grep

sched-no-need-to-recalculate-rq.patch
  sched: no need to recalculate rq

export-sched_setscheduler-for-kernel-module-use.patch
  export sched_setscheduler() for kernel module use

add-do_proc_doulonglongvec_minmax-to-sysctl-functions.patch
  Add do_proc_doulonglongvec_minmax to sysctl functions
  add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix
  add-do_proc_doulonglongvec_minmax-to-sysctl-functions fix 2

add-sysctl-interface-to-sched_domain-parameters.patch
  Add sysctl interface to sched_domain parameters

preempt-smp.patch
  improve preemption on SMP

preempt-smp-_raw_read_trylock-bias-fix.patch
  preempt-smp _raw_read_trylock bias fix

preempt-cleanup.patch
  preempt cleanup

preempt-cleanup-fix.patch
  preempt-cleanup-fix

add-lock_need_resched.patch
  add lock_need_resched()

sched-add-cond_resched_softirq.patch
  sched: add cond_resched_softirq()

sched-ext3-fix-scheduling-latencies-in-ext3.patch
  sched: ext3: fix scheduling latencies in ext3

break-latency-in-invalidate_list.patch
  break latency in invalidate_list()

sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent.patch
  sched: vfs: fix scheduling latencies in prune_dcache() and select_parent()

sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent-fix.patch
  sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent fix

sched-net-fix-scheduling-latencies-in-netstat.patch
  sched: net: fix scheduling latencies in netstat

sched-net-fix-scheduling-latencies-in-__release_sock.patch
  sched: net: fix scheduling latencies in __release_sock

sched-mm-fix-scheduling-latencies-in-unmap_vmas.patch
  sched: mm: fix scheduling latencies in unmap_vmas()

sched-mm-fix-scheduling-latencies-in-get_user_pages.patch
  sched: mm: fix scheduling latencies in get_user_pages()

sched-mm-fix-scheduling-latencies-in-filemap_sync.patch
  sched: mm: fix scheduling latencies in filemap_sync()

fix-keventd-execution-dependency.patch
  fix keventd execution dependency

sched-fix-scheduling-latencies-in-mttrc.patch
  sched: fix scheduling latencies in mttr.c

sched-fix-scheduling-latencies-in-mttrc-reenables-interrupts.patch
  sched-fix-scheduling-latencies-in-mttrc reenables interrupts

sched-fix-scheduling-latencies-in-vgaconc.patch
  sched: fix scheduling latencies in vgacon.c

sched-fix-scheduling-latencies-for-preempt-kernels.patch
  sched: fix scheduling latencies for !PREEMPT kernels

idle-thread-preemption-fix.patch
  idle thread preemption fix

oprofile-smp_processor_id-fixes.patch
  oprofile smp_processor_id() fixes

fix-smp_processor_id-warning-in-numa_node_id.patch
  Fix smp_processor_id() warning in numa_node_id()

replace-numnodes-with-node_online_map-alpha.patch
  Subject: [RFC PATCH 1/10] Replace 'numnodes' with 'node_online_map' - alpha

replace-numnodes-with-node_online_map-arm.patch
  Subject: [RFC PATCH 2/10] Replace 'numnodes' with 'node_online_map' - arm

replace-numnodes-with-node_online_map-i386.patch
  Subject: [RFC PATCH 3/10] Replace 'numnodes' with 'node_online_map' - i386

replace-numnodes-with-node_online_map-ia64.patch
  Subject: [RFC PATCH 4/10] Replace 'numnodes' with 'node_online_map' - ia64

replace-numnodes-with-node_online_map-m32r.patch
  Subject: [RFC PATCH 5/10] Replace 'numnodes' with 'node_online_map' - m32r

replace-numnodes-with-node_online_map-mips.patch
  Subject: [RFC PATCH 6/10] Replace 'numnodes' with 'node_online_map' - mips

replace-numnodes-with-node_online_map-parisc.patch
  Subject: [RFC PATCH 7/10] Replace 'numnodes' with 'node_online_map' - parisc

replace-numnodes-with-node_online_map-ppc64.patch
  Subject: [RFC PATCH 8/10] Replace 'numnodes' with 'node_online_map' - ppc64

replace-numnodes-with-node_online_map-x86_64.patch
  Subject: [RFC PATCH 9/10] Replace 'numnodes' with 'node_online_map' - x86_64

replace-numnodes-with-node_online_map.patch
  Subject: [RFC PATCH 10/10] Replace 'numnodes' with 'node_online_map' - 	arch-independent

vmtrunc-truncate_count-not-atomic.patch
  vmtrunc: truncate_count not atomic

vmtrunc-restore-unmap_vmas-zap_bytes.patch
  vmtrunc: restore unmap_vmas zap_bytes

vmtrunc-unmap_mapping_range_tree.patch
  vmtrunc: unmap_mapping_range_tree

vmtrunc-unmap_mapping-dropping-i_mmap_lock.patch
  vmtrunc: unmap_mapping dropping i_mmap_lock

vmtrunc-vm_truncate_count-race-caution.patch
  vmtrunc: vm_truncate_count race caution

vmtrunc-bug-if-page_mapped.patch
  vmtrunc: bug if page_mapped

vmtrunc-restart_addr-in-truncate_count.patch
  vmtrunc: restart_addr in truncate_count

remove-the-bkl-by-turning-it-into-a-semaphore.patch
  remove the BKL by turning it into a semaphore

oprofile-preempt-warning-fixes.patch
  oprofile preempt warning fixes

smp_processor_id-commentary.patch
  smp_processor_id() commentary

cpu_down-warning-fix.patch
  cpu_down() warning fix

linux-2.6.8.1-49-rpc_workqueue.patch
  nfs: RPC: Convert rpciod into a work queue for greater flexibility

linux-2.6.8.1-50-rpc_queue_lock.patch
  nfs: RPC: Remove the rpc_queue_lock global spinlock

allow-modular-ide-pnp.patch
  allow modular ide-pnp

allow-x86_64-to-reenable-interrupts-on-contention.patch
  Allow x86_64 to reenable interrupts on contention

i386-cpu-hotplug-updated-for-mm.patch
  i386 CPU hotplug updated for -mm

ppc64-fix-cpu-hotplug.patch
  ppc64: fix hotplug cpu

serialize-access-to-ide-devices.patch
  serialize access to ide devices

disable-atykb-warning.patch
  disable atykb "too many keys pressed" warning

export-file_ra_state_init-again.patch
  Export file_ra_state_init() again

cachefs-filesystem.patch
  CacheFS filesystem

numa-policies-for-file-mappings-mpol_mf_move-cachefs.patch
  numa-policies-for-file-mappings-mpol_mf_move for cachefs

cachefs-release-search-records-lest-they-return-to-haunt-us.patch
  CacheFS: release search records lest they return to haunt us

fix-64-bit-problems-in-cachefs.patch
  Fix 64-bit problems in cachefs

cachefs-fixed-typos-that-cause-wrong-pointer-to-be-kunmapped.patch
  cachefs: fixed typos that cause wrong pointer to be kunmapped

cachefs-return-the-right-error-upon-invalid-mount.patch
  CacheFS: return the right error upon invalid mount

fix-cachefs-barrier-handling-and-other-kernel-discrepancies.patch
  Fix CacheFS barrier handling and other kernel discrepancies

remove-error-from-linux-cachefsh.patch
  Remove #error from linux/cachefs.h

cachefs-warning-fix-2.patch
  cachefs warning fix 2

cachefs-linkage-fix-2.patch
  cachefs linkage fix

cachefs-build-fix.patch
  cachefs build fix

cachefs-documentation.patch
  CacheFS documentation

add-page-becoming-writable-notification.patch
  Add page becoming writable notification

add-page-becoming-writable-notification-fix.patch
  do_wp_page_mk_pte_writable() fix

provide-a-filesystem-specific-syncable-page-bit.patch
  Provide a filesystem-specific sync'able page bit

provide-a-filesystem-specific-syncable-page-bit-fix.patch
  provide-a-filesystem-specific-syncable-page-bit-fix

provide-a-filesystem-specific-syncable-page-bit-fix-2.patch
  provide-a-filesystem-specific-syncable-page-bit-fix-2

make-afs-use-cachefs.patch
  Make AFS use CacheFS

afs-cachefs-dependency-fix.patch
  afs-cachefs-dependency-fix

split-general-cache-manager-from-cachefs.patch
  Split general cache manager from CacheFS

turn-cachefs-into-a-cache-backend.patch
  Turn CacheFS into a cache backend

rework-the-cachefs-documentation-to-reflect-fs-cache-split.patch
  Rework the CacheFS documentation to reflect FS-Cache split

update-afs-client-to-reflect-cachefs-split.patch
  Update AFS client to reflect CacheFS split

assign_irq_vector-section-fix.patch
  assign_irq_vector __init section fix

kexec-i8259-shutdowni386.patch
  kexec: i8259-shutdown.i386

kexec-i8259-shutdown-x86_64.patch
  kexec: x86_64 i8259 shutdown

kexec-apic-virtwire-on-shutdowni386patch.patch
  kexec: apic-virtwire-on-shutdown.i386.patch

kexec-apic-virtwire-on-shutdownx86_64.patch
  kexec: apic-virtwire-on-shutdown.x86_64

kexec-ioapic-virtwire-on-shutdowni386.patch
  kexec: ioapic-virtwire-on-shutdown.i386

kexec-apic-virt-wire-fix.patch
  kexec: apic-virt-wire fix

kexec-ioapic-virtwire-on-shutdownx86_64.patch
  kexec: ioapic-virtwire-on-shutdown.x86_64

kexec-e820-64bit.patch
  kexec: e820-64bit

kexec-kexec-generic.patch
  kexec: kexec-generic

kexec-ide-spindown-fix.patch
  kexec-ide-spindown-fix

kexec-ifdef-cleanup.patch
  kexec ifdef cleanup

kexec-machine_shutdownx86_64.patch
  kexec: machine_shutdown.x86_64

kexec-kexecx86_64.patch
  kexec: kexec.x86_64

kexec-kexecx86_64-4level-fix.patch
  kexec-kexecx86_64-4level-fix

kexec-machine_shutdowni386.patch
  kexec: machine_shutdown.i386

kexec-kexeci386.patch
  kexec: kexec.i386

kexec-use_mm.patch
  kexec: use_mm

kexec-loading-kernel-from-non-default-offset.patch
  kexec: loading kernel from non-default offset

kexec-loading-kernel-from-non-default-offset-fix.patch
  kdump: fix bss compile error

kexec-enabling-co-existence-of-normal-kexec-kernel-and-panic-kernel.patch
  kexec: nabling co-existence of normal kexec kernel and  panic kernel

kexec-ppc-support.patch
  kexec: ppc support

crashdump-documentation.patch
  crashdump: documentation

crashdump-memory-preserving-reboot-using-kexec.patch
  crashdump: memory preserving reboot using kexec

crashdump-memory-preserving-reboot-using-kexec-fix.patch
  kdump: Fix for boot problems on SMP

kdump-config_discontigmem-fix.patch
  kdump: CONFIG_DISCONTIGMEM fix

crashdump-routines-for-copying-dump-pages.patch
  crashdump: routines for copying dump pages

crashdump-routines-for-copying-dump-pages-kmap-fiddle.patch
  crashdump-routines-for-copying-dump-pages-kmap-fiddle

crashdump-kmap-build-fix.patch
  crashdump kmap build fix

crashdump-register-snapshotting-before-kexec-boot.patch
  crashdump: register snapshotting before kexec boot

crashdump-elf-format-dump-file-access.patch
  crashdump: ELF format dump file access

crashdump-linear-raw-format-dump-file-access.patch
  crashdump: linear/raw format dump file access

crashdump-minor-bug-fixes-to-kexec-crashdump-code.patch
  crashdump: minor bug fixes to kexec crashdump code

crashdump-cleanups-to-the-kexec-based-crashdump-code.patch
  crashdump: cleanups to the kexec based crashdump code

x86-rename-apic_mode_exint.patch
  x86: rename APIC_MODE_EXINT

x86-local-apic-fix.patch
  x86: local apic fix

new-bitmap-list-format-for-cpusets.patch
  new bitmap list format (for cpusets)

cpusets-big-numa-cpu-and-memory-placement.patch
  cpusets - big numa cpu and memory placement

cpusets-fix-cpuset_get_dentry.patch
  cpusets : fix cpuset_get_dentry()

cpusets-fix-race-in-cpuset_add_file.patch
  cpusets: fix race in cpuset_add_file()

cpusets-remove-more-casts.patch
  cpusets: remove more casts

cpusets-make-config_cpusets-the-default-in-sn2_defconfig.patch
  cpusets: make CONFIG_CPUSETS the default in sn2_defconfig

cpusets-document-proc-status-allowed-fields.patch
  cpusets: document proc status allowed fields

cpusets-dont-export-proc_cpuset_operations.patch
  Cpusets - Dont export proc_cpuset_operations

cpusets-display-allowed-masks-in-proc-status.patch
  cpusets: display allowed masks in proc status

cpusets-simplify-cpus_allowed-setting-in-attach.patch
  cpusets: simplify cpus_allowed setting in attach

cpusets-remove-useless-validation-check.patch
  cpusets: remove useless validation check

cpusets-config_cpusets-depends-on-smp.patch
  Cpusets: CONFIG_CPUSETS depends on SMP

cpusets-tasks-file-simplify-format-fixes.patch
  Cpusets tasks file: simplify format, fixes

cpusets-simplify-memory-generation.patch
  Cpusets: simplify memory generation

cpusets-interoperate-with-hotplug-online-maps.patch
  cpusets: interoperate with hotplug online maps

cpusets-alternative-fix-for-possible-race-in.patch
  cpusets: alternative fix for possible race in  cpuset_tasks_read()

cpusets-remove-casts.patch
  cpusets: remove void* typecasts

reiser4-sb_sync_inodes.patch
  reiser4: vfs: add super_operations.sync_inodes()

reiser4-allow-drop_inode-implementation.patch
  reiser4: export vfs inode.c symbols

reiser4-truncate_inode_pages_range.patch
  reiser4: vfs: add truncate_inode_pages_range()

reiser4-export-remove_from_page_cache.patch
  reiser4: export pagecache add/remove functions to modules

reiser4-export-page_cache_readahead.patch
  reiser4: export page_cache_readahead to modules

reiser4-reget-page-mapping.patch
  reiser4: vfs: re-check page->mapping after calling try_to_release_page()

reiser4-rcu-barrier.patch
  reiser4: add rcu_barrier() synchronization point

reiser4-export-inode_lock.patch
  reiser4: export inode_lock to modules

reiser4-export-pagevec-funcs.patch
  reiser4: export pagevec functions to modules

reiser4-export-radix_tree_preload.patch
  reiser4: export radix_tree_preload() to modules

reiser4-export-find_get_pages.patch

reiser4-radix-tree-tag.patch
  reiser4: add new radix tree tag

reiser4-radix_tree_lookup_slot.patch
  reiser4: add radix_tree_lookup_slot()

reiser4-perthread-pages.patch
  reiser4: per-thread page pools

reiser4-unstatic-kswapd.patch
  reiser4: make kswapd() unstatic for debug

reiser4-include-reiser4.patch
  reiser4: add to build system

reiser4-doc.patch
  reiser4: documentation

reiser4-only.patch
  reiser4: main fs

reiser4-recover-read-performance.patch
  reiser4: recover read performance

reiser4-export-find_get_pages_tag.patch
  reiser4-export-find_get_pages_tag

reiser4-add-missing-context.patch

add-acpi-based-floppy-controller-enumeration.patch
  Add ACPI-based floppy controller enumeration.

possible-dcache-bug-debugging-patch.patch
  Possible dcache BUG: debugging patch

3c59x-reload-eeprom-values-at-rmmod-for-needy-cards.patch
  3c59x: reload EEPROM values at rmmod for needy cards

3c59x-remove-eeprom_reset-for-3c905b.patch
  3c59x: remove EEPROM_RESET for 3c905B

3c59x-add-eeprom_reset-for-3c900-boomerang.patch
  3c59x: Add EEPROM_RESET for 3c900 Boomerang

3c59x-pm-fix.patch
  3c59x: enable power management unconditionally

3c59x-missing-pci_disable_device.patch
  3c59x: missing pci_disable_device

3c59x-use-netdev_priv.patch
  3c59x: use netdev_priv

3c59x-make-use-of-generic_mii_ioctl.patch
  3c59x: Make use of generic_mii_ioctl

3c59x-vortex-select-mii.patch
  3c59x: VORTEX select MII

3c59x-support-more-ethtool_ops.patch
  3c59x: support more ethtool_ops

serial-add-support-for-non-standard-xtals-to-16c950-driver.patch
  serial: add support for non-standard XTALs to 16c950 driver

add-support-for-possio-gcc-aka-pcmcia-siemens-mc45.patch
  Add support for Possio GCC AKA PCMCIA Siemens MC45

new-serial-flow-control.patch
  new serial flow control

mpsc-driver-patch.patch
  serial: MPSC driver

vm-pageout-throttling.patch
  vm: pageout throttling

revert-allow-oem-written-modules-to-make-calls-to-ia64-oem-sal-functions.patch
  revert "allow OEM written modules to make calls to ia64 OEM SAL functions"

md-improve-hash-code-in-linearc.patch
  md: improve 'hash' code in linear.c

md-add-interface-for-userspace-monitoring-of-events.patch
  md: add interface for userspace monitoring of events.

make-acpi_bus_register_driver-consistent-with-pci_register_driver-again.patch
  make acpi_bus_register_driver() consistent with pci_register_driver()

enforce-a-gap-between-heap-and-stack.patch
  Enforce a gap between heap and stack

remove-lock_section-from-x86_64-spin_lock-asm.patch
  remove LOCK_SECTION from x86_64 spin_lock asm

kfree_skb-dump_stack.patch
  kfree_skb-dump_stack

for-mm-only-remove-remap_page_range-completely.patch
  vm: for -mm only: remove remap_page_range() completely

cancel_rearming_delayed_work.patch
  cancel_rearming_delayed_work()
  make cancel_rearming_delayed_workqueue static

ipvs-deadlock-fix.patch
  ipvs deadlock fix

minimal-ide-disk-updates.patch
  Minimal ide-disk updates

no-buddy-bitmap-patch-revist-intro-and-includes.patch
  no buddy bitmap patch revist: intro and includes

no-buddy-bitmap-patch-revisit-for-mm-page_allocc.patch
  no buddy bitmap patch revisit: for mm/page_alloc.c

no-buddy-bitmap-patch-revisit-for-mm-page_allocc-fix.patch
  no-buddy-bitmap-patch-revisit-for-mm-page_allocc fix

no-buddy-bitmap-patch-revist-for-ia64.patch
  no buddy bitmap patch revist: for ia64

no-buddy-bitmap-patch-revist-for-ia64-fix.patch
  no-buddy-bitmap-patch-revist-for-ia64 fix

use-find_trylock_page-in-free_swap_and_cache-instead-of-hand-coding.patch
  use find_trylock_page in free_swap_and_cache instead of hand coding

fbdev-sis-framebuffer-driver-update-1717.patch
  fbdev: SiS framebuffer driver update 1.7.17

fbdev-sysfs-fix.patch
  fbdev: sysfs fix

pm2fb-module-parameters-and-module-conditional-code.patch
  pm2fb: module parameters and module-conditional code

pm2fb-save-restore-memory-config.patch
  pm2fb: save/restore memory config

pm2fb-use-modedb-in-modules.patch
  pm2fb: use modedb in modules

pm2fb-fix-big-endian-sparc-support.patch
  pm2fb: fix big-endian (Sparc) support

pm2fb-fix-fbi-image-display-on-24-bit-depth-big-endian.patch
  pm2fb: fix fbi image display on 24 bit depth big endian

fix-rom-enable-disable-in-r128-and-radeon-fb-drivers.patch
  fix ROM enable/disable in r128 and radeon fb drivers

fbdev-cleanup-i2c-code-of-rivafb.patch
  fbdev: Cleanup i2c code of rivafb

fbdev-revive-bios-less-booting-for-rage-xl-cards.patch
  fbdev: Revive BIOS-less booting for Rage XL cards

fbdev-revive-global_mode_option.patch
  fbdev: Revive global_mode_option

fbcon-fbdev-add-blanking-notification.patch
  fbcon/fbdev: Add blanking notification

fbcon-fbdev-add-blanking-notification-fix.patch
  fbcon-fbdev-add-blanking-notification-fix

fbdev-check-return-value-of-fb_add_videomode.patch
  fbdev: Check return value of fb_add_videomode

fbdev-do-a-symbol_put-for-each-symbol_get-in-savagefb.patch
  fbdev: Do a symbol_put for each symbol_get in savagefb

fbdev-add-viewsonic-pf775a-to-broken-display-database.patch
  fbdev: Add Viewsonic PF775a to broken display database

fbdev-fix-default-timings-in-vga16fb.patch
  fbdev: Fix default timings in vga16fb

fbdev-reduce-stack-usage-of-intelfb.patch
  fbdev: Reduce stack usage of intelfb

zr36067-driver-correct-jpeg-app-com-markers.patch
  zr36067 driver - correct jpeg app/com markers

zr36067-driver-ppc-be-port.patch
  zr36067 driver - ppc/be port

zr36067-driver-reduce-stack-size-usage.patch
  zr36067 driver - reduce stack size usage

raid6-altivec-support.patch
  raid6: altivec support

remove-export_symbol_novers.patch
  Remove EXPORT_SYMBOL_NOVERS

figure-out-who-is-inserting-bogus-modules.patch
  Figure out who is inserting bogus modules

use-mmiowb-in-qla1280c.patch
  use mmiowb in qla1280.c

readpage-vs-invalidate-fix.patch
  readpage-vs-invalidate fix

invalidate_inode_pages-mmap-coherency-fix.patch
  invalidate_inode_pages2() mmap coherency fix

cputime-introduce-cputime.patch
  cputime: introduce cputime

cputime-fix-do_setitimer.patch
  cputime: fix do_setitimer.

cputime-missing-pieces.patch
  cputime: missing pieces.

mm-check_rlimit-oops-on-p-signal.patch
  check_rlimit oops on p->signal

cputime-microsecond-based-cputime-for-s390.patch
  cputime: microsecond based cputime for s390

detect-atomic-counter-underflows.patch
  detect atomic counter underflows

lock-initializer-unifying-batch-2-alpha.patch
  Lock initializer unifying: ALPHA

lock-initializer-unifying-batch-2-ia64.patch
  Lock initializer unifying: IA64

lock-initializer-unifying-batch-2-m32r.patch
  Lock initializer unifying: M32R

lock-initializer-unifying-batch-2-mips.patch
  Lock initializer unifying: MIPS

lock-initializer-unifying-batch-2-misc-drivers.patch
  Lock initializer unifying: Misc drivers

lock-initializer-unifying-batch-2-block-devices.patch
  Lock initializer unifying: Block devices

lock-initializer-unifying-batch-2-drm.patch
  Lock initializer unifying: DRM

lock-initializer-unifying-batch-2-character-devices.patch
  Lock initializer unifying: character devices

lock-initializer-unifying-batch-2-rio.patch
  Lock initializer unifying: RIO

lock-initializer-unifying-batch-2-firewire.patch
  Lock initializer unifying: Firewire

lock-initializer-unifying-batch-2-isdn.patch
  Lock initializer unifying: ISDN

lock-initializer-unifying-batch-2-raid.patch
  Lock initializer unifying: Raid

lock-initializer-unifying-batch-2-media-drivers.patch
  Lock initializer unifying: media drivers

lock-initializer-unifying-batch-2-drivers-serial.patch
  Lock initializer unifying: drivers/serial

lock-initializer-unifying-batch-2-filesystems.patch
  Lock initializer unifying: Filesystems

lock-initializer-unifying-batch-2-video.patch
  Lock initializer unifying: Video

lock-initializer-unifying-batch-2-sound.patch
  Lock initializer unifying: sound

lock-initializer-cleanup-common-headers.patch
  Lock initializer cleanup (common headers)

lock-initializer-cleanup-character-devices.patch
  Lock initializer cleanup (character devices)

lock-initializer-cleanup-core.patch
  Lock initializer cleanup (Core)

moxa-update-status-of-moxa-smartio-driver.patch
  moxa: Update status of Moxa Smartio driver

moxa-remove-ancient-changelog-readmemoxa.patch
  moxa: Remove ancient changelog README.moxa

moxa-remove-readmemoxa-from-documentation-00-index.patch
  moxa: Remove README.moxa from Documentation/00-INDEX

specialix-remove-bouncing-e-mail-address.patch
  specialix: remove bouncing e-mail address

stallion-update-to-documentation-stalliontxt.patch
  stallion: Update to Documentation/stallion.txt

riscom8-update-staus-and-documentation-of-driver.patch
  riscom8: Update staus and documentation of driver

pm-remove-outdated-docs.patch
  From: Pavel Machek <pavel@ucw.cz>
  Subject: pm: remove outdated docs

docs-add-sparse-howto.patch
  From: Pavel Machek <pavel@ucw.cz>
  Subject: docs: add sparse howto

cciss-documentation-update.patch
  cciss: Documentation update

cciss-correct-mailing-list-address-in-source-code.patch
  cciss: Correct mailing list address in source code

cpqarray-correct-mailing-list-address-in-source-code.patch
  cpqarray: Correct mailing list address in source code

sh-remove-x86-specific-help-in-kconfig.patch
  sh: Remove x86-specific help in Kconfig

cyclades-put-readmecycladez-in-documentation-serial.patch
  cyclades: Put README.cycladeZ in Documentation/serial

tipar-document-driver-options.patch
  tipar: Document driver options

tipar-code-cleanup.patch
  tipar: Code cleanup

eth1394-module_parm-conversion.patch
  eth1394 MODULE_PARM conversion

isapnp-module_param-conversion.patch
  isapnp module_param conversion

sr-module_param-conversion.patch
  sr module_param conversion

media-video-module_param-conversion.patch
  media/video module_param conversion

btaudio-module_param-conversion.patch
  btaudio module_param conversion

small-drivers-char-rio-cleanups-fwd.patch
  small drivers/char/rio/ cleanups

small-char-generic_serialc-cleanup-fwd.patch
  small char/generic_serial.c cleanup

debug_bugverbose-for-i386-fwd.patch
  DEBUG_BUGVERBOSE for i386

telephony-ixjc-cleanup-fwd.patch
  telephony/ixj.c cleanup

char-cycladesc-remove-unused-code-fwd.patch
  char/cyclades.c: remove unused code

oss-ac97-quirk-facility.patch
  oss: AC97 quirk facility

oss-ac97-quirk-facility-fix.patch
  oss-ac97-quirk-facility fix

ext3-use-generic_open_file-to-fix-possible-preemption-bugs.patch
  ext3: use generic_open_file to fix possible preemption bugs

bttv-i2cc-make-two-functions-static.patch
  bttv-i2c.c: make two functions static

bttv-riscc-make-some-functions-static.patch
  bttv-risc.c: make some functions static

bttv-help-fix.patch
  bttv help fix

zoran_driverc-make-zoran_num_formats-static.patch
  zoran_driver.c: make zoran_num_formats static

media-video-msp3400c-remove-unused-struct-d1.patch
  media/video/msp3400.c: remove unused struct d1

zoran_devicec-make-zr36057_init_vfe-static.patch
  zoran_device.c: make zr36057_init_vfe static

drivers-media-video-the-easy-cleanups.patch
  drivers/media/video: the easy cleanups

small-ftape-cleanups-fwd.patch
  small ftape cleanups

reiser3-cleanups.patch
  reiser3 cleanups

cdromc-make-several-functions-static.patch
  cdrom.c: make several functions static (fwd)

fs-coda-psdevc-shouldnt-include-lph.patch
  fs/coda/psdev.c shouldn't include lp.h

remove-early_param-tests.patch
  remove early_param test code

MODULE_PARM-allmod.patch
  MODULE_PARM conversions

MODULE_PARM-allyes.patch
  MODULE_PARM conversions

lockd-fix-two-struct-definitions.patch
  lockd: fix two struct definitions

small-mca-cleanups-fwd.patch
  small MCA cleanups

small-drivers-media-radio-cleanups-fwd.patch
  small drivers/media/radio/ cleanups

ifdef-typos-arch_ppc_platforms_prep_setupc.patch
  ifdef typos: arch_ppc_platforms_prep_setup.c

ifdef-typos-arch_ppc_platforms_prep_setupc-another-one.patch
  ifdef typos: arch_ppc_platforms_prep_setup.c -another one

ifdef-typos-arch_ppc_syslib_ppc4xx_dmac.patch
  ifdef typos: arch_ppc_syslib_ppc4xx_dma.c

ifdef-typos-arch_sh_boards_renesas_hs7751rvoip_ioc.patch
  ifdef typos: arch_sh_boards_renesas_hs7751rvoip_io.c

ifdef-typos-drivers_char_ipmi_ipmi_si_intfc.patch
  ifdef typos: drivers_char_ipmi_ipmi_si_intf.c

ifdef-typos-drivers_net_wireless_wavelan_csc.patch
  ifdef typos: drivers_net_wireless_wavelan_cs.c

ifdef-typos-drivers_usb_net_usbnetc.patch
  ifdef typos: drivers_usb_net_usbnet.c

ifdef-typos-mips-au100_usb_device.patch
  ifdef typos mips: AU1[0X]00_USB_DEVICE

ipmi-use-c99-struct-inits.patch
  IPMI: use C99 struct inits.

drm-remove-unused-functions-fwd.patch
  DRM: remove unused functions

floppyc-remove-an-unused-function-fwd.patch
  floppy.c: remove an unused function

media-video-ir-kbd-i2cc-remove-an-unused-function-fwd.patch
  media/video/ir-kbd-i2c.c: remove an unused function

nfs-remove-an-unused-function-fwd.patch
  NFS: remove an unused function

watchdog-machzwdc-remove-unused-functions-fwd.patch
  watchdog/machzwd.c: remove unused functions

video-drivers-remove-unused-functions-fwd.patch
  video drivers: remove unused functions

isdn-b1pcmciac-remove-an-unused-variable-fwd.patch
  ISDN b1pcmcia.c: remove an unused variable

binfmt_scriptc-make-struct-script_format-static-fwd.patch
  binfmt_script.c: make struct script_format static

bioc-make-bio_destructor-static-fwd.patch
  bio.c: make bio_destructor static

devpts-inodec-make-one-struct-static-fwd.patch
  devpts/inode.c: make one struct static

small-proc_fs-cleanups-fwd.patch
  small proc_fs cleanups

kernel-timerc-comment-typo.patch
  Fix kernel/timer.c comment typo

mark-qnx4fs_rw-as-broken-fwd.patch
  mark QNX4FS_RW as BROKEN

oss-remove-unused-functions-fwd.patch
  OSS: remove unused functions

dvb-av7110_hwc-remove-unused-functions-fwd.patch
  DVB av7110_hw.c: remove unused functions

schedc-remove-an-unused-macro-fwd.patch
  sched.c: remove an unused macro

scsi-ahcic-remove-an-unused-function-fwd.patch
  scsi/ahci.c: remove an unused function

scsi-aic7xxx-aic79xx_osmc-remove-an-unused-function-fwd.patch
  scsi/aic7xxx/aic79xx_osm.c: remove an unused function

schedc-remove-an-unused-function-fwd.patch
  sched.c: remove an unused function

prism54-small-prismcompat-cleanup-fwd.patch
  prism54: small prismcompat cleanup

some-parport_pcc-cleanups-fwd.patch
  some parport_pc.c cleanups

fix-typo-and-email-in-saktxt.patch
  fix typo and email in SAK.txt

cris-remove-kernel-20-ifdefs-fwd.patch
  cris: remove kernel 2.0 #ifdef's

afs-afs_voltypes-isnt-always-required-fwd.patch
  AFS: afs_voltypes isn't always required

befs-if-0-two-unused-global-functions-fwd.patch
  befs: #if 0 two unused global functions

binfmt_scriptc-make-em86_format-static.patch
  binfmt_script.c: make em86_format static

remove-unused-include-asm-m68k-adb_mouseh.patch
  remove unused include/asm-m68k/adb_mouse.h

scsi-aic7xxx-remove-two-useless-variables.patch
  scsi/aic7xxx/: remove two useless variables

remove-in_string_c.patch
  remove IN_STRING_C

remove-ct_to_secs-ct_to_usecs.patch
  remove CT_TO_SECS()/CT_TO_USECS()

bttv-driverc-make-some-variables-static.patch
  bttv-driver.c: make some variables static

arch-alpha-kconfig-kill-stale-reference-to-documentation-smptex.patch
  arch/alpha/Kconfig: Kill stale reference to Documentation/smp.tex

init-initramfsc-make-unpack_to_rootfs-static.patch
  init/initramfs.c: make unpack_to_rootfs static

oss-misc-cleanups.patch
  OSS: misc cleanups

inux-269-fs-proc-basec-array-size.patch
  fs/proc/base.c: array size

linux-269-fs-proc-proc_ttyc-avoid-array.patch
  fs/proc/proc_tty.c: avoid array

optimize-prefetch-usage-in-list_for_each_xxx.patch
  optimize prefetch() usage in list_for_each_xxx

signalc-convert-assertion-to-bug_on.patch
  signal.c: convert assertion to BUG_ON()

right-severity-level-for-fatal-message.patch
  Right severity level for fatal message

remove-unused-drivers-char-rio-cdprotoh.patch
  remove unused drivers/char/rio/cdproto.h

remove-unused-drivers-char-rsf16fmih.patch
  remove unused drivers/char/rsf16fmi.h

mtd-added-nec-upd29f064115-support.patch
  mtd: added NEC uPD29F064115 support

waiting-10s-before-mounting-root-filesystem.patch
  retry mounting the root filesystem at boot time




^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
@ 2005-01-03 10:07     ` Christoph Hellwig
  2005-01-03 17:19       ` 2.6.10-mm1 Jesse Barnes
                         ` (2 more replies)
  2005-01-03 10:25     ` 2.6.10-mm1 Christoph Hellwig
                       ` (7 subsequent siblings)
  8 siblings, 3 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-03 10:07 UTC (permalink / raw)
  To: Andrew Morton, David Howells; +Cc: linux-kernel

> add-page-becoming-writable-notification.patch
>   Add page becoming writable notification

David, this still has the bogus address_space operation in addition to
the vm_operation.  page_mkwrite only fits into the vm_operations scheme,
so please remove the address_space op.  Also the code will be smaller
and faster witout that indirection..


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  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 10:25     ` 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
                       ` (6 subsequent siblings)
  8 siblings, 2 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-03 10:25 UTC (permalink / raw)
  To: Andrew Morton, Michael S. Tsirkin; +Cc: linux-kernel

> -ioctl-cleanup.patch
> -unlocked_ioctl.patch
> +ioctl-rework.patch
> 
>  New version of the dont-hold-BKL-across-ioctl patch.

For the native case the new naming is stupid.  The old ioctl_unlocked
made perfect sense while ioctl_native doesn't - after all ->ioctl is
native aswell.  Also this still has the useless inode * paramater in
the method signature.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  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 10:25     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-03 11:48     ` Christoph Hellwig
  2005-01-05 17:27       ` 2.6.10-mm1 Hans Reiser
  2005-01-03 11:51     ` 2.6.10-mm1 Christoph Hellwig
                       ` (5 subsequent siblings)
  8 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-03 11:48 UTC (permalink / raw)
  To: Andrew Morton, Hans Reiser; +Cc: linux-kernel

>  reiser4-export-inode_lock.patch

Han,s how'as the work progressing on removing these and other fishy
core changes?

>  reiser4-unstatic-kswapd.patch

Andrew, could you please finally drop this one?  It's not needed for
reiser4 operation at all just for some of their stranger debugging
features.

>  
>  reiser4-include-reiser4.patch

What about moving fs/Kconfig.reiser4 to fs/reiser4/Kconfig?  This is
the logical place for it and makes dropping in a new version of the fs
easier.

>  reiser4-only.patch

Documentation shouldn't be in fs/FOO/doc but Documentation/filesystems/.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
                       ` (2 preceding siblings ...)
  2005-01-03 11:48     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-03 11:51     ` Christoph Hellwig
  2005-01-04  9:04       ` 2.6.10-mm1 Ingo Molnar
  2005-01-03 15:13     ` 2.6.10-mm1 William Lee Irwin III
                       ` (4 subsequent siblings)
  8 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-03 11:51 UTC (permalink / raw)
  To: Andrew Morton, Ingo Molnar; +Cc: linux-kernel

> remove-the-bkl-by-turning-it-into-a-semaphore.patch
>   remove the BKL by turning it into a semaphore

This _smp_processor_id() mess is horribly ugly.  Do you really need that
debug check?


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 10:25     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-03 13:21       ` Christoph Hellwig
  2005-01-03 13:35       ` 2.6.10-mm1 Michael S. Tsirkin
  1 sibling, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-03 13:21 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, Michael S. Tsirkin, linux-kernel

On Mon, Jan 03, 2005 at 10:25:35AM +0000, Christoph Hellwig wrote:
> > -ioctl-cleanup.patch
> > -unlocked_ioctl.patch
> > +ioctl-rework.patch
> > 
> >  New version of the dont-hold-BKL-across-ioctl patch.
> 
> For the native case the new naming is stupid.  The old ioctl_unlocked
> made perfect sense while ioctl_native doesn't - after all ->ioctl is
> native aswell.  Also this still has the useless inode * paramater in
> the method signature.

Here's a better and much simpler patch:

 - add ->unlocked_ioctl method and a do_ioctl wrapper in ioctl.c so all
   places calling ->ioctl get it.
 - add ->compat_ioctl method and call it in compat_sys_ioctl before doing
   the hash lookup for registered handlers.
 - streamline compat_sys_ioctl and move the complex error reporting into
   a function of it's own


--- 1.52/Documentation/filesystems/Locking	2004-10-25 11:41:20 +02:00
+++ edited/Documentation/filesystems/Locking	2005-01-03 12:23:34 +01:00
@@ -350,6 +350,8 @@
 	unsigned int (*poll) (struct file *, struct poll_table_struct *);
 	int (*ioctl) (struct inode *, struct file *, unsigned int,
 			unsigned long);
+	long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
+	long (*compat_ioctl) (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 +385,8 @@
 readdir: 		no
 poll:			no
 ioctl:			yes	(see below)
+unlocked_ioctl:		no	(see below)
+compat_ioctl:		no
 mmap:			no
 open:			maybe	(see below)
 flush:			no
@@ -427,6 +431,9 @@
 ->ioctl() or kill the latter completely. One of the problems is that for
 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 ->unlocked_ioctl() that
+doesn't take the BKL.
 
 ->read on directories probably must go away - we should just enforce -EISDIR
 in sys_read() and friends.
--- 1.47/fs/compat.c	2004-12-10 18:57:46 +01:00
+++ edited/fs/compat.c	2005-01-03 13:58:00 +01:00
@@ -397,77 +397,87 @@
 }
 EXPORT_SYMBOL(unregister_ioctl32_conversion); 
 
+static void compat_ioctl_error(struct file *filp, unsigned int fd,
+		unsigned int cmd, unsigned long arg)
+{
+	char buf[10];
+	char *fn = "?";
+	char *path;
+
+	/* find the name of the device. */
+	path = (char *)__get_free_page(GFP_KERNEL);
+	if (path) {
+		fn = d_path(filp->f_dentry, filp->f_vfsmnt, path, PAGE_SIZE);
+		if (IS_ERR(fn))
+			fn = "?";
+	}
+
+	sprintf(buf,"'%c'", (cmd>>24) & 0x3f);
+	if (!isprint(buf[1]))
+		sprintf(buf, "%02x", buf[1]);
+	printk("ioctl32(%s:%d): Unknown cmd fd(%d) "
+			"cmd(%08x){%s} arg(%08x) on %s\n",
+			current->comm, current->pid,
+			(int)fd, (unsigned int)cmd, buf,
+			(unsigned int)arg, fn);
+	
+	if (path)
+		free_page((unsigned long)path);
+}
+
 asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
 				unsigned long arg)
 {
-	struct file * filp;
+	struct file *filp;
 	int error = -EBADF;
 	struct ioctl_trans *t;
 
 	filp = fget(fd);
-	if(!filp)
-		goto out2;
-
-	if (!filp->f_op || !filp->f_op->ioctl) {
-		error = sys_ioctl (fd, cmd, arg);
+	if (!filp)
 		goto out;
+
+	if (!filp->f_op) {
+		if (!filp->f_op->ioctl)
+			goto do_ioctl;
+	} else if (filp->f_op->compat_ioctl) {
+		error = filp->f_op->compat_ioctl(filp, cmd, arg);
+		goto out_fput;
 	}
 
 	down_read(&ioctl32_sem);
+	for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) {
+		if (t->cmd == cmd)
+			goto found_handler;
+	}
+	up_read(&ioctl32_sem);
 
-	t = ioctl32_hash_table[ioctl32_hash (cmd)];
-
-	while (t && t->cmd != cmd)
-		t = t->next;
-	if (t) {
-		if (t->handler) { 
-			lock_kernel();
-			error = t->handler(fd, cmd, arg, filp);
-			unlock_kernel();
-			up_read(&ioctl32_sem);
-		} else {
-			up_read(&ioctl32_sem);
-			error = sys_ioctl(fd, cmd, arg);
-		}
+	if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
+		error = siocdevprivate_ioctl(fd, cmd, arg);
 	} else {
+		static int count;
+
+		if (++count <= 50)
+			compat_ioctl_error(filp, fd, cmd, arg);
+		error = -EINVAL;
+	}
+
+	goto out_fput;
+
+ found_handler:
+	if (t->handler) { 
+		lock_kernel();
+		error = t->handler(fd, cmd, arg, filp);
+		unlock_kernel();
 		up_read(&ioctl32_sem);
-		if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
-			error = siocdevprivate_ioctl(fd, cmd, arg);
-		} else {
-			static int count;
-			if (++count <= 50) {
-				char buf[10];
-				char *fn = "?";
-				char *path;
-
-				path = (char *)__get_free_page(GFP_KERNEL);
-
-				/* find the name of the device. */
-				if (path) {
-			       		fn = d_path(filp->f_dentry,
-						filp->f_vfsmnt, path,
-						PAGE_SIZE);
-					if (IS_ERR(fn))
-						fn = "?";
-				}
-
-				sprintf(buf,"'%c'", (cmd>>24) & 0x3f);
-				if (!isprint(buf[1]))
-				    sprintf(buf, "%02x", buf[1]);
-				printk("ioctl32(%s:%d): Unknown cmd fd(%d) "
-					"cmd(%08x){%s} arg(%08x) on %s\n",
-					current->comm, current->pid,
-					(int)fd, (unsigned int)cmd, buf,
-					(unsigned int)arg, fn);
-				if (path)
-					free_page((unsigned long)path);
-			}
-			error = -EINVAL;
-		}
+		goto out_fput;
 	}
-out:
+
+	up_read(&ioctl32_sem);
+ do_ioctl:
+	error = sys_ioctl(fd, cmd, arg);
+ out_fput:
 	fput(filp);
-out2:
+ out:
 	return error;
 }
 
--- 1.14/fs/ioctl.c	2004-10-19 07:26:38 +02:00
+++ edited/fs/ioctl.c	2005-01-03 14:01:24 +01:00
@@ -16,7 +16,29 @@
 #include <asm/uaccess.h>
 #include <asm/ioctls.h>
 
-static int file_ioctl(struct file *filp,unsigned int cmd,unsigned long arg)
+static long do_ioctl(struct file *filp, unsigned int cmd,
+		unsigned long arg)
+{
+	int error = -ENOTTY;
+
+	if (!filp->f_op)
+		goto out;
+
+	if (filp->f_op->unlocked_ioctl) {
+		error = filp->f_op->unlocked_ioctl(filp, cmd, arg);
+	} else if (filp->f_op->ioctl) {
+		lock_kernel();
+		error = filp->f_op->ioctl(filp->f_dentry->d_inode,
+					  filp, cmd, arg);
+		unlock_kernel();
+	}
+
+ out:
+	return error;
+}
+
+static int file_ioctl(struct file *filp, unsigned int cmd,
+		unsigned long arg)
 {
 	int error;
 	int block;
@@ -36,7 +58,9 @@
 			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,14 +70,13 @@
 		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;
+
+	return do_ioctl(filp, cmd, arg);
 }
 
 
 asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
-{	
+{
 	struct file * filp;
 	unsigned int flag;
 	int on, error = -EBADF;
@@ -63,12 +86,9 @@
 		goto out;
 
 	error = security_file_ioctl(filp, cmd, arg);
-	if (error) {
-                fput(filp);
-                goto out;
-        }
+	if (error)
+		goto out_fput;
 
-	lock_kernel();
 	switch (cmd) {
 		case FIOCLEX:
 			set_close_on_exec(fd, 1);
@@ -100,8 +120,11 @@
 
 			/* 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)
@@ -124,16 +147,15 @@
 				error = -ENOTTY;
 			break;
 		default:
-			error = -ENOTTY;
 			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);
+			else
+				error = do_ioctl(filp, cmd, arg);
+			break;
 	}
-	unlock_kernel();
+ out_fput:
 	fput(filp);
-
-out:
+ out:
 	return error;
 }
 
--- 1.362/include/linux/fs.h	2004-10-29 10:14:03 +02:00
+++ edited/include/linux/fs.h	2005-01-03 11:38:01 +01:00
@@ -902,8 +902,8 @@
 
 /*
  * NOTE:
- * read, write, poll, fsync, readv, writev can be called
- *   without the big kernel lock held in all filesystems.
+ * read, write, poll, fsync, readv, writev, unlocked_ioctl and compat_ioctl
+ * can be called without the big kernel lock held in all filesystems.
  */
 struct file_operations {
 	struct module *owner;
@@ -915,6 +915,8 @@
 	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);
+	long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
+	long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
 	int (*mmap) (struct file *, struct vm_area_struct *);
 	int (*open) (struct inode *, struct file *);
 	int (*flush) (struct file *);

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  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       ` Michael S. Tsirkin
  1 sibling, 0 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-03 13:35 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, linux-kernel

Hello!
Quoting r. Christoph Hellwig (hch@infradead.org) "Re: 2.6.10-mm1":
> > -ioctl-cleanup.patch
> > -unlocked_ioctl.patch
> > +ioctl-rework.patch
> > 
> >  New version of the dont-hold-BKL-across-ioctl patch.
> 
> For the native case the new naming is stupid.  The old ioctl_unlocked
> made perfect sense while ioctl_native doesn't - after all ->ioctl is
> native aswell.  Also this still has the useless inode * paramater in
> the method signature.

Regarding the inode* parameter, the change to remove it would be trivial,
though I personally dont care and I didnt see anyone else comment on that.
Anyone?


MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
                       ` (3 preceding siblings ...)
  2005-01-03 11:51     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-03 15:13     ` William Lee Irwin III
  2005-01-03 17:17     ` 2.6.10-mm1 Jesse Barnes
                       ` (3 subsequent siblings)
  8 siblings, 0 replies; 246+ messages in thread
From: William Lee Irwin III @ 2005-01-03 15:13 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 242 bytes --]

On Mon, Jan 03, 2005 at 01:11:13AM -0800, Andrew Morton wrote:
> +m32r-fix-not-to-execute-noexec-pages-0-3.patch

This patch appears to be empty. Also, quilt barfs on such things.
The patch as it appeared in broken-out/ is attached.


-- wli

[-- Attachment #2: m32r-fix-not-to-execute-noexec-pages-0-3.patch --]
[-- Type: text/plain, Size: 1132 bytes --]


From: Hirokazu Takata <takata@linux-m32r.org>

Hello,

Here is a patchset to fix a bug of m32r kernel 2.6.9 that a code on
a noexec page can be executed incorrectly.

For good security, stack region should be non-executable. 
This fix is also needed to achieve non-executable stack.

Please apply this to 2.6.10 kernel if possible.

Thank you.

Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
---

[PATCH 2.6.10-rc3-mm1] m32r: Cause SIGSEGV for nonexec page execution (1/3)
- Cause a segmentation fault for an illegal execution of a code on
  non-executable memory page.

[PATCH 2.6.10-rc3-mm1] m32r: Don't encode ACE_INSTRUCTION in address (2/3)
- To be more comprehensive, keep ACE_INSTRUCTION (access exception 
  on instruction execution) information in thread_info->flags,
  instead of encoding it into address parameter.

[PATCH 2.6.10-rc3-mm1] m32r: Clean up arch/m32r/mm/fault.c (3/3)
- Fix a typo: ACE_USEMODE --> ACE_USERMODE.
- Update copyright statement, and so on.

--
Hirokazu Takata <takata@linux-m32r.org>
Linux/M32R Project:  http://www.linux-m32r.org/

Signed-off-by: Andrew Morton <akpm@osdl.org>
---


_

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
                       ` (4 preceding siblings ...)
  2005-01-03 15:13     ` 2.6.10-mm1 William Lee Irwin III
@ 2005-01-03 17:17     ` 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
                       ` (2 subsequent siblings)
  8 siblings, 1 reply; 246+ messages in thread
From: Jesse Barnes @ 2005-01-03 17:17 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 363 bytes --]

On Monday, January 3, 2005 1:11 am, you wrote:
> +replace-numnodes-with-node_online_map-ia64.patch

Here are some compile fixes for this patch.  Looks like simple typos.  Note 
that the kernel won't boot even with these fixes, I'm debugging that now 
(suspect nodemask related stuff is causing the hang too).

Signed-off-by: Jesse Barnes <jbarnes@sgi.com>

Jesse

[-- Attachment #2: for-each-node-ia64-fixes.patch --]
[-- Type: text/plain, Size: 1147 bytes --]

diff -Napur -X /home/jbarnes/dontdiff linux-2.6.10-mm1.orig/arch/ia64/mm/discontig.c linux-2.6.10-mm1/arch/ia64/mm/discontig.c
--- linux-2.6.10-mm1.orig/arch/ia64/mm/discontig.c	2005-01-03 08:58:43.000000000 -0800
+++ linux-2.6.10-mm1/arch/ia64/mm/discontig.c	2005-01-03 08:55:44.000000000 -0800
@@ -379,7 +379,7 @@ static void __init reserve_pernode_space
 	struct bootmem_data *bdp;
 	int node;
 
-	for_each_online(node) {
+	for_each_online_node(node) {
 		pg_data_t *pdp = mem_data[node].pgdat;
 
 		bdp = pdp->bdata;
diff -Napur -X /home/jbarnes/dontdiff linux-2.6.10-mm1.orig/arch/ia64/sn/kernel/sn2/prominfo_proc.c linux-2.6.10-mm1/arch/ia64/sn/kernel/sn2/prominfo_proc.c
--- linux-2.6.10-mm1.orig/arch/ia64/sn/kernel/sn2/prominfo_proc.c	2005-01-03 08:58:43.000000000 -0800
+++ linux-2.6.10-mm1/arch/ia64/sn/kernel/sn2/prominfo_proc.c	2005-01-03 08:56:25.000000000 -0800
@@ -266,7 +266,7 @@ void __exit prominfo_exit(void)
 	char name[NODE_NAME_LEN];
 
 	entp = proc_entries;
-	for (cnodeid) {
+	for_each_online_node(cnodeid) {
 		remove_proc_entry("fit", *entp);
 		remove_proc_entry("version", *entp);
 		sprintf(name, "node%d", cnodeid);

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 10:07     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-03 17:19       ` Jesse Barnes
  2005-01-03 23:29         ` 2.6.10-mm1 [failure on AMD64] 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
  2 siblings, 1 reply; 246+ messages in thread
From: Jesse Barnes @ 2005-01-03 17:19 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Andrew Morton, David Howells, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 560 bytes --]

On Monday, January 3, 2005 2:07 am, Christoph Hellwig wrote:
> > add-page-becoming-writable-notification.patch
> >   Add page becoming writable notification
>
> David, this still has the bogus address_space operation in addition to
> the vm_operation.  page_mkwrite only fits into the vm_operations scheme,
> so please remove the address_space op.  Also the code will be smaller
> and faster witout that indirection..

And apparently it's broken on NUMA.  I couldn't find 
generic_file_get/set_policy in my tree, which builds with CONFIG_NUMA 
enabled.

Jesse

[-- Attachment #2: numa-file-policy-fix.patch --]
[-- Type: text/plain, Size: 591 bytes --]

diff -Napur -X /home/jbarnes/dontdiff linux-2.6.10-mm1.orig/mm/filemap.c linux-2.6.10-mm1/mm/filemap.c
--- linux-2.6.10-mm1.orig/mm/filemap.c	2005-01-03 08:58:46.000000000 -0800
+++ linux-2.6.10-mm1/mm/filemap.c	2005-01-03 09:04:32.000000000 -0800
@@ -1542,10 +1542,6 @@ struct vm_operations_struct generic_file
 	.nopage		= filemap_nopage,
 	.populate	= filemap_populate,
 	.page_mkwrite	= filemap_page_mkwrite,
-#ifdef CONFIG_NUMA
-	.set_policy     = generic_file_set_policy,
-	.get_policy     = generic_file_get_policy,
-#endif
 };
 
 /* This is used for a general mmap of a disk file */

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] pktcdvd: make two functions static
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
                       ` (5 preceding siblings ...)
  2005-01-03 17:17     ` 2.6.10-mm1 Jesse Barnes
@ 2005-01-03 20:42     ` Peter Osterlund
  2005-01-03 20:45       ` [PATCH] pktcdvd: grep-friendly function prototypes 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
  8 siblings, 2 replies; 246+ messages in thread
From: Peter Osterlund @ 2005-01-03 20:42 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Make two needlessly global functions static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/drivers/block/pktcdvd.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN drivers/block/pktcdvd.c~pktcdvd-static drivers/block/pktcdvd.c
--- linux/drivers/block/pktcdvd.c~pktcdvd-static	2005-01-02 22:27:26.000000000 +0100
+++ linux-petero/drivers/block/pktcdvd.c	2005-01-03 21:39:56.985007024 +0100
@@ -2627,7 +2627,7 @@ static struct miscdevice pkt_misc = {
 	.fops  		= &pkt_ctl_fops
 };
 
-int pkt_init(void)
+static int pkt_init(void)
 {
 	int ret;
 
@@ -2663,7 +2663,7 @@ out2:
 	return ret;
 }
 
-void pkt_exit(void)
+static void pkt_exit(void)
 {
 	remove_proc_entry("pktcdvd", proc_root_driver);
 	misc_deregister(&pkt_misc);
_

-- 
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] pktcdvd: grep-friendly function prototypes
  2005-01-03 20:42     ` [PATCH] pktcdvd: make two functions static Peter Osterlund
@ 2005-01-03 20:45       ` Peter Osterlund
  2005-01-03 20:47         ` [PATCH] pktcdvd: Small documentation update Peter Osterlund
  2005-01-03 22:25       ` [PATCH] pktcdvd: make two functions static Bartlomiej Zolnierkiewicz
  1 sibling, 1 reply; 246+ messages in thread
From: Peter Osterlund @ 2005-01-03 20:45 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Put function prototypes on a single source line to make them more
grep-friendly.

Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/drivers/block/pktcdvd.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff -puN drivers/block/pktcdvd.c~pktcdvd-whitespace drivers/block/pktcdvd.c
--- linux/drivers/block/pktcdvd.c~pktcdvd-whitespace	2005-01-02 22:27:28.636331528 +0100
+++ linux-petero/drivers/block/pktcdvd.c	2005-01-02 22:27:28.641330768 +0100
@@ -607,8 +607,7 @@ static int pkt_set_segment_merging(struc
 /*
  * Copy CD_FRAMESIZE bytes from src_bio into a destination page
  */
-static void pkt_copy_bio_data(struct bio *src_bio, int seg, int offs,
-			      struct page *dst_page, int dst_offs)
+static void pkt_copy_bio_data(struct bio *src_bio, int seg, int offs, struct page *dst_page, int dst_offs)
 {
 	unsigned int copy_size = CD_FRAMESIZE;
 
@@ -1301,8 +1300,7 @@ static void pkt_print_settings(struct pk
 	printk("Mode-%c disc\n", pd->settings.block_mode == 8 ? '1' : '2');
 }
 
-static int pkt_mode_sense(struct pktcdvd_device *pd, struct packet_command *cgc,
-			  int page_code, int page_control)
+static int pkt_mode_sense(struct pktcdvd_device *pd, struct packet_command *cgc, int page_code, int page_control)
 {
 	memset(cgc->cmd, 0, sizeof(cgc->cmd));
 
_

-- 
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] pktcdvd: Small documentation update
  2005-01-03 20:45       ` [PATCH] pktcdvd: grep-friendly function prototypes Peter Osterlund
@ 2005-01-03 20:47         ` Peter Osterlund
  2005-01-03 20:53           ` [PATCH] isofs: Remove useless include Peter Osterlund
  0 siblings, 1 reply; 246+ messages in thread
From: Peter Osterlund @ 2005-01-03 20:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Mention that a new DVD+RW disc has to be formatted before first use.

Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/Documentation/cdrom/packet-writing.txt |    3 +++
 1 files changed, 3 insertions(+)

diff -puN Documentation/cdrom/packet-writing.txt~packet-doc-fix Documentation/cdrom/packet-writing.txt
--- linux/Documentation/cdrom/packet-writing.txt~packet-doc-fix	2005-01-02 22:27:34.795395208 +0100
+++ linux-petero/Documentation/cdrom/packet-writing.txt	2005-01-02 22:27:34.798394752 +0100
@@ -43,6 +43,8 @@ shall implement "true random writes with
 that it should be possible to put any filesystem with a block size >=
 2KB on such a disc. For example, it should be possible to do:
 
+	# dvd+rw-format /dev/hdc   (only needed if the disc has never
+	                            been formatted)
 	# mkudffs /dev/hdc
 	# mount /dev/hdc /cdrom -t udf -o rw,noatime
 
@@ -54,6 +56,7 @@ writes are not 32KB aligned.
 Both problems can be solved by using the pktcdvd driver, which always
 generates aligned writes.
 
+	# dvd+rw-format /dev/hdc
 	# pktsetup dev_name /dev/hdc
 	# mkudffs /dev/pktcdvd/dev_name
 	# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
_

-- 
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] isofs: Remove useless include
  2005-01-03 20:47         ` [PATCH] pktcdvd: Small documentation update Peter Osterlund
@ 2005-01-03 20:53           ` Peter Osterlund
  2005-01-03 20:58             ` [PATCH] synaptics: Remove unused struct member variable Peter Osterlund
  0 siblings, 1 reply; 246+ messages in thread
From: Peter Osterlund @ 2005-01-03 20:53 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

When I was editing cdrom.h, I noticed that fs/isofs/compress.c was
recompiled. This patch removes the useless #include that caused the
unnecessary recompilation.

Signed-off-by: Peter Osterlund <petero2@telia.com>

---

 linux-petero/fs/isofs/compress.c |    1 -
 1 files changed, 1 deletion(-)

diff -puN fs/isofs/compress.c~isofs-useless-include fs/isofs/compress.c
--- linux/fs/isofs/compress.c~isofs-useless-include	2005-01-02 22:27:41.290407816 +0100
+++ linux-petero/fs/isofs/compress.c	2005-01-02 22:27:41.292407512 +0100
@@ -28,7 +28,6 @@
 #include <linux/string.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
-#include <linux/cdrom.h>
 #include <linux/init.h>
 #include <linux/nls.h>
 #include <linux/ctype.h>
_

-- 
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] synaptics: Remove unused struct member variable
  2005-01-03 20:53           ` [PATCH] isofs: Remove useless include Peter Osterlund
@ 2005-01-03 20:58             ` Peter Osterlund
  0 siblings, 0 replies; 246+ messages in thread
From: Peter Osterlund @ 2005-01-03 20:58 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

This patch removes an unused variable in the synaptics_data struct and
deletes a no longer helpful comment. I don't think this has been used
since the very first synaptics kernel patch I submitted that did all
processing in kernel space instead of delegating most of it to the X
server.

Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/drivers/input/mouse/synaptics.h |    2 --
 1 files changed, 2 deletions(-)

diff -puN drivers/input/mouse/synaptics.h~synaptics-unused-var drivers/input/mouse/synaptics.h
--- linux/drivers/input/mouse/synaptics.h~synaptics-unused-var	2005-01-03 21:14:50.995952160 +0100
+++ linux-petero/drivers/input/mouse/synaptics.h	2005-01-03 21:14:51.011949728 +0100
@@ -101,8 +101,6 @@ struct synaptics_data {
 	unsigned long int ext_cap; 		/* Extended Capabilities */
 	unsigned long int identity;		/* Identification */
 
-	/* Data for normal processing */
-	int old_w;				/* Previous w value */
 	unsigned char pkt_type;			/* packet type - old, new, etc */
 	unsigned char mode;			/* current mode byte */
 };
_

-- 
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] pktcdvd: make two functions static
  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 22:25       ` Bartlomiej Zolnierkiewicz
  1 sibling, 0 replies; 246+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2005-01-03 22:25 UTC (permalink / raw)
  To: Peter Osterlund; +Cc: Andrew Morton, linux-kernel

Hi,

While at it...

On 03 Jan 2005 21:42:09 +0100, Peter Osterlund <petero2@telia.com> wrote:
> Make two needlessly global functions static.
> 
> Signed-off-by: Adrian Bunk <bunk@stusta.de>
> Signed-off-by: Peter Osterlund <petero2@telia.com>
> ---
> 
>  linux-petero/drivers/block/pktcdvd.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff -puN drivers/block/pktcdvd.c~pktcdvd-static drivers/block/pktcdvd.c
> --- linux/drivers/block/pktcdvd.c~pktcdvd-static        2005-01-02 22:27:26.000000000 +0100
> +++ linux-petero/drivers/block/pktcdvd.c        2005-01-03 21:39:56.985007024 +0100
> @@ -2627,7 +2627,7 @@ static struct miscdevice pkt_misc = {
>         .fops           = &pkt_ctl_fops
>  };
> 
> -int pkt_init(void)
> +static int pkt_init(void)
>  {
>         int ret;
> 

__init

> @@ -2663,7 +2663,7 @@ out2:
>         return ret;
>  }
> 
> -void pkt_exit(void)
> +static void pkt_exit(void)
>  {
>         remove_proc_entry("pktcdvd", proc_root_driver);
>         misc_deregister(&pkt_misc);
> _

__exit

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1 [failure on AMD64]
  2005-01-03 17:19       ` 2.6.10-mm1 Jesse Barnes
@ 2005-01-03 23:29         ` Rafael J. Wysocki
  2005-01-03 23:30           ` Jesse Barnes
                             ` (2 more replies)
  0 siblings, 3 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-03 23:29 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Christoph Hellwig, Jesse Barnes, David Howells, linux-kernel

On Monday, 3 of January 2005 18:19, Jesse Barnes wrote:
> On Monday, January 3, 2005 2:07 am, Christoph Hellwig wrote:
> > > add-page-becoming-writable-notification.patch
> > >   Add page becoming writable notification
> >
> > David, this still has the bogus address_space operation in addition to
> > the vm_operation.  page_mkwrite only fits into the vm_operations scheme,
> > so please remove the address_space op.  Also the code will be smaller
> > and faster witout that indirection..
> 
> And apparently it's broken on NUMA.  I couldn't find 
> generic_file_get/set_policy in my tree, which builds with CONFIG_NUMA 
> enabled.

On a dual-Opteron w/ NUMA I had to apply the Jesse's patch to compile the 
kernel, but it does not boot.  It only prints this to the serial console:

Bootdata ok (command line is root=/dev/sdb3 vga=792 earlyprintk=ttyS0,57600 
console=ttyS0,57600 console=tty0)
Linux version 2.6.10-mm1 (rafael@chimera) (gcc version 3.3.4 (pre 3.3.5 
20040809)) #1 SMP Mon Jan 3 23:09:30 CET 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
 BIOS-e820: 000000003fff0000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000ff7c0000 - 0000000100000000 (reserved)
kernel direct mapping tables upto ffff810100000000 @ 8000-c000
Scanning NUMA topology in Northbridge 24
Number of nodes 2 (10010)
Node 0 already present. Skipping
Node 1 already present. Skipping
No NUMA configuration found
Faking a node at 0000000000000000-000000003fff0000
Bootmem setup node 0 0000000000000000-000000003fff0000
No mptable found.
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:5 APIC version 16
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 15:5 APIC version 16
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x03] address[0xfc9fe000] gsi_base[24])
IOAPIC[1]: apic_id 3, version 17, address 0xfc9fe000, GSI 24-27
ACPI: IOAPIC (id[0x04] address[0xfc9ff000] gsi_base[28])
IOAPIC[2]: apic_id 4, version 17, address 0xfc9ff000, GSI 28-31
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Checking aperture...
CPU 0: aperture @ f0000000 size 128 MB
CPU 1: aperture @ f0000000 size 128 MB

and then it goes into an infinite loop that writes some garbage to the 
framebuffer (yellow lines on top of the screen).

On a UP AMD64 it boots, but then it does not work appropriately (eg. at KDE 
startup the box hangs for a while and I get the message like "The process for 
the file protocol has terminated unexpectedly" and desktop icons are not 
displayed, and I get a "cpu overload" message from arts etc.).

Please let me know if you need more information.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1 [failure on AMD64]
  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 12:22           ` Andi Kleen
  2 siblings, 0 replies; 246+ messages in thread
From: Jesse Barnes @ 2005-01-03 23:30 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Andrew Morton, Christoph Hellwig, David Howells, linux-kernel

On Monday, January 3, 2005 3:29 pm, Rafael J. Wysocki wrote:
> On a dual-Opteron w/ NUMA I had to apply the Jesse's patch to compile the
> kernel, but it does not boot.  It only prints this to the serial console:
>
> Bootdata ok (command line is root=/dev/sdb3 vga=792 earlyprintk=ttyS0,57600
> console=ttyS0,57600 console=tty0)
> Linux version 2.6.10-mm1 (rafael@chimera) (gcc version 3.3.4 (pre 3.3.5
> 20040809)) #1 SMP Mon Jan 3 23:09:30 CET 2005
> BIOS-provided physical RAM map:
>  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
>  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
>  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
>  BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
>  BIOS-e820: 000000003fff0000 - 000000003ffff000 (ACPI data)
>  BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
>  BIOS-e820: 00000000ff7c0000 - 0000000100000000 (reserved)
> kernel direct mapping tables upto ffff810100000000 @ 8000-c000
> Scanning NUMA topology in Northbridge 24
> Number of nodes 2 (10010)
> Node 0 already present. Skipping
> Node 1 already present. Skipping
> No NUMA configuration found
> Faking a node at 0000000000000000-000000003fff0000
> Bootmem setup node 0 0000000000000000-000000003fff0000
> No mptable found.
> ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
> Processor #0 15:5 APIC version 16
> ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
> Processor #1 15:5 APIC version 16
> ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
> IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
> ACPI: IOAPIC (id[0x03] address[0xfc9fe000] gsi_base[24])
> IOAPIC[1]: apic_id 3, version 17, address 0xfc9fe000, GSI 24-27
> ACPI: IOAPIC (id[0x04] address[0xfc9ff000] gsi_base[28])
> IOAPIC[2]: apic_id 4, version 17, address 0xfc9ff000, GSI 28-31
> ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
> Setting APIC routing to flat
> Using ACPI (MADT) for SMP configuration information
> Checking aperture...
> CPU 0: aperture @ f0000000 size 128 MB
> CPU 1: aperture @ f0000000 size 128 MB
>
> and then it goes into an infinite loop that writes some garbage to the
> framebuffer (yellow lines on top of the screen).
>
> On a UP AMD64 it boots, but then it does not work appropriately (eg. at KDE
> startup the box hangs for a while and I get the message like "The process
> for the file protocol has terminated unexpectedly" and desktop icons are
> not displayed, and I get a "cpu overload" message from arts etc.).
>
> Please let me know if you need more information.

Try wli's patch, subject "[bootfix] pass used_node_mask by reference in 
2.6.10-mm1".

Jesse

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 11:51     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-04  9:04       ` Ingo Molnar
  2005-01-04  9:26         ` 2.6.10-mm1 Christoph Hellwig
  0 siblings, 1 reply; 246+ messages in thread
From: Ingo Molnar @ 2005-01-04  9:04 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, linux-kernel


* Christoph Hellwig <hch@infradead.org> wrote:

> > remove-the-bkl-by-turning-it-into-a-semaphore.patch
> >   remove the BKL by turning it into a semaphore
> 
> This _smp_processor_id() mess is horribly ugly.  Do you really need
> that debug check?

wrt. necessity, it's quite handy: check out the 2.6.10 changelog, almost
all preemption bugs wrt. smp_processor_id() were found this way.

what precisely is the 'mess' you are referring to?

is it the way the include file falls back to the original
smp_processor_id() definition if an arch doesnt define
__smp_processor_id()? I could get rid of that and just require every
arch to define __smp_processor_id().

or is it the addition of _smp_processor_id() as a way to signal 'this
smp_processor_id() call in a preemptible region is fine, trust me'? We
could do smp_processor_id_preempt() or some other name - any better
suggestions?

	Ingo

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
                       ` (6 preceding siblings ...)
  2005-01-03 20:42     ` [PATCH] pktcdvd: make two functions static Peter Osterlund
@ 2005-01-04  9:08     ` Ingo Molnar
  2005-01-05 14:40     ` [PATCH] deprecate (un)register_ioctl32_conversion Michael S. Tsirkin
  8 siblings, 0 replies; 246+ messages in thread
From: Ingo Molnar @ 2005-01-04  9:08 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel


bogus chunk generating a standalone ip_conntrack_proto_tcp.c.orig:

--- /dev/null   2003-09-15 06:40:47.000000000 -0700
+++ 25/net/ipv4/netfilter/ip_conntrack_proto_tcp.c.orig 2004-12-24 17:10:34.000000000 -0800
@@ -0,0 +1,1091 @@

	Ingo

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-04  9:04       ` 2.6.10-mm1 Ingo Molnar
@ 2005-01-04  9:26         ` Christoph Hellwig
  2005-01-04  9:33           ` 2.6.10-mm1 Ingo Molnar
  0 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-04  9:26 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Christoph Hellwig, Andrew Morton, linux-kernel

On Tue, Jan 04, 2005 at 10:04:08AM +0100, Ingo Molnar wrote:
> or is it the addition of _smp_processor_id() as a way to signal 'this
> smp_processor_id() call in a preemptible region is fine, trust me'?

Yes.

> We
> could do smp_processor_id_preempt() or some other name - any better
> suggestions?

I'd just kill the debug check and rely on the eye of the review to not
let new users of smp_processor_id slip in.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-04  9:26         ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-04  9:33           ` Ingo Molnar
  0 siblings, 0 replies; 246+ messages in thread
From: Ingo Molnar @ 2005-01-04  9:33 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, linux-kernel


* Christoph Hellwig <hch@infradead.org> wrote:

> On Tue, Jan 04, 2005 at 10:04:08AM +0100, Ingo Molnar wrote:
> > or is it the addition of _smp_processor_id() as a way to signal 'this
> > smp_processor_id() call in a preemptible region is fine, trust me'?
> 
> Yes.
> 
> > We
> > could do smp_processor_id_preempt() or some other name - any better
> > suggestions?
> 
> I'd just kill the debug check and rely on the eye of the review to not
> let new users of smp_processor_id slip in.

relying on that is quite futile. E.g. in the block IO code it needed 3-4
iterations even after the first instance was found to get all the cases
right. There are functions that are always called from under a lock then
some unlocked call happens and we've got trouble. Often the bug is some
very rare and obscure corruption of a statistics value, nobody really
notices that.

by today i think we've identified most of the places that can safely do
smp_processor_id() in a preemptible section (in x86 and x64) - it's only
around 3% of the total smp_processor_id() use. I'd rather allow these
exceptions and flag new exceptions as they get added - they are added at
least an order of magnitude more rarely than smp_processor_id() gets
added.

	Ingo

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1 [failure on AMD64]
  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
  2 siblings, 1 reply; 246+ messages in thread
From: Thomas Molina @ 2005-01-04 11:23 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Andrew Morton, linux-kernel

On Tue, 4 Jan 2005, Rafael J. Wysocki wrote:

> On a UP AMD64 it boots, but then it does not work appropriately (eg. at KDE
> startup the box hangs for a while and I get the message like "The process for
> the file protocol has terminated unexpectedly" and desktop icons are not
> displayed, and I get a "cpu overload" message from arts etc.).

I also tried it on an AMD64 system (3500+ on A8V Deluxe) and did not 
observe any anomalies, but I am using Gnome, not KDE.

I saw a message that latency tests were wanted, but I don't normally have 
a workload in which this can be observed.  Perhaps someone could provide a 
suggestion?  I did try some dvd-burning sessions.  Subjectively speaking, 
there didn't seem to be any improvement over 2.6.10, and it may have been 
a bit worse.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1 [failure on AMD64]
  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 12:22           ` Andi Kleen
  2005-01-04 21:05             ` Rafael J. Wysocki
  2 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-04 12:22 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Christoph Hellwig, Jesse Barnes, David Howells, linux-kernel

"Rafael J. Wysocki" <rjw@sisk.pl> writes:

> On Monday, 3 of January 2005 18:19, Jesse Barnes wrote:
>> On Monday, January 3, 2005 2:07 am, Christoph Hellwig wrote:
>> > > add-page-becoming-writable-notification.patch
>> > >   Add page becoming writable notification
>> >
>> > David, this still has the bogus address_space operation in addition to
>> > the vm_operation.  page_mkwrite only fits into the vm_operations scheme,
>> > so please remove the address_space op.  Also the code will be smaller
>> > and faster witout that indirection..
>> 
>> And apparently it's broken on NUMA.  I couldn't find 
>> generic_file_get/set_policy in my tree, which builds with CONFIG_NUMA 
>> enabled.
>
> On a dual-Opteron w/ NUMA I had to apply the Jesse's patch to compile the 
> kernel, but it does not boot.  It only prints this to the serial console:

I suspect it is fixed by Bill Irwin's patch from the 
"[bootfix] pass used_node_mask by reference .." thread. Can you test that?

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1 [failure on AMD64]
  2005-01-04 11:23           ` Thomas Molina
@ 2005-01-04 13:22             ` Rafael J. Wysocki
  0 siblings, 0 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-04 13:22 UTC (permalink / raw)
  To: Thomas Molina; +Cc: Andrew Morton, linux-kernel

On Tuesday, 4 of January 2005 12:23, Thomas Molina wrote:
> On Tue, 4 Jan 2005, Rafael J. Wysocki wrote:
> 
> > On a UP AMD64 it boots, but then it does not work appropriately (eg. at 
KDE
> > startup the box hangs for a while and I get the message like "The process 
for
> > the file protocol has terminated unexpectedly" and desktop icons are not
> > displayed, and I get a "cpu overload" message from arts etc.).
> 
> I also tried it on an AMD64 system (3500+ on A8V Deluxe) and did not 
> observe any anomalies, but I am using Gnome, not KDE.

Now I'm not seeing anything wrong either, so it must have been accidental.  I 
suspect that the problem was with artsd.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1 [failure on AMD64]
  2005-01-04 12:22           ` Andi Kleen
@ 2005-01-04 21:05             ` Rafael J. Wysocki
  0 siblings, 0 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-04 21:05 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Christoph Hellwig, Jesse Barnes, David Howells, linux-kernel

On Tuesday, 4 of January 2005 13:22, Andi Kleen wrote:
> "Rafael J. Wysocki" <rjw@sisk.pl> writes:
> 
> > On Monday, 3 of January 2005 18:19, Jesse Barnes wrote:
> >> On Monday, January 3, 2005 2:07 am, Christoph Hellwig wrote:
> >> > > add-page-becoming-writable-notification.patch
> >> > >   Add page becoming writable notification
> >> >
> >> > David, this still has the bogus address_space operation in addition to
> >> > the vm_operation.  page_mkwrite only fits into the vm_operations 
scheme,
> >> > so please remove the address_space op.  Also the code will be smaller
> >> > and faster witout that indirection..
> >> 
> >> And apparently it's broken on NUMA.  I couldn't find 
> >> generic_file_get/set_policy in my tree, which builds with CONFIG_NUMA 
> >> enabled.
> >
> > On a dual-Opteron w/ NUMA I had to apply the Jesse's patch to compile the 
> > kernel, but it does not boot.  It only prints this to the serial console:
> 
> I suspect it is fixed by Bill Irwin's patch from the 
> "[bootfix] pass used_node_mask by reference .." thread. Can you test that?

Sure.  It fixes the problem.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
                       ` (7 preceding siblings ...)
  2005-01-04  9:08     ` 2.6.10-mm1 Ingo Molnar
@ 2005-01-05 14:40     ` Michael S. Tsirkin
  2005-01-05 14:46       ` Christoph Hellwig
  2005-01-05 18:23       ` Takashi Iwai
  8 siblings, 2 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-05 14:40 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Andi Kleen, mingo, rlrevell, tiwai, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Hello, Andrew, all!

Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
here is a patch to deprecate (un)register_ioctl32_conversion.

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


diff -ruI -u linux-2.6.10/include/linux/ioctl32.h linux-2.6.10-ioctls/include/linux/ioctl32.h
--- linux-2.6.10/include/linux/ioctl32.h	2004-12-24 23:33:49.000000000 +0200
+++ linux-2.6.10-ioctls/include/linux/ioctl32.h	2005-01-05 20:19:46.716664232 +0200
@@ -23,9 +23,12 @@
  */ 
 
 #ifdef CONFIG_COMPAT
-extern int register_ioctl32_conversion(unsigned int cmd,
+
+/* The following two calls trigger an unfixable module unload race. */
+/* Deprecated in favor of ioctl_compat in struct file_operations. */
+extern int __deprecated register_ioctl32_conversion(unsigned int cmd,
 				ioctl_trans_handler_t handler);
-extern int unregister_ioctl32_conversion(unsigned int cmd);
+extern int __deprecated unregister_ioctl32_conversion(unsigned int cmd);
 
 #else
 

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  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:19         ` Andi Kleen
  2005-01-05 18:23       ` Takashi Iwai
  1 sibling, 2 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-05 14:46 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, Andi Kleen, mingo, rlrevell, tiwai, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, greg

On Wed, Jan 05, 2005 at 04:40:43PM +0200, Michael S. Tsirkin wrote:
> Hello, Andrew, all!
> 
> Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
> here is a patch to deprecate (un)register_ioctl32_conversion.

Sorry, but this is a lot too early.  Once there's a handfull users left
in _mainline_ you can start deprecating it (or better remove it completely).

So far we have a non-final version of the replacement in -mm and no single
user converted.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  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-05 15:19         ` Andi Kleen
  1 sibling, 2 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-05 15:03 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, Andi Kleen, mingo, rlrevell,
	tiwai, linux-kernel, pavel, discuss, gordon.jin, alsa-devel,
	greg

Hello!
Quoting r. Christoph Hellwig (hch@infradead.org) "Re: [PATCH] deprecate (un)register_ioctl32_conversion":
> On Wed, Jan 05, 2005 at 04:40:43PM +0200, Michael S. Tsirkin wrote:
> > Hello, Andrew, all!
> > 
> > Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
> > here is a patch to deprecate (un)register_ioctl32_conversion.
> 
> Sorry, but this is a lot too early.  Once there's a handfull users left
> in _mainline_ you can start deprecating it (or better remove it completely).

I dont know. So how will people know they are supposed to convert then?

> So far we have a non-final version of the replacement in -mm and no single
> user converted.

Christoph, I know you want to remove the inode parameter :)

Otherwise I think -mm1 has the final version of the replacement.

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-05 15:03         ` Michael S. Tsirkin
@ 2005-01-05 15:11           ` Christoph Hellwig
  2005-01-05 21:33           ` Andrew Morton
  1 sibling, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-05 15:11 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Christoph Hellwig, Andrew Morton, Andi Kleen, mingo, rlrevell,
	tiwai, linux-kernel, pavel, discuss, gordon.jin, alsa-devel,
	greg

On Wed, Jan 05, 2005 at 05:03:10PM +0200, Michael S. Tsirkin wrote:
> I dont know. So how will people know they are supposed to convert then?

Tell the janitors about it - or do it yourself.  Except for taking care
of the BKL going away it's a trivial conversion.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-05 14:46       ` Christoph Hellwig
  2005-01-05 15:03         ` Michael S. Tsirkin
@ 2005-01-05 15:19         ` Andi Kleen
  2005-01-05 15:55           ` Christoph Hellwig
  1 sibling, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-05 15:19 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Michael S. Tsirkin, Andrew Morton, mingo, rlrevell, tiwai,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, greg

Christoph Hellwig <hch@infradead.org> writes:

> On Wed, Jan 05, 2005 at 04:40:43PM +0200, Michael S. Tsirkin wrote:
>> Hello, Andrew, all!
>> 
>> Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
>> here is a patch to deprecate (un)register_ioctl32_conversion.
>
> Sorry, but this is a lot too early.  Once there's a handfull users left
> in _mainline_ you can start deprecating it (or better remove it completely).

There were never more than a handful users of it anyways. So I think
Michael's suggestion to deprecate it early is very reasonable.

> So far we have a non-final version of the replacement in -mm and no single
> user converted.

For me it looks quite final.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited.
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-05 15:25 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: discuss, Chris Wedgwood, Andi Kleen, linux-kernel, pavel, gordon.jin

Hello!
Quoting r. Arnd Bergmann (arnd@arndb.de) "Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited.":
> On Sünndag 26 Dezember 2004 23:26, Chris Wedgwood wrote:
> > > It's an internal error code as Arnd pointed out.
> > 
> > can we be sure this will never escape to userspace? i can think of
> > somewhere else we already do this (EFSCORRUPTED) and it does (somewhat
> > deliberately escape to userspace) and this causes confusion from time
> > to time when applications see 'errno == 990'
> 
> It's safe for the compat ioctl case. If someone wants to use the
> same function for the compat and native handler, it would be a bug
> to return -ENOIOCTLCMD from that handler with the current code.
> 
> To work around this, we could either convert -ENOIOCTLCMD to -EINVAL
> when returning from sys_ioctl(). Or we could WARN_ON(err ==
> -ENOIOCTLCMD)
> for the native path in order to make the intention clear.
> 
>  Arnd <><

You mean like this?

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
--- linux-2.6.10/fs/ioctl.c.ok  2005-01-05 21:13:46.165718632 +0200
+++ linux-2.6.10/fs/ioctl.c     2005-01-05 21:14:09.341195424 +0200
@@ -162,7 +162,7 @@ asmlinkage long sys_ioctl(unsigned int f
 out:
        fput_light(filp, fput_needed);
 out2:
-       return error;
+       return error==-ENOIOCTLCMD?-ENOTTY:error;
 }

 /*
--- linux-2.6.10/fs/compat.c.ok 2005-01-05 21:15:34.221291688 +0200
+++ linux-2.6.10/fs/compat.c    2005-01-05 21:16:04.922624376 +0200
@@ -476,7 +476,7 @@ asmlinkage long compat_sys_ioctl(unsigne
 out:
        fput_light(filp, fput_needed);
 out2:
-       return error;
+       return error==-ENOIOCTLCMD?-ENOTTY:error;
 }

 static int get_compat_flock(struct flock *kfl, struct compat_flock __user *ufl)

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-05 15:19         ` Andi Kleen
@ 2005-01-05 15:55           ` Christoph Hellwig
  0 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-05 15:55 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Christoph Hellwig, Michael S. Tsirkin, Andrew Morton, mingo,
	rlrevell, tiwai, linux-kernel, pavel, discuss, gordon.jin,
	alsa-devel, greg

On Wed, Jan 05, 2005 at 04:19:16PM +0100, Andi Kleen wrote:
> Christoph Hellwig <hch@infradead.org> writes:
> 
> > On Wed, Jan 05, 2005 at 04:40:43PM +0200, Michael S. Tsirkin wrote:
> >> Hello, Andrew, all!
> >> 
> >> Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
> >> here is a patch to deprecate (un)register_ioctl32_conversion.
> >
> > Sorry, but this is a lot too early.  Once there's a handfull users left
> > in _mainline_ you can start deprecating it (or better remove it completely).
> 
> There were never more than a handful users of it anyways. So I think
> Michael's suggestion to deprecate it early is very reasonable.

It's 72 callers in mainline.  Aka 72 new warnings for an allmodconfig
build.  This isn't reasonable just because the interface got out of
fashion.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited.
  2005-01-05 15:25                             ` Michael S. Tsirkin
@ 2005-01-05 16:07                               ` Arnd Bergmann
  0 siblings, 0 replies; 246+ messages in thread
From: Arnd Bergmann @ 2005-01-05 16:07 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: discuss, Chris Wedgwood, Andi Kleen, linux-kernel, pavel,
	gordon.jin, Christoph Hellwig

[-- Attachment #1: Type: text/plain, Size: 1592 bytes --]

On Middeweken 05 Januar 2005 16:25, Michael S. Tsirkin wrote:
> You mean like this?

Yes, except that

> Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> --- linux-2.6.10/fs/ioctl.c.ok  2005-01-05 21:13:46.165718632 +0200
> +++ linux-2.6.10/fs/ioctl.c     2005-01-05 21:14:09.341195424 +0200
> @@ -162,7 +162,7 @@ asmlinkage long sys_ioctl(unsigned int f
>  out:
>         fput_light(filp, fput_needed);
>  out2:
> -       return error;
> +       return error==-ENOIOCTLCMD?-ENOTTY:error;
>  }
> 
>  /*

- Spacing is broken.
- I think the convention would be to use EINVAL here. ENOTTY mean 'this
  device does not support ioctl', while EINVAL is used for 'ioctl is
  supported, but not this number'.
- I would put the conversion only in the place that calls ->native_ioctl
  in order to make clearer why it is done.

> --- linux-2.6.10/fs/compat.c.ok 2005-01-05 21:15:34.221291688 +0200
> +++ linux-2.6.10/fs/compat.c    2005-01-05 21:16:04.922624376 +0200
> @@ -476,7 +476,7 @@ asmlinkage long compat_sys_ioctl(unsigne
>  out:
>         fput_light(filp, fput_needed);
>  out2:
> -       return error;
> +       return error==-ENOIOCTLCMD?-ENOTTY:error;
>  }
> 
>  static int get_compat_flock(struct flock *kfl, struct compat_flock __user *ufl)

I don't think it's needed for the compat case, as we are already
handling ENOIOCTLCMD here by doing to hash lookup.

I'd also prefer the code to be based on Christophs version, which 
unfortunately is lacking handling for ENOIOCTLCMD from compat_ioctl,
but otherwise looks better.

	Arnd <><

[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 11:48     ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-05 17:27       ` Hans Reiser
  2005-01-06 13:52         ` 2.6.10-mm1 Vladimir Saveliev
  0 siblings, 1 reply; 246+ messages in thread
From: Hans Reiser @ 2005-01-05 17:27 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Andrew Morton, linux-kernel, vs, Reiserfs developers mail-list,
	Alexander Zarochentcev

Christoph Hellwig wrote:

>> reiser4-export-inode_lock.patch
>>    
>>
>
>Han,s how'as the work progressing on removing these and other fishy
>core changes?
>  
>
Vladimir is writing code to reduce the number of patches needed.  This 
code is causing bugs that have not yet been fixed.  His email is not 
working today, hopefully it will work tomorrow.  This is the russian 
holiday season....

>  
>
>> reiser4-unstatic-kswapd.patch
>>    
>>
>
>Andrew, could you please finally drop this one?  It's not needed for
>reiser4 operation at all just for some of their stranger debugging
>features.
>  
>
I'll let vs comment.

>  
>
>> 
>> reiser4-include-reiser4.patch
>>    
>>
>
>What about moving fs/Kconfig.reiser4 to fs/reiser4/Kconfig?  This is
>the logical place for it and makes dropping in a new version of the fs
>easier.
>  
>
Ok.

>  
>
>> reiser4-only.patch
>>    
>>
>
>Documentation shouldn't be in fs/FOO/doc but Documentation/filesystems/.
>  
>
Ok.

>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at  http://www.tux.org/lkml/
>
>
>  
>
What are the other ones you object to?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-05 14:40     ` [PATCH] deprecate (un)register_ioctl32_conversion Michael S. Tsirkin
  2005-01-05 14:46       ` Christoph Hellwig
@ 2005-01-05 18:23       ` Takashi Iwai
  2005-01-05 21:34         ` Andrew Morton
  1 sibling, 1 reply; 246+ messages in thread
From: Takashi Iwai @ 2005-01-05 18:23 UTC (permalink / raw)
  To: Michael S. Tsirkin, Andrew Morton
  Cc: Andi Kleen, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

At Wed, 5 Jan 2005 16:40:43 +0200,
Michael S. Tsirkin wrote:
> 
> Hello, Andrew, all!
> 
> Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
> here is a patch to deprecate (un)register_ioctl32_conversion.

Good to see that ioctl_native and ioctl_compat ops are already there!

Will it be merged to 2.6.11?  If so, I'll prepare the patch to convert
the ALSA compat32 stuff, too...


Takashi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Andrew Morton @ 2005-01-05 21:33 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: hch, ak, mingo, rlrevell, tiwai, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

"Michael S. Tsirkin" <mst@mellanox.co.il> wrote:
>
> Quoting r. Christoph Hellwig (hch@infradead.org) "Re: [PATCH] deprecate (un)register_ioctl32_conversion":
>  > On Wed, Jan 05, 2005 at 04:40:43PM +0200, Michael S. Tsirkin wrote:
>  > > Hello, Andrew, all!
>  > > 
>  > > Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
>  > > here is a patch to deprecate (un)register_ioctl32_conversion.
>  > 
>  > Sorry, but this is a lot too early.  Once there's a handfull users left
>  > in _mainline_ you can start deprecating it (or better remove it completely).
> 
>  I dont know. So how will people know they are supposed to convert then?
> 
>  > So far we have a non-final version of the replacement in -mm and no single
>  > user converted.
> 
>  Christoph, I know you want to remove the inode parameter :)
> 
>  Otherwise I think -mm1 has the final version of the replacement.

I merged Christoph's verion of the patch into -mm.



--- 25/Documentation/filesystems/Locking~ioctl-rework-2	Tue Jan  4 15:08:56 2005
+++ 25-akpm/Documentation/filesystems/Locking	Tue Jan  4 15:08:56 2005
@@ -350,6 +350,8 @@ prototypes:
 	unsigned int (*poll) (struct file *, struct poll_table_struct *);
 	int (*ioctl) (struct inode *, struct file *, unsigned int,
 			unsigned long);
+	long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
+	long (*compat_ioctl) (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 +385,8 @@ aio_write:		no
 readdir: 		no
 poll:			no
 ioctl:			yes	(see below)
+unlocked_ioctl:		no	(see below)
+compat_ioctl:		no
 mmap:			no
 open:			maybe	(see below)
 flush:			no
@@ -428,6 +432,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 ->unlocked_ioctl() that
+doesn't take the BKL.
+
 ->read on directories probably must go away - we should just enforce -EISDIR
 in sys_read() and friends.
 
diff -puN fs/compat.c~ioctl-rework-2 fs/compat.c
--- 25/fs/compat.c~ioctl-rework-2	Tue Jan  4 15:08:56 2005
+++ 25-akpm/fs/compat.c	Tue Jan  4 15:08:56 2005
@@ -397,77 +397,87 @@ out:
 }
 EXPORT_SYMBOL(unregister_ioctl32_conversion); 
 
+static void compat_ioctl_error(struct file *filp, unsigned int fd,
+		unsigned int cmd, unsigned long arg)
+{
+	char buf[10];
+	char *fn = "?";
+	char *path;
+
+	/* find the name of the device. */
+	path = (char *)__get_free_page(GFP_KERNEL);
+	if (path) {
+		fn = d_path(filp->f_dentry, filp->f_vfsmnt, path, PAGE_SIZE);
+		if (IS_ERR(fn))
+			fn = "?";
+	}
+
+	sprintf(buf,"'%c'", (cmd>>24) & 0x3f);
+	if (!isprint(buf[1]))
+		sprintf(buf, "%02x", buf[1]);
+	printk("ioctl32(%s:%d): Unknown cmd fd(%d) "
+			"cmd(%08x){%s} arg(%08x) on %s\n",
+			current->comm, current->pid,
+			(int)fd, (unsigned int)cmd, buf,
+			(unsigned int)arg, fn);
+
+	if (path)
+		free_page((unsigned long)path);
+}
+
 asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
 				unsigned long arg)
 {
-	struct file * filp;
+	struct file *filp;
 	int error = -EBADF;
 	struct ioctl_trans *t;
 
 	filp = fget(fd);
-	if(!filp)
-		goto out2;
-
-	if (!filp->f_op || !filp->f_op->ioctl) {
-		error = sys_ioctl (fd, cmd, arg);
+	if (!filp)
 		goto out;
+
+	if (!filp->f_op) {
+		if (!filp->f_op->ioctl)
+			goto do_ioctl;
+	} else if (filp->f_op->compat_ioctl) {
+		error = filp->f_op->compat_ioctl(filp, cmd, arg);
+		goto out_fput;
 	}
 
 	down_read(&ioctl32_sem);
+	for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) {
+		if (t->cmd == cmd)
+			goto found_handler;
+	}
+	up_read(&ioctl32_sem);
 
-	t = ioctl32_hash_table[ioctl32_hash (cmd)];
-
-	while (t && t->cmd != cmd)
-		t = t->next;
-	if (t) {
-		if (t->handler) { 
-			lock_kernel();
-			error = t->handler(fd, cmd, arg, filp);
-			unlock_kernel();
-			up_read(&ioctl32_sem);
-		} else {
-			up_read(&ioctl32_sem);
-			error = sys_ioctl(fd, cmd, arg);
-		}
+	if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
+		error = siocdevprivate_ioctl(fd, cmd, arg);
 	} else {
+		static int count;
+
+		if (++count <= 50)
+			compat_ioctl_error(filp, fd, cmd, arg);
+		error = -EINVAL;
+	}
+
+	goto out_fput;
+
+ found_handler:
+	if (t->handler) {
+		lock_kernel();
+		error = t->handler(fd, cmd, arg, filp);
+		unlock_kernel();
 		up_read(&ioctl32_sem);
-		if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
-			error = siocdevprivate_ioctl(fd, cmd, arg);
-		} else {
-			static int count;
-			if (++count <= 50) {
-				char buf[10];
-				char *fn = "?";
-				char *path;
-
-				path = (char *)__get_free_page(GFP_KERNEL);
-
-				/* find the name of the device. */
-				if (path) {
-			       		fn = d_path(filp->f_dentry,
-						filp->f_vfsmnt, path,
-						PAGE_SIZE);
-					if (IS_ERR(fn))
-						fn = "?";
-				}
-
-				sprintf(buf,"'%c'", (cmd>>24) & 0x3f);
-				if (!isprint(buf[1]))
-				    sprintf(buf, "%02x", buf[1]);
-				printk("ioctl32(%s:%d): Unknown cmd fd(%d) "
-					"cmd(%08x){%s} arg(%08x) on %s\n",
-					current->comm, current->pid,
-					(int)fd, (unsigned int)cmd, buf,
-					(unsigned int)arg, fn);
-				if (path)
-					free_page((unsigned long)path);
-			}
-			error = -EINVAL;
-		}
+		goto out_fput;
 	}
-out:
+
+	up_read(&ioctl32_sem);
+ do_ioctl:
+	error = sys_ioctl(fd, cmd, arg);
+ out_fput:
 	fput(filp);
-out2:
+ out:
 	return error;
 }
 
diff -puN fs/ioctl.c~ioctl-rework-2 fs/ioctl.c
--- 25/fs/ioctl.c~ioctl-rework-2	Tue Jan  4 15:08:56 2005
+++ 25-akpm/fs/ioctl.c	Tue Jan  4 15:08:56 2005
@@ -16,7 +16,29 @@
 #include <asm/uaccess.h>
 #include <asm/ioctls.h>
 
-static int file_ioctl(struct file *filp,unsigned int cmd,unsigned long arg)
+static long do_ioctl(struct file *filp, unsigned int cmd,
+		unsigned long arg)
+{
+	int error = -ENOTTY;
+
+	if (!filp->f_op)
+		goto out;
+
+	if (filp->f_op->unlocked_ioctl) {
+		error = filp->f_op->unlocked_ioctl(filp, cmd, arg);
+	} else if (filp->f_op->ioctl) {
+		lock_kernel();
+		error = filp->f_op->ioctl(filp->f_dentry->d_inode,
+					  filp, cmd, arg);
+		unlock_kernel();
+	}
+
+ out:
+	return error;
+}
+
+static int file_ioctl(struct file *filp, unsigned int cmd,
+		unsigned long arg)
 {
 	int error;
 	int block;
@@ -36,7 +58,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,14 +70,13 @@ 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;
+
+	return do_ioctl(filp, cmd, arg);
 }
 
 
 asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
-{	
+{
 	struct file * filp;
 	unsigned int flag;
 	int on, error = -EBADF;
@@ -63,12 +86,9 @@ asmlinkage long sys_ioctl(unsigned int f
 		goto out;
 
 	error = security_file_ioctl(filp, cmd, arg);
-	if (error) {
-                fput(filp);
-                goto out;
-        }
+	if (error)
+		goto out_fput;
 
-	lock_kernel();
 	switch (cmd) {
 		case FIOCLEX:
 			set_close_on_exec(fd, 1);
@@ -100,8 +120,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)
@@ -124,16 +147,15 @@ asmlinkage long sys_ioctl(unsigned int f
 				error = -ENOTTY;
 			break;
 		default:
-			error = -ENOTTY;
 			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);
+			else
+				error = do_ioctl(filp, cmd, arg);
+			break;
 	}
-	unlock_kernel();
+ out_fput:
 	fput(filp);
-
-out:
+ out:
 	return error;
 }
 
diff -puN include/linux/fs.h~ioctl-rework-2 include/linux/fs.h
--- 25/include/linux/fs.h~ioctl-rework-2	Tue Jan  4 15:08:56 2005
+++ 25-akpm/include/linux/fs.h	Tue Jan  4 15:08:56 2005
@@ -907,8 +907,8 @@ typedef int (*read_actor_t)(read_descrip
 
 /*
  * NOTE:
- * read, write, poll, fsync, readv, writev can be called
- *   without the big kernel lock held in all filesystems.
+ * read, write, poll, fsync, readv, writev, unlocked_ioctl and compat_ioctl
+ * can be called without the big kernel lock held in all filesystems.
  */
 struct file_operations {
 	struct module *owner;
@@ -920,6 +920,8 @@ 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);
+	long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
+	long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
 	int (*mmap) (struct file *, struct vm_area_struct *);
 	int (*open) (struct inode *, struct file *);
 	int (*flush) (struct file *);
_


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  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 14:06           ` [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat Michael S. Tsirkin
  0 siblings, 2 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-05 21:34 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: mst, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Takashi Iwai <tiwai@suse.de> wrote:
>
> At Wed, 5 Jan 2005 16:40:43 +0200,
>  Michael S. Tsirkin wrote:
>  > 
>  > Hello, Andrew, all!
>  > 
>  > Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
>  > here is a patch to deprecate (un)register_ioctl32_conversion.
> 
>  Good to see that ioctl_native and ioctl_compat ops are already there!
> 
>  Will it be merged to 2.6.11?

It should be, unless there's some problem.  In maybe a week or so.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 17:17     ` 2.6.10-mm1 Jesse Barnes
@ 2005-01-05 22:38       ` Matthew Dobson
  0 siblings, 0 replies; 246+ messages in thread
From: Matthew Dobson @ 2005-01-05 22:38 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: Andrew Morton, LKML

On Mon, 2005-01-03 at 09:17, Jesse Barnes wrote:
> On Monday, January 3, 2005 1:11 am, you wrote:
> > +replace-numnodes-with-node_online_map-ia64.patch
> 
> Here are some compile fixes for this patch.  Looks like simple typos.  Note 
> that the kernel won't boot even with these fixes, I'm debugging that now 
> (suspect nodemask related stuff is causing the hang too).
> 
> Signed-off-by: Jesse Barnes <jbarnes@sgi.com>
> 
> Jesse

Those 2 fixes look good.  Thanks for the catch, Jesse!

-Matt


^ permalink raw reply	[flat|nested] 246+ messages in thread

* 2.6.10-mm2
@ 2005-01-06  8:22           ` Andrew Morton
  2005-01-06  8:39             ` 2.6.10-mm2 Nick Piggin
                               ` (17 more replies)
  0 siblings, 18 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-06  8:22 UTC (permalink / raw)
  To: linux-kernel


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/

- Various minorish updates and fixes


Changes since 2.6.10-mm1:

 linus.patch
 bk-acpi.patch
 bk-alsa.patch
 bk-arm.patch
 bk-cifs.patch
 bk-cpufreq.patch
 bk-drm-via.patch
 bk-i2c.patch
 bk-ia64.patch
 bk-ide-dev.patch
 bk-dtor-input.patch
 bk-kconfig.patch
 bk-netdev.patch
 bk-ntfs.patch
 bk-pci.patch
 bk-scsi.patch

 Latext versions of various bk trees.

-expose-reiserfs_sync_fs.patch
-fix-reiserfs-quota-debug-messages.patch
-fix-of-quota-deadlock-on-pagelock-quota-core.patch
-vfs_quota_off-oops-fix.patch
-quota-umount-race-fix.patch
-fix-of-quota-deadlock-on-pagelock-ext2.patch
-fix-of-quota-deadlock-on-pagelock-ext2-tweaks.patch
-fix-of-quota-deadlock-on-pagelock-ext3.patch
-fix-of-quota-deadlock-on-pagelock-ext3-tweaks.patch
-fix-of-quota-deadlock-on-pagelock-reiserfs.patch
-fix-of-quota-deadlock-on-pagelock-reiserfs-fix.patch
-reiserfs-bug-fix-do-not-clear-ms_active-mount-flag.patch
-allow-disabling-quota-messages-to-console.patch
-vmscan-total_scanned-fix.patch
-cs461x-gameport-code-isnt-being-included-in-build.patch
-mm-keep-count-of-free-areas.patch
-mm-higher-order-watermarks.patch
-mm-higher-order-watermarks-fix.patch
-mm-teach-kswapd-about-higher-order-areas.patch
-simplified-readahead.patch
-simplified-readahead-fix.patch
-simplified-readahead-cleanups.patch
-readahead-congestion-control.patch
-mempolicy-optimization.patch
-mm-overcommit-updates.patch
-kill-off-highmem_start_page.patch
-make-sure-ioremap-only-tests-valid-addresses.patch
-mark_page_accessed-for-reads-on-non-page-boundaries.patch
-do_anonymous_page-use-setpagereferenced.patch
-slab-add-more-arch-overrides-to-control-object-alignment.patch
-collect-page_states-only-from-online-cpus.patch
-collect-page_states-only-from-online-cpus-tidy.patch
-alloc_large_system_hash-numa-interleaving.patch
-filesystem-hashes-numa-interleaving.patch
-tcp-hashes-numa-interleaving.patch
-netfilter-fix-return-values-of-ipt_recent-checkentry.patch
-netfilter-fix-ip_conntrack_proto_sctp-exit-on-sysctl.patch
-netfilter-fix-ip_ct_selective_cleanup-and-rename.patch
-netfilter-add-comment-above-remove_expectations-in.patch
-netfilter-remove-ipchains-and-ipfwadm-compatibility.patch
-netfilter-remove-copy_to_user-warnings-in-netfilter.patch
-netfilter-fix-cleanup-in-ipt_recent-should-ipt_registrater_match-error.patch
-fix-broken-rst-handling-in-ip_conntrack.patch
-ppc32-freescale-book-e-mmu-cleanup.patch
-ppc32-refactor-common-book-e-exception-code.patch
-ppc32-switch-to-kbuild_defconfig.patch
-ppc32-marvell-host-bridge-support-mv64x60.patch
-ppc32-marvell-host-bridge-support-mv64x60-review-fixes.patch
-ppc32-support-for-marvell-ev-64260-bp-eval-platform.patch
-ppc32-support-for-force-cpci-690-board.patch
-ppc32-support-for-artesyn-katana-cpci-boards.patch
-ppc32-add-support-for-ibm-750fx-and-750gx-eval-boards.patch
-ppc32-ppc4xx-pic-rewrite-cleanup.patch
-ppc32-performance-monitor-oprofile-support-for-e500.patch
-ppc32-performance-monitor-oprofile-support-for-e500-review-fixes.patch
-ppc32-fix-ebonyc-warnings.patch
-ppc32-remove-bogus-sprn_cpc0_gpio-define.patch
-ppc32-debug-setcontext-syscall-implementation.patch
-ppc32-add-uimage-to-default-targets.patch
-ppc32-fix-io_remap_page_range-for-36-bit-phys-platforms.patch
-ppc32-resurrect-documentation-powerpc-cpu_featurestxt.patch
-ppc64-kprobes-implementation.patch
-ppc64-tweaks-to-cpu-sysfs-information.patch
-kprobes-wrapper-to-define-jprobeentry.patch
-termio-userspace-access-error-handling.patch
-ide_arch_obsolete_init-fix.patch
-out-of-line-implementation-of-find_next_bit.patch
-gp-rel-data-support.patch
-gp-rel-data-support-vs-bk-kbuild-fix.patch
-vm-routine-fixes.patch
-vm-routine-fixes-CONFIG_SHMEM-fix.patch
-frv-fujitsu-fr-v-cpu-arch-maintainer-record.patch
-frv-fujitsu-fr-v-arch-documentation.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-1.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-2.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-3.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-4.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-5.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-6.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-7.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-8.patch
-frv-fujitsu-fr-v-cpu-arch-implementation-part-9.patch
-put-memory-in-dma-zone-not-normal-zone-in-frv-arch.patch
-frv-kill-off-highmem_start_page.patch
-frv-first-batch-of-fujitsu-fr-v-arch-include-files.patch
-frv-remove-obsolete-hardirq-stuff-from-includes.patch
-frv-pci-dma-fixes.patch
-fix-frv-pci-config-space-write.patch
-frv-more-fujitsu-fr-v-arch-include-files.patch
-convert-frv-to-use-remap_pfn_range.patch
-frv-yet-more-fujitsu-fr-v-arch-include-files.patch
-frv-remaining-fujitsu-fr-v-arch-include-files.patch
-frv-make-calibrate_delay-optional.patch
-frv-better-mmap-support-in-uclinux.patch
-frv-procfs-changes-for-nommu-changes.patch
-frv-change-setup_arg_pages-to-take-stack-pointer.patch
-frv-change-setup_arg_pages-to-take-stack-pointer-fixes.patch
-frv-add-fdpic-elf-binary-format-driver.patch
-fix-some-elf-fdpic-binfmt-problems.patch
-further-nommu-changes.patch
-further-nommu-proc-changes.patch
-frv-arch-nommu-changes.patch
-make-more-syscalls-available-for-the-fr-v-arch.patch
-frv-debugging-fixes.patch
-frv-minix-ext2-bitops-fixes.patch
-frv-perfctr_info-syscall.patch
-frv-update-the-trap-tables-comment.patch
-frv-accidental-tlb-entry-write-protect-fix.patch
-frv-pagetable-handling-fixes.patch
-frv-fr55x-cpu-support-fixes.patch
-implement-nommu-find_vma.patch
-fix-nommu-map_shared-handling.patch
-permit-nommu-map_shared-of-memory-backed-files.patch
-cross-reference-nommu-vmas-with-mappings.patch
-assign-pkmap_base-dynamically.patch
-x86-remove-data-header-and-code-overlap-in-boot-setups.patch
-cyrix-mii-cpuid-returns-stale-%ecx.patch
-nx-fix-noexec-kernel-parameter.patch
-nx-triple-fault-with-4k-kernel-mappings-and-pae.patch
-trivial-cleanup-in-arch-i386-kernel-heads.patch
-remove-pfn_to_pgdat-on-x86.patch
-boot_ap_for_nondefault_kernel.patch
-i386-boot-loader-ids.patch
-proc-sys-kernel-bootloader_type.patch
-intel-thermal-monitor-for-x86_64.patch
-x86_64-do_general_protection-retval-check.patch
-x86_64-add-a-real-pfn_valid.patch
-x86_64-fix-bugs-in-the-amd-k8-cmp-support-code.patch
-x86_64-fix-bugs-in-the-amd-k8-cmp-support-code-fix.patch
-x86_64-reenable-mga-dri-on-x86-64.patch
-x86_64-remove-duplicated-fake_stack_frame-macro.patch
-x86_64-remove-bios-reboot-code.patch
-x86_64-add-reboot=force.patch
-x86_64-collected-ioremap-fixes.patch
-x86_64-handle-nx-correctly-in-pageattr.patch
-x86_64-split-acpi-boot-table-parsing.patch
-x86_64-split-acpi-boot-table-parsing-fix.patch
-x86_64-add-srat-numa-discovery-to-x86-64.patch
-x86_64-update-uptime-after-suspend.patch
-x86_64-allow-a-kernel-debugger-to-hide-single-steps-in.patch
-x86_64-remove-debug-information-for-vsyscalls.patch
-x86_64-rename-htvalid-to-cmp_legacy.patch
-x86_64-scheduler-support-for-amd-cmp.patch
-x86_64-add-a-missing-__iomem-pointed-out-by-linus.patch
-x86_64-add-a-missing-newline-in-proc-cpuinfo.patch
-x86_64-always-print-segfaults-for-init.patch
-x86_64-export-phys_proc_id.patch
-x86_64-allow-to-configure-more-cpus-and-nodes.patch
-x86_64-allow-to-configure-more-cpus-and-nodes-fix.patch
-x86_64-fix-a-warning-in-the-cmp-support-code-for.patch
-x86_64-fix-some-outdated-assumptions-that-cpu-numbers.patch
-x86_64-fix-em64t-config-description.patch
-x86_64-remove-unneeded-ifdef-in-hardirqh.patch
-x86_64-add-slit-inter-node-distance-information-to.patch
-x86_64-add-x86_64-support-for-jack-steiners-slit-sysfs.patch
-x86_64-eliminate-some-useless-printks-in-acpi-numac.patch
-h8-300-new-systemcall-support.patch
-arm26-remove-arm32-cruft.patch
-arm26-update-the-atomic-ops.patch
-arm26-build-system-updates.patch
-arm26-update-comments-headers-notes.patch
-arm26-necessary-compilation-fixes-for-2610.patch
-arm26cleanup-trap-handling-assembly.patch
-arm26-new-execve-code.patch
-arm26-move-some-files-to-better-locations.patch
-arm26-remove-shark-arm32-from-arm26.patch
-arm26-softirq-update.patch
-arm26-update-systemh-to-some-semblance-of-recentness.patch
-arm26-replace-arm32-time-handling-code-with-smaller-version.patch
-arm26-tlb-update.patch
-arm26-better-put_user-macros.patch
-arm26-better-unistdh-reimplemented-based-on-arm32.patch
-ia64-remove-hcdp-support-for-early-printk.patch
-typeofdev-powersaved_state.patch
-fix-naming-in-swsusp.patch
-swsusp-kill-unused-variable.patch
-swsusp-kill-one-line-helpers-handle-read-errors.patch
-swsusp-small-cleanups.patch
-swsusp-kill-on2-algorithm-in-swsusp.patch
-swsusp-try_to_freeze-to-make-freezing-hooks-nicer.patch
-swsusp-try_to_freeze-to-make-freezing-hooks-nicer-fix.patch
-m32r-add-new-relocation-types-to-elfh.patch
-m32r-support-pgprot_noncached.patch
-m32r-update-ptracec-for-multithread.patch
-m32r-fix-not-to-execute-noexec-pages-0-3.patch
-m32r-cause-sigsegv-for-nonexec-page.patch
-m32r-dont-encode-ace_instruction-in.patch
-m32r-clean-up-arch-m32r-mm-faultc-3-3.patch
-m32r-clean-up-include-asm-m32r-pgtableh.patch
-m32r-support-page_none-1-3.patch
-m32r-remove-page_user-2-3.patch
-m32r-clean-up.patch
-m32r-include-asm-m32r-thread_infoh-minor.patch
-m32r-use-kmalloc-for-m32r-stacks-2-2.patch
-m32r-make-kernel-headers-for-mutual.patch
-m32r-use-generic-hardirq-framework.patch
-m32r-update-include-asm-m32r-systemh.patch
-m32r-update-include-asm-m32r-mmu_contexth.patch
-uml-remove-most-devfs_mk_symlink-calls.patch
-uml-fix-__wrap_free-comment.patch
-uml-fix-some-ptrace-functions-returns-values.patch
-uml-redo-the-signal-delivery-mechanism.patch
-uml-make-restorer-match-i386.patch
-uml-unistdh-cleanup.patch
-uml-remove-a-quilt-induced-duplicity.patch
-uml-fix-sigreturn-to-not-copy_user-under-a-spinlock.patch
-uml-close-host-file-descriptors-properly.patch
-uml-free-host-resources-associated-with-freed-irqs.patch
-uml-unregister-signal-handlers-at-reboot.patch
-hostfs-uml-set-sendfile-to-generic_file_sendfile.patch
-hostfs-uml-add-some-other-pagecache-methods.patch
-uml-terminal-cleanup.patch
-uml-first-part-rework-of-run_helper-and-users.patch
-uml-finish-fixing-run_helper-failure-path.patch
-uml-add-elf-vsyscall-support.patch
-uml-make-vsyscall-page-into-process-page-tables.patch
-uml-include-vsyscall-page-in-core-dumps.patch
-uml-add-tracesysgood-support.patch
-uml-kill-host-processes-properly.patch
-uml-defconfig-update.patch
-uml-small-vsyscall-fixes.patch
-uml-export-end_iomem.patch
-uml-system-call-restart-fixes.patch
-uml-fix-setting-of-tif_sigpending.patch
-uml-allow-vsyscall-code-to-build-on-24.patch
-uml-sysemu-fixes.patch
-uml-correctly-restore-extramask-in-sigreturn.patch
-uml-fix-update_process_times-call.patch
-uml-detect-sysemu_singlestep.patch
-uml-use-sysemu_singlestep.patch
-uml-declare-ptrace_setfpregs.patch
-uml-remove-bogus-__nr_sigreturn-check.patch
-uml-fix-highmem-compilation.patch
-uml-symbol-export.patch
-uml-fix-umldir-init-order.patch
-uml-raise-tty-limit.patch
-uml-sysfs-support-for-uml-network-driver.patch
-uml-sysfs-support-for-the-uml-block-devices.patch
-s390-remove-compat-setup_arg_pages32.patch
-s390-core-patches.patch
-s390-common-i-o-layer.patch
-s390-network-device-driver-patches.patch
-s390-dasd-driver.patch
-s390-character-device-drivers.patch
-s390-dcss-driver-cleanup-fix.patch
-s390-sclp-device-driver-cleanup.patch
-enhanced-i-o-accounting-data-patch.patch
-enhanced-memory-accounting-data-collection.patch
-enhanced-memory-accounting-data-collection-tidy.patch
-4-4gb-incorrect-bound-check-in-do_getname.patch
-handle-quoted-module-parameters.patch
-move-irq_enter-and-irq_exit-to-common-code.patch
-remove-unused-irq_cpustat-fields.patch
-hold-bkl-for-shorter-period-in-generic_shutdown_super.patch
-cleanups-for-the-ipmi-driver.patch
-kill-blkh.patch
-ext3-cleanup-handling-of-aborted-transactions.patch
-ext3-handle-attempted-delete-of-bitmap-blocks.patch
-ext3-handle-attempted-double-delete-of-metadata.patch
-cpumask_t-initializers.patch
-time-run-too-fast-after-s3.patch
-fork-total_forks-not-counted-under-tasklist_lock.patch
-suppress-might_sleep-if-oopsing.patch
-file-sync-no-i_sem.patch
-ext3-support-for-ea-in-inode.patch
-ext3-support-for-ea-in-inode-warning-fix.patch
-off-by-one-in-drivers-parport-probec.patch
-compile-with-ffreestanding.patch
-sys_stime-needs-a-compat-function.patch
-sys_stime-needs-a-compat-function-update.patch
-sync-in-core-time-granuality-with-filesystems.patch
-sync-in-core-time-granuality-with-filesystems-sonypi-fix.patch
-remove-ip2-programs.patch
-rcu-eliminate-rcu_ctrlblklock.patch
-rcu-make-two-internal-structs-static.patch
-rcu-simplify-quiescent-state-detection.patch
-smb_file_open-retval-fix.patch
-sys_sched_setaffinity-on-up-should-fail-for-non-zero.patch
-make-gconfig-work-with-gtk-24.patch
-edd-add-edd=off-and-edd=skipmbr-options.patch
-panic_timeout-move-to-kernelh.patch
-add-pr_get_name.patch
-fix-alt-sysrq-deadlock.patch
-cpumask-range-check-before-using-value.patch
-noop-iosched-make-code-static.patch
-noop-iosched-remove-unused-includes.patch
-loop-device-recursion-avoidance.patch
-noone-uses-have_arch_si_codes-or-have_arch_sigevent_t.patch
-get_blkdev_list-cleanup.patch
-ext-apply-umask-to-symlinks-with-acls-configured-out.patch
-fix-missing-wakeup-in-ipc-sem.patch
-irq-resource-deallocation-acpi.patch
-irq-resource-deallocation-ia64.patch
-__getblk_slow-can-loop-forever-when-pages-are-partially.patch
-remove-rcu-abuse-in-cpu_idle.patch
-remove-rcu-abuse-in-cpu_idle-warning-fix.patch
-udf-simplify-udf_iget-fix-race.patch
-udf-fix-reservation-discarding.patch
-remove-dead-ext3_put_inode-prototype.patch
-compat-sigtimedwait.patch
-compat-sigtimedwait-sparc64-fix.patch
-compat-sigtimedwait-ppc64-fix.patch
-msync-set-PF_SYNCWRITE.patch
-prio_tree-roll-call-to-prio_tree_first-into-prio_tree_next.patch
-prio_tree-generalization.patch
-prio_tree-move-general-code-from-mm-to-lib.patch
-lcd-fix-memory-leak-code-cleanup.patch
-fix-conflicting-cpu_idle-declarations.patch
-removes-redundant-sys_delete_module.patch
-fix-stop-signal-race.patch
-move-group_exit-flag-into-signal_structflags-word.patch
-fix-ptracer-death-race-yielding-bogus-bug_on.patch
-move-waitchld_exit-from-task_struct-to-signal_struct.patch
-task_structexit_state-usage.patch
-trivial-uninline-kill-__exit_mm.patch
-#optimize-__make_request-a-little.patch
-selinux-scalability-add-spin_trylock_irq-and.patch
-selinux-scalability-convert-avc-to-rcu.patch
-selinux-scalability-convert-avc-to-rcu-fix.patch
-selinux-atomic_dec_and_test-bug.patch
-selinux-scalability-avc-statistics-and-tuning.patch
-selinux-regenerate-selinux-module-headers.patch
-selinux-update-selinux_task_setscheduler.patch
-selinux-audit-task-comm-if-exe-cannot-be-determined.patch
-selinux-add-dynamic-context-transition-support-to-selinux.patch
-selinux-enhance-selinux-control-of-executable-mappings.patch
-selinux-add-member-node-to-selinuxfs.patch
-selinux-eliminate-unaligned-accesses-by-policy-loading-code.patch
-oprofile-add-check_user_page_readable.patch
-oprofile-arch-independent-code-for-stack-trace.patch
-oprofile-arch-independent-code-for-stack-trace-rename-timer_init.patch
-oprofile-timer-backtrace-fix-2.patch
-oprofile-i386-support-for-stack-trace-sampling.patch
-oprofile-i386-support-for-stack-trace-sampling-cleanup.patch
-oprofile-i386-support-for-stack-trace-sampling-fix.patch
-oprofile-ia64-support-for-oprofile-stack-trace.patch
-oprofile-update-alpha-for-api-changes.patch
-oprofile-update-arm-for-api-changes.patch
-oprofile-update-ppc-for-api-changes.patch
-oprofile-update-parisc-for-api-changes.patch
-oprofile-update-s390-for-api-changes.patch
-oprofile-update-sh-for-api-changes.patch
-oprofile-update-sparc64-for-api-changes.patch
-oprofile-minor-cleanups.patch
-knfsd-nfsd_translate_wouldblocks.patch
-knfsd-svcrpc-auth_null-fixes.patch
-knfsd-svcrpc-share-code-duplicated-between-auth_unix-and-auth_null.patch
-knfsd-nfsd4-fix-open_downgrade-decode-error.patch
-knfsd-rpcsec_gss-comparing-pointer-to-0-instead-of-null.patch
-knfsd-nfsd4-fix-fileid-in-readdir-responses.patch
-knfsd-nfsd4-use-the-fsid-export-option-when-returning-the-fsid-attribute.patch
-knfsd-nfsd4-encode_dirent-cleanup.patch
-knfsd-nfsd4-encode_dirent-superfluous-assignment.patch
-knfsd-nfsd4-encode_dirent-superfluous-local-variables.patch
-knfsd-nfsd4-encode_dirent-more-readdir-attribute-encoding-to-new-function.patch
-knfsd-nfsd4-encode_dirent-simplify-nfs4_encode_dirent_fattr.patch
-knfsd-nfsd4-encode_dirent-move-rdattr_error-code-to-new-function.patch
-knfsd-nfsd4-encode_dirent-simplify-error-handling.patch
-knfsd-nfsd4-encode_dirent-simplify-control-flow.patch
-knfsd-nfsd4-encode_dirent-fix-dropit-return.patch
-knfsd-nfsd4-encode_dirent-trivial-cleanup.patch
-knfsd-move-nfserr_openmode-checking-from-nfsd_read-write-into-nfs4_preprocess_stateid_op-in-preperation-for-delegation-state.patch
-knfsd-check-the-callback-netid-in-gen_callback.patch
-knfsd-count-the-nfs4_client-structure-usage.patch
-knfsd-preparation-for-delegation-client-callback-probe.patch
-knfsd-preparation-for-delegation-client-callback-probe-warning-fixes.patch
-knfsd-probe-the-callback-path-upon-a-successful-setclientid_confirm.patch
-knfsd-check-for-existence-of-file_lock-parameter-inside-of-the-kernel-lock.patch
-knfsd-get-rid-of-the-special-delegation_stateid_t-use-the-existing-stateid_t.patch
-knfsd-add-structures-for-delegation-support.patch
-knfsd-allocate-and-initialize-the-delegation-structure.patch
-knfsd-find-a-delegation-for-a-file-given-a-stateid.patch
-knfsd-add-the-delegation-release-and-free-functions.patch
-knfsd-changes-to-expire_client.patch
-knfsd-delay-nfsd_colse-for-delegations-until-reaping.patch
-knfsd-delegation-recall-callback-rpc.patch
-knfsd-kernel-thread-for-delegation-callback.patch
-knfsd-helper-functions-for-deciding-to-grant-a-delegation.patch
-knfsd-attempt-to-hand-out-a-delegation.patch
-knfsd-remove-unnecessary-stateowner-existence-check.patch
-knfsd-check-for-openmode-violations-given-a-delegation-stateid.patch
-knfsd-add-checking-of-delegation-stateids-to-nfs4_preprocess_stateid_op.patch
-knfsd-add-the-delegreturn-operation.patch
-knfsd-add-to-the-laundromat-service-for-delegations.patch
-knfsd-clear-the-recall_lru-of-delegations-at-shutdown.patch
-invalidate_inodes-speedup.patch
-linux-2.6.8.1-49-rpc_workqueue.patch
-linux-2.6.8.1-50-rpc_queue_lock.patch
-fbdev-sis-framebuffer-driver-update-1717.patch
-fbdev-sysfs-fix.patch
-pm2fb-module-parameters-and-module-conditional-code.patch
-pm2fb-save-restore-memory-config.patch
-pm2fb-use-modedb-in-modules.patch
-pm2fb-fix-big-endian-sparc-support.patch
-pm2fb-fix-fbi-image-display-on-24-bit-depth-big-endian.patch
-fix-rom-enable-disable-in-r128-and-radeon-fb-drivers.patch
-fbdev-cleanup-i2c-code-of-rivafb.patch
-fbdev-revive-bios-less-booting-for-rage-xl-cards.patch
-fbdev-revive-global_mode_option.patch
-fbcon-fbdev-add-blanking-notification.patch
-fbcon-fbdev-add-blanking-notification-fix.patch
-fbdev-check-return-value-of-fb_add_videomode.patch
-fbdev-do-a-symbol_put-for-each-symbol_get-in-savagefb.patch
-fbdev-add-viewsonic-pf775a-to-broken-display-database.patch
-fbdev-fix-default-timings-in-vga16fb.patch
-fbdev-reduce-stack-usage-of-intelfb.patch
-zr36067-driver-correct-jpeg-app-com-markers.patch
-zr36067-driver-ppc-be-port.patch
-zr36067-driver-reduce-stack-size-usage.patch

 Merged

+gfp_zero-pktcdvd-fix.patch

 Fix the __GFP_ZERO stuff

+s390-add-missing-pte_read-function.patch

 s/390 build fix

+mmc-build-fix.patch

 drivers/mmc build fix

+bk-acpi-revert-20041210.patch

 Remove bad patch from bk-acpi.

+acpi-kfree-fix.patch

 Might fix an acpi bug.

+agpgart-allow-multiple-backends-to-be-initialized.patch
+drm-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
+fb-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
+agpgart-add-bridge-parameter-to-driver-functions.patch

 Support for multiple AGP bridges.

+x86_64-agp-hack.patch

 Hack it (badly) to make x86_64 compile.

+vmscan-count-writeback-pages-in-nr_scanned.patch

 page reclaim fix

-xircom_tulip_cb-build-fix-warning-fix.patch

 Folded into xircom_tulip_cb-build-fix.patch

+add-omap-support-to-smc91x-ethernet-driver.patch
+restore-net-sched-iptc-after-iptables-kmod-cleanup.patch
+netfilter-ipt-build-fix.patch

 net fixes

+split-bprm_apply_creds-into-two-functions.patch
+merge-_vm_enough_memorys-into-a-common-helper.patch

 security work

+ppc64-add-performance-monitor-register-information-to-processorh.patch
+ppc64-use-newer-rtas-call-when-available.patch
+ppc64-clean-up-trap-handling.patch
+ppc64-clean-up-trap-handling-in-heads.patch
+ppc64-log-machine-check-errors-to-error-log-and-nvram.patch
+ppc64-iommu-cleanups-rename-pci_dma_directc.patch
+ppc64-iommu-cleanups-main-cleanup-patch.patch

 ppc64 updates

+dmi_iterate-fix.patch

 dmi oops fix

+arch-i386-kernel-cpu-mtrr-too-many-bits-are-masked-off-from-cr4.patch

 x86 mtrr fix

+pm-introduce-pm_message_t.patch
+mark-older-power-managment-as-deprecated.patch
+swsusp-device-power-management-fix.patch
+swsusp-properly-suspend-and-resume-all-devices.patch

 swsusp updates

+request_irq-avoid-slash-in-proc-directory-entries.patch

 Don't try to create /proc files which contain slashes

+prohibit-slash-in-proc-directory-entry-names.patch

 Error out if someone tries to do it again.

+speedup-proc-pid-maps.patch

 Optimise /proc/pid/maps

+fix-cdrom-autoclose.patch

 cdrom fix

+move-accounting-function-calls-out-of-critical-vm-code-paths.patch

 Speed up the new accounting code.

-ioctl-rework.patch
+ioctl-rework-2.patch

 New version of the patch which permits bkl-less ioctl implementations.

+fix-__ptrace_unlink-task_traced-recovery-for-real-parent.patch
+fix-coredump_wait-deadlock-with-ptracer-tracee-on-shared-mm.patch

 More ptrace fixes from Roland.

+oprofile-fix-ia64-callgraph-bug-with-old-gcc.patch

 oprofile fix

+nfsd4_setclientid_confirm-locking-fix.patch

 Fix the new nfsd code.

+sched-remove-outdated-misleading-comments.patch

 Fix CPU scheduler comments

+debug-sched-domains-before-attach.patch

 CPU scheduler debugging

+replace-numnodes-with-node_online_map-ia64-fix.patch

 Fix replace-numnodes-with-node_online_map-ia64.patch

+replace-numnodes-with-node_online_map-fix.patch

 Fix replace-numnodes-with-node_online_map.patch

+block2mtd-avoid-touching-truncate_count.patch

 Don't play with ->truncate_count - it is going away.

+cpu_idle-smp_processor_id-warning-fix.patch

 Avoid an "smp_processor_id in preemptible code" warning.

+add-page-becoming-writable-notification-build-fix.patch

 Fix add-page-becoming-writable-notification-fix.patch

+kexec-kexecx86_64-4level-fix-unfix.patch

 Hack to make x86_64 compile.  Will break kexec.

-reiser4-unstatic-kswapd.patch

 Hopefully not needed.

+generic-serial-cli-conversion.patch
+specialix-io8-cli-conversion.patch
+rio-cli-conversion.patch
+rio_linux-64-bit-workaround.patch
+sx-cli-conversion.patch

 De-cli()ify a few char drivers.

+fbdev-rivafb-should-recognize-nf2-igp.patch

 New PCI ID.

+bug-on-error-handlings-in-ext3-under-i-o-failure.patch
+bug-on-error-handlings-in-ext3-under-i-o-failure-fix.patch

 Fix ext3 I/O error handling.

+cputime-introduce-cputime-vs-move-accounting-function-calls-out-of-critical-vm-code-paths.patch

 Fix the cputime patches for the I/O accounting speedup patch.

+update-hugetlb-documentation.patch

 Documentation update

+ide-cd-is-very-noisy.patch

 Kill some printks

+signedness-fix-in-deadline-ioschedc.patch

 deadline /sys fix

+cleanup-virtual-console-selectionc-interface.patch

 Code cleanup

+warn-about-cli-sti-co-uses-even-on-up.patch

 deprecate cli() and sti().

+remove-umsdos-from-tree.patch

 Kill umsdos.

+kill-quota_v2c-printk-of-size_t-warning.patch
+kill-gen_init_cpioc-printk-of-size_t-warning.patch
+silence-numerous-size_t-warnings-in-drivers-acpi-processor_idlec.patch

 size_t warning fixes

+make-irda-string-tables-conditional-on-config_irda_debug.patch

 Dead code fix

+fix-unresolved-mtd-symbols-in-scx200_docflashc.patch
+fix-module_param-type-mismatch-in-drivers-char-n_hdlcc.patch

 Build fixes

+drivers-char-misc-cleanups.patch
+pktcdvd-make-two-functions-static.patch
+pktcdvd-grep-friendly-function-prototypes.patch
+pktcdvd-small-documentation-update.patch
+isofs-remove-useless-include.patch
+synaptics-remove-unused-struct-member-variable.patch
+kill-one-if-x-vfreex-usage.patch
+smbfs-make-some-functions-static.patch

 Various small cleanups and fixes

+periodically-scan-redzone-entries-and-slab-control-structures.patch

 Additional slab sanity checking



number of patches in -mm: 560
number of changesets in external trees: 479
number of patches in -mm only: 544
total patches: 1023



All 560 patches:


linus.patch

gfp_zero-pktcdvd-fix.patch
  __GFP_ZERO pktcdvd fix

s390-add-missing-pte_read-function.patch
  s390: add missing pte_read function

mmc-build-fix.patch
  mmc build fix

bk-acpi.patch

bk-acpi-revert-20041210.patch
  bk-acpi-revert-20041210

acpi-report-errors-in-fanc.patch
  ACPI: report errors in fan.c

acpi-flush-tlb-when-pagetable-changed.patch
  acpi: flush TLB when pagetable changed

acpi-kfree-fix.patch
  a

bk-alsa.patch

bk-arm.patch

bk-cifs.patch

bk-cpufreq.patch

bk-drm-via.patch

bk-i2c.patch

bk-ia64.patch

bk-ide-dev.patch

ide-dev-build-fix.patch
  ide-dev-build-fix

bk-dtor-input.patch

bk-kconfig.patch

bk-netdev.patch

via-rhine-warning-fix.patch
  via-rhine warning fix

hostap-fix-kconfig-typos-and-missing-select-crypto.patch
  hostap: fix Kconfig typos and missing select CRYPTO

ixgb-lr-card-support.patch
  ixgb LR card support

bk-ntfs.patch

bk-pci.patch

bk-scsi.patch

mm.patch
  add -mmN to EXTRAVERSION

fix-smm-failures-on-e750x-systems.patch
  fix SMM failures on E750x systems

agpgart-allow-multiple-backends-to-be-initialized.patch
  agpgart: allow multiple backends to be initialized

drm-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
  drm: add support for new multiple agp bridge agpgart api

fb-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
  fb: add support for new multiple agp bridge agpgart api

agpgart-add-bridge-parameter-to-driver-functions.patch
  agpgart: add bridge parameter to driver functions

x86_64-agp-hack.patch
  x86_64 agp hack

vmscan-count-writeback-pages-in-nr_scanned.patch
  vmscan: count writeback pages in nr_scanned

vm-pageout-throttling.patch
  vm: pageout throttling

make-tree_lock-an-rwlock.patch
  make mapping->tree_lock an rwlock

must-fix.patch
  must fix lists update
  must fix list update
  mustfix update
  must-fix update
  mustfix lists

xircom_tulip_cb-build-fix.patch
  xircom_tulip_cb.c build fix

net-netconsole-poll-support-for-3c509.patch
  net: Netconsole poll support for 3c509

pcnet32-79c976-with-fiber-optic.patch
  pcnet32: 79c976 with fiber optic fix

multicast-filtering-for-tunc.patch
  Multicast filtering for tun.c

r8169-missing-netif_poll_enable-and-irq-ack.patch
  r8169: missing netif_poll_enable and irq ack

r8169-c-101.patch
  r8169: C 101

r8169-large-send-enablement.patch
  r8169: Large Send enablement

r8169-reduce-max-mtu-for-large-frames.patch
  r8169: reduce max MTU for large frames

r8169-oversized-driver-field-for-ethtool.patch
  r8169: oversized driver field for ethtool

fix-ibm_emac-autonegotiation-result-parsing.patch
  EMAC: fix ibm_emac autonegotiation result parsing

add-omap-support-to-smc91x-ethernet-driver.patch
  Add OMAP support to smc91x Ethernet driver

restore-net-sched-iptc-after-iptables-kmod-cleanup.patch
  Restore net/sched/ipt.c After iptables Kmod Cleanup

netfilter-ipt-build-fix.patch
  netfilter: ipt build fix

split-bprm_apply_creds-into-two-functions.patch
  split bprm_apply_creds into two functions

merge-_vm_enough_memorys-into-a-common-helper.patch
  merge *_vm_enough_memory()s into a common helper

ppc64-add-performance-monitor-register-information-to-processorh.patch
  ppc64: add performance monitor register information to processor.h

ppc64-use-newer-rtas-call-when-available.patch
  ppc64: use newer RTAS call when available

ppc64-clean-up-trap-handling.patch
  ppc64: clean up trap handling

ppc64-clean-up-trap-handling-in-heads.patch
  ppc64: clean up trap handling in head.S

ppc64-log-machine-check-errors-to-error-log-and-nvram.patch
  ppc64: Log machine check errors to error log and NVRAM

ppc64-iommu-cleanups-rename-pci_dma_directc.patch
  ppc64: IOMMU cleanups: rename pci_dma_direct.c

ppc64-iommu-cleanups-main-cleanup-patch.patch
  ppc64: IOMMU cleanups: Main cleanup patch

ppc64-reloc_hide.patch

superhyway-bus-support.patch
  SuperHyway bus support

dmi_iterate-fix.patch
  dmi_iterate() fix

arch-i386-kernel-cpu-mtrr-too-many-bits-are-masked-off-from-cr4.patch
  arch/i386/kernel/cpu/mtrr: too many bits are masked off from CR4

xen-vmm-4-add-ptep_establish_new-to-make-va-available.patch
  Xen VMM #4: add ptep_establish_new to make va available

xen-vmm-4-return-code-for-arch_free_page.patch
  Xen VMM #4: return code for arch_free_page

xen-vmm-4-return-code-for-arch_free_page-fix.patch
  Get rid of arch_free_page() warning

xen-vmm-4-runtime-disable-of-vt-console.patch
  Xen VMM #4: runtime disable of VT console

xen-vmm-4-has_arch_dev_mem.patch
  Xen VMM #4: HAS_ARCH_DEV_MEM

xen-vmm-4-split-free_irq-into-teardown_irq.patch
  Xen VMM #4: split free_irq into teardown_irq

pm-introduce-pm_message_t.patch
  pm: introduce pm_message_t

mark-older-power-managment-as-deprecated.patch
  mark older power managment as deprecated

swsusp-device-power-management-fix.patch
  swsusp: device power management fix

swsusp-properly-suspend-and-resume-all-devices.patch
  swsusp: properly suspend and resume all devices

wacom-tablet-driver.patch
  wacom tablet driver

force-feedback-support-for-uinput.patch
  Force feedback support for uinput

kmap_atomic-takes-char.patch
  kmap_atomic takes char*

kmap_atomic-takes-char-fix.patch
  kmap_atomic-takes-char-fix

kmap_atomic-fallout.patch
  kmap_atomic fallout

kunmap-fallout-more-fixes.patch
  kunmap-fallout-more-fixes

CONFIG_SOUND_VIA82CXXX_PROCFS.patch
  Add CONFIG_SOUND_VIA82CXXX_PROCFS

make-sysrq-f-call-oom_kill.patch
  make sysrq-F call oom_kill()

allow-admin-to-enable-only-some-of-the-magic-sysrq-functions.patch
  Allow admin to enable only some of the Magic-Sysrq functions

request_irq-avoid-slash-in-proc-directory-entries.patch
  request_irq: avoid slash in proc directory entries

prohibit-slash-in-proc-directory-entry-names.patch
  prohibit slash in proc directory entry names

speedup-proc-pid-maps.patch
  Speed up /proc/pid/maps

fix-cdrom-autoclose.patch
  fix cdrom autoclose

move-accounting-function-calls-out-of-critical-vm-code-paths.patch
  Move accounting function calls out of critical vm code paths

gen_init_cpio-symlink-pipe-socket-support.patch
  gen_init_cpio symlink, pipe and socket support

gen_init_cpio-slink_pipe_sock_2.patch
  gen_init_cpio-slink_pipe_sock_2

initramfs-allow-no-trailer.patch
  INITRAMFS: allow no trailer

htree-telldir-fix.patch
  ext3 htree telldir() fix

ioctl-rework-2.patch
  ioctl rework #2

initramfs-unprivileged-image-creation.patch
  initramfs: unprivileged image creation

fix-__ptrace_unlink-task_traced-recovery-for-real-parent.patch
  fix __ptrace_unlink TASK_TRACED recovery for real parent

fix-coredump_wait-deadlock-with-ptracer-tracee-on-shared-mm.patch
  fix coredump_wait deadlock with ptracer & tracee on shared mm

oprofile-fix-ia64-callgraph-bug-with-old-gcc.patch
  oprofile: fix ia64 callgraph bug with old gcc

pcmcia-new-ds-cs-interface.patch
  pcmcia: new ds - cs interface

pcmcia-call-device-drivers-from-ds-not-from-cs.patch
  pcmcia: call device drivers from ds, not from cs

pcmcia-unify-bind_mtd-and-pcmcia_bind_mtd.patch
  pcmcia: unify bind_mtd and pcmcia_bind_mtd

pcmcia-unfiy-bind_device-and-pcmcia_bind_device.patch
  pcmcia: unfiy bind_device and pcmcia_bind_device

pcmcia-device-model-integration-can-only-be-submitted-under-gpl.patch
  pcmcia: device model integration can only be submitted under GPL

pcmcia-add-pcmcia_devices.patch
  pcmcia: add pcmcia_device(s)

pcmcia-remove-socket_bind_t-use-pcmcia_devices-instead.patch
  pcmcia: remove socket_bind_t, use pcmcia_devices instead

pcmcia-remove-internal-module-use-count-use-module_refcount-instead.patch
  pcmcia: remove internal module use count, use module_refcount instead

pcmcia-set-drivers-owner-field.patch
  pcmcia: set driver's .owner field

pcmcia-move-pcmcia_unregister_client-to-ds.patch
  pcmcia: move pcmcia_(un,)register_client to ds

pcmcia-device-model-integration-can-only-be-submitted-under-gpl-part-2.patch
  pcmcia: device model integration can only be submitted under GPL, part 2

pcmcia-use-kref-instead-of-native-atomic-counter.patch
  pcmcia: use kref instead of native atomic counter

pcmcia-add-pcmcia_putget_socket.patch
  pcmcia: add pcmcia_(put,get)_socket

pcmcia-grab-a-reference-to-the-cs-socket-in-ds.patch
  pcmcia: grab a reference to the cs-socket in ds

pcmcia-get-a-reference-to-ds-socket-for-each-pcmcia_device.patch
  pcmcia: get a reference to ds-socket for each pcmcia_device

pcmcia-add-a-pointer-to-client-in-struct-pcmcia_device.patch
  pcmcia: add a pointer to client in struct pcmcia_device

pcmcia-use-pcmcia_device-in-send_event.patch
  pcmcia: use pcmcia_device in send_event

pcmcia-use-pcmcia_device-to-mark-clients-as-stale.patch
  pcmcia: use pcmcia_device to mark clients as stale

pcmcia-code-moving-in-ds.patch
  pcmcia: code moving in ds

pcmcia-use-pcmcia_device-in-register_client.patch
  pcmcia: use pcmcia_device in register_client

pcmcia-direct-ordered-unbind-of-devices.patch
  pcmcia: direct-ordered unbind of devices

pcmcia-bug-on-dev_list-=-null.patch
  pcmcia: BUG on dev_list != NULL

pcmcia-bug-if-clients-are-kept-too-long.patch
  pcmcia: BUG() if clients are kept too long

pcmcia-move-struct-client_t-inside-struct-pcmcia_device.patch
  pcmcia: move struct client_t inside struct pcmcia_device

pcmcia-use-driver_find-in-ds.patch
  pcmcia: use driver_find in ds

pcmcia-set_netdev-for-network-devices.patch
  pcmcia: SET_NETDEV for network devices

pcmcia-set_netdev-for-wireless-network-devices.patch
  pcmcia: SET_NETDEV for wireless network devices

pcmcia-reduce-stack-usage-in-ds_ioctl-randy-dunlap.patch
  pcmcia: reduce stack usage in ds_ioctl (Randy Dunlap)

pcmcia-add-disable_clkrun-option.patch
  pcmcia: Add disable_clkrun option

pcmcia-rename-pcmcia-devices.patch
  pcmcia: rename PCMCIA devices

pcmcia-pd6729-e-mail-update.patch
  pcmcia: pd6729: e-mail update

pcmcia-pd6729-cleanups.patch
  pcmcia: pd6729: cleanups

pcmcia-pd6729-isa_irq-handling.patch
  pcmcia: pd6729: isa_irq handling

pcmcia-remove-obsolete-code.patch
  pcmcia: remove obsolete code

pcmcia-remove-pending_events.patch
  pcmcia: remove pending_events

pcmcia-remove-client_attributes.patch
  pcmcia: remove client_attributes

pcmcia-remove-unneeded-parameter-from-rsrc_mgr.patch
  pcmcia: remove unneeded parameter from rsrc_mgr

pcmcia-remove-dev_info-from-client.patch
  pcmcia: remove dev_info from client

pcmcia-remove-mtd-and-bulkmem-replaced-by-pcmciamtd.patch
  pcmcia: remove mtd and bulkmem (replaced by pcmciamtd)

pcmcia-per-socket-resource-database.patch
  pcmcia: per-socket resource database

pcmcia-validate_mem-only-for-non-statically-mapped-sockets.patch
  pcmcia: validate_mem only for non-statically mapped sockets

pcmcia-adjust_io_region-only-for-non-statically-mapped-sockets.patch
  pcmcia: adjust_io_region only for non-statically mapped sockets

pcmcia-find_io_region-only-for-non-statically-mapped-sockets.patch
  pcmcia: find_io_region only for non-statically mapped sockets

pcmcia-find_mem_region-only-for-non-statically-mapped-sockets.patch
  pcmcia: find_mem_region only for non-statically mapped sockets

pcmcia-adjust_-and-release_resources-only-for-non-statically-mapped-sockets.patch
  pcmcia: adjust_ and release_resources only for non-statically mapped sockets

pcmcia-move-resource-handling-code-only-for-non-statically-mapped-sockets-to-other-file.patch
  pcmcia: move resource handling code only for non-statically mapped sockets to other file

pcmcia-make-rsrc_nonstatic-an-independend-module.patch
  pcmcia: make rsrc_nonstatic an independend module

pcmcia-allocate-resource-database-per-socket.patch
  pcmcia: allocate resource database per-socket

pcmcia-remove-typedef.patch
  pcmcia: remove typedef

pcmcia-grab-lock-in-resource_release.patch
  pcmcia: grab lock in resource_release

nfsd4_setclientid_confirm-locking-fix.patch
  nfsd4_setclientid_confirm locking fix

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)
  kgdbL warning fix
  kgdb buffer overflow fix
  kgdbL warning fix
  kgdb: CONFIG_DEBUG_INFO fix
  x86_64 fixes
  correct kgdb.txt Documentation link (against  2.6.1-rc1-mm2)
  kgdb: fix for recent gcc
  kgdb warning fixes
  THREAD_SIZE fixes for kgdb
  Fix stack overflow test for non-8k stacks
  kgdb-ga.patch fix for i386 single-step into sysenter
  fix TRAP_BAD_SYSCALL_EXITS on i386
  add TRAP_BAD_SYSCALL_EXITS config for i386
  kgdb-is-incompatible-with-kprobes
  kgdb-ga-build-fix
  kgdb-ga-fixes

kgdb-kill-off-highmem_start_page.patch
  kgdb: kill off highmem_start_page

kgdboe-netpoll.patch
  kgdb-over-ethernet via netpoll
  kgdboe: fix configuration of MAC address

kgdb-x86_64-support.patch
  kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
  kgdb-x86_64-warning-fixes
  kgdb-x86_64-fix
  kgdb-x86_64-serial-fix
  kprobes exception notifier fix

dev-mem-restriction-patch.patch
  /dev/mem restriction patch

dev-mem-restriction-patch-allow-reads.patch
  dev-mem-restriction-patch: allow reads

jbd-remove-livelock-avoidance.patch
  JBD: remove livelock avoidance code in journal_dirty_data()

journal_add_journal_head-debug.patch
  journal_add_journal_head-debug

list_del-debug.patch
  list_del debug check

unplug-can-sleep.patch
  unplug functions can sleep

firestream-warnings.patch
  firestream warnings

perfctr-core.patch
  perfctr: core

perfctr-i386.patch
  perfctr: i386

perfctr-x86-core-updates.patch
  perfctr x86 core updates

perfctr-x86-driver-updates.patch
  perfctr x86 driver updates

perfctr-x86-driver-cleanup.patch
  perfctr: x86 driver cleanup

perfctr-prescott-fix.patch
  Prescott fix for perfctr

perfctr-x86-update-2.patch
  perfctr x86 update 2

perfctr-x86_64.patch
  perfctr: x86_64

perfctr-x86_64-core-updates.patch
  perfctr x86_64 core updates

perfctr-ppc.patch
  perfctr: PowerPC

perfctr-ppc32-driver-update.patch
  perfctr: ppc32 driver update

perfctr-ppc32-mmcr0-handling-fixes.patch
  perfctr ppc32 MMCR0 handling fixes

perfctr-ppc32-update.patch
  perfctr ppc32 update

perfctr-ppc32-update-2.patch
  perfctr ppc32 update

perfctr-virtualised-counters.patch
  perfctr: virtualised counters

perfctr-remap_page_range-fix.patch

virtual-perfctr-illegal-sleep.patch
  virtual perfctr illegal sleep

make-perfctr_virtual-default-in-kconfig-match-recommendation.patch
  Make PERFCTR_VIRTUAL default in Kconfig match recommendation  in help text

perfctr-ifdef-cleanup.patch
  perfctr ifdef cleanup

perfctr-update-2-6-kconfig-related-updates.patch
  perfctr: Kconfig-related updates

perfctr-virtual-updates.patch
  perfctr virtual updates

perfctr-virtual-cleanup.patch
  perfctr: virtual cleanup

perfctr-ppc32-preliminary-interrupt-support.patch
  perfctr ppc32 preliminary interrupt support

perfctr-update-5-6-reduce-stack-usage.patch
  perfctr: reduce stack usage

perfctr-interrupt-support-kconfig-fix.patch
  perfctr interrupt_support Kconfig fix

perfctr-low-level-documentation.patch
  perfctr low-level documentation

perfctr-inheritance-1-3-driver-updates.patch
  perfctr inheritance: driver updates

perfctr-inheritance-2-3-kernel-updates.patch
  perfctr inheritance: kernel updates

perfctr-inheritance-3-3-documentation-updates.patch
  perfctr inheritance: documentation updates

perfctr-inheritance-locking-fix.patch
  perfctr inheritance locking fix

perfctr-api-changes-first-step.patch
  perfctr API changes: first step

perfctr-virtual-update.patch
  perfctr virtual update

perfctr-x86-64-ia32-emulation-fix.patch
  perfctr x86-64 ia32 emulation fix

perfctr-sysfs-update-1-4-core.patch
  perfctr sysfs update: core

perfctr-sysfs-update.patch
  Perfctr sysfs update

perfctr-sysfs-update-2-4-x86.patch
  perfctr sysfs update: x86

perfctr-sysfs-update-3-4-x86-64.patch
  perfctr sysfs update: x86-64

perfctr-sysfs-update-4-4-ppc32.patch
  perfctr sysfs update: ppc32

sched-more-agressive-wake_idle.patch
  sched: more agressive wake_idle()

sched-can_migrate-exception-for-idle-cpus.patch
  sched: can_migrate exception for idle cpus

sched-newidle-fix.patch
  sched: newidle fix

sched-active_load_balance-fixlet.patch
  sched: active_load_balance() fixlet

sched-reset-cache_hot_time.patch
  sched: reset cache_hot_time

schedc-whitespace-mangler.patch
  sched.c whitespace mangler

sched-alter_kthread_prio.patch
  sched: alter_kthread_prio

sched-adjust_timeslice_granularity.patch
  sched: adjust_timeslice_granularity

sched-add_requeue_task.patch
  sched: add_requeue_task

requeue_granularity.patch
  sched: requeue_granularity

sched-remove_interactive_credit.patch
  sched: remove_interactive_credit

sched-use-cached-current-value.patch
  sched: use cached current value

dont-hide-thread_group_leader-from-grep.patch
  don't hide thread_group_leader() from grep

sched-no-need-to-recalculate-rq.patch
  sched: no need to recalculate rq

export-sched_setscheduler-for-kernel-module-use.patch
  export sched_setscheduler() for kernel module use

sched-remove-outdated-misleading-comments.patch
  sched: remove outdated/misleading comments

add-do_proc_doulonglongvec_minmax-to-sysctl-functions.patch
  Add do_proc_doulonglongvec_minmax to sysctl functions
  add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix
  add-do_proc_doulonglongvec_minmax-to-sysctl-functions fix 2

add-sysctl-interface-to-sched_domain-parameters.patch
  Add sysctl interface to sched_domain parameters

preempt-smp.patch
  improve preemption on SMP

preempt-smp-_raw_read_trylock-bias-fix.patch
  preempt-smp _raw_read_trylock bias fix

preempt-cleanup.patch
  preempt cleanup

preempt-cleanup-fix.patch
  preempt-cleanup-fix

add-lock_need_resched.patch
  add lock_need_resched()

sched-add-cond_resched_softirq.patch
  sched: add cond_resched_softirq()

sched-ext3-fix-scheduling-latencies-in-ext3.patch
  sched: ext3: fix scheduling latencies in ext3

break-latency-in-invalidate_list.patch
  break latency in invalidate_list()

sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent.patch
  sched: vfs: fix scheduling latencies in prune_dcache() and select_parent()

sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent-fix.patch
  sched-vfs-fix-scheduling-latencies-in-prune_dcache-and-select_parent fix

sched-net-fix-scheduling-latencies-in-netstat.patch
  sched: net: fix scheduling latencies in netstat

sched-net-fix-scheduling-latencies-in-__release_sock.patch
  sched: net: fix scheduling latencies in __release_sock

sched-mm-fix-scheduling-latencies-in-unmap_vmas.patch
  sched: mm: fix scheduling latencies in unmap_vmas()

sched-mm-fix-scheduling-latencies-in-get_user_pages.patch
  sched: mm: fix scheduling latencies in get_user_pages()

sched-mm-fix-scheduling-latencies-in-filemap_sync.patch
  sched: mm: fix scheduling latencies in filemap_sync()

fix-keventd-execution-dependency.patch
  fix keventd execution dependency

sched-fix-scheduling-latencies-in-mttrc.patch
  sched: fix scheduling latencies in mttr.c

sched-fix-scheduling-latencies-in-mttrc-reenables-interrupts.patch
  sched-fix-scheduling-latencies-in-mttrc reenables interrupts

sched-fix-scheduling-latencies-in-vgaconc.patch
  sched: fix scheduling latencies in vgacon.c

sched-fix-scheduling-latencies-for-preempt-kernels.patch
  sched: fix scheduling latencies for !PREEMPT kernels

idle-thread-preemption-fix.patch
  idle thread preemption fix

oprofile-smp_processor_id-fixes.patch
  oprofile smp_processor_id() fixes

fix-smp_processor_id-warning-in-numa_node_id.patch
  Fix smp_processor_id() warning in numa_node_id()

debug-sched-domains-before-attach.patch
  debug sched domains before attach

replace-numnodes-with-node_online_map-alpha.patch
  Subject: [RFC PATCH 1/10] Replace 'numnodes' with 'node_online_map' - alpha

replace-numnodes-with-node_online_map-arm.patch
  Subject: [RFC PATCH 2/10] Replace 'numnodes' with 'node_online_map' - arm

replace-numnodes-with-node_online_map-i386.patch
  Subject: [RFC PATCH 3/10] Replace 'numnodes' with 'node_online_map' - i386

replace-numnodes-with-node_online_map-ia64.patch
  Subject: [RFC PATCH 4/10] Replace 'numnodes' with 'node_online_map' - ia64

replace-numnodes-with-node_online_map-ia64-fix.patch
  replace-numnodes-with-node_online_map-ia64 fix

replace-numnodes-with-node_online_map-m32r.patch
  Subject: [RFC PATCH 5/10] Replace 'numnodes' with 'node_online_map' - m32r

replace-numnodes-with-node_online_map-mips.patch
  Subject: [RFC PATCH 6/10] Replace 'numnodes' with 'node_online_map' - mips

replace-numnodes-with-node_online_map-parisc.patch
  Subject: [RFC PATCH 7/10] Replace 'numnodes' with 'node_online_map' - parisc

replace-numnodes-with-node_online_map-ppc64.patch
  Subject: [RFC PATCH 8/10] Replace 'numnodes' with 'node_online_map' - ppc64

replace-numnodes-with-node_online_map-x86_64.patch
  Subject: [RFC PATCH 9/10] Replace 'numnodes' with 'node_online_map' - x86_64

replace-numnodes-with-node_online_map.patch
  Subject: [RFC PATCH 10/10] Replace 'numnodes' with 'node_online_map' - 	arch-independent

replace-numnodes-with-node_online_map-fix.patch
  replace-numnodes-with-node_online_map fix

block2mtd-avoid-touching-truncate_count.patch
  block2mtd: avoid touching truncate_count

vmtrunc-truncate_count-not-atomic.patch
  vmtrunc: truncate_count not atomic

vmtrunc-restore-unmap_vmas-zap_bytes.patch
  vmtrunc: restore unmap_vmas zap_bytes

vmtrunc-unmap_mapping_range_tree.patch
  vmtrunc: unmap_mapping_range_tree

vmtrunc-unmap_mapping-dropping-i_mmap_lock.patch
  vmtrunc: unmap_mapping dropping i_mmap_lock

vmtrunc-vm_truncate_count-race-caution.patch
  vmtrunc: vm_truncate_count race caution

vmtrunc-bug-if-page_mapped.patch
  vmtrunc: bug if page_mapped

vmtrunc-restart_addr-in-truncate_count.patch
  vmtrunc: restart_addr in truncate_count

remove-the-bkl-by-turning-it-into-a-semaphore.patch
  remove the BKL by turning it into a semaphore

cpu_idle-smp_processor_id-warning-fix.patch
  cpu_idle-smp_processor_id-warning-fix

oprofile-preempt-warning-fixes.patch
  oprofile preempt warning fixes

smp_processor_id-commentary.patch
  smp_processor_id() commentary

cpu_down-warning-fix.patch
  cpu_down() warning fix

allow-modular-ide-pnp.patch
  allow modular ide-pnp

allow-x86_64-to-reenable-interrupts-on-contention.patch
  Allow x86_64 to reenable interrupts on contention

i386-cpu-hotplug-updated-for-mm.patch
  i386 CPU hotplug updated for -mm

ppc64-fix-cpu-hotplug.patch
  ppc64: fix hotplug cpu

serialize-access-to-ide-devices.patch
  serialize access to ide devices

disable-atykb-warning.patch
  disable atykb "too many keys pressed" warning

export-file_ra_state_init-again.patch
  Export file_ra_state_init() again

cachefs-filesystem.patch
  CacheFS filesystem

numa-policies-for-file-mappings-mpol_mf_move-cachefs.patch
  numa-policies-for-file-mappings-mpol_mf_move for cachefs

cachefs-release-search-records-lest-they-return-to-haunt-us.patch
  CacheFS: release search records lest they return to haunt us

fix-64-bit-problems-in-cachefs.patch
  Fix 64-bit problems in cachefs

cachefs-fixed-typos-that-cause-wrong-pointer-to-be-kunmapped.patch
  cachefs: fixed typos that cause wrong pointer to be kunmapped

cachefs-return-the-right-error-upon-invalid-mount.patch
  CacheFS: return the right error upon invalid mount

fix-cachefs-barrier-handling-and-other-kernel-discrepancies.patch
  Fix CacheFS barrier handling and other kernel discrepancies

remove-error-from-linux-cachefsh.patch
  Remove #error from linux/cachefs.h

cachefs-warning-fix-2.patch
  cachefs warning fix 2

cachefs-linkage-fix-2.patch
  cachefs linkage fix

cachefs-build-fix.patch
  cachefs build fix

cachefs-documentation.patch
  CacheFS documentation

add-page-becoming-writable-notification.patch
  Add page becoming writable notification

add-page-becoming-writable-notification-fix.patch
  do_wp_page_mk_pte_writable() fix

add-page-becoming-writable-notification-build-fix.patch
  add-page-becoming-writable-notification build fix

provide-a-filesystem-specific-syncable-page-bit.patch
  Provide a filesystem-specific sync'able page bit

provide-a-filesystem-specific-syncable-page-bit-fix.patch
  provide-a-filesystem-specific-syncable-page-bit-fix

provide-a-filesystem-specific-syncable-page-bit-fix-2.patch
  provide-a-filesystem-specific-syncable-page-bit-fix-2

make-afs-use-cachefs.patch
  Make AFS use CacheFS

afs-cachefs-dependency-fix.patch
  afs-cachefs-dependency-fix

split-general-cache-manager-from-cachefs.patch
  Split general cache manager from CacheFS

turn-cachefs-into-a-cache-backend.patch
  Turn CacheFS into a cache backend

rework-the-cachefs-documentation-to-reflect-fs-cache-split.patch
  Rework the CacheFS documentation to reflect FS-Cache split

update-afs-client-to-reflect-cachefs-split.patch
  Update AFS client to reflect CacheFS split

assign_irq_vector-section-fix.patch
  assign_irq_vector __init section fix

kexec-i8259-shutdowni386.patch
  kexec: i8259-shutdown.i386

kexec-i8259-shutdown-x86_64.patch
  kexec: x86_64 i8259 shutdown

kexec-apic-virtwire-on-shutdowni386patch.patch
  kexec: apic-virtwire-on-shutdown.i386.patch

kexec-apic-virtwire-on-shutdownx86_64.patch
  kexec: apic-virtwire-on-shutdown.x86_64

kexec-ioapic-virtwire-on-shutdowni386.patch
  kexec: ioapic-virtwire-on-shutdown.i386

kexec-apic-virt-wire-fix.patch
  kexec: apic-virt-wire fix

kexec-ioapic-virtwire-on-shutdownx86_64.patch
  kexec: ioapic-virtwire-on-shutdown.x86_64

kexec-e820-64bit.patch
  kexec: e820-64bit

kexec-kexec-generic.patch
  kexec: kexec-generic

kexec-ide-spindown-fix.patch
  kexec-ide-spindown-fix

kexec-ifdef-cleanup.patch
  kexec ifdef cleanup

kexec-machine_shutdownx86_64.patch
  kexec: machine_shutdown.x86_64

kexec-kexecx86_64.patch
  kexec: kexec.x86_64

kexec-kexecx86_64-4level-fix.patch
  kexec-kexecx86_64-4level-fix

kexec-kexecx86_64-4level-fix-unfix.patch
  kexec-kexecx86_64-4level-fix unfix

kexec-machine_shutdowni386.patch
  kexec: machine_shutdown.i386

kexec-kexeci386.patch
  kexec: kexec.i386

kexec-use_mm.patch
  kexec: use_mm

kexec-loading-kernel-from-non-default-offset.patch
  kexec: loading kernel from non-default offset

kexec-loading-kernel-from-non-default-offset-fix.patch
  kdump: fix bss compile error

kexec-enabling-co-existence-of-normal-kexec-kernel-and-panic-kernel.patch
  kexec: nabling co-existence of normal kexec kernel and  panic kernel

kexec-ppc-support.patch
  kexec: ppc support

crashdump-documentation.patch
  crashdump: documentation

crashdump-memory-preserving-reboot-using-kexec.patch
  crashdump: memory preserving reboot using kexec

crashdump-memory-preserving-reboot-using-kexec-fix.patch
  kdump: Fix for boot problems on SMP

kdump-config_discontigmem-fix.patch
  kdump: CONFIG_DISCONTIGMEM fix

crashdump-routines-for-copying-dump-pages.patch
  crashdump: routines for copying dump pages

crashdump-routines-for-copying-dump-pages-kmap-fiddle.patch
  crashdump-routines-for-copying-dump-pages-kmap-fiddle

crashdump-kmap-build-fix.patch
  crashdump kmap build fix

crashdump-register-snapshotting-before-kexec-boot.patch
  crashdump: register snapshotting before kexec boot

crashdump-elf-format-dump-file-access.patch
  crashdump: ELF format dump file access

crashdump-linear-raw-format-dump-file-access.patch
  crashdump: linear/raw format dump file access

crashdump-minor-bug-fixes-to-kexec-crashdump-code.patch
  crashdump: minor bug fixes to kexec crashdump code

crashdump-cleanups-to-the-kexec-based-crashdump-code.patch
  crashdump: cleanups to the kexec based crashdump code

x86-rename-apic_mode_exint.patch
  x86: rename APIC_MODE_EXINT

x86-local-apic-fix.patch
  x86: local apic fix

new-bitmap-list-format-for-cpusets.patch
  new bitmap list format (for cpusets)

cpusets-big-numa-cpu-and-memory-placement.patch
  cpusets - big numa cpu and memory placement

cpusets-fix-cpuset_get_dentry.patch
  cpusets : fix cpuset_get_dentry()

cpusets-fix-race-in-cpuset_add_file.patch
  cpusets: fix race in cpuset_add_file()

cpusets-remove-more-casts.patch
  cpusets: remove more casts

cpusets-make-config_cpusets-the-default-in-sn2_defconfig.patch
  cpusets: make CONFIG_CPUSETS the default in sn2_defconfig

cpusets-document-proc-status-allowed-fields.patch
  cpusets: document proc status allowed fields

cpusets-dont-export-proc_cpuset_operations.patch
  Cpusets - Dont export proc_cpuset_operations

cpusets-display-allowed-masks-in-proc-status.patch
  cpusets: display allowed masks in proc status

cpusets-simplify-cpus_allowed-setting-in-attach.patch
  cpusets: simplify cpus_allowed setting in attach

cpusets-remove-useless-validation-check.patch
  cpusets: remove useless validation check

cpusets-config_cpusets-depends-on-smp.patch
  Cpusets: CONFIG_CPUSETS depends on SMP

cpusets-tasks-file-simplify-format-fixes.patch
  Cpusets tasks file: simplify format, fixes

cpusets-simplify-memory-generation.patch
  Cpusets: simplify memory generation

cpusets-interoperate-with-hotplug-online-maps.patch
  cpusets: interoperate with hotplug online maps

cpusets-alternative-fix-for-possible-race-in.patch
  cpusets: alternative fix for possible race in  cpuset_tasks_read()

cpusets-remove-casts.patch
  cpusets: remove void* typecasts

reiser4-sb_sync_inodes.patch
  reiser4: vfs: add super_operations.sync_inodes()

reiser4-allow-drop_inode-implementation.patch
  reiser4: export vfs inode.c symbols

reiser4-truncate_inode_pages_range.patch
  reiser4: vfs: add truncate_inode_pages_range()

reiser4-export-remove_from_page_cache.patch
  reiser4: export pagecache add/remove functions to modules

reiser4-export-page_cache_readahead.patch
  reiser4: export page_cache_readahead to modules

reiser4-reget-page-mapping.patch
  reiser4: vfs: re-check page->mapping after calling try_to_release_page()

reiser4-rcu-barrier.patch
  reiser4: add rcu_barrier() synchronization point

reiser4-export-inode_lock.patch
  reiser4: export inode_lock to modules

reiser4-export-pagevec-funcs.patch
  reiser4: export pagevec functions to modules

reiser4-export-radix_tree_preload.patch
  reiser4: export radix_tree_preload() to modules

reiser4-export-find_get_pages.patch

reiser4-radix-tree-tag.patch
  reiser4: add new radix tree tag

reiser4-radix_tree_lookup_slot.patch
  reiser4: add radix_tree_lookup_slot()

reiser4-perthread-pages.patch
  reiser4: per-thread page pools

reiser4-include-reiser4.patch
  reiser4: add to build system

reiser4-doc.patch
  reiser4: documentation

reiser4-only.patch
  reiser4: main fs

reiser4-recover-read-performance.patch
  reiser4: recover read performance

reiser4-export-find_get_pages_tag.patch
  reiser4-export-find_get_pages_tag

reiser4-add-missing-context.patch

add-acpi-based-floppy-controller-enumeration.patch
  Add ACPI-based floppy controller enumeration.

possible-dcache-bug-debugging-patch.patch
  Possible dcache BUG: debugging patch

3c59x-reload-eeprom-values-at-rmmod-for-needy-cards.patch
  3c59x: reload EEPROM values at rmmod for needy cards

3c59x-remove-eeprom_reset-for-3c905b.patch
  3c59x: remove EEPROM_RESET for 3c905B

3c59x-add-eeprom_reset-for-3c900-boomerang.patch
  3c59x: Add EEPROM_RESET for 3c900 Boomerang

3c59x-pm-fix.patch
  3c59x: enable power management unconditionally

3c59x-missing-pci_disable_device.patch
  3c59x: missing pci_disable_device

3c59x-use-netdev_priv.patch
  3c59x: use netdev_priv

3c59x-make-use-of-generic_mii_ioctl.patch
  3c59x: Make use of generic_mii_ioctl

3c59x-vortex-select-mii.patch
  3c59x: VORTEX select MII

3c59x-support-more-ethtool_ops.patch
  3c59x: support more ethtool_ops

serial-add-support-for-non-standard-xtals-to-16c950-driver.patch
  serial: add support for non-standard XTALs to 16c950 driver

add-support-for-possio-gcc-aka-pcmcia-siemens-mc45.patch
  Add support for Possio GCC AKA PCMCIA Siemens MC45

new-serial-flow-control.patch
  new serial flow control

mpsc-driver-patch.patch
  serial: MPSC driver

generic-serial-cli-conversion.patch
  generic-serial cli() conversion

specialix-io8-cli-conversion.patch
  Specialix/IO8 cli() conversion

rio-cli-conversion.patch
  RIO cli() conversion

rio_linux-64-bit-workaround.patch
  rio_linux 64 bit workaround

sx-cli-conversion.patch
  SX cli() conversion

revert-allow-oem-written-modules-to-make-calls-to-ia64-oem-sal-functions.patch
  revert "allow OEM written modules to make calls to ia64 OEM SAL functions"

md-improve-hash-code-in-linearc.patch
  md: improve 'hash' code in linear.c

md-add-interface-for-userspace-monitoring-of-events.patch
  md: add interface for userspace monitoring of events.

make-acpi_bus_register_driver-consistent-with-pci_register_driver-again.patch
  make acpi_bus_register_driver() consistent with pci_register_driver()

enforce-a-gap-between-heap-and-stack.patch
  Enforce a gap between heap and stack

remove-lock_section-from-x86_64-spin_lock-asm.patch
  remove LOCK_SECTION from x86_64 spin_lock asm

kfree_skb-dump_stack.patch
  kfree_skb-dump_stack

for-mm-only-remove-remap_page_range-completely.patch
  vm: for -mm only: remove remap_page_range() completely

cancel_rearming_delayed_work.patch
  cancel_rearming_delayed_work()
  make cancel_rearming_delayed_workqueue static

ipvs-deadlock-fix.patch
  ipvs deadlock fix

minimal-ide-disk-updates.patch
  Minimal ide-disk updates

no-buddy-bitmap-patch-revist-intro-and-includes.patch
  no buddy bitmap patch revist: intro and includes

no-buddy-bitmap-patch-revisit-for-mm-page_allocc.patch
  no buddy bitmap patch revisit: for mm/page_alloc.c

no-buddy-bitmap-patch-revisit-for-mm-page_allocc-fix.patch
  no-buddy-bitmap-patch-revisit-for-mm-page_allocc fix

no-buddy-bitmap-patch-revist-for-ia64.patch
  no buddy bitmap patch revist: for ia64

no-buddy-bitmap-patch-revist-for-ia64-fix.patch
  no-buddy-bitmap-patch-revist-for-ia64 fix

use-find_trylock_page-in-free_swap_and_cache-instead-of-hand-coding.patch
  use find_trylock_page in free_swap_and_cache instead of hand coding

fbdev-rivafb-should-recognize-nf2-igp.patch
  fbdev: rivafb should recognize NF2/IGP

raid6-altivec-support.patch
  raid6: altivec support

remove-export_symbol_novers.patch
  Remove EXPORT_SYMBOL_NOVERS

figure-out-who-is-inserting-bogus-modules.patch
  Figure out who is inserting bogus modules

use-mmiowb-in-qla1280c.patch
  use mmiowb in qla1280.c

readpage-vs-invalidate-fix.patch
  readpage-vs-invalidate fix

invalidate_inode_pages-mmap-coherency-fix.patch
  invalidate_inode_pages2() mmap coherency fix

bug-on-error-handlings-in-ext3-under-i-o-failure.patch
  BUG on error handlings in Ext3 under I/O failure condition

bug-on-error-handlings-in-ext3-under-i-o-failure-fix.patch
  bug-on-error-handlings-in-ext3-under-i-o-failure fix

cputime-introduce-cputime.patch
  cputime: introduce cputime

cputime-introduce-cputime-vs-move-accounting-function-calls-out-of-critical-vm-code-paths.patch
  cputime-introduce-cputime-vs-move-accounting-function-calls-out-of-critical-vm-code-paths

cputime-fix-do_setitimer.patch
  cputime: fix do_setitimer.

cputime-missing-pieces.patch
  cputime: missing pieces.

mm-check_rlimit-oops-on-p-signal.patch
  check_rlimit oops on p->signal

cputime-microsecond-based-cputime-for-s390.patch
  cputime: microsecond based cputime for s390

detect-atomic-counter-underflows.patch
  detect atomic counter underflows

lock-initializer-unifying-batch-2-alpha.patch
  Lock initializer unifying: ALPHA

lock-initializer-unifying-batch-2-ia64.patch
  Lock initializer unifying: IA64

lock-initializer-unifying-batch-2-m32r.patch
  Lock initializer unifying: M32R

lock-initializer-unifying-batch-2-mips.patch
  Lock initializer unifying: MIPS

lock-initializer-unifying-batch-2-misc-drivers.patch
  Lock initializer unifying: Misc drivers

lock-initializer-unifying-batch-2-block-devices.patch
  Lock initializer unifying: Block devices

lock-initializer-unifying-batch-2-drm.patch
  Lock initializer unifying: DRM

lock-initializer-unifying-batch-2-character-devices.patch
  Lock initializer unifying: character devices

lock-initializer-unifying-batch-2-rio.patch
  Lock initializer unifying: RIO

lock-initializer-unifying-batch-2-firewire.patch
  Lock initializer unifying: Firewire

lock-initializer-unifying-batch-2-isdn.patch
  Lock initializer unifying: ISDN

lock-initializer-unifying-batch-2-raid.patch
  Lock initializer unifying: Raid

lock-initializer-unifying-batch-2-media-drivers.patch
  Lock initializer unifying: media drivers

lock-initializer-unifying-batch-2-drivers-serial.patch
  Lock initializer unifying: drivers/serial

lock-initializer-unifying-batch-2-filesystems.patch
  Lock initializer unifying: Filesystems

lock-initializer-unifying-batch-2-video.patch
  Lock initializer unifying: Video

lock-initializer-unifying-batch-2-sound.patch
  Lock initializer unifying: sound

lock-initializer-cleanup-common-headers.patch
  Lock initializer cleanup (common headers)

lock-initializer-cleanup-character-devices.patch
  Lock initializer cleanup (character devices)

lock-initializer-cleanup-core.patch
  Lock initializer cleanup (Core)

moxa-update-status-of-moxa-smartio-driver.patch
  moxa: Update status of Moxa Smartio driver

moxa-remove-ancient-changelog-readmemoxa.patch
  moxa: Remove ancient changelog README.moxa

moxa-remove-readmemoxa-from-documentation-00-index.patch
  moxa: Remove README.moxa from Documentation/00-INDEX

specialix-remove-bouncing-e-mail-address.patch
  specialix: remove bouncing e-mail address

stallion-update-to-documentation-stalliontxt.patch
  stallion: Update to Documentation/stallion.txt

riscom8-update-staus-and-documentation-of-driver.patch
  riscom8: Update staus and documentation of driver

pm-remove-outdated-docs.patch
  From: Pavel Machek <pavel@ucw.cz>
  Subject: pm: remove outdated docs

docs-add-sparse-howto.patch
  From: Pavel Machek <pavel@ucw.cz>
  Subject: docs: add sparse howto

cciss-documentation-update.patch
  cciss: Documentation update

cciss-correct-mailing-list-address-in-source-code.patch
  cciss: Correct mailing list address in source code

cpqarray-correct-mailing-list-address-in-source-code.patch
  cpqarray: Correct mailing list address in source code

sh-remove-x86-specific-help-in-kconfig.patch
  sh: Remove x86-specific help in Kconfig

cyclades-put-readmecycladez-in-documentation-serial.patch
  cyclades: Put README.cycladeZ in Documentation/serial

tipar-document-driver-options.patch
  tipar: Document driver options

tipar-code-cleanup.patch
  tipar: Code cleanup

update-hugetlb-documentation.patch
  update hugetlb documentation

eth1394-module_parm-conversion.patch
  eth1394 MODULE_PARM conversion

isapnp-module_param-conversion.patch
  isapnp module_param conversion

sr-module_param-conversion.patch
  sr module_param conversion

media-video-module_param-conversion.patch
  media/video module_param conversion

btaudio-module_param-conversion.patch
  btaudio module_param conversion

small-drivers-char-rio-cleanups-fwd.patch
  small drivers/char/rio/ cleanups

small-char-generic_serialc-cleanup-fwd.patch
  small char/generic_serial.c cleanup

debug_bugverbose-for-i386-fwd.patch
  DEBUG_BUGVERBOSE for i386

telephony-ixjc-cleanup-fwd.patch
  telephony/ixj.c cleanup

char-cycladesc-remove-unused-code-fwd.patch
  char/cyclades.c: remove unused code

oss-ac97-quirk-facility.patch
  oss: AC97 quirk facility

oss-ac97-quirk-facility-fix.patch
  oss-ac97-quirk-facility fix

ext3-use-generic_open_file-to-fix-possible-preemption-bugs.patch
  ext3: use generic_open_file to fix possible preemption bugs

bttv-i2cc-make-two-functions-static.patch
  bttv-i2c.c: make two functions static

bttv-riscc-make-some-functions-static.patch
  bttv-risc.c: make some functions static

bttv-help-fix.patch
  bttv help fix

zoran_driverc-make-zoran_num_formats-static.patch
  zoran_driver.c: make zoran_num_formats static

media-video-msp3400c-remove-unused-struct-d1.patch
  media/video/msp3400.c: remove unused struct d1

zoran_devicec-make-zr36057_init_vfe-static.patch
  zoran_device.c: make zr36057_init_vfe static

drivers-media-video-the-easy-cleanups.patch
  drivers/media/video: the easy cleanups

small-ftape-cleanups-fwd.patch
  small ftape cleanups

reiser3-cleanups.patch
  reiser3 cleanups

cdromc-make-several-functions-static.patch
  cdrom.c: make several functions static (fwd)

fs-coda-psdevc-shouldnt-include-lph.patch
  fs/coda/psdev.c shouldn't include lp.h

remove-early_param-tests.patch
  remove early_param test code

MODULE_PARM-allmod.patch
  MODULE_PARM conversions

MODULE_PARM-allyes.patch
  MODULE_PARM conversions

lockd-fix-two-struct-definitions.patch
  lockd: fix two struct definitions

small-mca-cleanups-fwd.patch
  small MCA cleanups

small-drivers-media-radio-cleanups-fwd.patch
  small drivers/media/radio/ cleanups

ifdef-typos-arch_ppc_platforms_prep_setupc.patch
  ifdef typos: arch_ppc_platforms_prep_setup.c

ifdef-typos-arch_ppc_platforms_prep_setupc-another-one.patch
  ifdef typos: arch_ppc_platforms_prep_setup.c -another one

ifdef-typos-arch_ppc_syslib_ppc4xx_dmac.patch
  ifdef typos: arch_ppc_syslib_ppc4xx_dma.c

ifdef-typos-arch_sh_boards_renesas_hs7751rvoip_ioc.patch
  ifdef typos: arch_sh_boards_renesas_hs7751rvoip_io.c

ifdef-typos-drivers_char_ipmi_ipmi_si_intfc.patch
  ifdef typos: drivers_char_ipmi_ipmi_si_intf.c

ifdef-typos-drivers_net_wireless_wavelan_csc.patch
  ifdef typos: drivers_net_wireless_wavelan_cs.c

ifdef-typos-drivers_usb_net_usbnetc.patch
  ifdef typos: drivers_usb_net_usbnet.c

ifdef-typos-mips-au100_usb_device.patch
  ifdef typos mips: AU1[0X]00_USB_DEVICE

ipmi-use-c99-struct-inits.patch
  IPMI: use C99 struct inits.

drm-remove-unused-functions-fwd.patch
  DRM: remove unused functions

floppyc-remove-an-unused-function-fwd.patch
  floppy.c: remove an unused function

media-video-ir-kbd-i2cc-remove-an-unused-function-fwd.patch
  media/video/ir-kbd-i2c.c: remove an unused function

nfs-remove-an-unused-function-fwd.patch
  NFS: remove an unused function

watchdog-machzwdc-remove-unused-functions-fwd.patch
  watchdog/machzwd.c: remove unused functions

video-drivers-remove-unused-functions-fwd.patch
  video drivers: remove unused functions

isdn-b1pcmciac-remove-an-unused-variable-fwd.patch
  ISDN b1pcmcia.c: remove an unused variable

binfmt_scriptc-make-struct-script_format-static-fwd.patch
  binfmt_script.c: make struct script_format static

bioc-make-bio_destructor-static-fwd.patch
  bio.c: make bio_destructor static

devpts-inodec-make-one-struct-static-fwd.patch
  devpts/inode.c: make one struct static

small-proc_fs-cleanups-fwd.patch
  small proc_fs cleanups

kernel-timerc-comment-typo.patch
  Fix kernel/timer.c comment typo

mark-qnx4fs_rw-as-broken-fwd.patch
  mark QNX4FS_RW as BROKEN

oss-remove-unused-functions-fwd.patch
  OSS: remove unused functions

dvb-av7110_hwc-remove-unused-functions-fwd.patch
  DVB av7110_hw.c: remove unused functions

schedc-remove-an-unused-macro-fwd.patch
  sched.c: remove an unused macro

scsi-ahcic-remove-an-unused-function-fwd.patch
  scsi/ahci.c: remove an unused function

scsi-aic7xxx-aic79xx_osmc-remove-an-unused-function-fwd.patch
  scsi/aic7xxx/aic79xx_osm.c: remove an unused function

schedc-remove-an-unused-function-fwd.patch
  sched.c: remove an unused function

prism54-small-prismcompat-cleanup-fwd.patch
  prism54: small prismcompat cleanup

some-parport_pcc-cleanups-fwd.patch
  some parport_pc.c cleanups

fix-typo-and-email-in-saktxt.patch
  fix typo and email in SAK.txt

cris-remove-kernel-20-ifdefs-fwd.patch
  cris: remove kernel 2.0 #ifdef's

afs-afs_voltypes-isnt-always-required-fwd.patch
  AFS: afs_voltypes isn't always required

befs-if-0-two-unused-global-functions-fwd.patch
  befs: #if 0 two unused global functions

binfmt_scriptc-make-em86_format-static.patch
  binfmt_script.c: make em86_format static

remove-unused-include-asm-m68k-adb_mouseh.patch
  remove unused include/asm-m68k/adb_mouse.h

scsi-aic7xxx-remove-two-useless-variables.patch
  scsi/aic7xxx/: remove two useless variables

remove-in_string_c.patch
  remove IN_STRING_C

remove-ct_to_secs-ct_to_usecs.patch
  remove CT_TO_SECS()/CT_TO_USECS()

bttv-driverc-make-some-variables-static.patch
  bttv-driver.c: make some variables static

arch-alpha-kconfig-kill-stale-reference-to-documentation-smptex.patch
  arch/alpha/Kconfig: Kill stale reference to Documentation/smp.tex

init-initramfsc-make-unpack_to_rootfs-static.patch
  init/initramfs.c: make unpack_to_rootfs static

oss-misc-cleanups.patch
  OSS: misc cleanups

inux-269-fs-proc-basec-array-size.patch
  fs/proc/base.c: array size

linux-269-fs-proc-proc_ttyc-avoid-array.patch
  fs/proc/proc_tty.c: avoid array

optimize-prefetch-usage-in-list_for_each_xxx.patch
  optimize prefetch() usage in list_for_each_xxx

signalc-convert-assertion-to-bug_on.patch
  signal.c: convert assertion to BUG_ON()

right-severity-level-for-fatal-message.patch
  Right severity level for fatal message

remove-unused-drivers-char-rio-cdprotoh.patch
  remove unused drivers/char/rio/cdproto.h

remove-unused-drivers-char-rsf16fmih.patch
  remove unused drivers/char/rsf16fmi.h

mtd-added-nec-upd29f064115-support.patch
  mtd: added NEC uPD29F064115 support

waiting-10s-before-mounting-root-filesystem.patch
  retry mounting the root filesystem at boot time

ide-cd-is-very-noisy.patch
  IDE CD is very noisy

signedness-fix-in-deadline-ioschedc.patch
  signedness fix in deadline-iosched.c

cleanup-virtual-console-selectionc-interface.patch
  cleanup virtual console <-> selection.c interface

warn-about-cli-sti-co-uses-even-on-up.patch
  warn about cli, sti & co uses even on UP

remove-umsdos-from-tree.patch
  remove umsdos from tree

kill-quota_v2c-printk-of-size_t-warning.patch
  kill quota_v2.c printk() of size_t warning

kill-gen_init_cpioc-printk-of-size_t-warning.patch
  kill gen_init_cpio.c printk() of size_t warning

silence-numerous-size_t-warnings-in-drivers-acpi-processor_idlec.patch
  silence numerous size_t warnings in drivers/acpi/processor_idle.c

make-irda-string-tables-conditional-on-config_irda_debug.patch
  make IRDA string tables conditional on CONFIG_IRDA_DEBUG

fix-unresolved-mtd-symbols-in-scx200_docflashc.patch
  fix unresolved MTD symbols in scx200_docflash.c

fix-module_param-type-mismatch-in-drivers-char-n_hdlcc.patch
  fix module_param() type mismatch in drivers/char/n_hdlc.c

drivers-char-misc-cleanups.patch
  drivers/char/: misc cleanups

pktcdvd-make-two-functions-static.patch
  pktcdvd: make two functions static

pktcdvd-grep-friendly-function-prototypes.patch
  pktcdvd: grep-friendly function prototypes

pktcdvd-small-documentation-update.patch
  pktcdvd: Small documentation update

isofs-remove-useless-include.patch
  isofs: Remove useless include

synaptics-remove-unused-struct-member-variable.patch
  synaptics: Remove unused struct member variable

periodically-scan-redzone-entries-and-slab-control-structures.patch
  periodically scan redzone entries and slab control structures

kill-one-if-x-vfreex-usage.patch
  kill one "if (X) vfree(X)" usage

smbfs-make-some-functions-static.patch
  smbfs: make some functions static




^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
@ 2005-01-06  8:39             ` Nick Piggin
  2005-01-06  9:11             ` 2.6.10-mm2 Eyal Lebedinsky
                               ` (16 subsequent siblings)
  17 siblings, 0 replies; 246+ messages in thread
From: Nick Piggin @ 2005-01-06  8:39 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> 

...

> +kexec-kexecx86_64-4level-fix-unfix.patch
> 
>  Hack to make x86_64 compile.  Will break kexec.
> 

It should be enough to just change the ->pml4 to ->pgd. Assuming that it
worked with the original 4level patches.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  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             ` 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
                               ` (15 subsequent siblings)
  17 siblings, 2 replies; 246+ messages in thread
From: Eyal Lebedinsky @ 2005-01-06  9:11 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Surprisingly, this is what I get for 'make distclean':

scripts/Makefile.clean:10: fs/umsdos/Makefile: No such file or directory
make[2]: *** No rule to make target `fs/umsdos/Makefile'.  Stop.
make[1]: *** [fs/umsdos] Error 2
make: *** [_clean_fs] Error 2

fs/umsdos is practically empty.

-- 
Eyal Lebedinsky (eyal@eyal.emu.id.au) <http://samba.org/eyal/>
	If attaching .zip rename to .dat

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  9:11             ` 2.6.10-mm2 Eyal Lebedinsky
@ 2005-01-06  9:24               ` Andrew Morton
  2005-01-06  9:27               ` 2.6.10-mm2 Christoph Hellwig
  1 sibling, 0 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-06  9:24 UTC (permalink / raw)
  To: Eyal Lebedinsky; +Cc: linux-kernel

Eyal Lebedinsky <eyal@eyal.emu.id.au> wrote:
>
> scripts/Makefile.clean:10: fs/umsdos/Makefile: No such file or directory
>  make[2]: *** No rule to make target `fs/umsdos/Makefile'.  Stop.

--- 25/fs/Makefile~remove-umsdos-from-tree-fix	2005-01-06 01:24:17.694520824 -0800
+++ 25-akpm/fs/Makefile	2005-01-06 01:24:21.234982592 -0800
@@ -59,7 +59,6 @@ obj-$(CONFIG_HUGETLBFS)		+= hugetlbfs/
 obj-$(CONFIG_CODA_FS)		+= coda/
 obj-$(CONFIG_MINIX_FS)		+= minix/
 obj-$(CONFIG_FAT_FS)		+= fat/
-obj-$(CONFIG_UMSDOS_FS)		+= umsdos/
 obj-$(CONFIG_MSDOS_FS)		+= msdos/
 obj-$(CONFIG_VFAT_FS)		+= vfat/
 obj-$(CONFIG_BFS_FS)		+= bfs/
_


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  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               ` Christoph Hellwig
  1 sibling, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06  9:27 UTC (permalink / raw)
  To: Eyal Lebedinsky; +Cc: Andrew Morton, linux-kernel

On Thu, Jan 06, 2005 at 08:11:54PM +1100, Eyal Lebedinsky wrote:
> Surprisingly, this is what I get for 'make distclean':
> 
> scripts/Makefile.clean:10: fs/umsdos/Makefile: No such file or directory
> make[2]: *** No rule to make target `fs/umsdos/Makefile'.  Stop.
> make[1]: *** [fs/umsdos] Error 2
> make: *** [_clean_fs] Error 2
> 
> fs/umsdos is practically empty.

I forgot to remove umsdos from fs/Makefile.  Here's a patch:


--- 1.66/fs/Makefile	2005-01-05 03:48:08 +01:00
+++ edited/fs/Makefile	2005-01-06 10:33:33 +01:00
@@ -57,7 +57,6 @@
 obj-$(CONFIG_CODA_FS)		+= coda/
 obj-$(CONFIG_MINIX_FS)		+= minix/
 obj-$(CONFIG_FAT_FS)		+= fat/
-obj-$(CONFIG_UMSDOS_FS)		+= umsdos/
 obj-$(CONFIG_MSDOS_FS)		+= msdos/
 obj-$(CONFIG_VFAT_FS)		+= vfat/
 obj-$(CONFIG_BFS_FS)		+= bfs/

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  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 10:17             ` 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
                               ` (14 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Juri Prokofjev @ 2005-01-06 10:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Thu, 6 Jan 2005, Andrew Morton wrote:
..
> drm-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
>  drm: add support for new multiple agp bridge agpgart api
..
During compilation some missing files were found.

..
  gcc -Wp,-MD,drivers/char/drm/.gamma_drv.o.d -nostdinc -isystem 
/usr/lib/gcc-lib/i486-linux/3.3.4/include -D__KERNEL__ -Iinclude  -Wall 
-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common 
-ffreestanding -O2     -fomit-frame-pointer -pipe -msoft-float 
-mpreferred-stack-boundary=2  -march=i686 -Iinclude/asm-i386/mach-default 
-DMODULE -DKBUILD_BASENAME=gamma_drv -DKBUILD_MODNAME=gamma -c -o 
drivers/char/drm/.tmp_gamma_drv.o drivers/char/drm/gamma_drv.c
drivers/char/drm/gamma_drv.c:39:22: drm_auth.h: No such file or directory
drivers/char/drm/gamma_drv.c:40:28: drm_agpsupport.h: No such file or 
directory
drivers/char/drm/gamma_drv.c:41:22: drm_bufs.h: No such file or directory
In file included from drivers/char/drm/gamma_drv.c:42:
drivers/char/drm/gamma_context.h: In function 
`gamma_context_switch_complete':
...
drivers/char/drm/gamma_drv.c:43:21: drm_dma.h: No such file or 
directory
In file included from drivers/char/drm/gamma_drv.c:44:
drivers/char/drm/gamma_old_dma.h: In function `gamma_clear_next_buffer':
..
drivers/char/drm/gamma_drv.c:45:26: drm_drawable.h: No such file or 
directory
drivers/char/drm/gamma_drv.c:46:21: drm_drv.h: No such file or directory
drivers/char/drm/gamma_drv.c:48:22: drm_fops.h: No such file or directory
drivers/char/drm/gamma_drv.c:49:22: drm_init.h: No such file or directory
drivers/char/drm/gamma_drv.c:50:23: drm_ioctl.h: No such file or directory
drivers/char/drm/gamma_drv.c:51:21: drm_irq.h: No such file or directory
...
drivers/char/drm/gamma_drv.c:53:22: drm_lock.h: No such file or directory
...

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH 2.6.10-mm2] m32r: build fix
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (2 preceding siblings ...)
  2005-01-06 10:17             ` 2.6.10-mm2 Juri Prokofjev
@ 2005-01-06 10:17             ` Hirokazu Takata
  2005-01-06 10:47             ` 2.6.10-mm2 Christoph Hellwig
                               ` (13 subsequent siblings)
  17 siblings, 0 replies; 246+ messages in thread
From: Hirokazu Takata @ 2005-01-06 10:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, takata

Hi,

This patch is required to fix compile errors of 2.6.10-bk8 and 2.6.10-mm2
for m32r.  Please apply.

This was originally given by the following patch:
  [PATCH] move irq_enter and irq_exit to common code
  http://www.ussg.iu.edu/hypermail/linux/kernel/0411.1/1738.html

I think it was maybe accidentally dropped only for the m32r arch
due to a patching conflict with the other patches or something like that...

Thanks,

Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
---

diff -ruNp a/include/asm-m32r/hardirq.h b/include/asm-m32r/hardirq.h
--- a/include/asm-m32r/hardirq.h	2005-01-06 18:07:14.000000000 +0900
+++ b/include/asm-m32r/hardirq.h	2005-01-06 18:31:01.000000000 +0900
@@ -27,18 +27,6 @@ typedef struct {
 # error HARDIRQ_BITS is too low!
 #endif
 
-#define irq_enter()		(preempt_count() += HARDIRQ_OFFSET)
-#define nmi_enter()		(irq_enter())
-#define nmi_exit()		(preempt_count() -= HARDIRQ_OFFSET)
-
-#define irq_exit()							\
-do {									\
-		preempt_count() -= IRQ_EXIT_OFFSET;			\
-		if (!in_interrupt() && softirq_pending(smp_processor_id())) \
-			do_softirq();					\
-		preempt_enable_no_resched();				\
-} while (0)
-
 static inline void ack_bad_irq(int irq)
 {
 	printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);

--
Hirokazu Takata <takata@linux-m32r.org>
Linux/M32R Project:  http://www.linux-m32r.org/

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (3 preceding siblings ...)
  2005-01-06 10:17             ` [PATCH 2.6.10-mm2] m32r: build fix Hirokazu Takata
@ 2005-01-06 10:47             ` Christoph Hellwig
  2005-01-06 11:19             ` 2.6.10-mm2 error: redefinition of `struct cfq_io_context' Helge Hafting
                               ` (12 subsequent siblings)
  17 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 10:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

> +rio-cli-conversion.patch
> +rio_linux-64-bit-workaround.patch

RIO is totally broken on all plattforms, and rio-cli-conversion.patch
makes it even more broken with things like:

-#define disable(oldspl) save_flags (oldspl) 
-#define restore(oldspl) restore_flags (oldspl) 
+#define disable(oldspl) local_irq_save(oldspl);
+#define restore(oldspl) local_irq_restore(oldspl) ;

or

+       if (PortP->gs.flags & ASYNC_CLOSING){ 
+               interruptible_sleep_on(&PortP->gs.close_wait);
+       }

please drop rio-cli-conversion.patch and mark the driver BROKEN to wait
a little before finally removing it unless it'll get a major rewrite.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2 error: redefinition of `struct cfq_io_context'
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (4 preceding siblings ...)
  2005-01-06 10:47             ` 2.6.10-mm2 Christoph Hellwig
@ 2005-01-06 11:19             ` Helge Hafting
  2005-01-06 14:21               ` Helge Hafting
  2005-01-06 12:06             ` 2.6.10-mm2 Marcos D. Marado Torres
                               ` (11 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Helge Hafting @ 2005-01-06 11:19 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton wrote:

>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
>
>- Various minorish updates and fixes
>
>  
>
CC      init/do_mounts_md.o
In file included from include/linux/raid/md.h:21,
                 from init/do_mounts_md.c:2:
include/linux/blkdev.h:71: error: redefinition of `struct cfq_io_context'
make[1]: *** [init/do_mounts_md.o] Error 1
make: *** [init] Error 2


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 10:07     ` 2.6.10-mm1 Christoph Hellwig
  2005-01-03 17:19       ` 2.6.10-mm1 Jesse Barnes
@ 2005-01-06 11:32       ` Christoph Hellwig
  2005-01-06 13:04       ` 2.6.10-mm1 David Howells
  2 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 11:32 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, David Howells, linux-kernel

On Mon, Jan 03, 2005 at 10:07:25AM +0000, Christoph Hellwig wrote:
> > add-page-becoming-writable-notification.patch
> >   Add page becoming writable notification
> 
> David, this still has the bogus address_space operation in addition to
> the vm_operation.  page_mkwrite only fits into the vm_operations scheme,
> so please remove the address_space op.  Also the code will be smaller
> and faster witout that indirection..

Here's the fix:


diff -uNr -X dontdiff -p linux-2.6.10-mm2.orig/fs/afs/file.c linux-2.6.10-mm2/fs/afs/file.c
--- linux-2.6.10-mm2.orig/fs/afs/file.c	2005-01-06 11:40:18.727916000 +0100
+++ linux-2.6.10-mm2/fs/afs/file.c	2005-01-06 12:27:59.088000048 +0100
@@ -33,8 +33,10 @@ static int afs_file_releasepage(struct p
 
 static ssize_t afs_file_write(struct file *file, const char __user *buf,
 			      size_t size, loff_t *off);
+static int afs_file_mmap(struct file * file, struct vm_area_struct * vma);
+
 #ifdef CONFIG_AFS_FSCACHE
-static int afs_file_page_mkwrite(struct page *page);
+static int afs_file_page_mkwrite(struct vm_area_struct *vma, struct page *page);
 #endif
 
 struct inode_operations afs_file_inode_operations = {
@@ -44,7 +46,7 @@ struct inode_operations afs_file_inode_o
 struct file_operations afs_file_file_operations = {
 	.read		= generic_file_read,
 	.write		= afs_file_write,
-	.mmap		= generic_file_mmap,
+	.mmap		= afs_file_mmap,
 #if 0
 	.open		= afs_file_open,
 	.release	= afs_file_release,
@@ -58,6 +60,11 @@ struct address_space_operations afs_fs_a
 	.set_page_dirty	= __set_page_dirty_nobuffers,
 	.releasepage	= afs_file_releasepage,
 	.invalidatepage	= afs_file_invalidatepage,
+};
+
+struct vm_operations_struct afs_fs_vm_operations = {
+	.nopage		= filemap_nopage,
+	.populate	= filemap_populate,
 #ifdef CONFIG_AFS_FSCACHE
 	.page_mkwrite	= afs_file_page_mkwrite,
 #endif
@@ -79,6 +86,13 @@ static ssize_t afs_file_write(struct fil
 	return -EIO;
 } /* end afs_file_write() */
 
+static int afs_file_mmap(struct file * file, struct vm_area_struct * vma)
+{
+	file_accessed(file);
+	vma->vm_ops = &afs_fs_vm_operations;
+	return 0;
+}
+
 /*****************************************************************************/
 /*
  * deal with notification that a page was read from the cache
@@ -321,7 +335,7 @@ static int afs_file_releasepage(struct p
  * wait for the disc cache to finish writing before permitting
  */
 #ifdef CONFIG_AFS_FSCACHE
-static int afs_file_page_mkwrite(struct page *page)
+static int afs_file_page_mkwrite(struct vm_area_struct *vma, struct page *page)
 {
 	wait_on_page_fs_misc(page);
 	return 0;
diff -uNr -X dontdiff -p linux-2.6.10-mm2.orig/include/linux/fs.h linux-2.6.10-mm2/include/linux/fs.h
--- linux-2.6.10-mm2.orig/include/linux/fs.h	2005-01-06 11:40:20.124973000 +0100
+++ linux-2.6.10-mm2/include/linux/fs.h	2005-01-06 11:49:55.144888912 +0100
@@ -330,9 +330,6 @@ struct address_space_operations {
 	int (*releasepage) (struct page *, int);
 	ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
 			loff_t offset, unsigned long nr_segs);
-
-	/* notification that a page is about to become writable */
-	int (*page_mkwrite)(struct page *page);
 };
 
 struct backing_dev_info;
diff -uNr -X dontdiff -p linux-2.6.10-mm2.orig/include/linux/mm.h linux-2.6.10-mm2/include/linux/mm.h
--- linux-2.6.10-mm2.orig/include/linux/mm.h	2005-01-06 11:40:20.168966000 +0100
+++ linux-2.6.10-mm2/include/linux/mm.h	2005-01-06 11:49:11.645979744 +0100
@@ -762,7 +762,10 @@ extern void truncate_inode_pages_range(s
 				       loff_t lstart, loff_t lend);
 
 /* generic vm_area_ops exported for stackable file systems */
-struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *);
+extern struct page *filemap_nopage(struct vm_area_struct *,
+		unsigned long, int *);
+extern int filemap_populate(struct vm_area_struct *, unsigned long,
+		unsigned long, pgprot_t, unsigned long, int);
 
 /* mm/page-writeback.c */
 int write_one_page(struct page *page, int wait);
diff -uNr -X dontdiff -p linux-2.6.10-mm2.orig/mm/filemap.c linux-2.6.10-mm2/mm/filemap.c
--- linux-2.6.10-mm2.orig/mm/filemap.c	2005-01-06 11:40:20.443924000 +0100
+++ linux-2.6.10-mm2/mm/filemap.c	2005-01-06 11:49:29.311957792 +0100
@@ -1477,7 +1477,7 @@ err:
 	return NULL;
 }
 
-static int filemap_populate(struct vm_area_struct *vma,
+int filemap_populate(struct vm_area_struct *vma,
 			unsigned long addr,
 			unsigned long len,
 			pgprot_t prot,
@@ -1524,26 +1524,13 @@ repeat:
 
 	return 0;
 }
-
-/*
- * pass notification that a page is becoming writable up to the filesystem
- */
-static int filemap_page_mkwrite(struct vm_area_struct *vma, struct page *page)
-{
-	return page->mapping->a_ops->page_mkwrite(page);
-}
+EXPORT_SYMBOL(filemap_populate);
 
 struct vm_operations_struct generic_file_vm_ops = {
 	.nopage		= filemap_nopage,
 	.populate	= filemap_populate,
 };
 
-struct vm_operations_struct generic_file_vm_mkwr_ops = {
-	.nopage		= filemap_nopage,
-	.populate	= filemap_populate,
-	.page_mkwrite	= filemap_page_mkwrite,
-};
-
 /* This is used for a general mmap of a disk file */
 
 int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
@@ -1553,10 +1540,7 @@ int generic_file_mmap(struct file * file
 	if (!mapping->a_ops->readpage)
 		return -ENOEXEC;
 	file_accessed(file);
-	if (!mapping->a_ops->page_mkwrite)
-		vma->vm_ops = &generic_file_vm_ops;
-	else
-		vma->vm_ops = &generic_file_vm_mkwr_ops;
+	vma->vm_ops = &generic_file_vm_ops;
 	return 0;
 }
 

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (5 preceding siblings ...)
  2005-01-06 11:19             ` 2.6.10-mm2 error: redefinition of `struct cfq_io_context' Helge Hafting
@ 2005-01-06 12:06             ` 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
                               ` (10 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Marcos D. Marado Torres @ 2005-01-06 12:06 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, 6 Jan 2005, Andrew Morton wrote:

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
>
> - Various minorish updates and fixes

The acpi_power_off issue (acpi_power_off is called but the laptop doesn't shut
down) is back (in -mm1 already). I suspect it has never disappear completely:
maybe it only happens in some cenarios (like "only when AC is plugged in" or
something like that). The report is done, I'll try to get more info soon (when
does this happen and when it doesn't) and will report it by then.

Mind Booster Noori

- -- 
/* *************************************************************** */
    Marcos Daniel Marado Torres	     AKA	Mind Booster Noori
    http://student.dei.uc.pt/~marado   -	  marado@student.dei.uc.pt
    () Join the ASCII ribbon campaign against html email, Microsoft
    /\ attachments and Software patents.   They endanger the World.
    Sign a petition against patents:  http://petition.eurolinux.org
/* *************************************************************** */
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Made with pgp4pine 1.76

iD8DBQFB3SnFmNlq8m+oD34RAk0+AJ97ZQZI0a+JuGT3uXG+w/sSjtcP6ACfVbCJ
dP7EcQYa+xXN4OyuQpO4cvU=
=13Cu
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (6 preceding siblings ...)
  2005-01-06 12:06             ` 2.6.10-mm2 Marcos D. Marado Torres
@ 2005-01-06 12:48             ` 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
                               ` (9 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Sam Ravnborg @ 2005-01-06 12:48 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Thu, Jan 06, 2005 at 12:22:40AM -0800, Andrew Morton wrote:
>  bk-kconfig.patch

Improves the search function in menuconfig - better display of what
a symbol depends on / selects.
Also display the same information when getting help on a symbol.

Try it out next time you start up menuconfig.

Kudos to Roman Zippel for implementing the core functionality.

	Sam

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-03 10:07     ` 2.6.10-mm1 Christoph Hellwig
  2005-01-03 17:19       ` 2.6.10-mm1 Jesse Barnes
  2005-01-06 11:32       ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-06 13:04       ` David Howells
  2005-01-06 13:06         ` 2.6.10-mm1 Christoph Hellwig
  2 siblings, 1 reply; 246+ messages in thread
From: David Howells @ 2005-01-06 13:04 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Andrew Morton, linux-kernel

Christoph Hellwig <hch@infradead.org> wrote:

> > > add-page-becoming-writable-notification.patch
> > >   Add page becoming writable notification
> > 
> > David, this still has the bogus address_space operation in addition to
> > the vm_operation.  page_mkwrite only fits into the vm_operations scheme,
> > so please remove the address_space op.  Also the code will be smaller
> > and faster witout that indirection..
> 
> Here's the fix:

That's not right either. Filesystems really shouldn't be overloading the
vm_ops on memory mappings (as has been made clear to me) and the VM low-level
paging routines shouldn't be touching a_ops (as has also been made clear to
me). I also have other reasons I don't want to have ordinary files with
specialised vm_ops.

I suppose I could try and build a little knowledge about fscache into the
VM... that might be reasonable.

Remember also that your change is going to affect NFS too eventually, assuming
NFS caching support ends up being done this way. It may also affect other
filesystems, such as SMB/CIFS and Coda eventually should they partake of
fscache services too.

David

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-06 13:04       ` 2.6.10-mm1 David Howells
@ 2005-01-06 13:06         ` Christoph Hellwig
  0 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 13:06 UTC (permalink / raw)
  To: David Howells; +Cc: Christoph Hellwig, Andrew Morton, linux-kernel

On Thu, Jan 06, 2005 at 01:04:04PM +0000, David Howells wrote:
> That's not right either. Filesystems really shouldn't be overloading the
> vm_ops on memory mappings (as has been made clear to me)

yes, they should.  And various filesystems do.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-05 17:27       ` 2.6.10-mm1 Hans Reiser
@ 2005-01-06 13:52         ` Vladimir Saveliev
  2005-01-07 14:46           ` 2.6.10-mm1 Christoph Hellwig
  0 siblings, 1 reply; 246+ messages in thread
From: Vladimir Saveliev @ 2005-01-06 13:52 UTC (permalink / raw)
  To: Hans Reiser, Christoph Hellwig
  Cc: Andrew Morton, linux-kernel, Reiserfs developers mail-list,
	Alexander Zarochentcev

Hello

On Wed, 2005-01-05 at 20:27, Hans Reiser wrote:
> Christoph Hellwig wrote:
> 
> >> reiser4-export-inode_lock.patch
> >>    
> >>
> >
> >Han,s how'as the work progressing on removing these and other fishy
> >core changes?
> >  

The work is in progress. Here is list of patches. 

reiser4-sb_sync_inodes.patch
reiser4-allow-drop_inode-implementation.patch - will either try to do
what Christoph suggested or find something else
reiser4-truncate_inode_pages_range.patch
reiser4-export-remove_from_page_cache.patch
reiser4-export-page_cache_readahead.patch
reiser4-reget-page-mapping.patch
reiser4-rcu-barrier.patch
reiser4-export-inode_lock.patch           - trying to change to go
without this
reiser4-export-pagevec-funcs.patch
reiser4-export-radix_tree_preload.patch
reiser4-export-find_get_pages.patch
reiser4-radix-tree-tag.patch              - not needed anymore
reiser4-radix_tree_lookup_slot.patch
reiser4-perthread-pages.patch
reiser4-unstatic-kswapd.patch             - not needed anymore
reiser4-include-reiser4.patch
reiser4-doc.patch

Christoph, what else do you especially object against?

> >
> Vladimir is writing code to reduce the number of patches needed.  This 
> code is causing bugs that have not yet been fixed.  His email is not 
> working today, hopefully it will work tomorrow.  This is the russian 
> holiday season....
> 
> >  
> >
> >> reiser4-unstatic-kswapd.patch
> >>    
> >>
> >
> >Andrew, could you please finally drop this one?  It's not needed for
> >reiser4 operation at all just for some of their stranger debugging
> >features.
> >  
> >
> I'll let vs comment.
> 
> >  
> >
> >> 
> >> reiser4-include-reiser4.patch
> >>    
> >>
> >
> >What about moving fs/Kconfig.reiser4 to fs/reiser4/Kconfig?  This is
> >the logical place for it and makes dropping in a new version of the fs
> >easier.
> >  
> >
> Ok.
> 
> >  
> >
> >> reiser4-only.patch
> >>    
> >>
> >
> >Documentation shouldn't be in fs/FOO/doc but Documentation/filesystems/.
> >  
> >
> Ok.
> 
> >-
> >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >the body of a message to majordomo@vger.kernel.org
> >More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >Please read the FAQ at  http://www.tux.org/lkml/
> >
> >
> >  
> >
> What are the other ones you object to?
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-05 21:34         ` Andrew Morton
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
@ 2005-01-06 14:06           ` Michael S. Tsirkin
  2005-01-06 14:53             ` Christoph Hellwig
  2005-01-12 20:36             ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Michael S. Tsirkin
  1 sibling, 2 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-06 14:06 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg, VANDROVE

Hello!
Quoting r. Andrew Morton (akpm@osdl.org) "Re: [PATCH] deprecate (un)register_ioctl32_conversion":
> Takashi Iwai <tiwai@suse.de> wrote:
> >
> > At Wed, 5 Jan 2005 16:40:43 +0200,
> >  Michael S. Tsirkin wrote:
> >  > 
> >  > Hello, Andrew, all!
> >  > 
> >  > Since in -mm1 we now have a race-free replacement (that being ioctl_compat),
> >  > here is a patch to deprecate (un)register_ioctl32_conversion.
> > 
> >  Good to see that ioctl_native and ioctl_compat ops are already there!
> > 
> >  Will it be merged to 2.6.11?
> 
> It should be, unless there's some problem.  In maybe a week or so.

To make life bearable for out-of kernel modules, the following patch
adds 2 macros so that existance of unlocked_ioctl and ioctl_compat
can be easily detected.

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

diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
--- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
+++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
@@ -907,6 +907,12 @@ typedef struct {
 
 typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
 
+/* These macros are for out of kernel modules to test that
+ * the kernel supports the unlocked_ioctl and ioctl_compat
+ * fields in struct file_operations. */
+#define HAVE_IOCTL_COMPAT 1
+#define HAVE_UNLOCKED_IOCTL 1
+
 /*
  * NOTE:
  * read, write, poll, fsync, readv, writev can be called

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2 error: redefinition of `struct cfq_io_context'
  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
  0 siblings, 0 replies; 246+ messages in thread
From: Helge Hafting @ 2005-01-06 14:21 UTC (permalink / raw)
  To: Helge Hafting; +Cc: Andrew Morton, linux-kernel

Helge Hafting wrote:

> Andrew Morton wrote:
>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/ 
>>
>>
>> - Various minorish updates and fixes
>>
>>  
>>
> CC      init/do_mounts_md.o
> In file included from include/linux/raid/md.h:21,
>                 from init/do_mounts_md.c:2:
> include/linux/blkdev.h:71: error: redefinition of `struct cfq_io_context'
> make[1]: *** [init/do_mounts_md.o] Error 1
> make: *** [init] Error 2


Never mind, it was a patching error.

Helge Hafting

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-05 21:33           ` Andrew Morton
@ 2005-01-06 14:41             ` Michael S. Tsirkin
  2005-01-06 14:55               ` Christoph Hellwig
  0 siblings, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-06 14:41 UTC (permalink / raw)
  To: Andrew Morton
  Cc: hch, ak, mingo, rlrevell, tiwai, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Hello!
Quoting r. Andrew Morton (akpm@osdl.org) "Re: [PATCH] deprecate (un)register_ioctl32_conversion":
> >  Christoph, I know you want to remove the inode parameter :)
> > 
> >  Otherwise I think -mm1 has the final version of the replacement.
> 
> I merged Christoph's verion of the patch into -mm.

I see some more problems with this decision.

> 
> 
>  asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
>  				unsigned long arg)
>  {
> -	struct file * filp;
> +	struct file *filp;
>  	int error = -EBADF;
>  	struct ioctl_trans *t;
>  
>  	filp = fget(fd);
> -	if(!filp)
> -		goto out2;
> -
> -	if (!filp->f_op || !filp->f_op->ioctl) {
> -		error = sys_ioctl (fd, cmd, arg);
> +	if (!filp)
>  		goto out;
> +
> +	if (!filp->f_op) {
> +		if (!filp->f_op->ioctl)
> +			goto do_ioctl;
> +	} else if (filp->f_op->compat_ioctl) {
> +		error = filp->f_op->compat_ioctl(filp, cmd, arg);
> +		goto out_fput;
>  	}


Stare at this as I might, I dont understand why does it make sence.
So if filp->f_op is NULL, you are then checking filp->f_op->ioctl?
Looks like an oops to me.

What should be there:

> +	if (!filp->f_op) {
> +		goto do_ioctl;
> +	} else if (filp->f_op->compat_ioctl) {
> +		error = filp->f_op->compat_ioctl(filp, cmd, arg);
> +		goto out_fput;

Look, was this patch even tested?

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] fget_light/fput_light for ioctls
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (7 preceding siblings ...)
  2005-01-06 12:48             ` 2.6.10-mm2 Sam Ravnborg
@ 2005-01-06 14:51             ` 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
                               ` (8 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-06 14:51 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Hello!
With new unlocked_ioctl and ioctl_compat, ioctls can now
be as fast as read/write.
So lets use fget_light/fput_light there, to get some speedup
in common case on SMP.

mst

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

diff -rup linux-2.6.10/fs/compat.c linux-2.6.10-ioctls/fs/compat.c
--- linux-2.6.10/fs/compat.c	2005-01-06 17:54:13.000000000 +0200
+++ linux-2.6.10-ioctls/fs/compat.c	2005-01-06 20:15:44.407259408 +0200
@@ -431,8 +431,9 @@ asmlinkage long compat_sys_ioctl(unsigne
 	struct file *filp;
 	int error = -EBADF;
 	struct ioctl_trans *t;
+	int fput_needed;
 
-	filp = fget(fd);
+	filp = fget_light(fd, &fput_needed);
 	if (!filp)
 		goto out;
 
@@ -476,7 +479,7 @@ asmlinkage long compat_sys_ioctl(unsigne
  do_ioctl:
 	error = sys_ioctl(fd, cmd, arg);
  out_fput:
-	fput(filp);
+	fput_light(file, fput_needed);
  out:
 	return error;
 }
diff -rup linux-2.6.10/fs/ioctl.c linux-2.6.10-ioctls/fs/ioctl.c
--- linux-2.6.10/fs/ioctl.c	2005-01-06 17:54:13.000000000 +0200
+++ linux-2.6.10-ioctls/fs/ioctl.c	2005-01-06 20:34:09.329285728 +0200
@@ -80,8 +83,9 @@ asmlinkage long sys_ioctl(unsigned int f
 	struct file * filp;
 	unsigned int flag;
 	int on, error = -EBADF;
+	int fput_needed;
 
-	filp = fget(fd);
+	filp = fget_light(fd, &fput_needed);
 	if (!filp)
 		goto out;
 
@@ -154,7 +158,7 @@ asmlinkage long sys_ioctl(unsigned int f
 			break;
 	}
  out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
  out:
 	return error;
 }

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  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 16:35               ` Petr Vandrovec
  2005-01-12 20:36             ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Michael S. Tsirkin
  1 sibling, 2 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 14:53 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, Takashi Iwai, ak, mingo, rlrevell, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, greg, VANDROVE

On Thu, Jan 06, 2005 at 04:06:36PM +0200, Michael S. Tsirkin wrote:
> > It should be, unless there's some problem.  In maybe a week or so.
> 
> To make life bearable for out-of kernel modules, the following patch
> adds 2 macros so that existance of unlocked_ioctl and ioctl_compat
> can be easily detected.

That's not the way we're making additions.  Get your code merged and
there won't be any need to detect the feature.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06 10:17             ` 2.6.10-mm2 Juri Prokofjev
@ 2005-01-06 14:54               ` Dave Airlie
  0 siblings, 0 replies; 246+ messages in thread
From: Dave Airlie @ 2005-01-06 14:54 UTC (permalink / raw)
  To: Juri Prokofjev; +Cc: Andrew Morton, linux-kernel

> drivers/char/drm/gamma_drv.c:39:22: drm_auth.h: No such file or directory
> drivers/char/drm/gamma_drv.c:40:28: drm_agpsupport.h: No such file or
> directory
> drivers/char/drm/gamma_drv.c:41:22: drm_bufs.h: No such file or directory
> In file included from drivers/char/drm/gamma_drv.c:42:
> drivers/char/drm/gamma_context.h: In function
> `gamma_context_switch_complete':
> ...
> drivers/char/drm/gamma_drv.c:43:21: drm_dma.h: No such file or
> directory
> In file included from drivers/char/drm/gamma_drv.c:44:
> drivers/char/drm/gamma_old_dma.h: In function `gamma_clear_next_buffer':
> ..
> drivers/char/drm/gamma_drv.c:45:26: drm_drawable.h: No such file or
> directory
> drivers/char/drm/gamma_drv.c:46:21: drm_drv.h: No such file or directory
> drivers/char/drm/gamma_drv.c:48:22: drm_fops.h: No such file or directory
> drivers/char/drm/gamma_drv.c:49:22: drm_init.h: No such file or directory
> drivers/char/drm/gamma_drv.c:50:23: drm_ioctl.h: No such file or directory
> drivers/char/drm/gamma_drv.c:51:21: drm_irq.h: No such file or directory
> ...
> drivers/char/drm/gamma_drv.c:53:22: drm_lock.h: No such file or directory

gamma drm is marked as broken with good reason..

Dave.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-06 14:41             ` Michael S. Tsirkin
@ 2005-01-06 14:55               ` Christoph Hellwig
  2005-01-06 15:22                 ` Michael S. Tsirkin
  0 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 14:55 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, hch, ak, mingo, rlrevell, tiwai, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, greg

> Stare at this as I might, I dont understand why does it make sence.
> So if filp->f_op is NULL, you are then checking filp->f_op->ioctl?
> Looks like an oops to me.

I doesn't make sense, but fortunately files with NULL filp->f_op don't
happen in practice (need to research whether it can't happen in theory
either so we could lose lots of checks)

> 
> What should be there:
> 
> > +	if (!filp->f_op) {
> > +		goto do_ioctl;
> > +	} else if (filp->f_op->compat_ioctl) {
> > +		error = filp->f_op->compat_ioctl(filp, cmd, arg);
> > +		goto out_fput;

not correct either, see the incremental patch below.

> Look, was this patch even tested?

Yes.

--- linux-2.6.10-mm2.orig/fs/compat.c	2005-01-06 11:40:18.831900000 +0100
+++ linux-2.6.10-mm2/fs/compat.c	2005-01-06 15:50:23.802874672 +0100
@@ -436,10 +436,10 @@
 	if (!filp)
 		goto out;
 
-	if (!filp->f_op) {
-		if (!filp->f_op->ioctl)
-			goto do_ioctl;
-	} else if (filp->f_op->compat_ioctl) {
+	if (!filp->f_op || !filp->f_op->ioctl)
+		goto do_ioctl;
+
+	if (filp->f_op || filp->f_op->compat_ioctl) {
 		error = filp->f_op->compat_ioctl(filp, cmd, arg);
 		goto out_fput;
 	}

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [patch] 2.6.10-mm2: remove umsdos MAINTAINERS entry
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (8 preceding siblings ...)
  2005-01-06 14:51             ` [PATCH] fget_light/fput_light for ioctls Michael S. Tsirkin
@ 2005-01-06 15:00             ` Adrian Bunk
  2005-01-06 15:03             ` [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency Adrian Bunk
                               ` (7 subsequent siblings)
  17 siblings, 0 replies; 246+ messages in thread
From: Adrian Bunk @ 2005-01-06 15:00 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Christoph Hellwig

With umsdos gone, there's no longer a MAINTAINERS entry required.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.10-mm2-full/MAINTAINERS.old	2005-01-06 15:51:57.000000000 +0100
+++ linux-2.6.10-mm2-full/MAINTAINERS	2005-01-06 15:52:18.000000000 +0100
@@ -2266,13 +2266,6 @@
 W:	http://linux-udf.sourceforge.net
 S:	Maintained
 
-UMSDOS FILESYSTEM
-P:	Matija Nalis
-M:	Matija Nalis <mnalis-umsdos@voyager.hr>
-L:	linux-kernel@vger.kernel.org
-W:	http://linux.voyager.hr/umsdos/
-S:	Maintained
-
 UNIFORM CDROM DRIVER
 P:	Jens Axboe
 M:	axboe@suse.de


^ permalink raw reply	[flat|nested] 246+ messages in thread

* [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (9 preceding siblings ...)
  2005-01-06 15:00             ` [patch] 2.6.10-mm2: remove umsdos MAINTAINERS entry Adrian Bunk
@ 2005-01-06 15:03             ` Adrian Bunk
  2005-01-08 20:18               ` Jörn Engel
  2005-01-06 17:11             ` 2.6.10-mm2 Alexander Gran
                               ` (6 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Adrian Bunk @ 2005-01-06 15:03 UTC (permalink / raw)
  To: Andrew Morton, dwmw2; +Cc: linux-kernel, linux-mtd, Simon Evans, joern

The patch below fixes an obviously wrong dependency coming from Linus' 
tree.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.10-mm2-full/drivers/mtd/devices/Kconfig.old	2005-01-06 16:00:49.000000000 +0100
+++ linux-2.6.10-mm2-full/drivers/mtd/devices/Kconfig	2005-01-06 16:00:59.000000000 +0100
@@ -127,7 +127,7 @@
 
 config MTD_BLOCK2MTD
 	tristate "MTD using block device (rewrite)"
-	depends on MTD || EXPERIMENTAL
+	depends on MTD && EXPERIMENTAL
 	help
 	  This driver is basically the same at MTD_BLKMTD above, but
 	  experienced some interface changes plus serious speedups.  In


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 14:53             ` Christoph Hellwig
@ 2005-01-06 15:09               ` Andi Kleen
  2005-01-06 15:14                 ` Christoph Hellwig
  2005-01-06 16:35               ` Petr Vandrovec
  1 sibling, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-06 15:09 UTC (permalink / raw)
  To: Christoph Hellwig, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg, VANDROVE

On Thu, Jan 06, 2005 at 02:53:56PM +0000, Christoph Hellwig wrote:
> On Thu, Jan 06, 2005 at 04:06:36PM +0200, Michael S. Tsirkin wrote:
> > > It should be, unless there's some problem.  In maybe a week or so.
> > 
> > To make life bearable for out-of kernel modules, the following patch
> > adds 2 macros so that existance of unlocked_ioctl and ioctl_compat
> > can be easily detected.
> 
> That's not the way we're making additions.  Get your code merged and
> there won't be any need to detect the feature.

I would agree that it shouldn't be used for in tree code, but for
out of tree code it is rather useful. There are other such feature macros
for major driver interface changes too (e.g. in the network stack).

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 15:09               ` Andi Kleen
@ 2005-01-06 15:14                 ` Christoph Hellwig
  2005-01-06 15:22                   ` Lee Revell
                                     ` (2 more replies)
  0 siblings, 3 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 15:14 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Michael S. Tsirkin, Andrew Morton, Takashi Iwai, mingo, rlrevell,
	linux-kernel, pavel, discuss, gordon.jin, greg, VANDROVE

On Thu, Jan 06, 2005 at 04:09:42PM +0100, Andi Kleen wrote:
> I would agree that it shouldn't be used for in tree code, but for
> out of tree code it is rather useful. There are other such feature macros
> for major driver interface changes too (e.g. in the network stack).

Which is the only place doing it.  We had this discussion in the past
(lastone I revolve Greg vetoed it).  We simply shouldn't clutter our
headers for the sake of out of tree drivers - with LINUX_VERSION_CODE
we've already implemented a mechanism for out of tree drivers.

p.s. droppe alsa-devel from Cc because of the braindead moderation policy.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  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:37                   ` Andi Kleen
  2005-01-06 16:58                   ` Petr Vandrovec
  2 siblings, 1 reply; 246+ messages in thread
From: Lee Revell @ 2005-01-06 15:22 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Andi Kleen, Michael S. Tsirkin, Andrew Morton, Takashi Iwai,
	mingo, linux-kernel, pavel, discuss, gordon.jin, greg, VANDROVE,
	alsa-devel

On Thu, 2005-01-06 at 15:14 +0000, Christoph Hellwig wrote:
> On Thu, Jan 06, 2005 at 04:09:42PM +0100, Andi Kleen wrote:
> > I would agree that it shouldn't be used for in tree code, but for
> > out of tree code it is rather useful. There are other such feature macros
> > for major driver interface changes too (e.g. in the network stack).
> 
> Which is the only place doing it.  We had this discussion in the past
> (lastone I revolve Greg vetoed it).  We simply shouldn't clutter our
> headers for the sake of out of tree drivers - with LINUX_VERSION_CODE
> we've already implemented a mechanism for out of tree drivers.
> 
> p.s. droppe alsa-devel from Cc because of the braindead moderation policy.
> 

Um, alsa-devel is not moderated, we accept posts from non subscribers.
Where do you think all the spam in our archive comes from?

Lee


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-06 14:55               ` Christoph Hellwig
@ 2005-01-06 15:22                 ` Michael S. Tsirkin
  2005-01-06 15:30                   ` Christoph Hellwig
  0 siblings, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-06 15:22 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, ak, mingo, rlrevell, tiwai,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, greg

Hello!
Quoting r. Christoph Hellwig (hch@infradead.org) "Re: [PATCH] deprecate (un)register_ioctl32_conversion":
> > Stare at this as I might, I dont understand why does it make sence.
> > So if filp->f_op is NULL, you are then checking filp->f_op->ioctl?
> > Looks like an oops to me.
> 
> I doesn't make sense, but fortunately files with NULL filp->f_op don't
> happen in practice (need to research whether it can't happen in theory
> either so we could lose lots of checks)

Interesting. At least for character devices coming out of modules I think you
dont - you need at least fops->owner.

> --- linux-2.6.10-mm2.orig/fs/compat.c	2005-01-06 11:40:18.831900000 +0100
> +++ linux-2.6.10-mm2/fs/compat.c	2005-01-06 15:50:23.802874672 +0100
> @@ -436,10 +436,10 @@
>  	if (!filp)
>  		goto out;
>  
> -	if (!filp->f_op) {
> -		if (!filp->f_op->ioctl)
> -			goto do_ioctl;
> -	} else if (filp->f_op->compat_ioctl) {
> +	if (!filp->f_op || !filp->f_op->ioctl)
> +		goto do_ioctl;
> +
> +	if (filp->f_op || filp->f_op->compat_ioctl) {
>  		error = filp->f_op->compat_ioctl(filp, cmd, arg);
>  		goto out_fput;
>  	}

So now if I dont have ->ioctl the ioctl_compat wont be called.
What if I only have unlocked_ioctl?

MST

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-06 15:22                 ` Michael S. Tsirkin
@ 2005-01-06 15:30                   ` Christoph Hellwig
  2005-01-06 15:56                     ` Michael S. Tsirkin
  0 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 15:30 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Christoph Hellwig, Andrew Morton, ak, mingo, rlrevell, tiwai,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, greg

On Thu, Jan 06, 2005 at 05:22:48PM +0200, Michael S. Tsirkin wrote:
> > +	if (!filp->f_op || !filp->f_op->ioctl)
> > +		goto do_ioctl;
> > +
> > +	if (filp->f_op || filp->f_op->compat_ioctl) {
> >  		error = filp->f_op->compat_ioctl(filp, cmd, arg);
> >  		goto out_fput;
> >  	}
> 
> So now if I dont have ->ioctl the ioctl_compat wont be called.
> What if I only have unlocked_ioctl?

Indeed.  In my test setup I didn't have a driver using both.  So let's
think a little more what checks we want.

The original intention (pre-patch) was that without an ioctl entry
we'd skip the hash table lookup and skip right to trying the few standard
ioctls.

So with ->compat_ioctl we should try that one first, then checking
for either ->ioctl or ->unlocked_ioctl beeing there.  Like the patch
below (this time it's actually untested because all my 64bit machines
are in use):


--- linux-2.6.10-mm2.orig/fs/compat.c	2005-01-06 11:40:18.831900000 +0100
+++ linux-2.6.10-mm2/fs/compat.c	2005-01-06 16:36:17.340977664 +0100
@@ -436,14 +436,15 @@
 	if (!filp)
 		goto out;
 
-	if (!filp->f_op) {
-		if (!filp->f_op->ioctl)
-			goto do_ioctl;
-	} else if (filp->f_op->compat_ioctl) {
+	if (filp->f_op && filp->f_op->compat_ioctl) {
 		error = filp->f_op->compat_ioctl(filp, cmd, arg);
 		goto out_fput;
 	}
 
+	if (!filp->f_op ||
+	    (!filp->f_op->ioctl && !filp->f_op->unlocked_ioctl))
+		goto do_ioctl;
+
 	down_read(&ioctl32_sem);
 	for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) {
 		if (t->cmd == cmd)

> 
> 
> MST
---end quoted text---

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 15:22                   ` Lee Revell
@ 2005-01-06 15:31                     ` Christoph Hellwig
  2005-01-06 15:38                       ` Lee Revell
  2005-01-06 19:03                       ` Catalin Marinas
  0 siblings, 2 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 15:31 UTC (permalink / raw)
  To: Lee Revell
  Cc: Andi Kleen, Michael S. Tsirkin, Andrew Morton, Takashi Iwai,
	mingo, linux-kernel, pavel, discuss, gordon.jin, greg, VANDROVE

[-- Attachment #1: Type: text/plain, Size: 486 bytes --]

On Thu, Jan 06, 2005 at 10:22:21AM -0500, Lee Revell wrote:
> > p.s. droppe alsa-devel from Cc because of the braindead moderation policy.
> > 
> 
> Um, alsa-devel is not moderated, we accept posts from non subscribers.
> Where do you think all the spam in our archive comes from?

See the attached mail I got.  Btw, where are the current alsa-devel
archives?  I tried to look things up a few times lately, but all archives
linked off the websiste are either dead or totally outdated.


[-- Attachment #2: alsa-mod --]
[-- Type: text/plain, Size: 2381 bytes --]

>From alsa-devel-admin@lists.sourceforge.net Thu Jan 06 14:56:18 2005
Return-path: <alsa-devel-admin@lists.sourceforge.net>
Envelope-to: hch@infradead.org
Delivery-date: Thu, 06 Jan 2005 14:56:18 +0000
Received: from mx-outbound.sourceforge.net ([66.35.250.223])
	by pentafluge.infradead.org with esmtp (Exim 4.42 #1 (Red Hat Linux))
	id 1CmZ3h-0004tZ-A6
	for hch@infradead.org; Thu, 06 Jan 2005 14:56:18 +0000
Received: from projects.sourceforge.net (sc8-sf-list2-b.sourceforge.net [10.3.1.8])
	by sc8-sf-spam1.sourceforge.net (Postfix) with ESMTP id 553EB88F8E
	for <hch@infradead.org>; Thu,  6 Jan 2005 06:56:06 -0800 (PST)
Date: Thu, 06 Jan 2005 06:56:06 -0800
Subject: Your message to Alsa-devel awaits moderator approval
From: alsa-devel-admin@lists.sourceforge.net
To: hch@infradead.org
X-Ack: no
Sender: alsa-devel-admin@lists.sourceforge.net
Errors-To: alsa-devel-admin@lists.sourceforge.net
X-BeenThere: alsa-devel@lists.sourceforge.net
X-Mailman-Version: 2.0.9-sf.net
Precedence: bulk
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/alsa-devel>,
	<mailto:alsa-devel-request@lists.sourceforge.net?subject=unsubscribe>
List-Id: Advanced Linux Sound Architecture - Devel <alsa-devel.lists.sourceforge.net>
List-Post: <mailto:alsa-devel@lists.sourceforge.net>
List-Help: <mailto:alsa-devel-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/alsa-devel>,
	<mailto:alsa-devel-request@lists.sourceforge.net?subject=subscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum=alsa-devel>
Message-Id: <20050106145606.553EB88F8E@sc8-sf-spam1.sourceforge.net>
X-Spam-Score: 0.3 (/)
X-Spam-Report: SpamAssassin version 2.63 on pentafluge.infradead.org summary:
	Content analysis details:   (0.3 points, 5.0 required)
	pts rule name              description
	---- ---------------------- --------------------------------------------------
	0.3 NO_REAL_NAME           From: does not include a real name
Status: RO
Content-Length: 351
Lines: 12

Your mail to 'Alsa-devel' with the subject

    Re: [PATCH] deprecate (un)register_ioctl32_conversion

Is being held until the list moderator can review it for approval.

The reason it is being held:

    Too many recipients to the message

Either the message will get posted to the list, or you will receive
notification of the moderator's decision.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 15:14                 ` Christoph Hellwig
  2005-01-06 15:22                   ` Lee Revell
@ 2005-01-06 15:37                   ` Andi Kleen
  2005-01-06 16:58                   ` Petr Vandrovec
  2 siblings, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2005-01-06 15:37 UTC (permalink / raw)
  To: Christoph Hellwig, Andi Kleen, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, greg, VANDROVE

On Thu, Jan 06, 2005 at 03:14:29PM +0000, Christoph Hellwig wrote:
> On Thu, Jan 06, 2005 at 04:09:42PM +0100, Andi Kleen wrote:
> > I would agree that it shouldn't be used for in tree code, but for
> > out of tree code it is rather useful. There are other such feature macros
> > for major driver interface changes too (e.g. in the network stack).
> 
> Which is the only place doing it.  We had this discussion in the past
> (lastone I revolve Greg vetoed it).  We simply shouldn't clutter our

I don't know who had this discussion and did this "decision", but 
for record I disagree.

> headers for the sake of out of tree drivers - with LINUX_VERSION_CODE
> we've already implemented a mechanism for out of tree drivers.

That's incredibly ugly. I always hate these checks in source code
because it's never clear what exactly they are testing for. 
And requires unreasonable work to find out when exactly the feature was 
added. And it doesn't really work when there are backports in older trees.
In short there are many drawbacks. HAVE_* is much nicer.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 15:31                     ` Christoph Hellwig
@ 2005-01-06 15:38                       ` Lee Revell
  2005-01-06 19:03                       ` Catalin Marinas
  1 sibling, 0 replies; 246+ messages in thread
From: Lee Revell @ 2005-01-06 15:38 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Andi Kleen, Michael S. Tsirkin, Andrew Morton, Takashi Iwai,
	mingo, linux-kernel, pavel, discuss, gordon.jin, greg, VANDROVE,
	Jaroslav Kysela

On Thu, 2005-01-06 at 15:31 +0000, Christoph Hellwig wrote:
> On Thu, Jan 06, 2005 at 10:22:21AM -0500, Lee Revell wrote:
> > > p.s. droppe alsa-devel from Cc because of the braindead moderation policy.
> > > 
> > 
> > Um, alsa-devel is not moderated, we accept posts from non subscribers.
> > Where do you think all the spam in our archive comes from?
> 
> See the attached mail I got.  Btw, where are the current alsa-devel
> archives?  I tried to look things up a few times lately, but all archives
> linked off the websiste are either dead or totally outdated.
> 

OK, right, that's a problem.  There's no reason for that policy.  Perex,
can you fix it?

The only working up to date archive I know of is the sourceforge one,
not my favorite interface:

http://sourceforge.net/mailarchive/forum.php?forum_id=1752

Lee


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] deprecate (un)register_ioctl32_conversion
  2005-01-06 15:30                   ` Christoph Hellwig
@ 2005-01-06 15:56                     ` Michael S. Tsirkin
  0 siblings, 0 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-06 15:56 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Morton, ak, mingo, rlrevell, tiwai,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, greg

Hello!
Quoting r. Christoph Hellwig (hch@infradead.org) "Re: [PATCH] deprecate (un)register_ioctl32_conversion":
> On Thu, Jan 06, 2005 at 05:22:48PM +0200, Michael S. Tsirkin wrote:
> > > +	if (!filp->f_op || !filp->f_op->ioctl)
> > > +		goto do_ioctl;
> > > +
> > > +	if (filp->f_op || filp->f_op->compat_ioctl) {
> > >  		error = filp->f_op->compat_ioctl(filp, cmd, arg);
> > >  		goto out_fput;
> > >  	}
> > 
> > So now if I dont have ->ioctl the ioctl_compat wont be called.
> > What if I only have unlocked_ioctl?
> 
> Indeed.  In my test setup I didn't have a driver using both.  So let's
> think a little more what checks we want.
> 
> The original intention (pre-patch) was that without an ioctl entry
> we'd skip the hash table lookup and skip right to trying the few standard
> ioctls.
> 
> So with ->compat_ioctl we should try that one first, then checking
> for either ->ioctl or ->unlocked_ioctl beeing there.  Like the patch
> below (this time it's actually untested because all my 64bit machines
> are in use):
> 
> 
> --- linux-2.6.10-mm2.orig/fs/compat.c	2005-01-06 11:40:18.831900000 +0100
> +++ linux-2.6.10-mm2/fs/compat.c	2005-01-06 16:36:17.340977664 +0100
> @@ -436,14 +436,15 @@
>  	if (!filp)
>  		goto out;
>  
> -	if (!filp->f_op) {
> -		if (!filp->f_op->ioctl)
> -			goto do_ioctl;
> -	} else if (filp->f_op->compat_ioctl) {
> +	if (filp->f_op && filp->f_op->compat_ioctl) {
>  		error = filp->f_op->compat_ioctl(filp, cmd, arg);
>  		goto out_fput;
>  	}
>  
> +	if (!filp->f_op ||
> +	    (!filp->f_op->ioctl && !filp->f_op->unlocked_ioctl))
> +		goto do_ioctl;
> +
>  	down_read(&ioctl32_sem);
>  	for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) {
>  		if (t->cmd == cmd)
> 
> > 
> > 
> > MST
> ---end quoted text---


Amen to that. Since it conflicts with this change, here again is my patch
to make it possible for the compat_ioctl to drop back on the standard
conversions.
Applied on top of Christoph's last patch (above).

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

diff -rup linux-2.6.10-mm2/fs/compat.c linux-2.6.10-ioctls/fs/compat.c
--- linux-2.6.10-mm2/fs/compat.c	2005-01-06 21:30:57.485167280 +0200
+++ linux-2.6.10-ioctls/fs/compat.c	2005-01-06 21:33:17.608865240 +0200
@@ -431,9 +431,10 @@ asmlinkage long compat_sys_ioctl(unsigne
 	if (!filp)
 		goto out;
 
 	if (filp->f_op && filp->f_op->compat_ioctl) {
 		error = filp->f_op->compat_ioctl(filp, cmd, arg);
-		goto out_fput;
+		if (error != -ENOIOCTLCMD)
+			goto out_fput;
 	}
 
 	if (!filp->f_op ||
diff -rup linux-2.6.10-mm2/fs/ioctl.c linux-2.6.10-ioctls/fs/ioctl.c
--- linux-2.6.10-mm2/fs/ioctl.c	2005-01-06 17:54:13.000000000 +0200
+++ linux-2.6.10-ioctls/fs/ioctl.c	2005-01-06 20:34:09.329285728 +0200
@@ -26,6 +26,9 @@ static long do_ioctl(struct file *filp, 
 
 	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) {
 		lock_kernel();
 		error = filp->f_op->ioctl(filp->f_dentry->d_inode,

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] fget_light/fput_light for ioctls (fixed)
  2005-01-06 14:51             ` [PATCH] fget_light/fput_light for ioctls Michael S. Tsirkin
@ 2005-01-06 16:18               ` Michael S. Tsirkin
  0 siblings, 0 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-06 16:18 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

Hello!
Sorry, that patch had a typo. Here's an updated version.

>>> Quoting r. Michael S. Tsirkin (mst@mellanox.co.il)

With new unlocked_ioctl and ioctl_compat, ioctls can now
be as fast as read/write.  So lets use fget_light/fput_light there,
to get some speedup in common case on SMP.

mst

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

diff -rup linux-2.6.10/fs/compat.c linux-2.6.10-ioctls/fs/compat.c
--- linux-2.6.10/fs/compat.c	2005-01-06 17:54:13.000000000 +0200
+++ linux-2.6.10-ioctls/fs/compat.c	2005-01-06 20:15:44.407259408 +0200
@@ -431,8 +431,9 @@ asmlinkage long compat_sys_ioctl(unsigne
 	struct file *filp;
 	int error = -EBADF;
 	struct ioctl_trans *t;
+	int fput_needed;
 
-	filp = fget(fd);
+	filp = fget_light(fd, &fput_needed);
 	if (!filp)
 		goto out;
 
@@ -476,7 +479,7 @@ asmlinkage long compat_sys_ioctl(unsigne
  do_ioctl:
 	error = sys_ioctl(fd, cmd, arg);
  out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
  out:
 	return error;
 }
diff -rup linux-2.6.10/fs/ioctl.c linux-2.6.10-ioctls/fs/ioctl.c
--- linux-2.6.10/fs/ioctl.c	2005-01-06 17:54:13.000000000 +0200
+++ linux-2.6.10-ioctls/fs/ioctl.c	2005-01-06 20:34:09.329285728 +0200
@@ -80,8 +83,9 @@ asmlinkage long sys_ioctl(unsigned int f
 	struct file * filp;
 	unsigned int flag;
 	int on, error = -EBADF;
+	int fput_needed;
 
-	filp = fget(fd);
+	filp = fget_light(fd, &fput_needed);
 	if (!filp)
 		goto out;
 
@@ -154,7 +158,7 @@ asmlinkage long sys_ioctl(unsigned int f
 			break;
 	}
  out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
  out:
 	return error;
 }

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 14:53             ` Christoph Hellwig
  2005-01-06 15:09               ` Andi Kleen
@ 2005-01-06 16:35               ` Petr Vandrovec
  2005-01-06 16:39                 ` Christoph Hellwig
                                   ` (2 more replies)
  1 sibling, 3 replies; 246+ messages in thread
From: Petr Vandrovec @ 2005-01-06 16:35 UTC (permalink / raw)
  To: Christoph Hellwig, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

On Thu, Jan 06, 2005 at 02:53:56PM +0000, Christoph Hellwig wrote:
> On Thu, Jan 06, 2005 at 04:06:36PM +0200, Michael S. Tsirkin wrote:
> > > It should be, unless there's some problem.  In maybe a week or so.
> > 
> > To make life bearable for out-of kernel modules, the following patch
> > adds 2 macros so that existance of unlocked_ioctl and ioctl_compat
> > can be easily detected.
> 
> That's not the way we're making additions.  Get your code merged and
> there won't be any need to detect the feature.

When Greg made sysfs GPL only, I've asked whether it is possible to merge
vmmon/vmnet in (and changing its license, of course).  Answer on LKML was 
quite clear: no, you are not interested in having vmmon/vmnet in Linux 
kernel as you do not believe that they are usable for anything else than VMware.  

So please tell me what I can do to satisfy you?  You do not want our modules
in kernel tree, and you do not want to allow us to detect kernel interface
easily.  Of course we can use autoconf-like scripts we are using for
example to detect pml4/pgd vs. pgd/pud vs. pgd/pmd/pte vs. pmd/pte only,
but each time you can detect feature by looking at flags and not by trying
to build one source after another detection is simpler and more reliable.

BTW, vmmon will still require register_ioctl32_conversion as we are using
(abusing) it to be able to issue 64bit ioctls from 32bit application.  I
assume that there is no supported way how to issue 64bit ioctls from 32bit
aplication anymore after you disallow system-wide translations to be registered
by modules.

						Best regards,
							Petr Vandrovec

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 16:35               ` Petr Vandrovec
@ 2005-01-06 16:39                 ` Christoph Hellwig
  2005-01-06 16:57                 ` Andi Kleen
  2005-01-06 22:34                 ` Pavel Machek
  2 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-06 16:39 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Michael S. Tsirkin, Andrew Morton, Takashi Iwai, ak, mingo,
	rlrevell, linux-kernel, pavel, discuss, gordon.jin, alsa-devel,
	greg

On Thu, Jan 06, 2005 at 05:35:59PM +0100, Petr Vandrovec wrote:
> When Greg made sysfs GPL only, I've asked whether it is possible to merge
> vmmon/vmnet in (and changing its license, of course).  Answer on LKML was 
> quite clear: no, you are not interested in having vmmon/vmnet in Linux 
> kernel as you do not believe that they are usable for anything else than VMware.  

While I think there could be users, these users would probably come only
after the code was GPLed, so this is kinda chicken & egg.

> So please tell me what I can do to satisfy you?  You do not want our modules
> in kernel tree, and you do not want to allow us to detect kernel interface
> easily.  Of course we can use autoconf-like scripts we are using for
> example to detect pml4/pgd vs. pgd/pud vs. pgd/pmd/pte vs. pmd/pte only,
> but each time you can detect feature by looking at flags and not by trying
> to build one source after another detection is simpler and more reliable.

I don't care at all for non-opensource users, or small opensource glue for
a big propritary user.

> BTW, vmmon will still require register_ioctl32_conversion as we are using
> (abusing) it to be able to issue 64bit ioctls from 32bit application.  I
> assume that there is no supported way how to issue 64bit ioctls from 32bit
> aplication anymore after you disallow system-wide translations to be registered
> by modules.

Well, bad luck.  You'll have to stop using undocumented hacks.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  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 22:34                 ` Pavel Machek
  2 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-06 16:57 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Christoph Hellwig, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

On Thu, Jan 06, 2005 at 05:35:59PM +0100, Petr Vandrovec wrote:
> BTW, vmmon will still require register_ioctl32_conversion as we are using
> (abusing) it to be able to issue 64bit ioctls from 32bit application.  I
> assume that there is no supported way how to issue 64bit ioctls from 32bit
> aplication anymore after you disallow system-wide translations to be registered
> by modules.

Why are you issuing 64bit ioctls from 32bit applications? 

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 15:14                 ` Christoph Hellwig
  2005-01-06 15:22                   ` Lee Revell
  2005-01-06 15:37                   ` Andi Kleen
@ 2005-01-06 16:58                   ` Petr Vandrovec
  2 siblings, 0 replies; 246+ messages in thread
From: Petr Vandrovec @ 2005-01-06 16:58 UTC (permalink / raw)
  To: Christoph Hellwig, Andi Kleen, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, greg

On Thu, Jan 06, 2005 at 03:14:29PM +0000, Christoph Hellwig wrote:
> On Thu, Jan 06, 2005 at 04:09:42PM +0100, Andi Kleen wrote:
> > I would agree that it shouldn't be used for in tree code, but for
> > out of tree code it is rather useful. There are other such feature macros
> > for major driver interface changes too (e.g. in the network stack).
> 
> Which is the only place doing it.  We had this discussion in the past
> (lastone I revolve Greg vetoed it).  We simply shouldn't clutter our
> headers for the sake of out of tree drivers - with LINUX_VERSION_CODE
> we've already implemented a mechanism for out of tree drivers.

LINUX_VERSION_CODE never worked in last ~4 years as definite key to make
decision about supported API.  Vendors are porting stuff across releases,
there exists additional trees like -mm, -wolk, -ac, and even if you look 
at the current example with deprecating register_ioctl32_conversion you'll 
find that it does not work: 

2.6.10 kernel which presents itself as 0x02060A does have this, but 
does not have {compat,native}_ioctl.  

2.6.10-mm2 kernel, which presents itself as 0x02060A too, has 
{compat,native}_ioctl, and also has register_ioctl32_conversion.  

And there is intention to apply patch to 2.6.10-mmX which will present 
itself as 0x02060A again, will have {compat,native}_ioctl, and will either
not have register_ioctl32_conversion at all, or will produce 
unfortunate unwanted annoying warning when this function is used.

So you'll have two 2.6.10 kernels, one says that register_ioctl32_conversion is
only way to do things, and at same time it will say that register_ioctl32_conversion
is deprecated.  Strange, isn't it?  Unfortunate?  Maybe.  Can this work with
LINUX_VERSION_CODE?  Definitely not without an additional checks on other
things.

Same situation exists with pml4/pgd/pud I described in previous mail.  You have
2.6.10 with pgd only, 2.6.10-bkWhatever with pgd/pud, and 2.6.10-mmX with pml4/pgd.
This cannot be checked by LINUX_VERSION_CODE too...

Other changes usually add some #define which can be checked (like PUD_MASK or
pml4_offset), but sometime it happens that no useful macro is created and
test-compile is only way how to discover things (from past let's name epoll
change backported from 2.5.x to 2.4.x-wolk, SKAS's change to do_mmap_pgoff 
prototype living in SUSE tree for a bit, or nopage's change in prototype 
around 2.6.1).
						Best regards,
							Petr Vandrovec
							vandrove@vc.cvut.cz

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (10 preceding siblings ...)
  2005-01-06 15:03             ` [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency Adrian Bunk
@ 2005-01-06 17:11             ` Alexander Gran
  2005-01-06 17:55               ` 2.6.10-mm2 Diego Calleja
  2005-01-06 17:48             ` 2.6.10-mm2: swsusp regression Rafael J. Wysocki
                               ` (5 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Alexander Gran @ 2005-01-06 17:11 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux Kernel Mailing List

Am Donnerstag, 6. Januar 2005 09:22 schrieben Sie:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10
>-mm2/
>
> - Various minorish updates and fixes

Booting with 2.6.10-mm2 results in:
Jan  6 18:05:39 t40 kernel: agpgart: Putting AGP V2 device at 0000:01:00.0 
into 4x mode
Jan  6 18:05:39 t40 kernel: Unable to handle kernel NULL pointer dereference 
at virtual address 00000004
Jan  6 18:05:39 t40 kernel:  printing eip:
Jan  6 18:05:39 t40 kernel: c02ae588
Jan  6 18:05:39 t40 kernel: *pde = 1dd40067
Jan  6 18:05:39 t40 kernel: *pte = 00000000
Jan  6 18:05:39 t40 kernel: Oops: 0000 [#1]
Jan  6 18:05:39 t40 kernel: PREEMPT 
Jan  6 18:05:39 t40 kernel: Modules linked in: uhci_hcd irtty_sir sir_dev
Jan  6 18:05:39 t40 kernel: CPU:    0
Jan  6 18:05:39 t40 kernel: EIP:    0060:[<c02ae588>]    Not tainted VLI
Jan  6 18:05:39 t40 kernel: EFLAGS: 00013246   (2.6.10-mm2-orig) 
Jan  6 18:05:39 t40 kernel: EIP is at agp_bind_memory+0x58/0x80
Jan  6 18:05:39 t40 kernel: eax: 00000000   ebx: 00000000   ecx: 00000000   
edx: 00000000
Jan  6 18:05:39 t40 kernel: esi: dd8f5ac0   edi: 00000000   ebp: dd8f5b40   
esp: df2d3f0c
Jan  6 18:05:39 t40 kernel: ds: 007b   es: 007b   ss: 0068
Jan  6 18:05:39 t40 kernel: Process X (pid: 2357, threadinfo=df2d2000 
task=df9ae060)
Jan  6 18:05:39 t40 kernel: Stack: bffffa50 c0246fd4 00000000 c14fb800 
df474ce0 c02ba20f df2d3f24 df2d3f24 
Jan  6 18:05:39 t40 kernel:        00000000 00000004 00000001 00000000 
c14fb800 00000036 c02ba180 c02b5ce5 
Jan  6 18:05:39 t40 kernel:        bffffa50 00000000 df2d3ef0 df2d3f58 
df2d3f58 00000008 00000000 40086436 
Jan  6 18:05:39 t40 kernel: Call Trace:
Jan  6 18:05:39 t40 kernel:  [<c0246fd4>] copy_from_user+0x34/0x70
Jan  6 18:05:39 t40 kernel:  [<c02ba20f>] drm_agp_bind+0x8f/0xe0
Jan  6 18:05:39 t40 kernel:  [<c02ba180>] drm_agp_bind+0x0/0xe0
Jan  6 18:05:39 t40 kernel:  [<c02b5ce5>] drm_ioctl+0xe5/0x1bc
Jan  6 18:05:39 t40 kernel:  [<c0162a9a>] do_ioctl+0x6a/0x80
Jan  6 18:05:39 t40 kernel:  [<c0162cb4>] sys_ioctl+0x74/0x1f0
Jan  6 18:05:39 t40 kernel:  [<c0151c07>] sys_write+0x47/0x80
Jan  6 18:05:39 t40 kernel:  [<c0102f11>] sysenter_past_esp+0x52/0x75
Jan  6 18:05:39 t40 kernel: Code: 8b 4e 20 8b 58 04 89 f0 ff 53 40 85 c0 75 09 
c6 46 28 01 31 c0 89 7e 1c 8b 5c 24 08 8b 74 24 0c 8b 7c 24 10 83 c4 14 c3 8b 
46 08 <8b> 40 04 ff 50 34 c6 46 29 01 eb c4 89 74 24 04 c7 04 24 80 6a 

Y stays black, I need sysrq to reboot. mm1 works fine.
0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 
03)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf 
[Radeon Mobility 9000 M9] (rev 02)
kernel config at
http://zodiac.dnsalias.org/misc/config-2.6.10-mm2

regards
Alex

-- 
Encrypted Mails welcome.
PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 0x6D7DD291

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 16:57                 ` Andi Kleen
@ 2005-01-06 17:26                   ` Petr Vandrovec
  2005-01-06 17:53                     ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: Petr Vandrovec @ 2005-01-06 17:26 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Christoph Hellwig, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg

On Thu, Jan 06, 2005 at 05:57:15PM +0100, Andi Kleen wrote:
> On Thu, Jan 06, 2005 at 05:35:59PM +0100, Petr Vandrovec wrote:
> > BTW, vmmon will still require register_ioctl32_conversion as we are using
> > (abusing) it to be able to issue 64bit ioctls from 32bit application.  I
> > assume that there is no supported way how to issue 64bit ioctls from 32bit
> > aplication anymore after you disallow system-wide translations to be registered
> > by modules.
> 
> Why are you issuing 64bit ioctls from 32bit applications? 

There are three reasons (main reason is that vmware is 32bit app, but it is how
things are currently laid out; even if there will be 64bit app, 32bit versions are
already in use and people wants to use them on 64bit kernels):

* USB.  usbfs API is written in a way which does not allow you to safely wrap
it in "generic" 32->64 layer, and attempts to do it in non-generic way in usbfs
code itself did not look feasible year ago.  Even on current 64bit kernels it is not
possible to issue raw USB operations from 32bit apps, and I do not believe that
it is going to change - after all, just issuing ioctl through 64bit path from application
which is aware of 64bit kernel is quite simple, much simpler than any attempt to
make kernel dual-interface.

* parport interface, serial port:  not all APIs were implemented in kernel.  Current
kernels do wrap all APIs vmware needs, but older kernels do not, and so we had to find
some solution for older kernels too.  Not so surprisingly, solution we had in place for
USB works for them too...

* floppy:  it is actually different from examples above, as FDRAWCMD command is
supported by 32->64 layer, but it is supported incorrectly.  Due to this all above
started, as we had to make application aware of kernel it runs on, as FDRAWCMD on 32bit
kernel returns 80 byte structure, while 104 byte on 64bit kernel, and you do not now
which one you'll get until you call this ioctl...  And once we had code in place,
it was reused for USB and later for ppdev & serial.

So we added simple wrapper to vmmon which just gets {64bit-ioctl-number, 64bit-arg-argument}
and passes it down to 64bit sys_ioctl:

/* Use weak: not all kernels export sys_ioctl for use by modules */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 66)
asmlinkage __attribute__((weak)) long
sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
#else
asmlinkage __attribute__((weak)) int
sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
#endif

...

static int
LinuxDriver_Ioctl3264Passthrough(unsigned int fd, unsigned int iocmd,
                                 unsigned long ioarg, struct file * filp)
{
   VMIoctl64 cmd;

   if (copy_from_user(&cmd, (VMIoctl64*)ioarg, sizeof(cmd))) {
      return -EFAULT;
   }
   if (sys_ioctl) {
      int err;

#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 26) || \
   (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 3))
      err = sys_ioctl(fd, cmd.iocmd, cmd.ioarg);
#else
      unlock_kernel();
      err = sys_ioctl(fd, cmd.iocmd, cmd.ioarg);
      lock_kernel();
#endif
      return err;
   }
   return -ENOTTY;
}


We were thinking about creating 64bit thread, and issuing 64bit syscalls from it, but 
it looked more fragile than code above.
								Best regards,
									Petr Vandrovec


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (11 preceding siblings ...)
  2005-01-06 17:11             ` 2.6.10-mm2 Alexander Gran
@ 2005-01-06 17:48             ` Rafael J. Wysocki
  2005-01-06 22:52               ` Pavel Machek
  2005-01-06 17:57             ` [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED Adrian Bunk
                               ` (4 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-06 17:48 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Pavel Machek

On Thursday, 6 of January 2005 09:22, Andrew Morton wrote:
> 
> 
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> 
> - Various minorish updates and fixes

There's an swsusp regression on my box (AMD64) wrt -mm1.  Namely, 2.6.10-mm2 
does not suspend, but hangs solid right after the critical section, 100% of 
the time.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 17:26                   ` Petr Vandrovec
@ 2005-01-06 17:53                     ` Andi Kleen
  2005-01-06 18:19                       ` Petr Vandrovec
                                         ` (2 more replies)
  0 siblings, 3 replies; 246+ messages in thread
From: Andi Kleen @ 2005-01-06 17:53 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Michael S. Tsirkin, Andrew Morton, linux-kernel, discuss, greg

[cc list trimmed]

On Thu, Jan 06, 2005 at 06:26:13PM +0100, Petr Vandrovec wrote:
> > Why are you issuing 64bit ioctls from 32bit applications? 
> 
> There are three reasons (main reason is that vmware is 32bit app, but it is how
> things are currently laid out; even if there will be 64bit app, 32bit versions are
> already in use and people wants to use them on 64bit kernels):
> 
> * USB.  usbfs API is written in a way which does not allow you to safely wrap
> it in "generic" 32->64 layer, and attempts to do it in non-generic way in usbfs
> code itself did not look feasible year ago.  Even on current 64bit kernels it is not
> possible to issue raw USB operations from 32bit apps, and I do not believe that
> it is going to change - after all, just issuing ioctl through 64bit path from application
> which is aware of 64bit kernel is quite simple, much simpler than any attempt to
> make kernel dual-interface.

Agree that's a problem. We just need an alternative interface here
or I try to come up with an x86-64 specific hack (I think it's possible
to do the compatibility x86-64 specific, just not in compat code for
all architectures who have truly separated user/kernel address spaces) 

I hope the USB people will eventually add a better interface here.
Greg?

> 

> * parport interface, serial port:  not all APIs were implemented in kernel.  Current
> kernels do wrap all APIs vmware needs, but older kernels do not, and so we had to find
> some solution for older kernels too.  Not so surprisingly, solution we had in place for
> USB works for them too...

But that's a non issue for the new kernels affected by the new ioctl 
interface.

> 
> * floppy:  it is actually different from examples above, as FDRAWCMD command is
> supported by 32->64 layer, but it is supported incorrectly.  Due to this all above
> started, as we had to make application aware of kernel it runs on, as FDRAWCMD on 32bit
> kernel returns 80 byte structure, while 104 byte on 64bit kernel, and you do not now
> which one you'll get until you call this ioctl...  And once we had code in place,
> it was reused for USB and later for ppdev & serial.

Did you submit a patch for that?  If not you should.

> So we added simple wrapper to vmmon which just gets {64bit-ioctl-number, 64bit-arg-argument}
> and passes it down to 64bit sys_ioctl:

The magic 64bit interface isn't a very good interface, don't expect
that to be supported in the future.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06 17:11             ` 2.6.10-mm2 Alexander Gran
@ 2005-01-06 17:55               ` Diego Calleja
  2005-01-06 18:17                 ` 2.6.10-mm2 Marc Ballarin
  0 siblings, 1 reply; 246+ messages in thread
From: Diego Calleja @ 2005-01-06 17:55 UTC (permalink / raw)
  To: Alexander Gran; +Cc: akpm, linux-kernel

El Thu, 6 Jan 2005 18:11:51 +0100 Alexander Gran <alex@zodiac.dnsalias.org> escribió:


> Y stays black, I need sysrq to reboot. mm1 works fine.
> 0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 
> 03)
> 0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf 
> [Radeon Mobility 9000 M9] (rev 02)


I was going to report that bug, too. Mine is a p3 with:
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
0000:00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
0000:00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (rev 01)

and using x.org

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (12 preceding siblings ...)
  2005-01-06 17:48             ` 2.6.10-mm2: swsusp regression Rafael J. Wysocki
@ 2005-01-06 17:57             ` 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
                               ` (3 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Adrian Bunk @ 2005-01-06 17:57 UTC (permalink / raw)
  To: Andrew Morton, Paul Jackson; +Cc: linux-kernel

The placement of CPUSETS somewhere in the middle of the EMBEDDED options 
breaks the EMBEDDED submenu (at least in menuconfig).

The patch below fixes this by simply moving CPUSETS above EMBEDDED.


diffstat output:
 init/Kconfig |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.10-mm2-full/init/Kconfig.old	2005-01-06 18:49:14.000000000 +0100
+++ linux-2.6.10-mm2-full/init/Kconfig	2005-01-06 18:51:11.000000000 +0100
@@ -248,6 +248,16 @@
 	  This option enables access to the kernel configuration file
 	  through /proc/config.gz.
 
+config CPUSETS
+	bool "Cpuset support"
+	depends on SMP
+	help
+	  This options will let you create and manage CPUSET's which
+	  allow dynamically partitioning a system into sets of CPUs and
+	  Memory Nodes and assigning tasks to run only within those sets.
+	  This is primarily useful on large SMP or NUMA systems.
+
+	  Say N if unsure.
 
 menuconfig EMBEDDED
 	bool "Configure standard kernel features (for small systems)"
@@ -302,17 +312,6 @@
 	  Disabling this option will cause the kernel to be built without
 	  support for epoll family of system calls.
 
-config CPUSETS
-	bool "Cpuset support"
-	depends on SMP
-	help
-	  This options will let you create and manage CPUSET's which
-	  allow dynamically partitioning a system into sets of CPUs and
-	  Memory Nodes and assigning tasks to run only within those sets.
-	  This is primarily useful on large SMP or NUMA systems.
-
-	  Say N if unsure.
-
 config CC_OPTIMIZE_FOR_SIZE
 	bool "Optimize for size" if EMBEDDED
 	default y if ARM || H8300

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06 12:48             ` 2.6.10-mm2 Sam Ravnborg
@ 2005-01-06 18:15               ` Felipe Alfaro Solana
  0 siblings, 0 replies; 246+ messages in thread
From: Felipe Alfaro Solana @ 2005-01-06 18:15 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Andrew Morton, linux-kernel

On 6 Jan 2005, at 13:48, Sam Ravnborg wrote:

> On Thu, Jan 06, 2005 at 12:22:40AM -0800, Andrew Morton wrote:
>>  bk-kconfig.patch
>
> Improves the search function in menuconfig - better display of what
> a symbol depends on / selects.
> Also display the same information when getting help on a symbol.
>
> Try it out next time you start up menuconfig.
>
> Kudos to Roman Zippel for implementing the core functionality.

Very nice :-)
Thanks!


^ permalink raw reply	[flat|nested] 246+ messages in thread

* [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (13 preceding siblings ...)
  2005-01-06 17:57             ` [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED Adrian Bunk
@ 2005-01-06 18:15             ` Adrian Bunk
       [not found]               ` <20050106192701.GA13955@linux-mips.org>
  2005-01-06 20:30             ` 2.6.10-mm2 Ramón Rey Vicente
                               ` (2 subsequent siblings)
  17 siblings, 1 reply; 246+ messages in thread
From: Adrian Bunk @ 2005-01-06 18:15 UTC (permalink / raw)
  To: Andrew Morton, greg, Ladislav Michl
  Cc: linux-kernel, sensors, ralf, linux-mips

On Thu, Jan 06, 2005 at 12:22:40AM -0800, Andrew Morton wrote:
>...
> All 560 patches:
>...
> bk-i2c.patch
>...


There's no reason for offering a MIPS-only driver on other architectures 
(even though it does compile).

Even better dependencies on specific MIPS variables might be possible 
that obsolete this patch, but this patch fixes at least the !MIPS case.


Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.10-mm2-full/drivers/i2c/algos/Kconfig.old	2005-01-06 19:07:16.000000000 +0100
+++ linux-2.6.10-mm2-full/drivers/i2c/algos/Kconfig	2005-01-06 19:08:22.000000000 +0100
@@ -61,7 +61,7 @@
 
 config I2C_ALGO_SGI
 	tristate "I2C SGI interfaces"
-	depends on I2C
+	depends on I2C && MIPS
 	help
 	  Supports the SGI interfaces like the ones found on SGI Indy VINO
 	  or SGI O2 MACE.



^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06 17:55               ` 2.6.10-mm2 Diego Calleja
@ 2005-01-06 18:17                 ` Marc Ballarin
  0 siblings, 0 replies; 246+ messages in thread
From: Marc Ballarin @ 2005-01-06 18:17 UTC (permalink / raw)
  To: Diego Calleja; +Cc: alex, akpm, linux-kernel

On Thu, 6 Jan 2005 18:55:29 +0100
Diego Calleja <diegocg@gmail.com> wrote:

> El Thu, 6 Jan 2005 18:11:51 +0100 Alexander Gran <alex@zodiac.dnsalias.org> escribió:
> 
> 
> > Y stays black, I need sysrq to reboot. mm1 works fine.
> > 0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 
> > 03)
> > 0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf 
> > [Radeon Mobility 9000 M9] (rev 02)
> 
> 
> I was going to report that bug, too. Mine is a p3 with:
> 0000:00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
> 0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
> 0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
> 0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
> 0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
> 0000:00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
> 0000:00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
> 0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
> 0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (rev 01)
> 
> and using x.org

You use via-agp. That's fine, since I get the same oops on nvidia-agp. So the common
piece seems to be radeon drm.

The oops can be avoided by reverting
agpgart-add-bridge-parameter-to-driver-functions.patch
agpgart-allow-multiple-backends-to-be-initialized.patch
drm-add-support-for-new-multiple-agp-bridge-agpgart-api.patch

Regards

(For some reason, ksymoops does't like my /proc/kallsyms)

ksymoops 2.4.9 on i686 2.6.10-mm2.  Options used
     -v /home/marc/source/kernel/tmp/linux-2.6.10-mm2/vmlinux (specified)
     -k /home/marc/KALLSYMS (specified)
     -l /home/marc/MODULES (specified)
     -o /lib/modules/2.6.10-mm2 (specified)
     -m /home/marc/source/kernel/tmp/linux-2.6.10-mm2/System.map (specified)

Warning (read_ksyms): no kernel symbols in ksyms, is /home/marc/KALLSYMS a valid ksyms file?
No modules in ksyms, skipping objects
No ksyms, skipping lsmod
Unable to handle kernel NULL pointer dereference at virtual address 00000004
f88e68a8
*pde = 34401067
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<f88e68a8>]    Not tainted VLI
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00013246   (2.6.10-mm2) 
eax: 00000000   ebx: 00000000   ecx: 00000000   edx: 00000000
esi: f5c154a0   edi: 00000000   ebp: f58a2320   esp: f6e43f1c
ds: 007b   es: 007b   ss: 0068
Stack: bffff2c0 c01c3df4 00000000 f7c16800 f7591ea0 f8948eac f8948d2f 00800000 
       00000001 00000000 00000001 00000000 f7c16800 00000036 f8948e20 f8944c15 
       bffff2c0 00000003 f6e42000 c01549cb 000002d0 f7fea880 c0308ac0 40086436 
Call Trace:
 [<c01c3df4>] copy_from_user+0x34/0x80
 [<f8948eac>] drm_agp_bind+0x8c/0xe0 [drm]
 [<f8948d2f>] drm_agp_alloc+0x10f/0x160 [drm]
 [<f8948e20>] drm_agp_bind+0x0/0xe0 [drm]
 [<f8944c15>] drm_ioctl+0xe5/0x1ab [drm]
 [<c01549cb>] sys_fstat64+0x2b/0x30
 [<f8944b30>] drm_ioctl+0x0/0x1ab [drm]
 [<c015bad0>] do_ioctl+0x50/0x60
 [<c015bc8e>] sys_ioctl+0x6e/0x1e0
 [<c0102d99>] sysenter_past_esp+0x52/0x75
Code: 20 89 fa 8b 58 04 89 f0 ff 53 40 85 c0 75 09 c6 46 28 01 89 7e 1c 31 c0 8b 5c 24 08 8b 74 24 0c 8b 7c 24 10 83 c4 14 c3 8b 46 08 <8b> 40 04 ff 50 34 c6 46 29 01 eb c4 89 74 24 04 c7 04 24 5c 86 


>>EIP; f88e68a8 <pg0+3851b8a8/3fc33400>   <=====

>>esi; f5c154a0 <pg0+3584a4a0/3fc33400>
>>ebp; f58a2320 <pg0+354d7320/3fc33400>
>>esp; f6e43f1c <pg0+36a78f1c/3fc33400>

Trace; c01c3df4 <copy_from_user+34/80>
Trace; f8948eac <pg0+3857deac/3fc33400>
Trace; f8948d2f <pg0+3857dd2f/3fc33400>
Trace; f8948e20 <pg0+3857de20/3fc33400>
Trace; f8944c15 <pg0+38579c15/3fc33400>
Trace; c01549cb <sys_fstat64+2b/30>
Trace; f8944b30 <pg0+38579b30/3fc33400>
Trace; c015bad0 <do_ioctl+50/60>
Trace; c015bc8e <sys_ioctl+6e/1e0>
Trace; c0102d99 <sysenter_past_esp+52/75>

This architecture has variable length instructions, decoding before eip
is unreliable, take these instructions with a pinch of salt.

Code;  f88e687d <pg0+3851b87d/3fc33400>
00000000 <_EIP>:
Code;  f88e687d <pg0+3851b87d/3fc33400>
   0:   20 89 fa 8b 58 04         and    %cl,0x4588bfa(%ecx)
Code;  f88e6883 <pg0+3851b883/3fc33400>
   6:   89 f0                     mov    %esi,%eax
Code;  f88e6885 <pg0+3851b885/3fc33400>
   8:   ff 53 40                  call   *0x40(%ebx)
Code;  f88e6888 <pg0+3851b888/3fc33400>
   b:   85 c0                     test   %eax,%eax
Code;  f88e688a <pg0+3851b88a/3fc33400>
   d:   75 09                     jne    18 <_EIP+0x18>
Code;  f88e688c <pg0+3851b88c/3fc33400>
   f:   c6 46 28 01               movb   $0x1,0x28(%esi)
Code;  f88e6890 <pg0+3851b890/3fc33400>
  13:   89 7e 1c                  mov    %edi,0x1c(%esi)
Code;  f88e6893 <pg0+3851b893/3fc33400>
  16:   31 c0                     xor    %eax,%eax
Code;  f88e6895 <pg0+3851b895/3fc33400>
  18:   8b 5c 24 08               mov    0x8(%esp),%ebx
Code;  f88e6899 <pg0+3851b899/3fc33400>
  1c:   8b 74 24 0c               mov    0xc(%esp),%esi
Code;  f88e689d <pg0+3851b89d/3fc33400>
  20:   8b 7c 24 10               mov    0x10(%esp),%edi
Code;  f88e68a1 <pg0+3851b8a1/3fc33400>
  24:   83 c4 14                  add    $0x14,%esp
Code;  f88e68a4 <pg0+3851b8a4/3fc33400>
  27:   c3                        ret    
Code;  f88e68a5 <pg0+3851b8a5/3fc33400>
  28:   8b 46 08                  mov    0x8(%esi),%eax

This decode from eip onwards should be reliable

Code;  f88e68a8 <pg0+3851b8a8/3fc33400>
00000000 <_EIP>:
Code;  f88e68a8 <pg0+3851b8a8/3fc33400>   <=====
   0:   8b 40 04                  mov    0x4(%eax),%eax   <=====
Code;  f88e68ab <pg0+3851b8ab/3fc33400>
   3:   ff 50 34                  call   *0x34(%eax)
Code;  f88e68ae <pg0+3851b8ae/3fc33400>
   6:   c6 46 29 01               movb   $0x1,0x29(%esi)
Code;  f88e68b2 <pg0+3851b8b2/3fc33400>
   a:   eb c4                     jmp    ffffffd0 <_EIP+0xffffffd0>
Code;  f88e68b4 <pg0+3851b8b4/3fc33400>
   c:   89 74 24 04               mov    %esi,0x4(%esp)
Code;  f88e68b8 <pg0+3851b8b8/3fc33400>
  10:   c7                        .byte 0xc7
Code;  f88e68b9 <pg0+3851b8b9/3fc33400>
  11:   04 24                     add    $0x24,%al
Code;  f88e68bb <pg0+3851b8bb/3fc33400>
  13:   5c                        pop    %esp
Code;  f88e68bc <pg0+3851b8bc/3fc33400>
  14:   86                        .byte 0x86


1 warning issued.  Results may not be reliable.


0000:00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev c1)
0000:00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev c1)
0000:00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev c1)
0000:00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev c1)
0000:00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev c1)
0000:00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev c1)
0000:00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a3)
0000:00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a3)
0000:00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)
0000:00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)
0000:00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)
0000:00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
0000:00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)
0000:01:07.0 Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 02)
0000:01:0a.0 Unknown mass storage controller: Promise Technology, Inc. 20268 (rev 02)
0000:01:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:01:0d.0 FireWire (IEEE 1394): Lucent Microelectronics FW323 (rev 61)
0000:02:00.0 VGA compatible controller: ATI Technologies Inc Radeon R200 QL [Radeon 8500 LE]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 17:53                     ` Andi Kleen
@ 2005-01-06 18:19                       ` Petr Vandrovec
  2005-01-06 19:35                       ` Greg KH
  2005-01-07 11:49                       ` [discuss] " Arnd Bergmann
  2 siblings, 0 replies; 246+ messages in thread
From: Petr Vandrovec @ 2005-01-06 18:19 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Michael S. Tsirkin, Andrew Morton, linux-kernel, discuss, greg

On Thu, Jan 06, 2005 at 06:53:42PM +0100, Andi Kleen wrote:
> [cc list trimmed]
> > 
> > * floppy:  it is actually different from examples above, as FDRAWCMD command is
> > supported by 32->64 layer, but it is supported incorrectly.  Due to this all above
> > started, as we had to make application aware of kernel it runs on, as FDRAWCMD on 32bit
> > kernel returns 80 byte structure, while 104 byte on 64bit kernel, and you do not now
> > which one you'll get until you call this ioctl...  And once we had code in place,
> > it was reused for USB and later for ppdev & serial.
> 
> Did you submit a patch for that?  If not you should.

I hoped that floppies will die before...  FDRAWCMD receives array
of floppy_raw_cmd structures, and to find how many of these structures
you have to peek into every of them to find whether there is next one or
not, and structures itself contain pointers to other memory...  I'll code up
something during weekend.
 
> > So we added simple wrapper to vmmon which just gets {64bit-ioctl-number, 64bit-arg-argument}
> > and passes it down to 64bit sys_ioctl:
> 
> The magic 64bit interface isn't a very good interface, don't expect
> that to be supported in the future.

With per-file compat_ioctl ipx ioctls (using SIOCPRIVATE+X range) could
be made to work too, so only thing left for me is USB.
								Petr Vandrovec


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 15:31                     ` Christoph Hellwig
  2005-01-06 15:38                       ` Lee Revell
@ 2005-01-06 19:03                       ` Catalin Marinas
  1 sibling, 0 replies; 246+ messages in thread
From: Catalin Marinas @ 2005-01-06 19:03 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Lee Revell, Andi Kleen, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, mingo, linux-kernel, pavel, discuss, gordon.jin,
	greg, VANDROVE

Christoph Hellwig <hch@infradead.org> writes:
> See the attached mail I got.  Btw, where are the current alsa-devel
> archives?  I tried to look things up a few times lately, but all archives
> linked off the websiste are either dead or totally outdated.

http://news.gmane.org/gmane.linux.alsa.devel/ (also available via
NNTP).

Catalin


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  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-07 11:49                       ` [discuss] " Arnd Bergmann
  2 siblings, 1 reply; 246+ messages in thread
From: Greg KH @ 2005-01-06 19:35 UTC (permalink / raw)
  To: Andi Kleen, linux-usb-devel
  Cc: Petr Vandrovec, Michael S. Tsirkin, Andrew Morton, linux-kernel, discuss

On Thu, Jan 06, 2005 at 06:53:42PM +0100, Andi Kleen wrote:
> [cc list trimmed]
> 
> On Thu, Jan 06, 2005 at 06:26:13PM +0100, Petr Vandrovec wrote:
> > > Why are you issuing 64bit ioctls from 32bit applications? 
> > 
> > There are three reasons (main reason is that vmware is 32bit app, but it is how
> > things are currently laid out; even if there will be 64bit app, 32bit versions are
> > already in use and people wants to use them on 64bit kernels):
> > 
> > * USB.  usbfs API is written in a way which does not allow you to safely wrap
> > it in "generic" 32->64 layer, and attempts to do it in non-generic way in usbfs
> > code itself did not look feasible year ago.  Even on current 64bit kernels it is not
> > possible to issue raw USB operations from 32bit apps, and I do not believe that
> > it is going to change - after all, just issuing ioctl through 64bit path from application
> > which is aware of 64bit kernel is quite simple, much simpler than any attempt to
> > make kernel dual-interface.
> 
> Agree that's a problem. We just need an alternative interface here
> or I try to come up with an x86-64 specific hack (I think it's possible
> to do the compatibility x86-64 specific, just not in compat code for
> all architectures who have truly separated user/kernel address spaces) 
> 
> I hope the USB people will eventually add a better interface here.
> Greg?

Yes, we've been talking about a usbfs2 for a long time now, but no one
has stepped up and done the work.  It would look a lot like gadgetfs,
which only has a limited number of ioctls needed for its operation.

But I don't see where the problem is unique to usbfs here, don't we
properly use the 32->64bit ioctl conversion code to solve this kind of
issue?  Are we using it incorrectly?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS
       [not found]               ` <20050106192701.GA13955@linux-mips.org>
@ 2005-01-06 19:35                 ` Ilya A. Volynets-Evenbakh
  2005-01-06 19:46                   ` Greg KH
  0 siblings, 1 reply; 246+ messages in thread
From: Ilya A. Volynets-Evenbakh @ 2005-01-06 19:35 UTC (permalink / raw)
  To: Ralf Baechle
  Cc: Adrian Bunk, Andrew Morton, greg, Ladislav Michl, linux-kernel,
	sensors, linux-mips

Ralf Baechle wrote:

>On Thu, Jan 06, 2005 at 07:15:20PM +0100, Adrian Bunk wrote:
>
>  
>
>>There's no reason for offering a MIPS-only driver on other architectures 
>>(even though it does compile).
>>
>>Even better dependencies on specific MIPS variables might be possible 
>>that obsolete this patch, but this patch fixes at least the !MIPS case.
>>    
>>
>
>Please make that depend on SGI_IP22 || SGI_IP32 instead; the only machines
>actually using it.
>
>Ladis, is VisWS using this algo also?
>  
>
Since MACE is common part, it most likely does.

>  Ralf
>
>  
>


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS
  2005-01-06 19:35                 ` Ilya A. Volynets-Evenbakh
@ 2005-01-06 19:46                   ` Greg KH
  2005-01-07  9:12                     ` Ladislav Michl
  0 siblings, 1 reply; 246+ messages in thread
From: Greg KH @ 2005-01-06 19:46 UTC (permalink / raw)
  To: Ilya A. Volynets-Evenbakh
  Cc: Ralf Baechle, Adrian Bunk, Andrew Morton, Ladislav Michl,
	linux-kernel, sensors, linux-mips

On Thu, Jan 06, 2005 at 11:35:47AM -0800, Ilya A. Volynets-Evenbakh wrote:
> Ralf Baechle wrote:
> 
> >On Thu, Jan 06, 2005 at 07:15:20PM +0100, Adrian Bunk wrote:
> >
> > 
> >
> >>There's no reason for offering a MIPS-only driver on other architectures 
> >>(even though it does compile).
> >>
> >>Even better dependencies on specific MIPS variables might be possible 
> >>that obsolete this patch, but this patch fixes at least the !MIPS case.
> >>   
> >>
> >
> >Please make that depend on SGI_IP22 || SGI_IP32 instead; the only machines
> >actually using it.
> >
> >Ladis, is VisWS using this algo also?
> > 
> >
> Since MACE is common part, it most likely does.

Ok, can someone send me the proper patch then?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 19:35                       ` Greg KH
@ 2005-01-06 19:51                         ` Andi Kleen
  2005-01-06 19:59                           ` David S. Miller
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-06 19:51 UTC (permalink / raw)
  To: Greg KH
  Cc: Andi Kleen, linux-usb-devel, Petr Vandrovec, Michael S. Tsirkin,
	Andrew Morton, linux-kernel, discuss, davem

> > Agree that's a problem. We just need an alternative interface here
> > or I try to come up with an x86-64 specific hack (I think it's possible
> > to do the compatibility x86-64 specific, just not in compat code for
> > all architectures who have truly separated user/kernel address spaces) 
> > 
> > I hope the USB people will eventually add a better interface here.
> > Greg?
> 
> Yes, we've been talking about a usbfs2 for a long time now, but no one
> has stepped up and done the work.  It would look a lot like gadgetfs,
> which only has a limited number of ioctls needed for its operation.
> 
> But I don't see where the problem is unique to usbfs here, don't we
> properly use the 32->64bit ioctl conversion code to solve this kind of
> issue?  Are we using it incorrectly?

DaveM can probably give you more details since he tried unsucessfully
to make it work. I think the problem is that there is no enough
information for the compat layer to convert everything.

Here's his comment from fs/compat_ioctl.c.

On x86-64 it can be a bit easier because you can get away with
only partially converting a data structure because the 32bit
space is still visible from the kernel. But that doesn't work
on some other archs. 

-Andi


/* This needs more work before we can enable it.  Unfortunately
 * because of the fancy asynchronous way URB status/error is written
 * back to userspace, we'll need to fiddle with USB devio internals
 * and/or reimplement entirely the frontend of it ourselves. -DaveM
 *
 * The issue is:
 *
 *      When an URB is submitted via usbdevicefs it is put onto an
 *      asynchronous queue.  When the URB completes, it may be reaped
 *      via another ioctl.  During this reaping the status is written
 *      back to userspace along with the length of the transfer.
 *
 *      We must translate into 64-bit kernel types so we pass in a kernel
 *      space copy of the usbdevfs_urb structure.  This would mean that we
 *      must do something to deal with the async entry reaping.  First we
 *      have to deal somehow with this transitory memory we've allocated.
 *      This is problematic since there are many call sites from which the
 *      async entries can be destroyed (and thus when we'd need to free up
 *      this kernel memory).  One of which is the close() op of usbdevicefs.
 *      To handle that we'd need to make our own file_operations struct which
 *      overrides usbdevicefs's release op with our own which runs usbdevicefs's
 *      real release op then frees up the kernel memory.
 *
 *      But how to keep track of these kernel buffers?  We'd need to either
 *      keep track of them in some table _or_ know about usbdevicefs internals
 *      (ie. the exact layout of its file private, which is actually defined
 *      in linux/usbdevice_fs.h, the layout of the async queues are private to
 *      devio.c)
 *
 * There is one possible other solution I considered, also involving knowledge
 * of usbdevicefs internals:
 *
 *      After an URB is submitted, we "fix up" the address back to the user
 *      space one.  This would work if the status/length fields written back
 *      by the async URB completion lines up perfectly in the 32-bit type with
 *      the 64-bit kernel type.  Unfortunately, it does not because the iso
 *      frame descriptors, at the end of the struct, can be written back.
 *
 * I think we'll just need to simply duplicate the devio URB engine here.
 */


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 19:51                         ` Andi Kleen
@ 2005-01-06 19:59                           ` David S. Miller
  2005-01-06 20:44                             ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: David S. Miller @ 2005-01-06 19:59 UTC (permalink / raw)
  To: Andi Kleen
  Cc: greg, ak, linux-usb-devel, vandrove, mst, akpm, linux-kernel, discuss

On Thu, 6 Jan 2005 20:51:44 +0100
Andi Kleen <ak@suse.de> wrote:

> DaveM can probably give you more details since he tried unsucessfully
> to make it work. I think the problem is that there is no enough
> information for the compat layer to convert everything.

When the usbfs async stuff writes back the status, we are no
longer within the original syscall/ioctl execution any more,
therefore we don't know if we're doing this for a compat task
or not.

Technically we could create a "is_compat_task()" type thing
to check but Andi has always been against that and he's given
good reasons.  I tend to agree with him, especially in that there
are valid cases where a compat task might want to make 64-bit
system calls (f.e. to support 64-bit process debugging from
a 32-bit binary, and this is not fantasy as sparc64 could support
this right now)

As mentioned in the code comment, there are also memory management
issues.  We can cons up a temporary kernel buffer in order to
convert the 32-bit structs into 64-bit ones the usbfs code
expects, but then we have the issue of whether we can keep that
buffer around during the entirety of the async operation and
if so who in the world will free it up and how will they know
to do so?

Finally there are complications wrt. using a kernel buffer in that
we have to thus use set_fs(KERNEL_DS) in order for kernel buffers
to be passed into the usbfs routine translated.  This means that
user space accesses of the actual user buffers wouldn't work, and
we thus need to use temporary kernel buffers for that as well.
This is also incompatible with the async nature of how usbfs wants
to work.

I would suggest something that had a fixed sized and fixed layout
status block.  Something that doesn't change layout or size on any
platform.

It's the pointers all over the place in the usbfs ioctl commands
that causes all of the problems.  If you split things up into,
say, user buffer pointer/len struct and status block struct, it might
be a lot easier to support this stuff.  But I'm even skeptical about
this working.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (14 preceding siblings ...)
  2005-01-06 18:15             ` [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS Adrian Bunk
@ 2005-01-06 20:30             ` Ramón Rey Vicente
  2005-01-07  9:39             ` 2.6.10-mm2 Benoit Boissinot
  2005-01-08  1:31             ` AGP Oops (was Re: 2.6.10-mm2) Sean Neakums
  17 siblings, 0 replies; 246+ messages in thread
From: Ramón Rey Vicente @ 2005-01-06 20:30 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi!

I get this ...

Unable to handle kernel NULL pointer dereference at virtual address 00000004
~ printing eip:
c01c8e83
*pde = 0bfc6067
*pte = 00000000
Oops: 0000 [#1]
Modules linked in: r128 iptable_nat ipt_state ip_conntrack
iptable_filter ip_tables 8139too mii crc32 snd_ens1371 snd_rawmidi
snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd
snd_page_alloc gameport uhci_hcd via_agp floppy ide_cd cdrom
CPU:    0
EIP:    0060:[<c01c8e83>]    Not tainted VLI
EFLAGS: 00013246   (2.6.10-mm2)
EIP is at agp_bind_memory+0x43/0x80
eax: 00000000   ebx: 00000000   ecx: 00000000   edx: 00000000
esi: cb0b0d20   edi: 00000000   ebp: 00000001   esp: cfb81f48
ds: 007b   es: 007b   ss: 0068
Process Xorg (pid: 4524, threadinfo=cfb81000 task=cd7215b0)
Stack: 00000000 cd4e2800 cc9f9440 c01d1f16 00000001 00000000 cd4e2800
00000036
~       c01d1ea0 c01cdf32 bffffb30 40086436 cd49d7e0 cbbd6e28 cd49d7e0
c01cde60
~       40086436 00000007 c01548d4 bffffb30 40086436 cd49d7e0 00000000
c0154a8a
Call Trace:
~ [<c01d1f16>] drm_agp_bind+0x76/0xc0
~ [<c01d1ea0>] drm_agp_bind+0x0/0xc0
~ [<c01cdf32>] drm_ioctl+0xd2/0x189
~ [<c01cde60>] drm_ioctl+0x0/0x189
~ [<c01548d4>] do_ioctl+0x34/0x60
~ [<c0154a8a>] sys_ioctl+0x6a/0x1c0
~ [<c01022d7>] syscall_call+0x7/0xb
Code: 29 00 74 24 8b 46 08 89 fa 8b 4e 20 8b 58 04 89 f0 ff 53 40 85 c0
75 0c c6 46 28 01 b8 00 00 00 00 89 7e 1c 5b 5e 5f c3 8b 46 08 <8b> 40
04 ff 50 34 c6 46 29 01 eb cd 56 68 40 30 27 c0 e8 66 99

- --
Ramón Rey Vicente <ramon.rey en hispalinux.es>
JID rreylinux@jabber.org - GPG public key id 0x9F28E377
GPG Fingerprint 0BC2 8014 2445 51E8 DE87  C888 C385 A9D3 9F28 E377
Planet AUGCyL - http://augcyl.org/planet/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFB3Z/Rw4Wp058o43cRAuUiAJ4hpg0dZHVSbZT2bdp87zdwB27ZPACgxQHO
Rfo1bCjwIlMXd9P6yMhCdWY=
=sMmy
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 19:59                           ` David S. Miller
@ 2005-01-06 20:44                             ` Andi Kleen
  2005-01-06 21:09                               ` Petr Vandrovec
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-06 20:44 UTC (permalink / raw)
  To: David S. Miller
  Cc: Andi Kleen, greg, linux-usb-devel, vandrove, mst, akpm,
	linux-kernel, discuss

On Thu, Jan 06, 2005 at 11:59:59AM -0800, David S. Miller wrote:
> On Thu, 6 Jan 2005 20:51:44 +0100
> Andi Kleen <ak@suse.de> wrote:
> 
> > DaveM can probably give you more details since he tried unsucessfully
> > to make it work. I think the problem is that there is no enough
> > information for the compat layer to convert everything.
> 
> When the usbfs async stuff writes back the status, we are no
> longer within the original syscall/ioctl execution any more,
> therefore we don't know if we're doing this for a compat task
> or not.

[...]

Thanks Dave for the update. I misremembered and I don't think
I can fix this up for x86-64.  We'll need a new interface of some sort.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 20:44                             ` Andi Kleen
@ 2005-01-06 21:09                               ` Petr Vandrovec
  2005-01-06 21:24                                 ` Greg KH
  0 siblings, 1 reply; 246+ messages in thread
From: Petr Vandrovec @ 2005-01-06 21:09 UTC (permalink / raw)
  To: Andi Kleen
  Cc: David S. Miller, greg, linux-usb-devel, mst, akpm, linux-kernel, discuss

On Thu, Jan 06, 2005 at 09:44:31PM +0100, Andi Kleen wrote:
> On Thu, Jan 06, 2005 at 11:59:59AM -0800, David S. Miller wrote:
> > On Thu, 6 Jan 2005 20:51:44 +0100
> > Andi Kleen <ak@suse.de> wrote:
> > 
> > > DaveM can probably give you more details since he tried unsucessfully
> > > to make it work. I think the problem is that there is no enough
> > > information for the compat layer to convert everything.
> > 
> > When the usbfs async stuff writes back the status, we are no
> > longer within the original syscall/ioctl execution any more,
> > therefore we don't know if we're doing this for a compat task
> > or not.
> 
> [...]
> 
> Thanks Dave for the update. I misremembered and I don't think
> I can fix this up for x86-64.  We'll need a new interface of some sort.

Poor man way of doing this is just ripping ioctl-related code from usb's devio.c
to separate file, and build this file twice, once for native_ioctl and 64bit
urb structure, and once for compat_ioctl and 32bit urb structure.

I see no reason why it should not work for apps which submit & reap URBs through
32bit or 64bit API exclusively, without mixing them (and when you mix them,
you'll get reasonable error that you did not submit specified URB).

Only problem is that after that USB code "knows" about 32bit API.  But it is
intention of compat_ioctl, no?
								Petr

P.S.:  When designing new API, please do not make it unnecessary complicated.
USB video needs rather large bandwidth and low latency, so please no ASCII
strings, and scatter-gather aware API helps a bit...

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 21:09                               ` Petr Vandrovec
@ 2005-01-06 21:24                                 ` Greg KH
  2005-01-06 21:59                                   ` [linux-usb-devel] " David Brownell
  0 siblings, 1 reply; 246+ messages in thread
From: Greg KH @ 2005-01-06 21:24 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Andi Kleen, David S. Miller, linux-usb-devel, mst, akpm,
	linux-kernel, discuss

On Thu, Jan 06, 2005 at 10:09:21PM +0100, Petr Vandrovec wrote:
> On Thu, Jan 06, 2005 at 09:44:31PM +0100, Andi Kleen wrote:
> > On Thu, Jan 06, 2005 at 11:59:59AM -0800, David S. Miller wrote:
> > > On Thu, 6 Jan 2005 20:51:44 +0100
> > > Andi Kleen <ak@suse.de> wrote:
> > > 
> > > > DaveM can probably give you more details since he tried unsucessfully
> > > > to make it work. I think the problem is that there is no enough
> > > > information for the compat layer to convert everything.
> > > 
> > > When the usbfs async stuff writes back the status, we are no
> > > longer within the original syscall/ioctl execution any more,
> > > therefore we don't know if we're doing this for a compat task
> > > or not.

Ick, yeah, now I remember...

> P.S.:  When designing new API, please do not make it unnecessary complicated.
> USB video needs rather large bandwidth and low latency, so please no ASCII
> strings, and scatter-gather aware API helps a bit...

In measurements published on linux-usb-devel, pure userspace calls using
the current usbfs code generated almost full bandwidth usage (within the
hardware limits).  So adding the scatter-gather api interface to usbfs
wouldn't really provide that much benefit.

And, we can always use help in designing such an API, if you could find
someone at your company to help us out in doing so... :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [linux-usb-devel] Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 21:24                                 ` Greg KH
@ 2005-01-06 21:59                                   ` David Brownell
  2005-01-06 22:48                                     ` Greg KH
  0 siblings, 1 reply; 246+ messages in thread
From: David Brownell @ 2005-01-06 21:59 UTC (permalink / raw)
  To: linux-usb-devel
  Cc: Greg KH, Petr Vandrovec, Andi Kleen, David S. Miller, mst, akpm,
	linux-kernel, discuss

On Thursday 06 January 2005 1:24 pm, Greg KH wrote:
> > P.S.:  When designing new API, please do not make it unnecessary complicated.
> > USB video needs rather large bandwidth and low latency, so please no ASCII
> > strings, and scatter-gather aware API helps a bit...
> 
> In measurements published on linux-usb-devel, pure userspace calls using
> the current usbfs code generated almost full bandwidth usage (within the
> hardware limits).  So adding the scatter-gather api interface to usbfs
> wouldn't really provide that much benefit.

Actually, the measurements I recall were using that
nasty usbfs-specific async API ... or using huge
buffers with the synchronous/blocking calls, so
the hiccups added by scheduling latencies didn't
kick in very often.


> And, we can always use help in designing such an API, if you could find
> someone at your company to help us out in doing so... :)

Or just doing something like gadgetfs, where the standard
Linux "libaio" calls work just fine.  I was certainly able
to stream 24 Mbyte/sec isochronous transfers (that's the
top speed possible with one high speed ISO endpoint).

The key point is that one userspace IOCB should map directly
to one URB in the kernel; and one userspace file (descriptor)
should map to one USB endpoint.  For a host side API, it turns
out that isochronous URBs already have limited scatter/gather
style support -- each one maps to several packets.

I think it'd be best to use the existing AIO support rather
than have usbfs2 create yet another USB-specific thing.

- Dave

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 16:35               ` Petr Vandrovec
  2005-01-06 16:39                 ` Christoph Hellwig
  2005-01-06 16:57                 ` Andi Kleen
@ 2005-01-06 22:34                 ` Pavel Machek
  2 siblings, 0 replies; 246+ messages in thread
From: Pavel Machek @ 2005-01-06 22:34 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Christoph Hellwig, Michael S. Tsirkin, Andrew Morton,
	Takashi Iwai, ak, mingo, rlrevell, linux-kernel, discuss,
	gordon.jin, alsa-devel, greg

Hi!

> > > > It should be, unless there's some problem.  In maybe a week or so.
> > > 
> > > To make life bearable for out-of kernel modules, the following patch
> > > adds 2 macros so that existance of unlocked_ioctl and ioctl_compat
> > > can be easily detected.
> > 
> > That's not the way we're making additions.  Get your code merged and
> > there won't be any need to detect the feature.
> 
> When Greg made sysfs GPL only, I've asked whether it is possible to merge
> vmmon/vmnet in (and changing its license, of course).  Answer on LKML was 
> quite clear: no, you are not interested in having vmmon/vmnet in Linux 
> kernel as you do not believe that they are usable for anything else
> than VMware.  

What about

1) Put vmmon/vmnet under GPL

2) Find some GPL user of vmmon/vmnet

3) Merge should be doable now

								Pavel

-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [linux-usb-devel] Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 21:59                                   ` [linux-usb-devel] " David Brownell
@ 2005-01-06 22:48                                     ` Greg KH
  0 siblings, 0 replies; 246+ messages in thread
From: Greg KH @ 2005-01-06 22:48 UTC (permalink / raw)
  To: David Brownell
  Cc: linux-usb-devel, Petr Vandrovec, Andi Kleen, David S. Miller,
	mst, akpm, linux-kernel, discuss

On Thu, Jan 06, 2005 at 01:59:25PM -0800, David Brownell wrote:
> On Thursday 06 January 2005 1:24 pm, Greg KH wrote:
> > > P.S.: ?When designing new API, please do not make it unnecessary complicated.
> > > USB video needs rather large bandwidth and low latency, so please no ASCII
> > > strings, and scatter-gather aware API helps a bit...
> > 
> > In measurements published on linux-usb-devel, pure userspace calls using
> > the current usbfs code generated almost full bandwidth usage (within the
> > hardware limits). ?So adding the scatter-gather api interface to usbfs
> > wouldn't really provide that much benefit.
> 
> Actually, the measurements I recall were using that
> nasty usbfs-specific async API ... or using huge
> buffers with the synchronous/blocking calls, so
> the hiccups added by scheduling latencies didn't
> kick in very often.

Ah, yeah, that's true.

> > And, we can always use help in designing such an API, if you could find
> > someone at your company to help us out in doing so... :)
> 
> Or just doing something like gadgetfs, where the standard
> Linux "libaio" calls work just fine.  I was certainly able
> to stream 24 Mbyte/sec isochronous transfers (that's the
> top speed possible with one high speed ISO endpoint).
> 
> The key point is that one userspace IOCB should map directly
> to one URB in the kernel; and one userspace file (descriptor)
> should map to one USB endpoint.  For a host side API, it turns
> out that isochronous URBs already have limited scatter/gather
> style support -- each one maps to several packets.
> 
> I think it'd be best to use the existing AIO support rather
> than have usbfs2 create yet another USB-specific thing.

I completely agree.

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Pavel Machek @ 2005-01-06 22:52 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Andrew Morton, linux-kernel

Hi!

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> > 
> > - Various minorish updates and fixes
> 
> There's an swsusp regression on my box (AMD64) wrt -mm1.  Namely, 2.6.10-mm2 
> does not suspend, but hangs solid right after the critical section, 100% of 
> the time.

can you comment out device_power_{down,up} from
swsusp_{suspend,resume} and see what happens?
								Pavel

-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-06 22:52               ` Pavel Machek
@ 2005-01-06 23:41                 ` Rafael J. Wysocki
  2005-01-06 23:48                   ` Pavel Machek
  0 siblings, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-06 23:41 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Andrew Morton, linux-kernel

On Thursday, 6 of January 2005 23:52, Pavel Machek wrote:
> Hi!
> 
> > 
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> > > 
> > > - Various minorish updates and fixes
> > 
> > There's an swsusp regression on my box (AMD64) wrt -mm1.  Namely, 
2.6.10-mm2 
> > does not suspend, but hangs solid right after the critical section, 100% 
of 
> > the time.
> 
> can you comment out device_power_{down,up} from
> swsusp_{suspend,resume} and see what happens?

It works just fine.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  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 12:45                     ` Rafael J. Wysocki
  0 siblings, 2 replies; 246+ messages in thread
From: Pavel Machek @ 2005-01-06 23:48 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Andrew Morton, linux-kernel

Hi!

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> > > > 
> > > > - Various minorish updates and fixes
> > > 
> > > There's an swsusp regression on my box (AMD64) wrt -mm1.  Namely, 
> 2.6.10-mm2 
> > > does not suspend, but hangs solid right after the critical section, 100% 
> of 
> > > the time.
> > 
> > can you comment out device_power_{down,up} from
> > swsusp_{suspend,resume} and see what happens?
> 
> It works just fine.

Ok, problem is that device_power_{down,up} is right thing, and
neccessary for many machines to work...

...so... could you go through sysdev_register()s, one by one,
commenting them to see which one causes the regression? That driver
then needs to be fixed.

Go after mtrr and time in first places.
								Pavel
PS: Probably drop andrew from reply; he probably gets enough mail
anyway. I want this one to go to him so that he does not back up the
patch, through.
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-06 23:48                   ` Pavel Machek
@ 2005-01-07  0:24                     ` Nigel Cunningham
  2005-01-07  0:29                       ` Pavel Machek
  2005-01-07 12:45                     ` Rafael J. Wysocki
  1 sibling, 1 reply; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-07  0:24 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Rafael J. Wysocki, Andrew Morton, Linux Kernel Mailing List

Hi.

AMD64 doesn't have MTRRs, does it? If it does, I'd bet on an SMP hang.

Nigel

On Fri, 2005-01-07 at 10:48, Pavel Machek wrote:
> Hi!
> 
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> > > > > 
> > > > > - Various minorish updates and fixes
> > > > 
> > > > There's an swsusp regression on my box (AMD64) wrt -mm1.  Namely, 
> > 2.6.10-mm2 
> > > > does not suspend, but hangs solid right after the critical section, 100% 
> > of 
> > > > the time.
> > > 
> > > can you comment out device_power_{down,up} from
> > > swsusp_{suspend,resume} and see what happens?
> > 
> > It works just fine.
> 
> Ok, problem is that device_power_{down,up} is right thing, and
> neccessary for many machines to work...
> 
> ...so... could you go through sysdev_register()s, one by one,
> commenting them to see which one causes the regression? That driver
> then needs to be fixed.
> 
> Go after mtrr and time in first places.
> 								Pavel
> PS: Probably drop andrew from reply; he probably gets enough mail
> anyway. I want this one to go to him so that he does not back up the
> patch, through.
-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-07  0:24                     ` Nigel Cunningham
@ 2005-01-07  0:29                       ` Pavel Machek
  2005-01-07  0:45                         ` Nigel Cunningham
  0 siblings, 1 reply; 246+ messages in thread
From: Pavel Machek @ 2005-01-07  0:29 UTC (permalink / raw)
  To: Nigel Cunningham; +Cc: Rafael J. Wysocki, Linux Kernel Mailing List

Hi!

> AMD64 doesn't have MTRRs, does it? If it does, I'd bet on an SMP
> hang.

I bet AMD64 does have MTRRs. It is backward compatible to i386,
remember?

								Pavel
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-07  0:29                       ` Pavel Machek
@ 2005-01-07  0:45                         ` Nigel Cunningham
  0 siblings, 0 replies; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-07  0:45 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Rafael J. Wysocki, Linux Kernel Mailing List

Hi.

On Fri, 2005-01-07 at 11:29, Pavel Machek wrote:
> Hi!
> 
> > AMD64 doesn't have MTRRs, does it? If it does, I'd bet on an SMP
> > hang.
> 
> I bet AMD64 does have MTRRs. It is backward compatible to i386,
> remember?

Makes sense. I just have this idea that I was told it doesn't :> *shrug*

Nigel
-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED
  2005-01-06 17:57             ` [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED Adrian Bunk
@ 2005-01-07  6:20               ` Paul Jackson
  0 siblings, 0 replies; 246+ messages in thread
From: Paul Jackson @ 2005-01-07  6:20 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: akpm, linux-kernel

Adrian wrote:
> The placement of CPUSETS somewhere in the middle of the EMBEDDED options 
> breaks the EMBEDDED submenu (at least in menuconfig).

Thanks for fixing this, Adrian.  I was ignorant of this config ordering.

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.650.933.1373, 1.925.600.0401

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS
  2005-01-06 19:46                   ` Greg KH
@ 2005-01-07  9:12                     ` Ladislav Michl
  2005-01-07 19:14                       ` Greg KH
  0 siblings, 1 reply; 246+ messages in thread
From: Ladislav Michl @ 2005-01-07  9:12 UTC (permalink / raw)
  To: Greg KH
  Cc: Ilya A. Volynets-Evenbakh, Ralf Baechle, Adrian Bunk,
	Andrew Morton, linux-kernel, sensors, linux-mips

On Thu, Jan 06, 2005 at 11:46:46AM -0800, Greg KH wrote:
> Ok, can someone send me the proper patch then?

Index: drivers/i2c/algos/Kconfig
===================================================================
RCS file: /home/cvs/linux/drivers/i2c/algos/Kconfig,v
retrieving revision 1.3
diff -u -r1.3 Kconfig
--- drivers/i2c/algos/Kconfig	24 Aug 2004 15:10:09 -0000	1.3
+++ drivers/i2c/algos/Kconfig	7 Jan 2005 09:10:10 -0000
@@ -61,7 +61,7 @@
 
 config I2C_ALGO_SGI
 	tristate "I2C SGI interfaces"
-	depends on I2C
+	depends on I2C && (SGI_IP22 || SGI_IP32 || X86_VISWS)
 	help
 	  Supports the SGI interfaces like the ones found on SGI Indy VINO
 	  or SGI O2 MACE.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (15 preceding siblings ...)
  2005-01-06 20:30             ` 2.6.10-mm2 Ramón Rey Vicente
@ 2005-01-07  9:39             ` Benoit Boissinot
  2005-01-07 13:13               ` 2.6.10-mm2 Brice Goglin
  2005-01-08  2:43               ` 2.6.10-mm2 Dave Airlie
  2005-01-08  1:31             ` AGP Oops (was Re: 2.6.10-mm2) Sean Neakums
  17 siblings, 2 replies; 246+ messages in thread
From: Benoit Boissinot @ 2005-01-07  9:39 UTC (permalink / raw)
  To: Andrew Morton, Mike Werner; +Cc: linux-kernel

On Thu, 6 Jan 2005 00:22:40 -0800, Andrew Morton <akpm@osdl.org> wrote:
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> 
> - Various minorish updates and fixes
> 
> Changes since 2.6.10-mm1:
> 


When i launch neverball (3d games), X get killed and I have the
following error in dmesg (3d card 9200SE, xserver : Xorg) :

[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held  
                                                                 
[drm:drm_unlock] *ERROR* Process 10657 using kernel context 0

reverting the following patches solve the problem:
agpgart-add-bridge-parameter-to-driver-functions.patch
agpgart-allow-multiple-backends-to-be-initialized.patch
drm-add-support-for-new-multiple-agp-bridge-agpgart-api.patch

I tried the fix from Mike Werner, but it doesn't work in my case.

I can provide more information if needed.

regards,

Benoit

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-06 17:53                     ` Andi Kleen
  2005-01-06 18:19                       ` Petr Vandrovec
  2005-01-06 19:35                       ` Greg KH
@ 2005-01-07 11:49                       ` Arnd Bergmann
  2005-01-07 12:30                         ` Andi Kleen
  2 siblings, 1 reply; 246+ messages in thread
From: Arnd Bergmann @ 2005-01-07 11:49 UTC (permalink / raw)
  To: discuss
  Cc: Andi Kleen, Petr Vandrovec, Michael S. Tsirkin, Andrew Morton,
	linux-kernel, greg

[-- Attachment #1: Type: text/plain, Size: 1693 bytes --]

On Dunnersdag 06 Januar 2005 18:53, Andi Kleen wrote:

> > * USB.  usbfs API is written in a way which does not allow you to safely wrap
> > it in "generic" 32->64 layer, and attempts to do it in non-generic way in usbfs
> > code itself did not look feasible year ago.  Even on current 64bit kernels it is not
> > possible to issue raw USB operations from 32bit apps, and I do not believe that
> > it is going to change - after all, just issuing ioctl through 64bit path from application
> > which is aware of 64bit kernel is quite simple, much simpler than any attempt to
> > make kernel dual-interface.
> 
> Agree that's a problem. We just need an alternative interface here
> or I try to come up with an x86-64 specific hack (I think it's possible
> to do the compatibility x86-64 specific, just not in compat code for
> all architectures who have truly separated user/kernel address spaces) 
> 
> I hope the USB people will eventually add a better interface here.
> Greg?

As a quick fix, wouldn't it be easy enough to just mark USBDEVFS_IOCTL as
COMPATIBLE_IOCTL()? The number is actually different for 32 and 64 bit kernels,
so a 32 bit application that knows about this could use 64 bit data structures
and then just call ioctl(fd, USBDEVFS_IOCTL64, data) instead of using a weird
hack to achieve exactly the same.
Applications trying to call the 32 bit USBDEVFS_IOCTL would still see -EINVAL
because there is no wrapper for this.
Maybe the same can be done for some of the other ioctl calls. It effectively
means moving part of the compat layer to user space from fs/compat_ioctl.c,
but it appears that applications are already doing this.

	Arnd <><



[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [discuss] Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat
  2005-01-07 11:49                       ` [discuss] " Arnd Bergmann
@ 2005-01-07 12:30                         ` Andi Kleen
  0 siblings, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2005-01-07 12:30 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: discuss, Andi Kleen, Petr Vandrovec, Michael S. Tsirkin,
	Andrew Morton, linux-kernel, greg

> As a quick fix, wouldn't it be easy enough to just mark USBDEVFS_IOCTL as
> COMPATIBLE_IOCTL()? The number is actually different for 32 and 64 bit kernels,
> so a 32 bit application that knows about this could use 64 bit data structures
> and then just call ioctl(fd, USBDEVFS_IOCTL64, data) instead of using a weird
> hack to achieve exactly the same.
> Applications trying to call the 32 bit USBDEVFS_IOCTL would still see -EINVAL
> because there is no wrapper for this.
> Maybe the same can be done for some of the other ioctl calls. It effectively
> means moving part of the compat layer to user space from fs/compat_ioctl.c,
> but it appears that applications are already doing this.

That's too ugly. We would end up with different ABIs. 
I don't really want to do that, no.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-06 23:48                   ` Pavel Machek
  2005-01-07  0:24                     ` Nigel Cunningham
@ 2005-01-07 12:45                     ` Rafael J. Wysocki
  2005-01-07 22:12                       ` Nigel Cunningham
  1 sibling, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-07 12:45 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-kernel

On Friday, 7 of January 2005 00:48, Pavel Machek wrote:
> Hi!
> 
> > 
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
> > > > > 
> > > > > - Various minorish updates and fixes
> > > > 
> > > > There's an swsusp regression on my box (AMD64) wrt -mm1.  Namely, 
> > 2.6.10-mm2 
> > > > does not suspend, but hangs solid right after the critical section, 
100% 
> > of 
> > > > the time.
> > > 
> > > can you comment out device_power_{down,up} from
> > > swsusp_{suspend,resume} and see what happens?
> > 
> > It works just fine.
> 
> Ok, problem is that device_power_{down,up} is right thing, and
> neccessary for many machines to work...

It's OK, as long as I know what to comment out. ;-)

> ..so... could you go through sysdev_register()s, one by one,
> commenting them to see which one causes the regression? That driver
> then needs to be fixed.
> 
> Go after mtrr and time in first places.

OK, but it'll take some time.

> 								Pavel
> PS: Probably drop andrew from reply; he probably gets enough mail
> anyway. I want this one to go to him so that he does not back up the
> patch, through.

OK

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-07  9:39             ` 2.6.10-mm2 Benoit Boissinot
@ 2005-01-07 13:13               ` Brice Goglin
  2005-01-09  1:26                 ` 2.6.10-mm2 Dave Airlie
  2005-01-08  2:43               ` 2.6.10-mm2 Dave Airlie
  1 sibling, 1 reply; 246+ messages in thread
From: Brice Goglin @ 2005-01-07 13:13 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Benoit Boissinot, Mike Werner, linux-kernel

Benoit Boissinot a écrit :
> When i launch neverball (3d games), X get killed and I have the
> following error in dmesg (3d card 9200SE, xserver : Xorg) :
> 
> [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held  
>                                                                  
> [drm:drm_unlock] *ERROR* Process 10657 using kernel context 0

Same *ERROR* here on my Compaq Evo N600c (Radeon Mobility M6 LY).
Xfree 4.3 from debian sarge doesn't crash but it's way too slow.
Vanilla 2.6.10 works fine.

Regards,

Brice

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm1
  2005-01-06 13:52         ` 2.6.10-mm1 Vladimir Saveliev
@ 2005-01-07 14:46           ` Christoph Hellwig
  2005-01-07 17:16             ` [RFC] per thread page reservation patch Vladimir Saveliev
  0 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-07 14:46 UTC (permalink / raw)
  To: Vladimir Saveliev
  Cc: Hans Reiser, Christoph Hellwig, Andrew Morton, linux-kernel,
	Reiserfs developers mail-list, Alexander Zarochentcev

On Thu, Jan 06, 2005 at 04:52:01PM +0300, Vladimir Saveliev wrote:
> The work is in progress. Here is list of patches. 
 
> reiser4-perthread-pages.patch

this one I don't particularly object, but I'm not sure it's really
the right thing to do.  Can you post it with a detailed description
to linux-mm so we can kick off discussion?

The other thing I'm totally oposed to was the per-sb kobject patch,
but I can't find that in current -mm anymore.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* [RFC] per thread page reservation patch
  2005-01-07 14:46           ` 2.6.10-mm1 Christoph Hellwig
@ 2005-01-07 17:16             ` Vladimir Saveliev
  2005-01-07 18:48               ` Andrew Morton
                                 ` (2 more replies)
  0 siblings, 3 replies; 246+ messages in thread
From: Vladimir Saveliev @ 2005-01-07 17:16 UTC (permalink / raw)
  To: linux-mm; +Cc: Andrew Morton, linux-kernel, Christoph Hellwig

[-- Attachment #1: Type: text/plain, Size: 900 bytes --]

Hello

On Fri, 2005-01-07 at 17:46, Christoph Hellwig wrote:
>  
> > reiser4-perthread-pages.patch
> 
> this one I don't particularly object, but I'm not sure it's really
> the right thing to do.  Can you post it with a detailed description
> to linux-mm so we can kick off discussion?
> 

This patch adds an API to reserve some number of pages for exclusive use
of calling thread.  This is necessary to support operations that cannot
tolerate memory allocation failures in the middle (reiser4 uses this API
to not have to undo complex uncompleted (due to ENOMEM) filesystem tree
modifications).

Implementation is simple: reserved pages are stored in a list hanging
off calling task_struct. Caller is to manually release unused pages.

This API is supposed to be used for small reservation (no more than few
dozens of pages).
 
Looking forward for advices on how to do that better/properly
Thanks



[-- Attachment #2: reiser4-perthread-pages.patch --]
[-- Type: text/plain, Size: 6484 bytes --]



This patch adds an API to reserve some number of pages for exclusive use of
calling thread.  This is necessary to support operations that cannot tolerate
memory allocation failures in the middle.  Implementation is very simplistic
and would only work efficiently for small reservations (no more than few
dozens of pages).

Reserved pages are stored in a list hanging off calling task_struct.  This
list is only accessed by the current thread, hence, no locking is required. 
Note that this makes use of reservation from interrupt handlers impossible
without some external synchronization.  Caller is responsible for manually
releasing unused pages by calling perthread_pages_release(int nrpages) with
proper argument.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

diff -puN include/linux/gfp.h~reiser4-perthread-pages include/linux/gfp.h


 include/linux/gfp.h       |    4 +
 include/linux/init_task.h |    4 -
 include/linux/sched.h     |    3 +
 kernel/fork.c             |    4 +
 mm/page_alloc.c           |   97 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 110 insertions(+), 2 deletions(-)

diff -puN include/linux/gfp.h~reiser4-perthread-pages include/linux/gfp.h
--- linux-2.6.10-rc3/include/linux/gfp.h~reiser4-perthread-pages	2004-12-22 20:09:44.153164276 +0300
+++ linux-2.6.10-rc3-vs/include/linux/gfp.h	2004-12-22 20:09:44.199167794 +0300
@@ -134,4 +134,8 @@ extern void FASTCALL(free_cold_page(stru
 
 void page_alloc_init(void);
 
+int  perthread_pages_reserve(int nrpages, int gfp);
+void perthread_pages_release(int nrpages);
+int  perthread_pages_count(void);
+
 #endif /* __LINUX_GFP_H */
diff -puN include/linux/init_task.h~reiser4-perthread-pages include/linux/init_task.h
--- linux-2.6.10-rc3/include/linux/init_task.h~reiser4-perthread-pages	2004-12-22 20:09:44.160164812 +0300
+++ linux-2.6.10-rc3-vs/include/linux/init_task.h	2004-12-22 20:09:44.201167947 +0300
@@ -112,8 +112,8 @@ extern struct group_info init_groups;
 	.proc_lock	= SPIN_LOCK_UNLOCKED,				\
 	.switch_lock	= SPIN_LOCK_UNLOCKED,				\
 	.journal_info	= NULL,						\
+	.private_pages	= LIST_HEAD_INIT(tsk.private_pages),		\
+	.private_pages_count = 0,					\
 }
 
-
-
 #endif
diff -puN include/linux/sched.h~reiser4-perthread-pages include/linux/sched.h
--- linux-2.6.10-rc3/include/linux/sched.h~reiser4-perthread-pages	2004-12-22 20:09:44.170165576 +0300
+++ linux-2.6.10-rc3-vs/include/linux/sched.h	2004-12-22 20:09:44.204168176 +0300
@@ -691,6 +691,9 @@ struct task_struct {
 	nodemask_t mems_allowed;
 	int cpuset_mems_generation;
 #endif
+
+	struct list_head private_pages;	/* per-process private pages */
+	int private_pages_count;
 };
 
 static inline pid_t process_group(struct task_struct *tsk)
diff -puN kernel/fork.c~reiser4-perthread-pages kernel/fork.c
--- linux-2.6.10-rc3/kernel/fork.c~reiser4-perthread-pages	2004-12-22 20:09:44.179166264 +0300
+++ linux-2.6.10-rc3-vs/kernel/fork.c	2004-12-22 20:09:44.215169017 +0300
@@ -154,6 +154,10 @@ static struct task_struct *dup_task_stru
 	tsk->thread_info = ti;
 	ti->task = tsk;
 
+	/* initialize list of pages privately reserved by process */
+	INIT_LIST_HEAD(&tsk->private_pages);
+	tsk->private_pages_count = 0;
+
 	/* One for us, one for whoever does the "release_task()" (usually parent) */
 	atomic_set(&tsk->usage,2);
 	return tsk;
diff -puN mm/page_alloc.c~reiser4-perthread-pages mm/page_alloc.c
--- linux-2.6.10-rc3/mm/page_alloc.c~reiser4-perthread-pages	2004-12-22 20:09:44.187166876 +0300
+++ linux-2.6.10-rc3-vs/mm/page_alloc.c	2004-12-22 20:09:44.219169323 +0300
@@ -551,6 +551,97 @@ void fastcall free_cold_page(struct page
 	free_hot_cold_page(page, 1);
 }
 
+static inline struct list_head *get_per_thread_pages(void)
+{
+	return &current->private_pages;
+}
+
+int perthread_pages_reserve(int nrpages, int gfp)
+{
+	int i;
+	struct list_head  accumulator;
+	struct list_head *per_thread;
+
+	per_thread = get_per_thread_pages();
+	INIT_LIST_HEAD(&accumulator);
+	list_splice_init(per_thread, &accumulator);
+	for (i = 0; i < nrpages; ++i) {
+		struct page *page;
+
+		page = alloc_page(gfp);
+		if (page != NULL)
+			list_add(&page->lru, &accumulator);
+		else {
+			for (; i > 0; --i) {
+				page = list_entry(accumulator.next, struct page, lru);
+				list_del(&page->lru);
+				page_cache_release(page);
+			}
+			return -ENOMEM;
+		}
+	}
+	/*
+	 * Q: why @accumulator is used, instead of directly adding pages to
+	 * the get_per_thread_pages()?
+	 *
+	 * A: because after first page is added to the get_per_thread_pages(),
+	 * next call to the alloc_page() (on the next loop iteration), will
+	 * re-use it.
+	 */
+	list_splice(&accumulator, per_thread);
+	current->private_pages_count += nrpages;
+	return 0;
+}
+EXPORT_SYMBOL(perthread_pages_reserve);
+
+void perthread_pages_release(int nrpages)
+{
+	struct list_head *per_thread;
+
+	current->private_pages_count -= nrpages;
+	per_thread = get_per_thread_pages();
+	for (; nrpages != 0; --nrpages) {
+		struct page *page;
+
+		BUG_ON(list_empty(per_thread));
+		page = list_entry(per_thread->next, struct page, lru);
+		list_del(&page->lru);
+		page_cache_release(page);
+	}
+}
+EXPORT_SYMBOL(perthread_pages_release);
+
+int perthread_pages_count(void)
+{
+	return current->private_pages_count;
+}
+EXPORT_SYMBOL(perthread_pages_count);
+
+static inline struct page *
+perthread_pages_alloc(void)
+{
+	struct list_head *perthread_pages;
+
+	/*
+	 * try to allocate pages from the per-thread private_pages pool. No
+	 * locking is needed: this list can only be modified by the thread
+	 * itself, and not by interrupts or other threads.
+	 */
+	perthread_pages = get_per_thread_pages();
+	if (!in_interrupt() && !list_empty(perthread_pages)) {
+		struct page *page;
+
+		page = list_entry(perthread_pages->next, struct page, lru);
+		list_del(&page->lru);
+		current->private_pages_count--;
+		/*
+		 * per-thread page is already initialized, just return it.
+		 */
+		return page;
+	} else
+		return NULL;
+}
+
 /*
  * Really, prep_compound_page() should be called from __rmqueue_bulk().  But
  * we cheat by calling it from here, in the order > 0 path.  Saves a branch
@@ -667,6 +758,12 @@ __alloc_pages(unsigned int gfp_mask, uns
 	 */
 	can_try_harder = (unlikely(rt_task(p)) && !in_interrupt()) || !wait;
 
+	if (order == 0) {
+		page = perthread_pages_alloc();
+		if (page != NULL)
+			return page;
+	}
+
 	zones = zonelist->zones;  /* the list of zones suitable for gfp_mask */
 
 	if (unlikely(zones[0] == NULL)) {

_

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 17:16             ` [RFC] per thread page reservation patch Vladimir Saveliev
@ 2005-01-07 18:48               ` Andrew Morton
  2005-01-07 20:21                 ` Nikita Danilov
  2005-01-07 19:05               ` Christoph Hellwig
  2005-01-07 19:14               ` Paulo Marques
  2 siblings, 1 reply; 246+ messages in thread
From: Andrew Morton @ 2005-01-07 18:48 UTC (permalink / raw)
  To: Vladimir Saveliev; +Cc: linux-mm, linux-kernel, hch

Vladimir Saveliev <vs@namesys.com> wrote:
>
> +int perthread_pages_reserve(int nrpages, int gfp)
>  +{
>  +	int i;
>  +	struct list_head  accumulator;
>  +	struct list_head *per_thread;
>  +
>  +	per_thread = get_per_thread_pages();
>  +	INIT_LIST_HEAD(&accumulator);
>  +	list_splice_init(per_thread, &accumulator);
>  +	for (i = 0; i < nrpages; ++i) {

This will end up reserving more pages than were asked for, if
current->private_pages_count is non-zero.  Deliberate?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 17:16             ` [RFC] per thread page reservation patch Vladimir Saveliev
  2005-01-07 18:48               ` Andrew Morton
@ 2005-01-07 19:05               ` Christoph Hellwig
  2005-01-07 19:12                 ` Christoph Hellwig
                                   ` (2 more replies)
  2005-01-07 19:14               ` Paulo Marques
  2 siblings, 3 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-07 19:05 UTC (permalink / raw)
  To: Vladimir Saveliev; +Cc: linux-mm, Andrew Morton, linux-kernel

> diff -puN include/linux/gfp.h~reiser4-perthread-pages include/linux/gfp.h
> --- linux-2.6.10-rc3/include/linux/gfp.h~reiser4-perthread-pages	2004-12-22 20:09:44.153164276 +0300
> +++ linux-2.6.10-rc3-vs/include/linux/gfp.h	2004-12-22 20:09:44.199167794 +0300
> @@ -134,4 +134,8 @@ extern void FASTCALL(free_cold_page(stru
>  
>  void page_alloc_init(void);
>  
> +int  perthread_pages_reserve(int nrpages, int gfp);
> +void perthread_pages_release(int nrpages);
> +int  perthread_pages_count(void);
> +
>  #endif /* __LINUX_GFP_H */
> diff -puN include/linux/init_task.h~reiser4-perthread-pages include/linux/init_task.h
> --- linux-2.6.10-rc3/include/linux/init_task.h~reiser4-perthread-pages	2004-12-22 20:09:44.160164812 +0300
> +++ linux-2.6.10-rc3-vs/include/linux/init_task.h	2004-12-22 20:09:44.201167947 +0300
> @@ -112,8 +112,8 @@ extern struct group_info init_groups;
>  	.proc_lock	= SPIN_LOCK_UNLOCKED,				\
>  	.switch_lock	= SPIN_LOCK_UNLOCKED,				\
>  	.journal_info	= NULL,						\
> +	.private_pages	= LIST_HEAD_INIT(tsk.private_pages),		\
> +	.private_pages_count = 0,					\
>  }
>  
> -
> -
>  #endif
> diff -puN include/linux/sched.h~reiser4-perthread-pages include/linux/sched.h
> --- linux-2.6.10-rc3/include/linux/sched.h~reiser4-perthread-pages	2004-12-22 20:09:44.170165576 +0300
> +++ linux-2.6.10-rc3-vs/include/linux/sched.h	2004-12-22 20:09:44.204168176 +0300
> @@ -691,6 +691,9 @@ struct task_struct {
>  	nodemask_t mems_allowed;
>  	int cpuset_mems_generation;
>  #endif
> +
> +	struct list_head private_pages;	/* per-process private pages */
> +	int private_pages_count;
>  };
>  
>  static inline pid_t process_group(struct task_struct *tsk)
> diff -puN kernel/fork.c~reiser4-perthread-pages kernel/fork.c
> --- linux-2.6.10-rc3/kernel/fork.c~reiser4-perthread-pages	2004-12-22 20:09:44.179166264 +0300
> +++ linux-2.6.10-rc3-vs/kernel/fork.c	2004-12-22 20:09:44.215169017 +0300
> @@ -154,6 +154,10 @@ static struct task_struct *dup_task_stru
>  	tsk->thread_info = ti;
>  	ti->task = tsk;
>  
> +	/* initialize list of pages privately reserved by process */
> +	INIT_LIST_HEAD(&tsk->private_pages);
> +	tsk->private_pages_count = 0;
> +
>  	/* One for us, one for whoever does the "release_task()" (usually parent) */
>  	atomic_set(&tsk->usage,2);
>  	return tsk;
> diff -puN mm/page_alloc.c~reiser4-perthread-pages mm/page_alloc.c
> --- linux-2.6.10-rc3/mm/page_alloc.c~reiser4-perthread-pages	2004-12-22 20:09:44.187166876 +0300
> +++ linux-2.6.10-rc3-vs/mm/page_alloc.c	2004-12-22 20:09:44.219169323 +0300
> @@ -551,6 +551,97 @@ void fastcall free_cold_page(struct page
>  	free_hot_cold_page(page, 1);
>  }
>  
> +static inline struct list_head *get_per_thread_pages(void)
> +{
> +	return &current->private_pages;
> +}

this is a completely useless wrapper that doesn't buy anything.

> +int perthread_pages_reserve(int nrpages, int gfp)
> +{
> +	int i;
> +	struct list_head  accumulator;
> +	struct list_head *per_thread;
> +
> +	per_thread = get_per_thread_pages();
> +	INIT_LIST_HEAD(&accumulator);
> +	list_splice_init(per_thread, &accumulator);

Can probably be written much simpler as:

int perthread_pages_reserve(int nrpages, int gfp)
{
	LIST_HEAD(accumulator);
	int i;

	list_splice_init(&current->private_pages, &accumulator);

Now the big question is, what's synchronizing access to
current->private_pages?

> +	for (i = 0; i < nrpages; ++i) {
> +		struct page *page;
> +
> +		page = alloc_page(gfp);
> +		if (page != NULL)
> +			list_add(&page->lru, &accumulator);
> +		else {
> +			for (; i > 0; --i) {
> +				page = list_entry(accumulator.next, struct page, lru);
> +				list_del(&page->lru);
> +				page_cache_release(page);
> +			}
> +			return -ENOMEM;
> +		}
> +	}

Would be much more readable with the error condition handling at the
end of the function and a goto.

> +int perthread_pages_count(void)
> +{
> +	return current->private_pages_count;
> +}
> +EXPORT_SYMBOL(perthread_pages_count);

Again a completely useless wrapper.

> +static inline struct page *
> +perthread_pages_alloc(void)
> +{
> +	struct list_head *perthread_pages;
> +
> +	/*
> +	 * try to allocate pages from the per-thread private_pages pool. No
> +	 * locking is needed: this list can only be modified by the thread
> +	 * itself, and not by interrupts or other threads.
> +	 */
> +	perthread_pages = get_per_thread_pages();
> +	if (!in_interrupt() && !list_empty(perthread_pages)) {
> +		struct page *page;
> +
> +		page = list_entry(perthread_pages->next, struct page, lru);
> +		list_del(&page->lru);
> +		current->private_pages_count--;
> +		/*
> +		 * per-thread page is already initialized, just return it.
> +		 */
> +		return page;
> +	} else
> +		return NULL;
> +}

Would be written much cleaner with a single return statement and the
comment above the function, ala:

/*
 * try to allocate pages from the per-thread private_pages pool. No
 * locking is needed: this list can only be modified by the thread
 * itself, and not by interrupts or other threads.
 */
static inline struct page *perthread_pages_alloc(void)
{
	struct list_head *perthread_pages = &current->private_pages;
	struct page *page = NULL;

	if (!in_interrupt() && !list_empty(perthread_pages)) {
		page = list_entry(perthread_pages->next, struct page, lru);
		list_del(&page->lru);
		current->private_pages_count--;
	}

	return page;
}

> +	if (order == 0) {
> +		page = perthread_pages_alloc();
> +		if (page != NULL)
> +			return page;
> +	}
> +

You should at least move the !in_interrupt() condition out here.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 19:05               ` Christoph Hellwig
@ 2005-01-07 19:12                 ` Christoph Hellwig
  2005-01-07 19:21                 ` Robert Love
  2005-01-07 20:48                 ` Nikita Danilov
  2 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-07 19:12 UTC (permalink / raw)
  To: Christoph Hellwig, Vladimir Saveliev, linux-mm, Andrew Morton,
	linux-kernel

> Now the big question is, what's synchronizing access to
> current->private_pages?

Umm, it's obviously correct as we're thread-local.  Objection taken back :)


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 17:16             ` [RFC] per thread page reservation patch Vladimir Saveliev
  2005-01-07 18:48               ` Andrew Morton
  2005-01-07 19:05               ` Christoph Hellwig
@ 2005-01-07 19:14               ` Paulo Marques
  2005-01-07 19:32                 ` Christoph Hellwig
  2005-01-07 20:55                 ` Nikita Danilov
  2 siblings, 2 replies; 246+ messages in thread
From: Paulo Marques @ 2005-01-07 19:14 UTC (permalink / raw)
  To: Vladimir Saveliev
  Cc: linux-mm, Andrew Morton, linux-kernel, Christoph Hellwig

Vladimir Saveliev wrote:
> [...]
> +	if (order == 0) {
> +		page = perthread_pages_alloc();
> +		if (page != NULL)
> +			return page;
> +	}

I hope this has not been extensively discussed yet, and I missed the 
thread but, does everybody think this is a good thing?

This seems like a very asymmetrical behavior. If the code explicitly 
reserves pages, it should explicitly use them, or it will become 
impossible to track down who is using what (not to mention that this 
will slow down every regular user of __alloc_pages, even if it is just 
for a quick test).

Why are there specialized functions to reserve the pages, but then they 
are used through the standard __alloc_pages interface?

At the very least this test should be moved to the very beginning of the 
function. It is of no use to calculate "can_try_harder" before running 
this code if it will use a reserved page.

Having a specialized function to get the reserved pages, would also make 
the logic in "perthread_pages_reserve" more clear (i.e., that comment 
would become unnecessary), and lose the test to "in_interrupt()" in 
"perthread_pages_alloc", if I'm reading this correctly.

-- 
Paulo Marques - www.grupopie.com

"A journey of a thousand miles begins with a single step."
Lao-tzu, The Way of Lao-tzu

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS
  2005-01-07  9:12                     ` Ladislav Michl
@ 2005-01-07 19:14                       ` Greg KH
  0 siblings, 0 replies; 246+ messages in thread
From: Greg KH @ 2005-01-07 19:14 UTC (permalink / raw)
  To: Ladislav Michl
  Cc: Ilya A. Volynets-Evenbakh, Ralf Baechle, Adrian Bunk,
	Andrew Morton, linux-kernel, sensors, linux-mips

On Fri, Jan 07, 2005 at 10:12:19AM +0100, Ladislav Michl wrote:
> On Thu, Jan 06, 2005 at 11:46:46AM -0800, Greg KH wrote:
> > Ok, can someone send me the proper patch then?
> 
> Index: drivers/i2c/algos/Kconfig

Applied, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 19:05               ` Christoph Hellwig
  2005-01-07 19:12                 ` Christoph Hellwig
@ 2005-01-07 19:21                 ` Robert Love
  2005-01-07 20:48                 ` Nikita Danilov
  2 siblings, 0 replies; 246+ messages in thread
From: Robert Love @ 2005-01-07 19:21 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Vladimir Saveliev, linux-mm, Andrew Morton, linux-kernel

On Fri, 2005-01-07 at 19:05 +0000, Christoph Hellwig wrote:

> int perthread_pages_reserve(int nrpages, int gfp)
> {
> 	LIST_HEAD(accumulator);
> 	int i;
> 
> 	list_splice_init(&current->private_pages, &accumulator);
> 
> Now the big question is, what's synchronizing access to
> current->private_pages?

Safe without locks so long as there is no other way to get at another
process's private_pages. ;)

Best,

	Robert Love



^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 19:14               ` Paulo Marques
@ 2005-01-07 19:32                 ` Christoph Hellwig
  2005-01-07 19:42                   ` Andi Kleen
  2005-01-07 20:55                 ` Nikita Danilov
  1 sibling, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-07 19:32 UTC (permalink / raw)
  To: Paulo Marques
  Cc: Vladimir Saveliev, linux-mm, Andrew Morton, linux-kernel,
	Christoph Hellwig

On Fri, Jan 07, 2005 at 07:14:15PM +0000, Paulo Marques wrote:
> This seems like a very asymmetrical behavior. If the code explicitly 
> reserves pages, it should explicitly use them, or it will become 
> impossible to track down who is using what (not to mention that this 
> will slow down every regular user of __alloc_pages, even if it is just 
> for a quick test).
> 
> Why are there specialized functions to reserve the pages, but then they 
> are used through the standard __alloc_pages interface?

That seems to be the whole point of the patch, as that way it'll serve
all sub-allocators or kernel function called by the user.  Without this
behaviour the caller could have simply used a mempool.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 19:32                 ` Christoph Hellwig
@ 2005-01-07 19:42                   ` Andi Kleen
  0 siblings, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2005-01-07 19:42 UTC (permalink / raw)
  To: Christoph Hellwig, Paulo Marques, Vladimir Saveliev, linux-mm,
	Andrew Morton, linux-kernel

On Fri, Jan 07, 2005 at 07:32:40PM +0000, Christoph Hellwig wrote:
> On Fri, Jan 07, 2005 at 07:14:15PM +0000, Paulo Marques wrote:
> > This seems like a very asymmetrical behavior. If the code explicitly 
> > reserves pages, it should explicitly use them, or it will become 
> > impossible to track down who is using what (not to mention that this 
> > will slow down every regular user of __alloc_pages, even if it is just 
> > for a quick test).
> > 
> > Why are there specialized functions to reserve the pages, but then they 
> > are used through the standard __alloc_pages interface?
> 
> That seems to be the whole point of the patch, as that way it'll serve
> all sub-allocators or kernel function called by the user.  Without this
> behaviour the caller could have simply used a mempool.

I still don't get it why reiserfs can't put the preallocated 
pool somewhere private like all other users who do similar things
do too (and yes there are quite a lot of subsystems who do 
preallocation) 

Why pollute task_struct for this? 

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 18:48               ` Andrew Morton
@ 2005-01-07 20:21                 ` Nikita Danilov
  0 siblings, 0 replies; 246+ messages in thread
From: Nikita Danilov @ 2005-01-07 20:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-mm, linux-kernel, hch

Andrew Morton <akpm@osdl.org> writes:

> Vladimir Saveliev <vs@namesys.com> wrote:
>>
>> +int perthread_pages_reserve(int nrpages, int gfp)
>>  +{
>>  +	int i;
>>  +	struct list_head  accumulator;
>>  +	struct list_head *per_thread;
>>  +
>>  +	per_thread = get_per_thread_pages();
>>  +	INIT_LIST_HEAD(&accumulator);
>>  +	list_splice_init(per_thread, &accumulator);
>>  +	for (i = 0; i < nrpages; ++i) {
>
> This will end up reserving more pages than were asked for, if
> current->private_pages_count is non-zero.  Deliberate?

Yes. This is to make modular usage possible, so that


        perthread_pages_reserve(nrpages, gfp_mask);

        /* call some other code... */

        perthread_pages_release(unused_pages);

works correctly if "some other code" does per-thread reservations
too.

Nikita.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 19:05               ` Christoph Hellwig
  2005-01-07 19:12                 ` Christoph Hellwig
  2005-01-07 19:21                 ` Robert Love
@ 2005-01-07 20:48                 ` Nikita Danilov
  2005-01-07 20:54                   ` Christoph Hellwig
  2 siblings, 1 reply; 246+ messages in thread
From: Nikita Danilov @ 2005-01-07 20:48 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Vladimir Saveliev, linux-mm, Andrew Morton, linux-kernel

Christoph Hellwig <hch@infradead.org> writes:

>> diff -puN include/linux/gfp.h~reiser4-perthread-pages include/linux/gfp.h
>> --- linux-2.6.10-rc3/include/linux/gfp.h~reiser4-perthread-pages	2004-12-22 20:09:44.153164276 +0300

[...]

>
>> +int perthread_pages_count(void)
>> +{
>> +	return current->private_pages_count;
>> +}
>> +EXPORT_SYMBOL(perthread_pages_count);
>
> Again a completely useless wrapper.

I disagree. Patch introduces explicit API

int  perthread_pages_reserve(int nrpages, int gfp);
void perthread_pages_release(int nrpages);
int  perthread_pages_count(void);

sufficient to create and use per-thread reservations. Using
current->private_pages_count directly

 - makes API less uniform, not contained within single namespace
   (perthread_pages_*), and worse,

 - exhibits internal implementation detail to the user.

>

[...]

Nikita.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 20:48                 ` Nikita Danilov
@ 2005-01-07 20:54                   ` Christoph Hellwig
  2005-01-07 21:00                     ` Nikita Danilov
  0 siblings, 1 reply; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-07 20:54 UTC (permalink / raw)
  To: Nikita Danilov; +Cc: Vladimir Saveliev, Andrew Morton, linux-kernel, linux-mm

On Fri, Jan 07, 2005 at 11:48:58PM +0300, Nikita Danilov wrote:
> sufficient to create and use per-thread reservations. Using
> current->private_pages_count directly
> 
>  - makes API less uniform, not contained within single namespace
>    (perthread_pages_*), and worse,
> 
>  - exhibits internal implementation detail to the user.

Completely disagreed, hiding all the details doesn't help for such
trivial access, it's just obsfucating things.

But looking at it the API doesn't make sense at all.  Number of pages
in the thread-pool is an internal implementation detail and no caller
must look at it - think about two callers, e.g. filesystem and iscsi
initiator using it in the same thread.

Here's an updated patch with my suggestions implemented and other goodies
such a kerneldoc comments (but completely untested so far):


--- 1.20/include/linux/gfp.h	2005-01-05 18:30:39 +01:00
+++ edited/include/linux/gfp.h	2005-01-07 20:30:20 +01:00
@@ -130,6 +130,9 @@
 #define __free_page(page) __free_pages((page), 0)
 #define free_page(addr) free_pages((addr),0)
 
+extern int perthread_pages_reserve(unsigned int nrpages, unsigned int gfp_mask);
+extern void perthread_pages_release(unsigned int nrpages);
+
 void page_alloc_init(void);
 
 #endif /* __LINUX_GFP_H */
--- 1.33/include/linux/init_task.h	2005-01-05 03:48:20 +01:00
+++ edited/include/linux/init_task.h	2005-01-07 20:33:25 +01:00
@@ -112,6 +112,7 @@
 	.proc_lock	= SPIN_LOCK_UNLOCKED,				\
 	.switch_lock	= SPIN_LOCK_UNLOCKED,				\
 	.journal_info	= NULL,						\
+	.private_pages  = LIST_HEAD_INIT(tsk.private_pages),		\
 }
 
 
--- 1.280/include/linux/sched.h	2005-01-05 03:48:20 +01:00
+++ edited/include/linux/sched.h	2005-01-07 20:32:44 +01:00
@@ -658,6 +658,7 @@
 
 /* VM state */
 	struct reclaim_state *reclaim_state;
+	struct list_head private_pages; /* per-process private pages */
 
 	struct dentry *proc_dentry;
 	struct backing_dev_info *backing_dev_info;
--- 1.229/kernel/fork.c	2005-01-05 03:48:20 +01:00
+++ edited/kernel/fork.c	2005-01-07 20:34:04 +01:00
@@ -153,6 +153,9 @@
 	tsk->thread_info = ti;
 	ti->task = tsk;
 
+	/* initialize list of pages privately reserved by process */
+	INIT_LIST_HEAD(&tsk->private_pages);
+
 	/* One for us, one for whoever does the "release_task()" (usually parent) */
 	atomic_set(&tsk->usage,2);
 	return tsk;
--- 1.249/mm/page_alloc.c	2005-01-05 18:32:52 +01:00
+++ edited/mm/page_alloc.c	2005-01-07 20:36:34 +01:00
@@ -641,6 +641,86 @@
 	return 1;
 }
 
+/**
+ * perthread_pages_reserve  --  reserve some pages for this thread
+ * @nrpages:		number of pages to reserve
+ * @gfp_mask:		constaints passed to alloc_page()
+ *
+ * This functions allocates @nrpages into a thread-local pool that
+ * __alloc_pages() will use.  Used to support operations that cannot
+ * tolerate memory allocation failures.
+ */
+int perthread_pages_reserve(unsigned int nrpages, unsigned int gfp_mask)
+{
+	LIST_HEAD(accumulator);
+	int i;
+
+	list_splice_init(&current->private_pages, &accumulator);
+
+	for (i = 0; i < nrpages; ++i) {
+		struct page *page = alloc_page(gfp_mask);
+
+		if (!page)
+			goto fail_free_pages;
+		list_add(&page->lru, &accumulator);
+	}
+
+	/*
+	 * Q: why @accumulator is used, instead of directly adding pages to
+	 * current->private_pages?
+	 * 
+	 * A: because after first page is added to the current->private_pages
+	 * next call to the alloc_page() (on the next loop iteration), will
+	 * re-use it.
+	 */
+	list_splice(&accumulator, &current->private_pages);
+	return 0;
+ fail_free_pages:
+	perthread_pages_release(i);
+	return -ENOMEM;
+}
+EXPORT_SYMBOL_GPL(perthread_pages_reserve);
+
+/**
+ * perthread_pages_release  --  release pages from thread-local pool
+ * @nrpages:		number of pages to release
+ *
+ * This functions release @nrpages that we allocated to a thread-local
+ * pool using perthread_pages_reserve().
+ */
+void perthread_pages_release(unsigned int nrpages)
+{
+	struct list_head *perthread_pages = &current->private_pages;
+
+	for (; nrpages; --nrpages) {
+		struct page *page;
+	
+		BUG_ON(list_empty(perthread_pages));
+		page = list_entry(perthread_pages->next, struct page, lru);
+		list_del(&page->lru);
+		page_cache_release(page);
+	}
+}
+EXPORT_SYMBOL_GPL(perthread_pages_release);
+
+/*
+ * Try to allocate pages from the per-thread private_pages pool. No
+ * locking is needed: this list can only be modified by the thread
+ * itself, and not by interrupts or other threads.
+ */
+static inline struct page *__alloc_perthread_page(void)
+{
+	struct list_head *perthread_pages = &current->private_pages;
+	struct page *page = NULL;
+
+	if (!list_empty(perthread_pages)) {
+		page = list_entry(perthread_pages->next, struct page, lru);
+		list_del(&page->lru);
+	}
+
+	return page;
+}
+
 /*
  * This is the 'heart' of the zoned buddy allocator.
  *
@@ -672,6 +752,12 @@
 	int can_try_harder;
 
 	might_sleep_if(wait);
+
+	if (order == 0 && !in_interrupt()) {
+		page = __alloc_perthread_page();
+		if (page)
+			return page;
+	}
 
 	/*
 	 * The caller may dip into page reserves a bit more if the caller

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 19:14               ` Paulo Marques
  2005-01-07 19:32                 ` Christoph Hellwig
@ 2005-01-07 20:55                 ` Nikita Danilov
  2005-01-07 21:24                   ` Andrew Morton
  1 sibling, 1 reply; 246+ messages in thread
From: Nikita Danilov @ 2005-01-07 20:55 UTC (permalink / raw)
  To: Paulo Marques; +Cc: linux-mm, Andrew Morton, linux-kernel, Christoph Hellwig

Paulo Marques <pmarques@grupopie.com> writes:

[...]

>
> This seems like a very asymmetrical behavior. If the code explicitly
> reserves pages, it should explicitly use them, or it will become
> impossible to track down who is using what (not to mention that this
> will slow down every regular user of __alloc_pages, even if it is just
> for a quick test).
>
> Why are there specialized functions to reserve the pages, but then they
> are used through the standard __alloc_pages interface?

That's the whole idea behind this patch: at the beginning of "atomic"
operation, some number of pages is reserved. As these pages are
available through page allocator, _all_ allocations done by atomic
operation will use reserved pages transparently. For example:

        perthread_pages_reserve(nr, GFP_KERNEL);

        foo()->

            bar()->

                page = find_or_create_page(some_mapping, ...);

        perthread_pages_release(unused_pages);

find_or_create() pages will use pages reserved for this thread and,
hence, is guaranteed to succeed (given correct reservation).

Alternative is to pass some sort of handle all the way down to actual
calls to allocator, and to modify all generic code to use reservations.

Nikita.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 20:54                   ` Christoph Hellwig
@ 2005-01-07 21:00                     ` Nikita Danilov
  2005-01-07 21:07                       ` Christoph Hellwig
  0 siblings, 1 reply; 246+ messages in thread
From: Nikita Danilov @ 2005-01-07 21:00 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Vladimir Saveliev, Andrew Morton, linux-kernel, linux-mm

Christoph Hellwig <hch@infradead.org> writes:

> On Fri, Jan 07, 2005 at 11:48:58PM +0300, Nikita Danilov wrote:
>> sufficient to create and use per-thread reservations. Using
>> current->private_pages_count directly
>> 
>>  - makes API less uniform, not contained within single namespace
>>    (perthread_pages_*), and worse,
>> 
>>  - exhibits internal implementation detail to the user.
>
> Completely disagreed, hiding all the details doesn't help for such
> trivial access, it's just obsfucating things.
>
> But looking at it the API doesn't make sense at all.  Number of pages
> in the thread-pool is an internal implementation detail and no caller
> must look at it - think about two callers, e.g. filesystem and iscsi
> initiator using it in the same thread.
>
> Here's an updated patch with my suggestions implemented and other goodies
> such a kerneldoc comments (but completely untested so far):
>
>
> --- 1.20/include/linux/gfp.h	2005-01-05 18:30:39 +01:00
> +++ edited/include/linux/gfp.h	2005-01-07 20:30:20 +01:00
> @@ -130,6 +130,9 @@
>  #define __free_page(page) __free_pages((page), 0)
>  #define free_page(addr) free_pages((addr),0)
>  
> +extern int perthread_pages_reserve(unsigned int nrpages, unsigned int gfp_mask);
> +extern void perthread_pages_release(unsigned int nrpages);

I don't see how this can work.

        /* make conservative estimation... */
        perthread_pages_reserve(100, GFP_KERNEL);

        /* actually, use only 10 pages during atomic operation */

        /* want to release remaining 90 pages... */
        perthread_pages_release(???);

Can you elaborate how to calculate number of pages that has to be
released?

Nikita.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 21:00                     ` Nikita Danilov
@ 2005-01-07 21:07                       ` Christoph Hellwig
  0 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-07 21:07 UTC (permalink / raw)
  To: Nikita Danilov
  Cc: Christoph Hellwig, Vladimir Saveliev, Andrew Morton,
	linux-kernel, linux-mm

On Sat, Jan 08, 2005 at 12:00:00AM +0300, Nikita Danilov wrote:
> I don't see how this can work.
> 
>         /* make conservative estimation... */
>         perthread_pages_reserve(100, GFP_KERNEL);
> 
>         /* actually, use only 10 pages during atomic operation */
> 
>         /* want to release remaining 90 pages... */
>         perthread_pages_release(???);
> 
> Can you elaborate how to calculate number of pages that has to be
> released?

That's a good question actually, and it's true for the original
version aswell if we want (and to make the API useful we must) make
it useable for multiple callers in the same thread.

Assuming the callers strictly nest we can indeed just go back to the
orininal count, maybe with an API like:

int perthread_pages_reserve(unsigned int nrpages, unsigned int gfp_mask);
void perthread_pages_release(unsigned int nrpages_goal);


	unsigned int old_nr_pages;

	...

	old_nr_pages = perthread_pages_reserve(100, GFP_KERNEL);

	...

	perthread_pages_release(old_nr_pages);


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 21:24                   ` Andrew Morton
@ 2005-01-07 21:24                     ` Andi Kleen
  2005-01-07 22:12                     ` Nikita Danilov
  2005-01-25 16:39                     ` reiser4 core patches: [Was: [RFC] per thread page reservation patch] Vladimir Saveliev
  2 siblings, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2005-01-07 21:24 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Nikita Danilov, pmarques, linux-mm, linux-kernel, hch

> And the whole idea is pretty flaky really - how can one precalculate how
> much memory an arbitrary md-on-dm-on-loop-on-md-on-NBD stack will want to
> use?  It really would be better if we could drop the whole patch and make
> reiser4 behave more sanely when its writepage is called with for_reclaim=1.

Or just preallocate into a private array. 

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 20:55                 ` Nikita Danilov
@ 2005-01-07 21:24                   ` Andrew Morton
  2005-01-07 21:24                     ` Andi Kleen
                                       ` (2 more replies)
  0 siblings, 3 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-07 21:24 UTC (permalink / raw)
  To: Nikita Danilov; +Cc: pmarques, linux-mm, linux-kernel, hch

Nikita Danilov <nikita@clusterfs.com> wrote:
>
> That's the whole idea behind this patch: at the beginning of "atomic"
> operation, some number of pages is reserved. As these pages are
> available through page allocator, _all_ allocations done by atomic
> operation will use reserved pages transparently. For example:
> 
>         perthread_pages_reserve(nr, GFP_KERNEL);
> 
>         foo()->
> 
>             bar()->
> 
>                 page = find_or_create_page(some_mapping, ...);
> 
>         perthread_pages_release(unused_pages);
> 
> find_or_create() pages will use pages reserved for this thread and,
> hence, is guaranteed to succeed (given correct reservation).
> 
> Alternative is to pass some sort of handle all the way down to actual
> calls to allocator, and to modify all generic code to use reservations.

Maybe I'm being thick, but I don't see how you can protect the reservation
of an outer reserver in the above way:

	perthread_pages_reserve(10);
	...				/* current->private_pages_count = 10 */
		perthread_pages_reserve(10)	/* private_pages_count = 20 */
		use 5 pages			/* private_pages_count = 15 */
		perthread_pages_release(5);

But how does the caller come up with the final "5"?

Seems better to me if prethread_pages_reserve() were to return the initial
value of private_pages_count, so the caller can do:

	old = perthread_pages_reserve(10);
		use 5 pages
	perthread_pages_release(old);

or whatever.

That kinda stinks too in a way, because both the outer and the inner
callers need to overallocate pages on behalf of the worst case user in some
deep call stack.

And the whole idea is pretty flaky really - how can one precalculate how
much memory an arbitrary md-on-dm-on-loop-on-md-on-NBD stack will want to
use?  It really would be better if we could drop the whole patch and make
reiser4 behave more sanely when its writepage is called with for_reclaim=1.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  2005-01-07 12:45                     ` Rafael J. Wysocki
@ 2005-01-07 22:12                       ` Nigel Cunningham
  2005-01-08  0:56                         ` Rafael J. Wysocki
  0 siblings, 1 reply; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-07 22:12 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Pavel Machek, Linux Kernel Mailing List

Hi.

On Fri, 2005-01-07 at 23:45, Rafael J. Wysocki wrote:
> > ..so... could you go through sysdev_register()s, one by one,
> > commenting them to see which one causes the regression? That driver
> > then needs to be fixed.
> > 
> > Go after mtrr and time in first places.
> 
> OK, but it'll take some time.

There's an MTRR fix in the -overloaded ck patches. Perhaps it is what
you're after. (Or perhaps it's already included :>)

http://kem.p.lodz.pl/~peter/cko/fixes/2.6.10-cko1-swsusp_fix.patch

Regards,

Nigel


-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 21:24                   ` Andrew Morton
  2005-01-07 21:24                     ` Andi Kleen
@ 2005-01-07 22:12                     ` Nikita Danilov
  2005-01-07 23:03                       ` Andrew Morton
  2005-01-25 16:39                     ` reiser4 core patches: [Was: [RFC] per thread page reservation patch] Vladimir Saveliev
  2 siblings, 1 reply; 246+ messages in thread
From: Nikita Danilov @ 2005-01-07 22:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: pmarques, linux-mm, linux-kernel, hch

Andrew Morton <akpm@osdl.org> writes:

[...]

>
> Maybe I'm being thick, but I don't see how you can protect the reservation
> of an outer reserver in the above way:
>
> 	perthread_pages_reserve(10);
> 	...				/* current->private_pages_count = 10 */
> 		perthread_pages_reserve(10)	/* private_pages_count = 20 */
> 		use 5 pages			/* private_pages_count = 15 */
> 		perthread_pages_release(5);
>
> But how does the caller come up with the final "5"?

	wasreserved = perthread_pages_count();
	result = perthread_pages_reserve(estimate_reserve(), GFP_KERNEL);
	if (result != 0)
		return result;

    /* do something that consumes reservation */

	perthread_pages_release(perthread_pages_count() - wasreserved);

>
> Seems better to me if prethread_pages_reserve() were to return the initial
> value of private_pages_count, so the caller can do:
>
> 	old = perthread_pages_reserve(10);
> 		use 5 pages
> 	perthread_pages_release(old);
>
> or whatever.
>
> That kinda stinks too in a way, because both the outer and the inner
> callers need to overallocate pages on behalf of the worst case user in some
> deep call stack.
>
> And the whole idea is pretty flaky really - how can one precalculate how
> much memory an arbitrary md-on-dm-on-loop-on-md-on-NBD stack will want to
> use?  It really would be better if we could drop the whole patch and make
> reiser4 behave more sanely when its writepage is called with for_reclaim=1.

Reiser4 doesn't use this for ->writepage(), by the way. This is used by
tree balancing code to assure that balancing cannot get -ENOMEM in the
middle of tree modification, because undo is _so_ very complicated.

Nikita.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 22:12                     ` Nikita Danilov
@ 2005-01-07 23:03                       ` Andrew Morton
  2005-01-07 23:17                         ` Nikita Danilov
  0 siblings, 1 reply; 246+ messages in thread
From: Andrew Morton @ 2005-01-07 23:03 UTC (permalink / raw)
  To: Nikita Danilov; +Cc: pmarques, linux-mm, linux-kernel, hch

Nikita Danilov <nikita@clusterfs.com> wrote:
>
> > And the whole idea is pretty flaky really - how can one precalculate how
> > much memory an arbitrary md-on-dm-on-loop-on-md-on-NBD stack will want to
> > use?  It really would be better if we could drop the whole patch and make
> > reiser4 behave more sanely when its writepage is called with for_reclaim=1.
> 
> Reiser4 doesn't use this for ->writepage(), by the way. This is used by
> tree balancing code to assure that balancing cannot get -ENOMEM in the
> middle of tree modification, because undo is _so_ very complicated.

Oh.  And that involves performing I/O, yes?

Why does the filesystem risk going oom during the rebalance anyway?  Is it
doing atomic allocations?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 23:03                       ` Andrew Morton
@ 2005-01-07 23:17                         ` Nikita Danilov
  2005-01-07 23:43                           ` Andrew Morton
  0 siblings, 1 reply; 246+ messages in thread
From: Nikita Danilov @ 2005-01-07 23:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: pmarques, linux-mm, linux-kernel, hch

Andrew Morton <akpm@osdl.org> writes:

> Nikita Danilov <nikita@clusterfs.com> wrote:
>>
>> > And the whole idea is pretty flaky really - how can one precalculate how
>> > much memory an arbitrary md-on-dm-on-loop-on-md-on-NBD stack will want to
>> > use?  It really would be better if we could drop the whole patch and make
>> > reiser4 behave more sanely when its writepage is called with for_reclaim=1.
>> 
>> Reiser4 doesn't use this for ->writepage(), by the way. This is used by
>> tree balancing code to assure that balancing cannot get -ENOMEM in the
>> middle of tree modification, because undo is _so_ very complicated.
>
> Oh.  And that involves performing I/O, yes?

Yes, balancing may read tree or bitmap nodes from the disk.

>
> Why does the filesystem risk going oom during the rebalance anyway?  Is it
> doing atomic allocations?

No, just __alloc_pages(GFP_KERNEL, 0, ...) returns NULL. When this
happens, the only thing balancing can do is to panic.

Nikita.



^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 23:17                         ` Nikita Danilov
@ 2005-01-07 23:43                           ` Andrew Morton
  2005-01-08 12:44                             ` Nikita Danilov
  2005-01-09 11:35                             ` Marcelo Tosatti
  0 siblings, 2 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-07 23:43 UTC (permalink / raw)
  To: Nikita Danilov; +Cc: pmarques, linux-mm, linux-kernel, hch

Nikita Danilov <nikita@clusterfs.com> wrote:
>
> >
> > Why does the filesystem risk going oom during the rebalance anyway?  Is it
> > doing atomic allocations?
> 
> No, just __alloc_pages(GFP_KERNEL, 0, ...) returns NULL. When this
> happens, the only thing balancing can do is to panic.

__alloc_pages(GFP_KERNEL, ...) doesn't return NULL.  It'll either succeed
or never return ;) That behaviour may change at any time of course, but it
does make me wonder why we're bothering with this at all.  Maybe it's
because of the possibility of a GFP_IO failure under your feet or
something?

What happens if reiser4 simply doesn't use this code?


If we introduce this mechanism, people will end up using it all over the
place.  Probably we could remove radix_tree_preload(), which is the only
similar code I can I can immediately think of.

Page reservation is not a bad thing per-se, but it does need serious
thought.

How does reiser4 end up deciding how many pages to reserve?  Gross
overkill?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-08  0:56 UTC (permalink / raw)
  To: ncunningham; +Cc: Pavel Machek, Linux Kernel Mailing List

On Friday, 7 of January 2005 23:12, Nigel Cunningham wrote:
> Hi.
> 
> On Fri, 2005-01-07 at 23:45, Rafael J. Wysocki wrote:
> > > ..so... could you go through sysdev_register()s, one by one,
> > > commenting them to see which one causes the regression? That driver
> > > then needs to be fixed.
> > > 
> > > Go after mtrr and time in first places.
> > 
> > OK, but it'll take some time.
> 
> There's an MTRR fix in the -overloaded ck patches. Perhaps it is what
> you're after. (Or perhaps it's already included :>)
> 
> http://kem.p.lodz.pl/~peter/cko/fixes/2.6.10-cko1-swsusp_fix.patch

Thanks for pointing it out.  I have adapted this patch to -mm2, but 
unfortunately it does not fix the issue.  Still searching. ;-)

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* AGP Oops (was Re: 2.6.10-mm2)
  2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
                               ` (16 preceding siblings ...)
  2005-01-07  9:39             ` 2.6.10-mm2 Benoit Boissinot
@ 2005-01-08  1:31             ` Sean Neakums
  2005-01-08  1:36               ` Andrew Morton
  17 siblings, 1 reply; 246+ messages in thread
From: Sean Neakums @ 2005-01-08  1:31 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Got the following upon starting X (Debian sid's 4.3.0.dfsg.1-10).
Was fine with 2.6.10-mm1.  Radeon card, VIA AGP.


Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
c025a386
*pde = 78f84067
Oops: 0000 [#1]
SMP
CPU:    1
EIP:    0060:[<c025a386>]    Not tainted VLI
EFLAGS: 00013246   (2.6.10-mm2)
EIP is at agp_bind_memory+0x56/0x80
eax: 00000000   ebx: 00000000   ecx: 00000000   edx: 00000000
esi: f027c0e0   edi: 00000000   ebp: f027c3a0   esp: f6c83f10
ds: 007b   es: 007b   ss: 0068
Process XFree86 (pid: 2160, threadinfo=f6c83000 task=efc3aaa0)
Stack: bffffab0 c0214a04 00000000 c23ed000 f7d6ff40 c02645df 00000000 0000a1b6
       00000000 00000000 00000001 00000000 00000036 c23ed000 c0264550 c025ffe5
       bffffab0 f6c83f50 00000005 bffff95c f6c83000 efc3aaa0 086de8c0 40086436
Call Trace:
 [<c0214a04>] copy_from_user+0x34/0x70
 [<c02645df>] drm_agp_bind+0x8f/0xf0
 [<c0264550>] drm_agp_bind+0x0/0xf0
 [<c025ffe5>] drm_ioctl+0x105/0x201
 [<c0163c1a>] do_ioctl+0x8a/0xb0
 [<c0163e5a>] sys_ioctl+0x7a/0x200
 [<c01025ad>] sysenter_past_esp+0x52/0x75
Code: 89 fa 8b 4e 20 8b 58 04 89 f0 ff 53 40 85 c0 75 07 c6 46 28 01 89 7e 1c 8b 5c 24 08 8b 74 24 0c 8b 7c 24 10 83 c4 14 c3 8b 46 08 <8b> 40 04 ff 50 34 c6 46 29 01 eb c6 89 74 24 04 c7 04 24 f4 d4

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: AGP Oops (was Re: 2.6.10-mm2)
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Andrew Morton @ 2005-01-08  1:36 UTC (permalink / raw)
  To: Sean Neakums; +Cc: linux-kernel

Sean Neakums <sneakums@zork.net> wrote:
>
> Got the following upon starting X (Debian sid's 4.3.0.dfsg.1-10).
> Was fine with 2.6.10-mm1.  Radeon card, VIA AGP.
> 

Did you have this?

--- 25/drivers/char/agp/generic.c~agpgart-add-bridge-assignment-missed-in-agp_allocate_memory	Thu Jan  6 15:50:18 2005
+++ 25-akpm/drivers/char/agp/generic.c	Thu Jan  6 15:50:18 2005
@@ -211,6 +211,7 @@ struct agp_memory *agp_allocate_memory(s
 		new->memory[i] = virt_to_phys(addr);
 		new->page_count++;
 	}
+       new->bridge = bridge;
 
 	flush_agp_mappings();
 
_


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-07  9:39             ` 2.6.10-mm2 Benoit Boissinot
  2005-01-07 13:13               ` 2.6.10-mm2 Brice Goglin
@ 2005-01-08  2:43               ` Dave Airlie
  2005-01-08 12:27                 ` 2.6.10-mm2 Benoit Boissinot
  1 sibling, 1 reply; 246+ messages in thread
From: Dave Airlie @ 2005-01-08  2:43 UTC (permalink / raw)
  To: Benoit Boissinot; +Cc: Andrew Morton, Mike Werner, linux-kernel

> When i launch neverball (3d games), X get killed and I have the
> following error in dmesg (3d card 9200SE, xserver : Xorg) :
> 
> [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
> 
> [drm:drm_unlock] *ERROR* Process 10657 using kernel context 0
> 

this looks like the agp backend isn't loading, Mike sent me parts of
your .config but I lost the mail (don't drink and read e-mail...)

make sure that the correct backend for your chipset is loaded (throw a
complete dmesg my way if you could.... I broke with tradition and
actually tested -mm2 on my own machine there now and I have a Radeon
9200 on an intel agp ...

Dave.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-08  0:56                         ` Rafael J. Wysocki
@ 2005-01-08  9:49                           ` Rafael J. Wysocki
  2005-01-08  9:56                             ` Nigel Cunningham
  2005-01-08 13:19                             ` Pavel Machek
  0 siblings, 2 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-08  9:49 UTC (permalink / raw)
  To: ncunningham, Pavel Machek; +Cc: Linux Kernel Mailing List

On Saturday, 8 of January 2005 01:56, Rafael J. Wysocki wrote:
> On Friday, 7 of January 2005 23:12, Nigel Cunningham wrote:
> > Hi.
> > 
> > On Fri, 2005-01-07 at 23:45, Rafael J. Wysocki wrote:
> > > > ..so... could you go through sysdev_register()s, one by one,
> > > > commenting them to see which one causes the regression? That driver
> > > > then needs to be fixed.
> > > > 
> > > > Go after mtrr and time in first places.
> > > 
> > > OK, but it'll take some time.
> > 
> > There's an MTRR fix in the -overloaded ck patches. Perhaps it is what
> > you're after. (Or perhaps it's already included :>)
> > 
> > http://kem.p.lodz.pl/~peter/cko/fixes/2.6.10-cko1-swsusp_fix.patch
> 
> Thanks for pointing it out.  I have adapted this patch to -mm2, but 
> unfortunately it does not fix the issue.  Still searching. ;-)

The regression is caused by the timer driver.  Obviously, turning 
timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go away.

It looks like a locking problem to me.  I'll try to find a fix, although 
someone who knows more about these things would probably do it faster. :-)

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  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
  1 sibling, 0 replies; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-08  9:56 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Pavel Machek, Linux Kernel Mailing List

Hi.

On Sat, 2005-01-08 at 20:49, Rafael J. Wysocki wrote:
> The regression is caused by the timer driver.  Obviously, turning 
> timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go away.
> 
> It looks like a locking problem to me.  I'll try to find a fix, although 
> someone who knows more about these things would probably do it faster. :-)

Can I get you to take a look at the patches I just posted; they might
need some more work for x86_64, but may be helpful.

Regards,

Nigel
-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08  2:43               ` 2.6.10-mm2 Dave Airlie
@ 2005-01-08 12:27                 ` Benoit Boissinot
  2005-01-08 13:42                   ` 2.6.10-mm2 Dave Airlie
  2005-01-08 13:48                   ` 2.6.10-mm2 Dave Airlie
  0 siblings, 2 replies; 246+ messages in thread
From: Benoit Boissinot @ 2005-01-08 12:27 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Andrew Morton, Mike Werner, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1139 bytes --]

On Sat, 8 Jan 2005 13:43:48 +1100, Dave Airlie <airlied@gmail.com> wrote:
> > When i launch neverball (3d games), X get killed and I have the
> > following error in dmesg (3d card 9200SE, xserver : Xorg) :
> >
> > [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
> >
> > [drm:drm_unlock] *ERROR* Process 10657 using kernel context 0
> >
> 
> this looks like the agp backend isn't loading, Mike sent me parts of
> your .config but I lost the mail (don't drink and read e-mail...)
> 

if you look at the .config, agp and agp_via are not build as modules.

> make sure that the correct backend for your chipset is loaded (throw a
> complete dmesg my way if you could.... I broke with tradition and
> actually tested -mm2 on my own machine there now and I have a Radeon
> 9200 on an intel agp ...
> 

from dmesg, it looks like agp is correctly loaded.

> Dave.
> 

Actually the error I reported first occurs when X starts, it happens a
second time when I launch neverball (and X get killed).

I attached a dmesg from right after X started, another after neverball
was launched.
output of lsmod and .config are attached to.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: lsmod.log --]
[-- Type: text/x-log; name="lsmod.log", Size: 809 bytes --]

Module                  Size  Used by
radeon                 67008  0 
drm                    54548  1 radeon
snd_seq                44688  0 
snd_via82xx            20960  0 
snd_ac97_codec         67936  1 snd_via82xx
snd_pcm                75400  2 snd_via82xx,snd_ac97_codec
snd_timer              19524  2 snd_seq,snd_pcm
snd_page_alloc          7556  2 snd_via82xx,snd_pcm
snd_mpu401_uart         5760  1 snd_via82xx
snd_rawmidi            17344  1 snd_mpu401_uart
snd_seq_device          6988  2 snd_seq,snd_rawmidi
snd                    40056  8 snd_seq,snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
soundcore               6880  1 snd
ide_cd                 36164  0 
cdrom                  35424  1 ide_cd
sk98lin               157088  0 

[-- Attachment #3: dmesg-after-x-launch --]
[-- Type: application/octet-stream, Size: 12255 bytes --]

Linux version 2.6.10-mm2-arakou (tonfa@arakou) (gcc version 3.3.5 (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7)) #11 Fri Jan 7 19:35:05 CET 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
On node 0 totalpages: 262140
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 225280 pages, LIFO batch:16
  HighMem zone: 32764 pages, LIFO batch:7
DMI 2.3 present.
ACPI: RSDP (v000 ASUS                                  ) @ 0x000f62a0
ACPI: RSDT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc000
ACPI: FADT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc0b2
ACPI: BOOT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc030
ACPI: MADT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc058
ACPI: DSDT (v001   ASUS A7V600   0x00001000 MSFT 0x0100000b) @ 0x00000000
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 6:10 APIC version 16
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 3, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Built 1 zonelists
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Initializing CPU#0
Kernel command line: root=/dev/hda6 video=vesa:mtrr vga=0x317
CPU 0 irqstacks, hard=c03c3000 soft=c03c2000
PID hash table entries: 4096 (order: 12, 65536 bytes)
Detected 1822.659 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1035824k/1048560k available (1810k kernel code, 12124k reserved, 810k data, 176k init, 131056k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3588.09 BogoMIPS (lpj=1794048)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(TM) XP 2500+ stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=-1
NET: Registered protocol family 16
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20041203
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 *10 11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 7 9 10 11 12)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *9 10 11 12)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 11 12) *15
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Via IRQ fixup
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
SCSI subsystem initialized
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically.  If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device().  As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior.  If this argument makes the device work again,
** please email the output of "lspci" to bjorn.helgaas@hp.com
** so I can fix the driver.
Simple Boot Flag at 0x3a set to 0x1
Machine check exception polling timer started.
highmem bounce pool size: 64 pages
Initializing Cryptographic API
vesafb: framebuffer at 0xe8000000, mapped to 0xf8880000, using 3072k, total 131072k
vesafb: mode is 1024x768x16, linelength=2048, pages=84
vesafb: protected mode interface info at c000:56f5
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
ACPI: Power Button (FF) [PWRF]
Real Time Clock Driver v1.12
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected VIA KT400/KT400A/KT600 chipset
agpgart: AGP aperture is 128M @ 0xf0000000
ACPI: PS/2 Keyboard Controller [PS2K] at I/O 0x60, 0x64, irq 1
ACPI: PS/2 Mouse Controller [PS2M] at irq 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
ACPI: Floppy Controller [FDC0] at I/O 0x3f2-0x3f5, 0x3f7 irq 6 dma channel 2
elevator: using anticipatory as default io scheduler
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:0f.1
ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 169
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1
    ide0: BM-DMA at 0x9400-0x9407, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x9408-0x940f, BIOS settings: hdc:DMA, hdd:DMA
Probing IDE interface ide0...
hda: Maxtor 6Y120P0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: JLMS XJ-HD166S, ATAPI CD/DVD-ROM drive
hdd: LITE-ON LTR-52327S, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 240121728 sectors (122942 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(133)
hda: cache flushes supported
 hda: hda1 hda2 hda4 < hda5 hda6 hda7 >
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP established hash table entries: 262144 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI wakeup devices: 
PCI0 PCI1 USB0 USB1 USB2 USB3 SU20 MC97 
ACPI: (supports S0 S1 S3 S4 S5)
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 176k freed
Adding 1951888k swap on /dev/hda2.  Priority:-1 extents:1
ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 18 (level, low) -> IRQ 177
ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 18 (level, low) -> IRQ 177
eth0: 3Com Gigabit LOM (3C940)
      PrefPort:A  RlmtMode:Check Link State
hdc: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
hdd: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
EXT2-fs warning (device hda1): ext2_fill_super: mounting ext3 filesystem as ext2

ReiserFS: hda7: found reiserfs format "3.6" with standard journal
ReiserFS: hda7: using ordered data mode
ReiserFS: hda7: journal params: device hda7, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda7: checking transaction log (hda7)
ReiserFS: hda7: Using r5 hash to sort names
ReiserFS: hda5: found reiserfs format "3.6" with standard journal
ReiserFS: hda5: using ordered data mode
ReiserFS: hda5: journal params: device hda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda5: checking transaction log (hda5)
ReiserFS: hda5: Using r5 hash to sort names
ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 185
PCI: Setting latency timer of device 0000:00:11.5 to 64
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
eth0: network connection up using port A
    speed:           100
    autonegotiation: yes
    duplex mode:     full
    flowctrl:        none
    irq moderation:  disabled
    scatter-gather:  enabled
[drm] Initialized drm 1.0.0 20040925
radeon: Unknown parameter `drm_debug'
[drm:drm_init] 
[drm:drm_probe] 
[drm:drm_probe] assigning minor 0
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 193
[drm:drm_ctxbitmap_next] drm_ctxbitmap_next bit : 0
[drm:drm_ctxbitmap_init] drm_ctxbitmap_init : 0
[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc RV280 [Radeon 9200 SE]
[drm:drm_probe] new minor assigned 0
[drm:drm_stub_open] 
[drm:drm_open_helper] pid = 10587, minor = 0
[drm:drm_setup] 
[drm:drm_ioctl] pid=10587, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap] 8192 13 f8f50000
[drm:drm_mmap] start = 0xafc90000, end = 0xafc92000, offset = 0xf8f50000
[drm:drm_vm_open] 0xafc90000,0x00002000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc90000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc91000
[drm:drm_ioctl] pid=10587, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0xe8000000, size = 0x08000000, type = 0
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
[drm:drm_ioctl] ret = ffffffed
[drm:drm_ioctl] pid=10587, cmd=0x40546440, nr=0x40, dev 0xe200, auth=1
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:drm_ioctl] ret = ffffffea
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0x4008642b, nr=0x2b, dev 0xe200, auth=1
[drm:drm_unlock] *ERROR* Process 10587 using kernel context 0
[drm:drm_ioctl] ret = ffffffea
[drm:drm_vm_shm_close] 0xafc90000,0x00002000
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 10587, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown] 
[drm:drm_takedown] mtrr_del=1

[-- Attachment #4: dmesg-after-neverball-launch --]
[-- Type: application/octet-stream, Size: 14999 bytes --]

Linux version 2.6.10-mm2-arakou (tonfa@arakou) (gcc version 3.3.5 (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7)) #11 Fri Jan 7 19:35:05 CET 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
On node 0 totalpages: 262140
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 225280 pages, LIFO batch:16
  HighMem zone: 32764 pages, LIFO batch:7
DMI 2.3 present.
ACPI: RSDP (v000 ASUS                                  ) @ 0x000f62a0
ACPI: RSDT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc000
ACPI: FADT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc0b2
ACPI: BOOT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc030
ACPI: MADT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc058
ACPI: DSDT (v001   ASUS A7V600   0x00001000 MSFT 0x0100000b) @ 0x00000000
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 6:10 APIC version 16
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 3, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Built 1 zonelists
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Initializing CPU#0
Kernel command line: root=/dev/hda6 video=vesa:mtrr vga=0x317
CPU 0 irqstacks, hard=c03c3000 soft=c03c2000
PID hash table entries: 4096 (order: 12, 65536 bytes)
Detected 1822.659 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1035824k/1048560k available (1810k kernel code, 12124k reserved, 810k data, 176k init, 131056k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3588.09 BogoMIPS (lpj=1794048)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(TM) XP 2500+ stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=-1
NET: Registered protocol family 16
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20041203
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 *10 11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 7 9 10 11 12)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *9 10 11 12)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 11 12) *15
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Via IRQ fixup
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
SCSI subsystem initialized
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically.  If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device().  As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior.  If this argument makes the device work again,
** please email the output of "lspci" to bjorn.helgaas@hp.com
** so I can fix the driver.
Simple Boot Flag at 0x3a set to 0x1
Machine check exception polling timer started.
highmem bounce pool size: 64 pages
Initializing Cryptographic API
vesafb: framebuffer at 0xe8000000, mapped to 0xf8880000, using 3072k, total 131072k
vesafb: mode is 1024x768x16, linelength=2048, pages=84
vesafb: protected mode interface info at c000:56f5
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
ACPI: Power Button (FF) [PWRF]
Real Time Clock Driver v1.12
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected VIA KT400/KT400A/KT600 chipset
agpgart: AGP aperture is 128M @ 0xf0000000
ACPI: PS/2 Keyboard Controller [PS2K] at I/O 0x60, 0x64, irq 1
ACPI: PS/2 Mouse Controller [PS2M] at irq 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
ACPI: Floppy Controller [FDC0] at I/O 0x3f2-0x3f5, 0x3f7 irq 6 dma channel 2
elevator: using anticipatory as default io scheduler
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:0f.1
ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 169
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1
    ide0: BM-DMA at 0x9400-0x9407, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x9408-0x940f, BIOS settings: hdc:DMA, hdd:DMA
Probing IDE interface ide0...
hda: Maxtor 6Y120P0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: JLMS XJ-HD166S, ATAPI CD/DVD-ROM drive
hdd: LITE-ON LTR-52327S, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 240121728 sectors (122942 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(133)
hda: cache flushes supported
 hda: hda1 hda2 hda4 < hda5 hda6 hda7 >
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP established hash table entries: 262144 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI wakeup devices: 
PCI0 PCI1 USB0 USB1 USB2 USB3 SU20 MC97 
ACPI: (supports S0 S1 S3 S4 S5)
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 176k freed
Adding 1951888k swap on /dev/hda2.  Priority:-1 extents:1
ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 18 (level, low) -> IRQ 177
ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 18 (level, low) -> IRQ 177
eth0: 3Com Gigabit LOM (3C940)
      PrefPort:A  RlmtMode:Check Link State
hdc: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
hdd: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
EXT2-fs warning (device hda1): ext2_fill_super: mounting ext3 filesystem as ext2

ReiserFS: hda7: found reiserfs format "3.6" with standard journal
ReiserFS: hda7: using ordered data mode
ReiserFS: hda7: journal params: device hda7, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda7: checking transaction log (hda7)
ReiserFS: hda7: Using r5 hash to sort names
ReiserFS: hda5: found reiserfs format "3.6" with standard journal
ReiserFS: hda5: using ordered data mode
ReiserFS: hda5: journal params: device hda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda5: checking transaction log (hda5)
ReiserFS: hda5: Using r5 hash to sort names
ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 185
PCI: Setting latency timer of device 0000:00:11.5 to 64
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
eth0: network connection up using port A
    speed:           100
    autonegotiation: yes
    duplex mode:     full
    flowctrl:        none
    irq moderation:  disabled
    scatter-gather:  enabled
[drm] Initialized drm 1.0.0 20040925
radeon: Unknown parameter `drm_debug'
[drm:drm_init] 
[drm:drm_probe] 
[drm:drm_probe] assigning minor 0
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 193
[drm:drm_ctxbitmap_next] drm_ctxbitmap_next bit : 0
[drm:drm_ctxbitmap_init] drm_ctxbitmap_init : 0
[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc RV280 [Radeon 9200 SE]
[drm:drm_probe] new minor assigned 0
[drm:drm_stub_open] 
[drm:drm_open_helper] pid = 10587, minor = 0
[drm:drm_setup] 
[drm:drm_ioctl] pid=10587, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap] 8192 13 f8f50000
[drm:drm_mmap] start = 0xafc90000, end = 0xafc92000, offset = 0xf8f50000
[drm:drm_vm_open] 0xafc90000,0x00002000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc90000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc91000
[drm:drm_ioctl] pid=10587, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0xe8000000, size = 0x08000000, type = 0
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
[drm:drm_ioctl] ret = ffffffed
[drm:drm_ioctl] pid=10587, cmd=0x40546440, nr=0x40, dev 0xe200, auth=1
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:drm_ioctl] ret = ffffffea
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10587, cmd=0x4008642b, nr=0x2b, dev 0xe200, auth=1
[drm:drm_unlock] *ERROR* Process 10587 using kernel context 0
[drm:drm_ioctl] ret = ffffffea
[drm:drm_vm_shm_close] 0xafc90000,0x00002000
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 10587, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown] 
[drm:drm_takedown] mtrr_del=1
[drm:drm_stub_open] 
[drm:drm_open_helper] pid = 10826, minor = 0
[drm:drm_setup] 
[drm:drm_ioctl] pid=10826, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 10826, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown] 
[drm:drm_stub_open] 
[drm:drm_open_helper] pid = 10826, minor = 0
[drm:drm_setup] 
[drm:drm_ioctl] pid=10826, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 10826, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown] 
[drm:drm_stub_open] 
[drm:drm_open_helper] pid = 10826, minor = 0
[drm:drm_setup] 
[drm:drm_ioctl] pid=10826, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap] 8192 13 f8f50000
[drm:drm_mmap] start = 0xafc90000, end = 0xafc92000, offset = 0xf8f50000
[drm:drm_vm_open] 0xafc90000,0x00002000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc90000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc91000
[drm:drm_ioctl] pid=10826, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0xe8000000, size = 0x08000000, type = 0
[drm:drm_ioctl] pid=10826, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
[drm:drm_ioctl] ret = ffffffed
[drm:drm_ioctl] pid=10826, cmd=0x40546440, nr=0x40, dev 0xe200, auth=1
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:drm_ioctl] ret = ffffffea
[drm:drm_ioctl] pid=10826, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10826, cmd=0x4008642b, nr=0x2b, dev 0xe200, auth=1
[drm:drm_unlock] *ERROR* Process 10826 using kernel context 0
[drm:drm_ioctl] ret = ffffffea
[drm:drm_vm_shm_close] 0xafc90000,0x00002000
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 10826, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown] 
[drm:drm_takedown] mtrr_del=1

[-- Attachment #5: config.gz --]
[-- Type: application/gzip, Size: 7844 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 23:43                           ` Andrew Morton
@ 2005-01-08 12:44                             ` Nikita Danilov
  2005-01-08 13:43                               ` Hugh Dickins
  2005-01-09 11:35                             ` Marcelo Tosatti
  1 sibling, 1 reply; 246+ messages in thread
From: Nikita Danilov @ 2005-01-08 12:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: pmarques, linux-mm, linux-kernel, hch

Andrew Morton <akpm@osdl.org> writes:

> Nikita Danilov <nikita@clusterfs.com> wrote:
>>
>> >
>> > Why does the filesystem risk going oom during the rebalance anyway?  Is it
>> > doing atomic allocations?
>> 
>> No, just __alloc_pages(GFP_KERNEL, 0, ...) returns NULL. When this
>> happens, the only thing balancing can do is to panic.
>
> __alloc_pages(GFP_KERNEL, ...) doesn't return NULL.  It'll either succeed
> or never return ;) That behaviour may change at any time of course, but it

Hmm... it used to, when I wrote that code.

> does make me wonder why we're bothering with this at all.  Maybe it's
> because of the possibility of a GFP_IO failure under your feet or
> something?

This is what happens:

 - we start inserting new item into balanced tree,

 - lock nodes on the leaf level and modify them

 - go to the parent level

 - lock nodes on the parent level and modify them. This may require
   allocating new nodes. If allocation fails---we have to panic, because
   tree is in inconsistent state and there is no roll-back; if allocation
   hangs forever---deadlock is on its way, because we are still keeping
   locks on nodes on the leaf level.

>
> What happens if reiser4 simply doesn't use this code?

At the time I tested it, it panicked after getting NULL from
__alloc_pages(). With current `do_retry' logic in __alloc_pages() it
will deadlock, I guess.

>
>
> If we introduce this mechanism, people will end up using it all over the
> place.  Probably we could remove radix_tree_preload(), which is the only
> similar code I can I can immediately think of.
>
> Page reservation is not a bad thing per-se, but it does need serious
> thought.
>
> How does reiser4 end up deciding how many pages to reserve?  Gross
> overkill?

Worst-case behavior of tree algorithms is well-known. Yes it's overkill.

Nikita.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: AGP Oops (was Re: 2.6.10-mm2)
  2005-01-08  1:36               ` Andrew Morton
@ 2005-01-08 13:01                 ` Sean Neakums
  0 siblings, 0 replies; 246+ messages in thread
From: Sean Neakums @ 2005-01-08 13:01 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton <akpm@osdl.org> writes:

> Sean Neakums <sneakums@zork.net> wrote:
>>
>> Got the following upon starting X (Debian sid's 4.3.0.dfsg.1-10).
>> Was fine with 2.6.10-mm1.  Radeon card, VIA AGP.
>> 
>
> Did you have this?

That fixes it.  Thanks!

> --- 25/drivers/char/agp/generic.c~agpgart-add-bridge-assignment-missed-in-agp_allocate_memory	Thu Jan  6 15:50:18 2005
> +++ 25-akpm/drivers/char/agp/generic.c	Thu Jan  6 15:50:18 2005
> @@ -211,6 +211,7 @@ struct agp_memory *agp_allocate_memory(s
>  		new->memory[i] = virt_to_phys(addr);
>  		new->page_count++;
>  	}
> +       new->bridge = bridge;
>  
>  	flush_agp_mappings();
>  
> _

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Pavel Machek @ 2005-01-08 13:19 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: ncunningham, Linux Kernel Mailing List

Hi!

> > Thanks for pointing it out.  I have adapted this patch to -mm2, but 
> > unfortunately it does not fix the issue.  Still searching. ;-)
> 
> The regression is caused by the timer driver.  Obviously, turning 
> timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go away.
> 
> It looks like a locking problem to me.  I'll try to find a fix, although 
> someone who knows more about these things would probably do it faster. :-)

(I do not have time right now, but...)

...you might want to look at i386 time code, they have common
ancestor, and i386 one seems to work.
								Pavel
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08 12:27                 ` 2.6.10-mm2 Benoit Boissinot
@ 2005-01-08 13:42                   ` Dave Airlie
  2005-01-08 14:18                     ` 2.6.10-mm2 Marc Ballarin
  2005-01-08 16:46                     ` 2.6.10-mm2 Mike Werner
  2005-01-08 13:48                   ` 2.6.10-mm2 Dave Airlie
  1 sibling, 2 replies; 246+ messages in thread
From: Dave Airlie @ 2005-01-08 13:42 UTC (permalink / raw)
  To: Benoit Boissinot; +Cc: Andrew Morton, Mike Werner, linux-kernel

> > >
> > > [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
> > >
> > > [drm:drm_unlock] *ERROR* Process 10657 using kernel context 0
> > >
> >
> > this looks like the agp backend isn't loading, Mike sent me parts of
> > your .config but I lost the mail (don't drink and read e-mail...)
> >
> 

it looks like agp_backend_acquire is returning NULL in this case, 
[drm:drm_ioctl] pid=10587, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
[drm:drm_ioctl] ret = ffffffed
is the agp acquire ioctl and the return is -ENODEV 

Any ideas Mike why that might happen?

Dave.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-08 12:44                             ` Nikita Danilov
@ 2005-01-08 13:43                               ` Hugh Dickins
  0 siblings, 0 replies; 246+ messages in thread
From: Hugh Dickins @ 2005-01-08 13:43 UTC (permalink / raw)
  To: Nikita Danilov; +Cc: Andrew Morton, pmarques, linux-mm, linux-kernel, hch

On Sat, 8 Jan 2005, Nikita Danilov wrote:
> Andrew Morton <akpm@osdl.org> writes:
> >
> > __alloc_pages(GFP_KERNEL, ...) doesn't return NULL.  It'll either succeed
> > or never return ;) That behaviour may change at any time of course, but it
> 
> Hmm... it used to, when I wrote that code.

And still does, if OOM decides to kill _your_ task: OOM sets PF_MEMDIE,
and then you don't get to go the retry route at all:

	/* This allocation should allow future memory freeing. */
	if ((p->flags & (PF_MEMALLOC | PF_MEMDIE)) && !in_interrupt()) {
		/* go through the zonelist yet again, ignoring mins */
		for (i = 0; (z = zones[i]) != NULL; i++) {
			page = buffered_rmqueue(z, order, gfp_mask);
			if (page)
				goto got_pg;
		}
		goto nopage;
	}
....
nopage:
	....
	return NULL;


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  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 13:48                   ` Dave Airlie
  2005-01-08 15:41                     ` 2.6.10-mm2 Benoit Boissinot
  1 sibling, 1 reply; 246+ messages in thread
From: Dave Airlie @ 2005-01-08 13:48 UTC (permalink / raw)
  To: Benoit Boissinot; +Cc: Andrew Morton, Mike Werner, linux-kernel

> 
> if you look at the .config, agp and agp_via are not build as modules.
> 

can you also try a build with vesafb turned off? I'm just wondering is
there maybe a resource conflict or something like that going on ...

Dave.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08 13:42                   ` 2.6.10-mm2 Dave Airlie
@ 2005-01-08 14:18                     ` Marc Ballarin
  2005-01-09  1:23                       ` 2.6.10-mm2 Dave Airlie
  2005-01-08 16:46                     ` 2.6.10-mm2 Mike Werner
  1 sibling, 1 reply; 246+ messages in thread
From: Marc Ballarin @ 2005-01-08 14:18 UTC (permalink / raw)
  To: Dave Airlie; +Cc: bboissin, akpm, werner, linux-kernel

On Sun, 9 Jan 2005 00:42:03 +1100
Dave Airlie <airlied@gmail.com> wrote:

> it looks like agp_backend_acquire is returning NULL in this case, 
> [drm:drm_ioctl] pid=10587, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
> [drm:drm_ioctl] ret = ffffffed
> is the agp acquire ioctl and the return is -ENODEV 
> 
> Any ideas Mike why that might happen?

Could this be the same issue discussed and fixed in another thread?

http://marc.theaimsgroup.com/?l=linux-kernel&m=110504486230527&w=2

Regards

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-08 13:19                             ` Pavel Machek
@ 2005-01-08 15:10                               ` Rafael J. Wysocki
  2005-01-08 15:44                                 ` Pavel Machek
  2005-01-08 17:22                                 ` 2.6.10-mm2: swsusp regression [update] Barry K. Nathan
  0 siblings, 2 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-08 15:10 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Linux Kernel Mailing List, ncunningham

On Saturday, 8 of January 2005 14:19, Pavel Machek wrote:
> Hi!
> 
> > > Thanks for pointing it out.  I have adapted this patch to -mm2, but 
> > > unfortunately it does not fix the issue.  Still searching. ;-)
> > 
> > The regression is caused by the timer driver.  Obviously, turning 
> > timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go away.
> > 
> > It looks like a locking problem to me.  I'll try to find a fix, although 
> > someone who knows more about these things would probably do it faster. :-)
> 
> (I do not have time right now, but...)
> 
> ..you might want to look at i386 time code, they have common
> ancestor, and i386 one seems to work.

Well, I need the help of The Wise. :-)

If I comment out only the modification of jiffies in timer_resume() in 
arch/x86_64/kernel/time.c (ie line 986), everything seems to work, but I get 
"APIC error on CPU0: 00(00)" after device_power_up(), which seems strange to 
me, because I boot with "noapic".  On the other hand, if it's not commented 
out (ie jiffies _is_ modified in timer_resume()), the machine hangs solid 
after executing device_power_up() in swsusp_suspend().

Right now I have no idea of what happens there, and it seems strange because 
in 2.6.10-mm1 the code in time.c is the same.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08 13:48                   ` 2.6.10-mm2 Dave Airlie
@ 2005-01-08 15:41                     ` Benoit Boissinot
  2005-01-09  1:38                       ` 2.6.10-mm2 Dave Airlie
  0 siblings, 1 reply; 246+ messages in thread
From: Benoit Boissinot @ 2005-01-08 15:41 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Andrew Morton, Mike Werner, linux-kernel

On Sun, 9 Jan 2005 00:48:56 +1100, Dave Airlie <airlied@gmail.com> wrote:
> >
> > if you look at the .config, agp and agp_via are not build as modules.
> >
> 
> can you also try a build with vesafb turned off? I'm just wondering is
> there maybe a resource conflict or something like that going on ...
> 
> Dave.
> 

Removing the framebuffer from the boot command line solved it... (with
the patch that Mike Werner posted ; without it, it oopsed).

Benoit.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  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-08 17:22                                 ` 2.6.10-mm2: swsusp regression [update] Barry K. Nathan
  1 sibling, 1 reply; 246+ messages in thread
From: Pavel Machek @ 2005-01-08 15:44 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Linux Kernel Mailing List, ncunningham

Hi!

> > > > Thanks for pointing it out.  I have adapted this patch to -mm2, but 
> > > > unfortunately it does not fix the issue.  Still searching. ;-)
> > > 
> > > The regression is caused by the timer driver.  Obviously, turning 
> > > timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go away.
> > > 
> > > It looks like a locking problem to me.  I'll try to find a fix, although 
> > > someone who knows more about these things would probably do it faster. :-)
> > 
> > (I do not have time right now, but...)
> > 
> > ..you might want to look at i386 time code, they have common
> > ancestor, and i386 one seems to work.
> 
> Well, I need the help of The Wise. :-)
> 
> If I comment out only the modification of jiffies in timer_resume() in 
> arch/x86_64/kernel/time.c (ie line 986), everything seems to work, but I get 
> "APIC error on CPU0: 00(00)" after device_power_up(), which seems strange to 
> me, because I boot with "noapic".  On the other hand, if it's not commented 
> out (ie jiffies _is_ modified in timer_resume()), the machine hangs solid 
> after executing device_power_up() in swsusp_suspend().

Perhaps calling handle_lost_ticks() like timer_interrupt does is right
thing to do?

> Right now I have no idea of what happens there, and it seems strange because 
> in 2.6.10-mm1 the code in time.c is the same.

Well, but in -mm1, the code is not actually called, right?

									Pavel
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08 13:42                   ` 2.6.10-mm2 Dave Airlie
  2005-01-08 14:18                     ` 2.6.10-mm2 Marc Ballarin
@ 2005-01-08 16:46                     ` Mike Werner
  1 sibling, 0 replies; 246+ messages in thread
From: Mike Werner @ 2005-01-08 16:46 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Benoit Boissinot, Andrew Morton, linux-kernel

Dave Airlie wrote:
> 
> > > >
> > > > [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
> > > >
> > > > [drm:drm_unlock] *ERROR* Process 10657 using kernel context 0
> > > >
> > >
> > > this looks like the agp backend isn't loading, Mike sent me parts of
> > > your .config but I lost the mail (don't drink and read e-mail...)
> > >
> >
> 
> it looks like agp_backend_acquire is returning NULL in this case,
> [drm:drm_ioctl] pid=10587, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
> [drm:drm_ioctl] ret = ffffffed
> is the agp acquire ioctl and the return is -ENODEV
> 
> Any ideas Mike why that might happen?
> 
> Dave.

If the bridge->agp_in_use is non-zero then drm_agp_acquire would return
-ENODEV.
Previously it would return -EBUSY in this case but agp_backend_acquire
now returns
a pointer to a bridge so there is no distinction made between existence
and busy.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-08 15:10                               ` Rafael J. Wysocki
  2005-01-08 15:44                                 ` Pavel Machek
@ 2005-01-08 17:22                                 ` Barry K. Nathan
  1 sibling, 0 replies; 246+ messages in thread
From: Barry K. Nathan @ 2005-01-08 17:22 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Pavel Machek, Linux Kernel Mailing List, ncunningham

On Sat, Jan 08, 2005 at 04:10:57PM +0100, Rafael J. Wysocki wrote:
> If I comment out only the modification of jiffies in timer_resume() in 
> arch/x86_64/kernel/time.c (ie line 986), everything seems to work, but I get 
> "APIC error on CPU0: 00(00)" after device_power_up(), which seems strange to 
> me, because I boot with "noapic".  On the other hand, if it's not commented 

Actually, I saw this APIC error too (on i386, with "noapic"), but I
ignored it because, aside from that message, all of my interrupt
problems were gone and I had fully working swsusp for the first time in
recorded history.

I should see what happens if I recompile with APIC support. Hopefully
I'll be able to get to that today.

-Barry K. Nathan <barryn@pobox.com>


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency
  2005-01-06 15:03             ` [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency Adrian Bunk
@ 2005-01-08 20:18               ` Jörn Engel
  0 siblings, 0 replies; 246+ messages in thread
From: Jörn Engel @ 2005-01-08 20:18 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Andrew Morton, dwmw2, linux-kernel, linux-mtd, Simon Evans, joern

On Thu, 6 January 2005 16:03:46 +0100, Adrian Bunk wrote:
> 
> The patch below fixes an obviously wrong dependency coming from Linus' 
> tree.

Acked.

Thanks!

> Signed-off-by: Adrian Bunk <bunk@stusta.de>
> 
> --- linux-2.6.10-mm2-full/drivers/mtd/devices/Kconfig.old	2005-01-06 16:00:49.000000000 +0100
> +++ linux-2.6.10-mm2-full/drivers/mtd/devices/Kconfig	2005-01-06 16:00:59.000000000 +0100
> @@ -127,7 +127,7 @@
>  
>  config MTD_BLOCK2MTD
>  	tristate "MTD using block device (rewrite)"
> -	depends on MTD || EXPERIMENTAL
> +	depends on MTD && EXPERIMENTAL
>  	help
>  	  This driver is basically the same at MTD_BLKMTD above, but
>  	  experienced some interface changes plus serious speedups.  In

Jörn

-- 
Fancy algorithms are buggier than simple ones, and they're much harder
to implement. Use simple algorithms as well as simple data structures.
-- Rob Pike

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08 14:18                     ` 2.6.10-mm2 Marc Ballarin
@ 2005-01-09  1:23                       ` Dave Airlie
  0 siblings, 0 replies; 246+ messages in thread
From: Dave Airlie @ 2005-01-09  1:23 UTC (permalink / raw)
  To: Marc Ballarin; +Cc: bboissin, akpm, werner, linux-kernel

> > Any ideas Mike why that might happen?
> 
> Could this be the same issue discussed and fixed in another thread?
> 
> http://marc.theaimsgroup.com/?l=linux-kernel&m=110504486230527&w=2
> 

that fix is needed anyways, but this happens before that...

Dave.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-07 13:13               ` 2.6.10-mm2 Brice Goglin
@ 2005-01-09  1:26                 ` Dave Airlie
  2005-01-09  8:55                   ` 2.6.10-mm2 Brice Goglin
  0 siblings, 1 reply; 246+ messages in thread
From: Dave Airlie @ 2005-01-09  1:26 UTC (permalink / raw)
  To: Brice.Goglin; +Cc: Andrew Morton, Benoit Boissinot, Mike Werner, linux-kernel

> 
> Same *ERROR* here on my Compaq Evo N600c (Radeon Mobility M6 LY).
> Xfree 4.3 from debian sarge doesn't crash but it's way too slow.
> Vanilla 2.6.10 works fine.

Can you post a dmesg, config and lspci for -mm2? I'm having trouble
figuring exactly the combination to mess it up..

Dave.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-08 15:41                     ` 2.6.10-mm2 Benoit Boissinot
@ 2005-01-09  1:38                       ` Dave Airlie
  2005-01-09 14:09                         ` 2.6.10-mm2 Benoit Boissinot
  0 siblings, 1 reply; 246+ messages in thread
From: Dave Airlie @ 2005-01-09  1:38 UTC (permalink / raw)
  To: Benoit Boissinot; +Cc: Andrew Morton, Mike Werner, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1452 bytes --]

> 
> Removing the framebuffer from the boot command line solved it... (with
> the patch that Mike Werner posted ; without it, it oopsed).
> 

That's a bit weird as nothing should be different, I've just built
vesafb into my kernel and booted and it works fine.. (with the oops
patch...)

vesafb: framebuffer at 0xe0000000, mapped to 0xe0880000, using 3072k,
total 131072k
vesafb: mode is 1024x768x16, linelength=2048, pages=84
vesafb: protected mode interface info at c000:56cd
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
ACPI: Processor [CPU1] (supports 8 throttling states)
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected an Intel 865 Chipset.
agpgart: AGP aperture is 128M @ 0x28000000

....
[drm] Initialized drm 1.0.0 20040925
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[drm] Initialized radeon 1.11.0 20020828 on minor 0:
agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode
agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode
[drm] Loading R200 Microcode

all good here... I'm trying to see if this could be a via only issue,
or something even more tricky....

If you could apply the patch I've attached (just adds some debug...)
it'll narrow it down a small bit where it is failing for me...

Thanks,
Dave.

[-- Attachment #2: my_agp_debug_patch --]
[-- Type: application/octet-stream, Size: 480 bytes --]

--- drivers/char/agp/backend.c.orig	2005-01-09 12:36:19.000000000 +1100
+++ drivers/char/agp/backend.c	2005-01-09 12:37:24.000000000 +1100
@@ -66,10 +66,16 @@
 	bridge = agp_generic_find_bridge(pdev);
 
 	if (!bridge)
+	{	
+		printk("agp_backend_acquire failed on find bridge\n");
 		return NULL;
+	}
 
 	if (atomic_read(&bridge->agp_in_use))
+	{
+		printk("agp_backend_acquire failed on atomic read\n");
 		return NULL;
+	}
 	atomic_inc(&bridge->agp_in_use);
 	return bridge;
 }

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-09  1:26                 ` 2.6.10-mm2 Dave Airlie
@ 2005-01-09  8:55                   ` Brice Goglin
  0 siblings, 0 replies; 246+ messages in thread
From: Brice Goglin @ 2005-01-09  8:55 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Andrew Morton, Benoit Boissinot, Mike Werner, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

Dave Airlie a écrit :
>>Same *ERROR* here on my Compaq Evo N600c (Radeon Mobility M6 LY).
>>Xfree 4.3 from debian sarge doesn't crash but it's way too slow.
>>Vanilla 2.6.10 works fine.
> 
> 
> Can you post a dmesg, config and lspci for -mm2? I'm having trouble
> figuring exactly the combination to mess it up..
> 
> Dave.

Everything is attached.

I passed drm_debug=1 to the kernel. All the drm debug messages appear
when I start X. Neverball is very slow (as if DRM was not enabled)
but does not show any new debug.

Regards
Brice

[-- Attachment #2: config.gz --]
[-- Type: application/x-gunzip, Size: 9149 bytes --]

[-- Attachment #3: dmesg.gz --]
[-- Type: application/x-gunzip, Size: 4726 bytes --]

[-- Attachment #4: lspci.gz --]
[-- Type: application/x-gunzip, Size: 1473 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-07 23:43                           ` Andrew Morton
  2005-01-08 12:44                             ` Nikita Danilov
@ 2005-01-09 11:35                             ` Marcelo Tosatti
  2005-01-09 18:16                               ` Nikita Danilov
  1 sibling, 1 reply; 246+ messages in thread
From: Marcelo Tosatti @ 2005-01-09 11:35 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Nikita Danilov, pmarques, linux-mm, linux-kernel, hch

On Fri, Jan 07, 2005 at 03:43:05PM -0800, Andrew Morton wrote:
> Nikita Danilov <nikita@clusterfs.com> wrote:
> >
> > >
> > > Why does the filesystem risk going oom during the rebalance anyway?  Is it
> > > doing atomic allocations?
> > 
> > No, just __alloc_pages(GFP_KERNEL, 0, ...) returns NULL. When this
> > happens, the only thing balancing can do is to panic.
> 
> __alloc_pages(GFP_KERNEL, ...) doesn't return NULL.  It'll either succeed
> or never return ;) That behaviour may change at any time of course, but it
> does make me wonder why we're bothering with this at all.  Maybe it's
> because of the possibility of a GFP_IO failure under your feet or
> something?
> 
> What happens if reiser4 simply doesn't use this code?
> 
> 
> If we introduce this mechanism, people will end up using it all over the
> place.  Probably we could remove radix_tree_preload(), which is the only
> similar code I can I can immediately think of.
> 
> Page reservation is not a bad thing per-se, but it does need serious
> thought.

Whenever scheme comes up I dont think the current check in __alloc_pages() is 
any good:

        if (order == 0) {
                page = perthread_pages_alloc();
                if (page != NULL)
                        return page;
        }

Two things:

- all instances of an allocator from the current thread will eat from the perthread
  reserves, you probably want only a few special allocations to eat from the reserves?
  Thing is its not really a reservation intended for emergency situations,
  rather a "generic per-thread pool" the way things are now.

- its a real fast path, we're adding quite some instructions there which are only
  used by reiserfs now.

I think in a "final" implementation emergency allocations should be explicitly stated 
as such by the callers ?

> How does reiser4 end up deciding how many pages to reserve?  Gross
> overkill?
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-09  1:38                       ` 2.6.10-mm2 Dave Airlie
@ 2005-01-09 14:09                         ` Benoit Boissinot
  2005-01-09 14:15                           ` 2.6.10-mm2 Brice Goglin
  0 siblings, 1 reply; 246+ messages in thread
From: Benoit Boissinot @ 2005-01-09 14:09 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Andrew Morton, Mike Werner, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 796 bytes --]

On Sun, 9 Jan 2005 12:38:33 +1100, Dave Airlie <airlied@gmail.com> wrote:
> >
> > Removing the framebuffer from the boot command line solved it... (with
> > the patch that Mike Werner posted ; without it, it oopsed).
> >
> 
> That's a bit weird as nothing should be different, I've just built
> vesafb into my kernel and booted and it works fine.. (with the oops
> patch...)
> 
> 
> all good here... I'm trying to see if this could be a via only issue,
> or something even more tricky....
> 
> If you could apply the patch I've attached (just adds some debug...)
> it'll narrow it down a small bit where it is failing for me...
> 

A dmesg from a boot with the patch applied is attached.

just in case it matters, i use the following boot command line options :
video=vesa:mtrr vga=0x317

Benoit

[-- Attachment #2: dmesg-agp-debug --]
[-- Type: application/octet-stream, Size: 12297 bytes --]

Linux version 2.6.10-mm2-arakou (tonfa@arakou) (gcc version 3.3.5 (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7)) #17 Sun Jan 9 14:54:35 CET 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
On node 0 totalpages: 262140
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 225280 pages, LIFO batch:16
  HighMem zone: 32764 pages, LIFO batch:7
DMI 2.3 present.
ACPI: RSDP (v000 ASUS                                  ) @ 0x000f62a0
ACPI: RSDT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc000
ACPI: FADT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc0b2
ACPI: BOOT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc030
ACPI: MADT (v001 ASUS   A7V600   0x42302e31 MSFT 0x31313031) @ 0x3fffc058
ACPI: DSDT (v001   ASUS A7V600   0x00001000 MSFT 0x0100000b) @ 0x00000000
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 6:10 APIC version 16
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 3, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Built 1 zonelists
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Initializing CPU#0
Kernel command line: root=/dev/hda6 video=vesa:mtrr vga=0x317
CPU 0 irqstacks, hard=c03c3000 soft=c03c2000
PID hash table entries: 4096 (order: 12, 65536 bytes)
Detected 1822.659 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1035824k/1048560k available (1810k kernel code, 12124k reserved, 810k data, 176k init, 131056k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3588.09 BogoMIPS (lpj=1794048)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(TM) XP 2500+ stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=-1
NET: Registered protocol family 16
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20041203
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 *10 11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 *5 6 7 9 10 11 12)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *9 10 11 12)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 11 12) *15
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Via IRQ fixup
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
SCSI subsystem initialized
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically.  If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device().  As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior.  If this argument makes the device work again,
** please email the output of "lspci" to bjorn.helgaas@hp.com
** so I can fix the driver.
Simple Boot Flag at 0x3a set to 0x1
Machine check exception polling timer started.
highmem bounce pool size: 64 pages
Initializing Cryptographic API
vesafb: framebuffer at 0xe8000000, mapped to 0xf8880000, using 3072k, total 131072k
vesafb: mode is 1024x768x16, linelength=2048, pages=84
vesafb: protected mode interface info at c000:56f5
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
ACPI: Power Button (FF) [PWRF]
Real Time Clock Driver v1.12
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected VIA KT400/KT400A/KT600 chipset
agpgart: AGP aperture is 128M @ 0xf0000000
ACPI: PS/2 Keyboard Controller [PS2K] at I/O 0x60, 0x64, irq 1
ACPI: PS/2 Mouse Controller [PS2M] at irq 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
ACPI: Floppy Controller [FDC0] at I/O 0x3f2-0x3f5, 0x3f7 irq 6 dma channel 2
elevator: using anticipatory as default io scheduler
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:0f.1
ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 169
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1
    ide0: BM-DMA at 0x9400-0x9407, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x9408-0x940f, BIOS settings: hdc:DMA, hdd:DMA
Probing IDE interface ide0...
hda: Maxtor 6Y120P0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: JLMS XJ-HD166S, ATAPI CD/DVD-ROM drive
hdd: LITE-ON LTR-52327S, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 240121728 sectors (122942 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(133)
hda: cache flushes supported
 hda: hda1 hda2 hda4 < hda5 hda6 hda7 >
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP established hash table entries: 262144 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI wakeup devices: 
PCI0 PCI1 USB0 USB1 USB2 USB3 SU20 MC97 
ACPI: (supports S0 S1 S3 S4 S5)
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 176k freed
Adding 1951888k swap on /dev/hda2.  Priority:-1 extents:1
ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 18 (level, low) -> IRQ 177
ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 18 (level, low) -> IRQ 177
eth0: 3Com Gigabit LOM (3C940)
      PrefPort:A  RlmtMode:Check Link State
hdc: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
hdd: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
EXT2-fs warning (device hda1): ext2_fill_super: mounting ext3 filesystem as ext2

ReiserFS: hda7: found reiserfs format "3.6" with standard journal
ReiserFS: hda7: using ordered data mode
ReiserFS: hda7: journal params: device hda7, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda7: checking transaction log (hda7)
ReiserFS: hda7: Using r5 hash to sort names
ReiserFS: hda5: found reiserfs format "3.6" with standard journal
ReiserFS: hda5: using ordered data mode
ReiserFS: hda5: journal params: device hda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda5: checking transaction log (hda5)
ReiserFS: hda5: Using r5 hash to sort names
ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 185
PCI: Setting latency timer of device 0000:00:11.5 to 64
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
eth0: network connection up using port A
    speed:           100
    autonegotiation: yes
    duplex mode:     full
    flowctrl:        none
    irq moderation:  disabled
    scatter-gather:  enabled
[drm] Initialized drm 1.0.0 20040925
radeon: Unknown parameter `drm_debug'
[drm:drm_init] 
[drm:drm_probe] 
[drm:drm_probe] assigning minor 0
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 193
agp_backend_acquire failed on atomic read
[drm:drm_ctxbitmap_next] drm_ctxbitmap_next bit : 0
[drm:drm_ctxbitmap_init] drm_ctxbitmap_init : 0
[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc RV280 [Radeon 9200 SE]
[drm:drm_probe] new minor assigned 0
[drm:drm_stub_open] 
[drm:drm_open_helper] pid = 10184, minor = 0
[drm:drm_setup] 
[drm:drm_ioctl] pid=10184, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0086401, nr=0x01, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0106407, nr=0x07, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_addmap] 8192 13 f8f50000
[drm:drm_mmap] start = 0xafc90000, end = 0xafc92000, offset = 0xf8f50000
[drm:drm_vm_open] 0xafc90000,0x00002000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc90000
[drm:drm_do_vm_shm_nopage] shm_nopage 0xafc91000
[drm:drm_ioctl] pid=10184, cmd=0xc0186415, nr=0x15, dev 0xe200, auth=1
[drm:drm_addmap] offset = 0xe8000000, size = 0x08000000, type = 0
[drm:drm_ioctl] pid=10184, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0x6430, nr=0x30, dev 0xe200, auth=1
[drm:drm_ioctl] ret = ffffffed
[drm:drm_ioctl] pid=10184, cmd=0x40546440, nr=0x40, dev 0xe200, auth=1
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:drm_ioctl] ret = ffffffea
[drm:drm_ioctl] pid=10184, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0xc0086426, nr=0x26, dev 0xe200, auth=1
[drm:drm_ioctl] pid=10184, cmd=0x4008642b, nr=0x2b, dev 0xe200, auth=1
[drm:drm_unlock] *ERROR* Process 10184 using kernel context 0
[drm:drm_ioctl] ret = ffffffea
[drm:drm_vm_shm_close] 0xafc90000,0x00002000
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 10184, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_takedown] 
[drm:drm_takedown] mtrr_del=1

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-09 14:09                         ` 2.6.10-mm2 Benoit Boissinot
@ 2005-01-09 14:15                           ` Brice Goglin
  2005-01-10  7:40                             ` 2.6.10-mm2 Dave Airlie
  0 siblings, 1 reply; 246+ messages in thread
From: Brice Goglin @ 2005-01-09 14:15 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Benoit Boissinot, Andrew Morton, Mike Werner, linux-kernel

>>If you could apply the patch I've attached (just adds some debug...)
>>it'll narrow it down a small bit where it is failing for me...
>>
> 
> A dmesg from a boot with the patch applied is attached.
> 
> just in case it matters, i use the following boot command line options :
> video=vesa:mtrr vga=0x317

I'm seeing "agp_backend_acquire failed on atomic read" too.
No command line options here.

Regards
Brice

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [RFC] per thread page reservation patch
  2005-01-09 11:35                             ` Marcelo Tosatti
@ 2005-01-09 18:16                               ` Nikita Danilov
  0 siblings, 0 replies; 246+ messages in thread
From: Nikita Danilov @ 2005-01-09 18:16 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: Andrew Morton, pmarques, linux-mm, linux-kernel, hch

Marcelo Tosatti <marcelo.tosatti@cyclades.com> writes:

[...]

>
> - all instances of an allocator from the current thread will eat from the perthread
>   reserves, you probably want only a few special allocations to eat from the reserves?
>   Thing is its not really a reservation intended for emergency situations,
>   rather a "generic per-thread pool" the way things are now.

Per-thread reservations are only useful when they are transparent. If
users have to call special function, or to pass special flag to
__alloc_pages() they might just use mempool as well. Idea is to reserve
some number of pages before starting complex operation so that generic
function (like find_get_page()) called as part of this operation are
guaranteed to succeed.

>
> - its a real fast path, we're adding quite some instructions there which are only
>   used by reiserfs now.

Yes, this worries me too. Possibly we should move this check below in
__alloc_pages(), so that per-thread reservation is only checked if
fast-path allocation failed.

Nikita.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-09 14:15                           ` 2.6.10-mm2 Brice Goglin
@ 2005-01-10  7:40                             ` Dave Airlie
  2005-01-10  7:49                               ` 2.6.10-mm2 Brice Goglin
  0 siblings, 1 reply; 246+ messages in thread
From: Dave Airlie @ 2005-01-10  7:40 UTC (permalink / raw)
  To: Brice.Goglin; +Cc: Benoit Boissinot, Andrew Morton, Mike Werner, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 369 bytes --]

On Sun, 09 Jan 2005 15:15:35 +0100, Brice Goglin
<Brice.Goglin@ens-lyon.fr> wrote:
> >>If you could apply the patch I've attached (just adds some debug...)
> >>it'll narrow it down a small bit where it is failing for me...
> >>

I've another patch on top of -mm2 anyone wanna try this.. i'm
interested in finding out when the atomic_inc actually is happening...

Dave.

[-- Attachment #2: part1 --]
[-- Type: application/octet-stream, Size: 1158 bytes --]

--- drivers/char/agp/backend.c.orig	2005-01-09 12:36:19.000000000 +1100
+++ drivers/char/agp/backend.c	2005-01-10 18:36:15.000000000 +1100
@@ -66,10 +66,17 @@
 	bridge = agp_generic_find_bridge(pdev);
 
 	if (!bridge)
+	{	
+		printk("agp_backend_acquire failed on find bridge\n");
 		return NULL;
+	}
 
 	if (atomic_read(&bridge->agp_in_use))
+	{
+		printk("agp_backend_acquire failed on atomic read\n");
 		return NULL;
+	}
+	printk("agp_backend_acquire: increase agp_in_use\n");
 	atomic_inc(&bridge->agp_in_use);
 	return bridge;
 }
@@ -87,8 +94,10 @@
 void agp_backend_release(struct agp_bridge_data *bridge)
 {
 
-	if (bridge)
+	if (bridge) {
+		printk("agp_backend_acquire: decrease agp_in_use\n");
 		atomic_dec(&bridge->agp_in_use);
+	}
 }
 EXPORT_SYMBOL(agp_backend_release);
 
--- drivers/char/agp/frontend.c.orig	2005-01-10 18:38:05.000000000 +1100
+++ drivers/char/agp/frontend.c	2005-01-10 18:36:52.000000000 +1100
@@ -794,6 +794,7 @@
         if (atomic_read(&agp_bridge->agp_in_use))
                 return -EBUSY;
 
+	printk("agpioc acquire increase agp_in_use\n");
 	atomic_inc(&agp_bridge->agp_in_use);
 
 	agp_fe.backend_acquired = TRUE;

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2
  2005-01-10  7:40                             ` 2.6.10-mm2 Dave Airlie
@ 2005-01-10  7:49                               ` Brice Goglin
       [not found]                                 ` <21d7e9970501100101353cf602@mail.gmail.com>
  0 siblings, 1 reply; 246+ messages in thread
From: Brice Goglin @ 2005-01-10  7:49 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Benoit Boissinot, Andrew Morton, Mike Werner, linux-kernel

> I've another patch on top of -mm2 anyone wanna try this.. i'm
> interested in finding out when the atomic_inc actually is happening...
> 
> Dave.

Hi,

I still only see "agp_backend_acquire failed on atomic read".

Regards
Brice

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2 solved
       [not found]                                 ` <21d7e9970501100101353cf602@mail.gmail.com>
@ 2005-01-10 10:14                                   ` Brice Goglin
  2005-01-10 16:41                                     ` Brice Goglin
  0 siblings, 1 reply; 246+ messages in thread
From: Brice Goglin @ 2005-01-10 10:14 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Benoit Boissinot, Andrew Morton, Linux Kernel

[-- Attachment #1: Type: text/plain, Size: 633 bytes --]

Dave Airlie a écrit :
>>I still only see "agp_backend_acquire failed on atomic read".
>
> do you see how many atomic inc and atomic decs there is?
> 
> send me the full dmesg...
> thanks,
> Dave.

The agp_in_use field of the bridge structure is never initialized.
That's the reason why atomic_read fails to read 0.

In vanilla, the bridge is allocated as a static global variable, and
thus initialized to 0 at init. In -mm, the bridge is kmalloc'ed, and
thus not initialized.

The attached patch fixes it and solves my problem (when combined with
http://lkml.org/lkml/2005/1/7/377). DRM is back with good performance.

Regards
Brice

[-- Attachment #2: fix_agp_in_use_init.diff --]
[-- Type: text/plain, Size: 308 bytes --]

--- linux-mm/drivers/char/agp/backend.c.orig	2005-01-10 10:36:13.000000000 +0100
+++ linux-mm/drivers/char/agp/backend.c	2005-01-10 10:34:35.000000000 +0100
@@ -235,6 +235,8 @@
 	if (!bridge)
 		return NULL;
 
+	atomic_set(&bridge->agp_in_use, 0);
+
 	if (list_empty(&agp_bridges))
 		agp_bridge = bridge;
 

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2 solved
  2005-01-10 10:14                                   ` 2.6.10-mm2 solved Brice Goglin
@ 2005-01-10 16:41                                     ` Brice Goglin
  0 siblings, 0 replies; 246+ messages in thread
From: Brice Goglin @ 2005-01-10 16:41 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Benoit Boissinot, Andrew Morton, Linux Kernel

[-- Attachment #1: Type: text/plain, Size: 492 bytes --]

> The attached patch fixes it and solves my problem (when combined with
> http://lkml.org/lkml/2005/1/7/377). DRM is back with good performance.

Actually, this doesn't fix Benoit's problem (even if we were initially
having the same errors (radeon_cp_init called without lock held)).

It seems that memsetting the whole bridge structure to 0 (instead of
juste the agp_in_use field) fixes Benoit's problem too.
No idea which field was responsible for this. New patch attached.

Regards,
Brice

[-- Attachment #2: fix_agp_bridge_init.diff --]
[-- Type: text/plain, Size: 308 bytes --]

--- linux-mm/drivers/char/agp/backend.c.orig	2005-01-10 10:36:13.000000000 +0100
+++ linux-mm/drivers/char/agp/backend.c	2005-01-10 10:34:35.000000000 +0100
@@ -235,6 +235,8 @@
 	if (!bridge)
 		return NULL;
 
+	memset(bridge, 0, sizeof(*bridge));
+
 	if (list_empty(&agp_bridges))
 		agp_bridge = bridge;
 

^ permalink raw reply	[flat|nested] 246+ messages in thread

* acpi_power_off on 2.6.10-mm3 WAS: Re: 2.6.10-mm2
  2005-01-06 12:06             ` 2.6.10-mm2 Marcos D. Marado Torres
@ 2005-01-11 14:08               ` Marcos D. Marado Torres
  0 siblings, 0 replies; 246+ messages in thread
From: Marcos D. Marado Torres @ 2005-01-11 14:08 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, 6 Jan 2005, Marcos D. Marado Torres wrote:

> On Thu, 6 Jan 2005, Andrew Morton wrote:
>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm2/
>> 
>> - Various minorish updates and fixes
>
> The acpi_power_off issue (acpi_power_off is called but the laptop doesn't 
> shut
> down) is back (in -mm1 already). I suspect it has never disappear completely:
> maybe it only happens in some cenarios (like "only when AC is plugged in" or
> something like that). The report is done, I'll try to get more info soon 
> (when
> does this happen and when it doesn't) and will report it by then.

This still happens in -mm3.
I'll try to see which patch is breaking it...

Mind Booster Noori

- -- 
/* *************************************************************** */
    Marcos Daniel Marado Torres	     AKA	Mind Booster Noori
    http://student.dei.uc.pt/~marado   -	  marado@student.dei.uc.pt
    () Join the ASCII ribbon campaign against html email, Microsoft
    /\ attachments and Software patents.   They endanger the World.
    Sign a petition against patents:  http://petition.eurolinux.org
/* *************************************************************** */
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Made with pgp4pine 1.76

iD8DBQFB493XmNlq8m+oD34RAjSXAJ0UeQfsEeBCje8GX9MJCJNw4RnUFwCg10yi
zFdcErqu1E3CVYgvFZa3Thg=
=stjp
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-08 15:44                                 ` Pavel Machek
@ 2005-01-12 18:51                                   ` Rafael J. Wysocki
  2005-01-12 21:01                                     ` Pavel Machek
  0 siblings, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-12 18:51 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Andi Kleen, Linux Kernel Mailing List, ncunningham

H,

On Saturday, 8 of January 2005 16:44, Pavel Machek wrote:
[-- snip --]
> > > > The regression is caused by the timer driver.  Obviously, turning 
> > > > timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go
> > > > away. 
[-- snip --]
> > > 
> > > ..you might want to look at i386 time code, they have common
> > > ancestor, and i386 one seems to work.

Well, I've changed timer_resume() in arch/x86_64/kernel/time.c into the 
following function:

static int timer_resume(struct sys_device *dev)
{
	unsigned long flags;
	unsigned long sec;
	unsigned long ctime = get_cmos_time();
	long sleep_length = (ctime - sleep_start) * HZ;

	if (vxtime.hpet_address)
		hpet_reenable();

	sec = ctime + clock_cmos_diff;
	write_seqlock_irqsave(&xtime_lock,flags);
	xtime.tv_sec = sec;
	xtime.tv_nsec = 0;
	write_sequnlock_irqrestore(&xtime_lock,flags);
	printk ("jiffies = %lu, sleep_length = %ld\n", jiffies, sleep_length);
	return 0;
}

and that's what I get from the log:

Jan 12 19:43:42 albercik kernel: jiffies = 4294847120, sleep_length = 
-3189288131000

(for example - the second number is always negative and huge).  Would it mean 
that get_cmos_time() needs fixing?

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  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-12 20:36             ` Michael S. Tsirkin
  2005-01-12 21:29               ` Greg KH
  1 sibling, 1 reply; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-12 20:36 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Takashi Iwai, ak, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, greg, VANDROVE

Hi!
I just noticed that my original patch says "ioctl_compat" all over the place
while the actual field name in -mm2 is "compat_ioctl". Doh.
Here's a replacement patch.
PS. Please dont flame me, I do not maintain out of kernel modules, myself :)

To make life bearable for out-of kernel modules, the following patch
adds 2 macros so that existance of unlocked_ioctl and compat_ioctl
can be easily detected.
 
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>

diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
--- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
+++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
@@ -907,6 +907,12 @@ typedef struct {
 
 typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
 
+/* These macros are for out of kernel modules to test that
+ * the kernel supports the unlocked_ioctl and compat_ioctl
+ * fields in struct file_operations. */
+#define HAVE_COMPAT_IOCTL 1
+#define HAVE_UNLOCKED_IOCTL 1
+
 /*
  * NOTE:
  * read, write, poll, fsync, readv, writev can be called

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-12 18:51                                   ` Rafael J. Wysocki
@ 2005-01-12 21:01                                     ` Pavel Machek
  2005-01-12 22:44                                       ` Rafael J. Wysocki
  0 siblings, 1 reply; 246+ messages in thread
From: Pavel Machek @ 2005-01-12 21:01 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Andi Kleen, Linux Kernel Mailing List, ncunningham

Hi!

> [-- snip --]
> > > > > The regression is caused by the timer driver.  Obviously, turning 
> > > > > timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it go
> > > > > away. 
> [-- snip --]
> > > > 
> > > > ..you might want to look at i386 time code, they have common
> > > > ancestor, and i386 one seems to work.
> 
> Well, I've changed timer_resume() in arch/x86_64/kernel/time.c into the 
> following function:

Ugh, looking at arch/i386/kernel/time.c... "This could have never
worked".

It does something like get_cmos_time() - get_cmos_time()*HZ. It looks
seriously wrong.

> (for example - the second number is always negative and huge).  Would it mean 
> that get_cmos_time() needs fixing?

get_cmos_time() looks okay, but timer){suspend,resume} looks
hopelessly broken.

								Pavel
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  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:13                 ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Andreas Dilger
  0 siblings, 2 replies; 246+ messages in thread
From: Greg KH @ 2005-01-12 21:29 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, Takashi Iwai, ak, mingo, rlrevell, linux-kernel,
	pavel, discuss, gordon.jin, alsa-devel, VANDROVE

On Wed, Jan 12, 2005 at 10:36:06PM +0200, Michael S. Tsirkin wrote:
> To make life bearable for out-of kernel modules, the following patch
> adds 2 macros so that existance of unlocked_ioctl and compat_ioctl
> can be easily detected.
>  
> Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> 
> diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
> --- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
> +++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
> @@ -907,6 +907,12 @@ typedef struct {
>  
>  typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
>  
> +/* These macros are for out of kernel modules to test that
> + * the kernel supports the unlocked_ioctl and compat_ioctl
> + * fields in struct file_operations. */
> +#define HAVE_COMPAT_IOCTL 1
> +#define HAVE_UNLOCKED_IOCTL 1

No, we do not do that in the kernel today, and I'm pretty sure we don't
want to start doing it (it would get _huge_ very quickly...)

Please don't apply this.  Remember, out-of-the-tree modules are on their
own.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  2005-01-12 21:29               ` Greg KH
@ 2005-01-12 21:43                 ` Andi Kleen
  2005-01-12 22:52                   ` Greg KH
  2005-01-12 22:13                 ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Andreas Dilger
  1 sibling, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-12 21:43 UTC (permalink / raw)
  To: Greg KH
  Cc: Michael S. Tsirkin, Andrew Morton, Takashi Iwai, ak, mingo,
	rlrevell, linux-kernel, pavel, discuss, gordon.jin, alsa-devel,
	VANDROVE

> No, we do not do that in the kernel today, and I'm pretty sure we don't

Actually we do. e.g. take a look at skbuff.h HAVE_*
There are other examples too.

> want to start doing it (it would get _huge_ very quickly...)

I disagree since the alternative is so ugly.


> Please don't apply this.  Remember, out-of-the-tree modules are on their
> own.

I don't know who made this "policy", but actively sabotating or denying 
useful facilities to free out of tree modules doesn't seem to be a 
very wise policy to me.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  2005-01-12 21:29               ` Greg KH
  2005-01-12 21:43                 ` Andi Kleen
@ 2005-01-12 22:13                 ` Andreas Dilger
  2005-01-12 22:58                   ` Greg KH
  1 sibling, 1 reply; 246+ messages in thread
From: Andreas Dilger @ 2005-01-12 22:13 UTC (permalink / raw)
  To: Greg KH
  Cc: Michael S. Tsirkin, Andrew Morton, Takashi Iwai, ak, mingo,
	rlrevell, linux-kernel, pavel, gordon.jin, VANDROVE

[-- Attachment #1: Type: text/plain, Size: 2017 bytes --]

On Jan 12, 2005  13:29 -0800, Greg KH wrote:
> On Wed, Jan 12, 2005 at 10:36:06PM +0200, Michael S. Tsirkin wrote:
> > To make life bearable for out-of kernel modules, the following patch
> > adds 2 macros so that existance of unlocked_ioctl and compat_ioctl
> > can be easily detected.
> >  
> > Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> > 
> > diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
> > --- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
> > +++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
> > @@ -907,6 +907,12 @@ typedef struct {
> >  
> >  typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
> >  
> > +/* These macros are for out of kernel modules to test that
> > + * the kernel supports the unlocked_ioctl and compat_ioctl
> > + * fields in struct file_operations. */
> > +#define HAVE_COMPAT_IOCTL 1
> > +#define HAVE_UNLOCKED_IOCTL 1
> 
> No, we do not do that in the kernel today, and I'm pretty sure we don't
> want to start doing it (it would get _huge_ very quickly...)
> 
> Please don't apply this.  Remember, out-of-the-tree modules are on their
> own.

Gee, thanks.  It's not like some out-of-tree code doesn't _want_ to go
into the core kernel, but usually the time between some code being
developed and when it is included is lengthy (i.e. "this feature won't
be accepted until lots of people use it").

You can't claim that this has never been done (e.g. KERNEL_HAS_O_DIRECT,
KERNEL_HAS_DIRECT_FILEIO in 2.4 kernels).  For code that needs to handle
multiple kernel versions this makes life far easier and doesn't actually
hurt anything.  It used to be that you could use LINUX_VERSION_CODE for
this kind of check, but that breaks down quickly with vendor kernels and
the long development cycle.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://members.shaw.ca/adilger/             http://members.shaw.ca/golinux/


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-12 21:01                                     ` Pavel Machek
@ 2005-01-12 22:44                                       ` Rafael J. Wysocki
  2005-01-12 22:46                                         ` Pavel Machek
  0 siblings, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-12 22:44 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Andi Kleen, Linux Kernel Mailing List, ncunningham

On Wednesday, 12 of January 2005 22:01, Pavel Machek wrote:
> Hi!
> 
> > [-- snip --]
> > > > > > The regression is caused by the timer driver.  Obviously, turning 
> > > > > > timer_resume() in arch/x86_64/kernel/time.c into a NOOP makes it 
go
> > > > > > away. 
> > [-- snip --]
> > > > > 
> > > > > ..you might want to look at i386 time code, they have common
> > > > > ancestor, and i386 one seems to work.
> > 
> > Well, I've changed timer_resume() in arch/x86_64/kernel/time.c into the 
> > following function:
> 
> Ugh, looking at arch/i386/kernel/time.c... "This could have never
> worked".
> 
> It does something like get_cmos_time() - get_cmos_time()*HZ. It looks
> seriously wrong.
> 
> > (for example - the second number is always negative and huge).  Would it 
mean 
> > that get_cmos_time() needs fixing?
> 
> get_cmos_time() looks okay, but timer){suspend,resume} looks
> hopelessly broken.

Well, why don't we convert them to noops, then, at least temporarily?

RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  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
  0 siblings, 2 replies; 246+ messages in thread
From: Pavel Machek @ 2005-01-12 22:46 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Andi Kleen, Linux Kernel Mailing List, ncunningham

Hi!

> > > (for example - the second number is always negative and huge).  Would it 
> mean 
> > > that get_cmos_time() needs fixing?
> > 
> > get_cmos_time() looks okay, but timer){suspend,resume} looks
> > hopelessly broken.
> 
> Well, why don't we convert them to noops, then, at least temporarily?

Actually, it was my analysis that was wrong. Did you try Nigel's trick
with updating wall_jiffies?
								Pavel
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  2005-01-12 21:43                 ` Andi Kleen
@ 2005-01-12 22:52                   ` Greg KH
  2005-01-12 23:10                     ` Andrew Morton
  0 siblings, 1 reply; 246+ messages in thread
From: Greg KH @ 2005-01-12 22:52 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Michael S. Tsirkin, Andrew Morton, Takashi Iwai, mingo, rlrevell,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, VANDROVE

On Wed, Jan 12, 2005 at 10:43:26PM +0100, Andi Kleen wrote:
> > No, we do not do that in the kernel today, and I'm pretty sure we don't
> 
> Actually we do. e.g. take a look at skbuff.h HAVE_*
> There are other examples too.
> 
> > want to start doing it (it would get _huge_ very quickly...)
> 
> I disagree since the alternative is so ugly.

But the main problem with this is, when do we start deleting the HAVE_
symbols?  After a relativly short period of time, they become useless,
as all kernels of the past year or two have that feature, and why even
test for it?

I agree, that for short term, vendor-patched kernels, it's nice to have
something like that to try to build your out-of-the-tree module.  But
move to get that module into the tree, or provide your favorite vendor
with the properly patched driver (hey, I can dream...)

And is the alternative (using autoconf to build tiny modules testing for
different features) that ugly?  Yeah, I hate autoconf too, but I thought
that work (kernel feature testing in autoconf) has already been done,
right?

> > Please don't apply this.  Remember, out-of-the-tree modules are on their
> > own.
> 
> I don't know who made this "policy", but actively sabotating or denying 
> useful facilities to free out of tree modules doesn't seem to be a 
> very wise policy to me.

I'm not trying to sabotage anything, I just don't want the maintaince of
a zillion HAVE_ macros to slowly overrun us until we drown under the
weight.  All to support some looney, ill-informed vendor that can never
get around to submitting their driver to mainline.

And as for that "policy", it's been stated in public by Andrew and
Linus and me (if I count for anything, doubtful...) a number of
documented times.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Greg KH @ 2005-01-12 22:58 UTC (permalink / raw)
  To: Michael S. Tsirkin, Andrew Morton, Takashi Iwai, ak, mingo,
	rlrevell, linux-kernel, pavel, gordon.jin, VANDROVE

On Wed, Jan 12, 2005 at 03:13:09PM -0700, Andreas Dilger wrote:
> On Jan 12, 2005  13:29 -0800, Greg KH wrote:
> > On Wed, Jan 12, 2005 at 10:36:06PM +0200, Michael S. Tsirkin wrote:
> > > To make life bearable for out-of kernel modules, the following patch
> > > adds 2 macros so that existance of unlocked_ioctl and compat_ioctl
> > > can be easily detected.
> > >  
> > > Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> > > 
> > > diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
> > > --- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
> > > +++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
> > > @@ -907,6 +907,12 @@ typedef struct {
> > >  
> > >  typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
> > >  
> > > +/* These macros are for out of kernel modules to test that
> > > + * the kernel supports the unlocked_ioctl and compat_ioctl
> > > + * fields in struct file_operations. */
> > > +#define HAVE_COMPAT_IOCTL 1
> > > +#define HAVE_UNLOCKED_IOCTL 1
> > 
> > No, we do not do that in the kernel today, and I'm pretty sure we don't
> > want to start doing it (it would get _huge_ very quickly...)
> > 
> > Please don't apply this.  Remember, out-of-the-tree modules are on their
> > own.
> 
> Gee, thanks.  It's not like some out-of-tree code doesn't _want_ to go
> into the core kernel, but usually the time between some code being
> developed and when it is included is lengthy (i.e. "this feature won't
> be accepted until lots of people use it").

I understand that, but for stuff like that, isn't it easier to just test
for VERSION?  Or use autoconf?

> You can't claim that this has never been done (e.g. KERNEL_HAS_O_DIRECT,
> KERNEL_HAS_DIRECT_FILEIO in 2.4 kernels).

That was because of the backport mess that 2.4 went through and vendor
kernels, right?

> For code that needs to handle
> multiple kernel versions this makes life far easier and doesn't actually
> hurt anything.  It used to be that you could use LINUX_VERSION_CODE for
> this kind of check, but that breaks down quickly with vendor kernels and
> the long development cycle.

What long development cycle?  The out-of-the-tree stuff?  Or the kernel
development stuff?

My main issue is when would we ever be able to remove such HAS macros?

And who specifically will be testing for these HAVE_COMPAT_IOCTL and
HAVE_UNLOCKED_IOCTL macros?  Will that code make it into the main tree
ever?  If not, why not?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  2005-01-12 22:46                                         ` Pavel Machek
@ 2005-01-12 22:58                                           ` Nigel Cunningham
  2005-01-12 23:02                                           ` Rafael J. Wysocki
  1 sibling, 0 replies; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-12 22:58 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Rafael J. Wysocki, Andi Kleen, Linux Kernel Mailing List

Hi.

On Thu, 2005-01-13 at 09:46, Pavel Machek wrote:
> Hi!
> 
> > > > (for example - the second number is always negative and huge).  Would it 
> > mean 
> > > > that get_cmos_time() needs fixing?
> > > 
> > > get_cmos_time() looks okay, but timer){suspend,resume} looks
> > > hopelessly broken.
> > 
> > Well, why don't we convert them to noops, then, at least temporarily?
> 
> Actually, it was my analysis that was wrong. Did you try Nigel's trick
> with updating wall_jiffies?

That bit's not mine.

Regards,

Nigel
-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-12 23:02 UTC (permalink / raw)
  To: Pavel Machek; +Cc: Andi Kleen, Linux Kernel Mailing List, ncunningham

Hi,

On Wednesday, 12 of January 2005 23:46, Pavel Machek wrote:
> Hi!
> 
> > > > (for example - the second number is always negative and huge).  Would 
it 
> > mean 
> > > > that get_cmos_time() needs fixing?
> > > 
> > > get_cmos_time() looks okay, but timer){suspend,resume} looks
> > > hopelessly broken.
> > 
> > Well, why don't we convert them to noops, then, at least temporarily?
> 
> Actually, it was my analysis that was wrong. Did you try Nigel's trick
> with updating wall_jiffies?

Do you mean to add

wall_jiffies +=  (ctime - sleep_start) * HZ;

or an equivalent at the end of timer_resume()?  I did and it helped a little.  
With it, the box hangs while executing device_resume() in swsusp_write().  
Without it, the box hangs earlier.

Still, it's sleep_start that has a wrong value, apparently (it shouldn't be 
negative, at least), and I see that Nigel has a patch that changes 
__get_cmos_time() on x86_64.  I'm going to try it in a couple of minutes.

Greets,
RJW

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  2005-01-12 22:52                   ` Greg KH
@ 2005-01-12 23:10                     ` Andrew Morton
  2005-01-12 23:16                       ` Greg KH
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
  0 siblings, 2 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-12 23:10 UTC (permalink / raw)
  To: Greg KH
  Cc: ak, mst, tiwai, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, VANDROVE

Greg KH <greg@kroah.com> wrote:
>
> On Wed, Jan 12, 2005 at 10:43:26PM +0100, Andi Kleen wrote:
> > > No, we do not do that in the kernel today, and I'm pretty sure we don't
> > 
> > Actually we do. e.g. take a look at skbuff.h HAVE_*
> > There are other examples too.
> > 
> > > want to start doing it (it would get _huge_ very quickly...)
> > 
> > I disagree since the alternative is so ugly.
> 
> But the main problem with this is, when do we start deleting the HAVE_
> symbols?

This is a self-correcting system.  If the symbols are so offensive, someone
will get offended and will submit a patch to delete them at the appropriate
time.  If they're not so offensive then we've nothing to care about.

> ...
> And as for that "policy", it's been stated in public by Andrew and
> Linus and me (if I count for anything, doubtful...) a number of
> documented times.

not me ;) It's two lines of code and makes things much simpler for the
users of our work.  Seems a no-brainer.

And practically speaking, we don't make such fundamental driver-visible
changes _that_ often - if we end up getting buried under a proliferation of
HAVE_FOO macros, then the presence of the macros is the least of our
problems, yes?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Greg KH @ 2005-01-12 23:16 UTC (permalink / raw)
  To: Andrew Morton
  Cc: ak, mst, tiwai, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, VANDROVE

On Wed, Jan 12, 2005 at 03:10:49PM -0800, Andrew Morton wrote:
> Greg KH <greg@kroah.com> wrote:
> > ...
> > And as for that "policy", it's been stated in public by Andrew and
> > Linus and me (if I count for anything, doubtful...) a number of
> > documented times.
> 
> not me ;) It's two lines of code and makes things much simpler for the
> users of our work.  Seems a no-brainer.

Sorry, the "policy" I was referring to was the "out-of-the-tree drivers
are on their own" statement.  Not the use of the HAVE macros.

> And practically speaking, we don't make such fundamental driver-visible
> changes _that_ often - if we end up getting buried under a proliferation of
> HAVE_FOO macros, then the presence of the macros is the least of our
> problems, yes?

Ok, but can someone add a section in the feature-removal-schedule.txt
file about when these specific macros will be removed?  They must be
created with some specific use in mind, right?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.10-mm2: swsusp regression [update]
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-12 23:28 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Pavel Machek, Andi Kleen, Linux Kernel Mailing List

Hi.

On Thu, 2005-01-13 at 10:02, Rafael J. Wysocki wrote:
> Still, it's sleep_start that has a wrong value, apparently (it shouldn't be 
> negative, at least), and I see that Nigel has a patch that changes 
> __get_cmos_time() on x86_64.  I'm going to try it in a couple of minutes.

I sent a group of four patches, I think on Saturday. The first one is
the one Pavel wrongly attributed to me. The other three are mine. I
think you might need all four to get it working right.

Nigel
-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] Fix a bug in timer_suspend() on x86_64
  2005-01-12 23:28                                             ` Nigel Cunningham
@ 2005-01-13  0:59                                               ` Rafael J. Wysocki
  2005-01-13 10:08                                                 ` Pavel Machek
  2005-01-13 19:47                                                 ` Andi Kleen
  0 siblings, 2 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-13  0:59 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Andi Kleen, Linux Kernel Mailing List, ncunningham, Pavel Machek

Hi,

This patch is intended to fix a bug in timer_suspend() on x86_64 that causes 
hard lockups on suspend with swsusp and provide some optimizations.  It is 
based on the Nigel Cunningham's patches to to reduce delay in 
arch/kernel/time.c.  The patch is against 2.6.10-mm3 and 2.6.11-rc1.  Please 
consider for applying.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

--- linux-2.6.10-mm3-orig/arch/x86_64/kernel/time.c	2005-01-13 
01:46:10.000000000 +0100
+++ linux-2.6.10-mm3/arch/x86_64/kernel/time.c	2005-01-13 01:32:05.000000000 
+0100
@@ -955,16 +955,19 @@
 
 __setup("report_lost_ticks", time_setup);
 
-static long clock_cmos_diff, sleep_start;
+static long clock_cmos_diff;
+static unsigned long sleep_start;
 
 static int timer_suspend(struct sys_device *dev, u32 state)
 {
 	/*
 	 * Estimate time zone so that set_time can update the clock
 	 */
-	clock_cmos_diff = -get_cmos_time();
+	long cmos_time =  get_cmos_time();
+
+	clock_cmos_diff = -cmos_time;
 	clock_cmos_diff += get_seconds();
-	sleep_start = jiffies;
+	sleep_start = cmos_time;
 	return 0;
 }
 
@@ -973,7 +976,7 @@
 	unsigned long flags;
 	unsigned long sec;
 	unsigned long ctime = get_cmos_time();
-	unsigned long sleep_length = ctime - sleep_start;
+	unsigned long sleep_length = (ctime - sleep_start) * HZ;
 
 	if (vxtime.hpet_address)
 		hpet_reenable();
@@ -983,7 +986,8 @@
 	xtime.tv_sec = sec;
 	xtime.tv_nsec = 0;
 	write_sequnlock_irqrestore(&xtime_lock,flags);
-	jiffies += sleep_length * HZ;
+	jiffies += sleep_length;
+	wall_jiffies += sleep_length;
 	return 0;
 }
 

-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] Fix a bug in timer_suspend() on x86_64
  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
  1 sibling, 1 reply; 246+ messages in thread
From: Pavel Machek @ 2005-01-13 10:08 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Andrew Morton, Andi Kleen, Linux Kernel Mailing List, ncunningham

Hi!

> This patch is intended to fix a bug in timer_suspend() on x86_64 that causes 
> hard lockups on suspend with swsusp and provide some optimizations.  It is 
> based on the Nigel Cunningham's patches to to reduce delay in 
> arch/kernel/time.c.  The patch is against 2.6.10-mm3 and 2.6.11-rc1.  Please 
> consider for applying.
> 
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

Acked-by: Pavel Machek.
								Pavel

-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] Fix a bug in timer_suspend() on x86_64
  2005-01-13 10:08                                                 ` Pavel Machek
@ 2005-01-13 10:14                                                   ` Nigel Cunningham
  0 siblings, 0 replies; 246+ messages in thread
From: Nigel Cunningham @ 2005-01-13 10:14 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Rafael J. Wysocki, Andrew Morton, Andi Kleen, Linux Kernel Mailing List

On Thu, 2005-01-13 at 21:08, Pavel Machek wrote:
> Hi!
> 
> > This patch is intended to fix a bug in timer_suspend() on x86_64 that causes 
> > hard lockups on suspend with swsusp and provide some optimizations.  It is 
> > based on the Nigel Cunningham's patches to to reduce delay in 
> > arch/kernel/time.c.  The patch is against 2.6.10-mm3 and 2.6.11-rc1.  Please 
> > consider for applying.
> > 
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> 
> Acked-by: Pavel Machek.

Acked-by: Nigel Cunningham

(If that's worth anything :>)

-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com

Ph: +61 (2) 6292 8028      Mob: +61 (417) 100 574


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  2005-01-12 22:58                   ` Greg KH
@ 2005-01-13 10:57                     ` Takashi Iwai
  0 siblings, 0 replies; 246+ messages in thread
From: Takashi Iwai @ 2005-01-13 10:57 UTC (permalink / raw)
  To: Greg KH
  Cc: Michael S. Tsirkin, Andrew Morton, ak, mingo, rlrevell,
	linux-kernel, pavel, gordon.jin, VANDROVE

At Wed, 12 Jan 2005 14:58:19 -0800,
Greg KH wrote:
> 
> On Wed, Jan 12, 2005 at 03:13:09PM -0700, Andreas Dilger wrote:
> > On Jan 12, 2005  13:29 -0800, Greg KH wrote:
> > > On Wed, Jan 12, 2005 at 10:36:06PM +0200, Michael S. Tsirkin wrote:
> > > > To make life bearable for out-of kernel modules, the following patch
> > > > adds 2 macros so that existance of unlocked_ioctl and compat_ioctl
> > > > can be easily detected.
> > > >  
> > > > Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
> > > > 
> > > > diff -puN include/linux/fs.h~ioctl-rework include/linux/fs.h
> > > > --- 25/include/linux/fs.h~ioctl-rework	Thu Dec 16 15:48:31 2004
> > > > +++ 25-akpm/include/linux/fs.h	Thu Dec 16 15:48:31 2004
> > > > @@ -907,6 +907,12 @@ typedef struct {
> > > >  
> > > >  typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
> > > >  
> > > > +/* These macros are for out of kernel modules to test that
> > > > + * the kernel supports the unlocked_ioctl and compat_ioctl
> > > > + * fields in struct file_operations. */
> > > > +#define HAVE_COMPAT_IOCTL 1
> > > > +#define HAVE_UNLOCKED_IOCTL 1
> > > 
> > > No, we do not do that in the kernel today, and I'm pretty sure we don't
> > > want to start doing it (it would get _huge_ very quickly...)
> > > 
> > > Please don't apply this.  Remember, out-of-the-tree modules are on their
> > > own.
> > 
> > Gee, thanks.  It's not like some out-of-tree code doesn't _want_ to go
> > into the core kernel, but usually the time between some code being
> > developed and when it is included is lengthy (i.e. "this feature won't
> > be accepted until lots of people use it").
> 
> I understand that, but for stuff like that, isn't it easier to just test
> for VERSION?  Or use autoconf?
> 
> > For code that needs to handle
> > multiple kernel versions this makes life far easier and doesn't actually
> > hurt anything.  It used to be that you could use LINUX_VERSION_CODE for
> > this kind of check, but that breaks down quickly with vendor kernels and
> > the long development cycle.
> 
> What long development cycle?  The out-of-the-tree stuff?  Or the kernel
> development stuff?

I guess the latter.  Imagine that the stuff already exists in mm tree 
but the merge to the maintree is delayed.  In this case,
KERNEL_VERSION check doesn't work reliably.  But, it's a rare case,
AFAIK.

> My main issue is when would we ever be able to remove such HAS macros?

Here I agree with Greg.  It'll be difficult to remove it once after
added.  Nobody knows whether the external stuff still refers to it or
not...

> And who specifically will be testing for these HAVE_COMPAT_IOCTL and
> HAVE_UNLOCKED_IOCTL macros?  Will that code make it into the main tree
> ever?  If not, why not?

ALSA, for example, still offers for 2.2, 2.4 and older 2.6 kernels.
So it requires checks for such kernel API changes.  I would do this
via autoconf without problem if HAS_* isn't introduced, though.


Takashi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] Fix a bug in timer_suspend() on x86_64
  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 19:47                                                 ` Andi Kleen
  1 sibling, 0 replies; 246+ messages in thread
From: Andi Kleen @ 2005-01-13 19:47 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Andrew Morton, Andi Kleen, Linux Kernel Mailing List,
	ncunningham, Pavel Machek

On Thu, Jan 13, 2005 at 01:59:16AM +0100, Rafael J. Wysocki wrote:
> Hi,
> 
> This patch is intended to fix a bug in timer_suspend() on x86_64 that causes 
> hard lockups on suspend with swsusp and provide some optimizations.  It is 
> based on the Nigel Cunningham's patches to to reduce delay in 
> arch/kernel/time.c.  The patch is against 2.6.10-mm3 and 2.6.11-rc1.  Please 
> consider for applying.
> 
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

Thanks, Added to my tree.

-Andi


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl
  2005-01-12 23:16                       ` Greg KH
@ 2005-01-16  5:38                         ` Werner Almesberger
  0 siblings, 0 replies; 246+ messages in thread
From: Werner Almesberger @ 2005-01-16  5:38 UTC (permalink / raw)
  To: Greg KH
  Cc: Andrew Morton, ak, mst, tiwai, mingo, rlrevell, linux-kernel,
	pavel, gordon.jin, VANDROVE

[ Cc:s trimmed a little ]

Greg KH wrote:
> Sorry, the "policy" I was referring to was the "out-of-the-tree drivers
> are on their own" statement.  Not the use of the HAVE macros.

Not all users of kernel code are in- or out-of-tree drivers and the
like. E.g. tcsim (from tcng.sf.net) grabs substantial portions of
the traffic control and netlink code and merges them with user
space. It also tries to be compatible with most 2.4 kernels.

For feature tests, I use basically anything that doesn't run away
quickly enough. And I'm sure you want none of *that* kind of code 
anywhere near mainline ;-)

Not that I currently have more troubles with it than usually. I
just want to point out that there are other, strange but legitimate
(at least in the "all shall eventually be GPL" sense) users of the
kernel, who don't mind a friendly environment.

- Werner

-- 
  _________________________________________________________________________
 / Werner Almesberger, Buenos Aires, Argentina         wa@almesberger.net /
/_http://www.almesberger.net/____________________________________________/

^ permalink raw reply	[flat|nested] 246+ messages in thread

* 2.6.11-rc1-mm2
@ 2005-01-20  5:38                       ` Andrew Morton
  2005-01-20  6:53                         ` 2.6.11-rc1-mm2: CONFIG_SMP=n compile error Adrian Bunk
                                           ` (7 more replies)
  0 siblings, 8 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-20  5:38 UTC (permalink / raw)
  To: linux-kernel


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc1-mm2/

- There are a bunch of ioctl() and compat_ioctl() changes in here which seem
  to be of dubious maturity.  Could people involved in this area please
  review, test and let me know?

- A revamp of the kexec and crashdump patches.  Anyone who is interested in
  this work, please help to get this ball rolling a little faster?

- This kernel isn't particularly well-tested, sorry.  I've been a bit tied
  up with other stuff.



Changes since 2.6.11-rc1-mm1:


 linus.patch
 bk-arm.patch
 bk-cifs.patch
 bk-drm.patch
 bk-drm-via.patch
 bk-ide-dev.patch
 bk-input.patch
 bk-dtor-input.patch
 bk-kbuild.patch
 bk-netdev.patch
 bk-ntfs.patch
 bk-xfs.patch

 Latest versions of various BK trees.

-sparc64-nodemask-build-fix.patch
-selinux-fix-error-handling-code-for-policy-load.patch
-generic-irq-code-missing-export-of-probe_irq_mask.patch
-infiniband-ipoib-use-correct-static-rate-in-ipoib.patch
-infiniband-mthca-trivial-formatting-fix.patch
-infiniband-mthca-support-rdma-atomic-attributes-in-qp-modify.patch
-infiniband-mthca-clean-up-allocation-mapping-of-hca-context-memory.patch
-infiniband-mthca-add-needed-rmb-in-event-queue-poll.patch
-infiniband-core-remove-debug-printk.patch
-infiniband-make-more-code-static.patch
-infiniband-core-set-byte_cnt-correctly-in-mad-completion.patch
-infiniband-core-add-qp-number-to-work-completion-struct.patch
-infiniband-core-add-node_type-and-phys_state-sysfs-attrs.patch
-infiniband-mthca-clean-up-computation-of-hca-memory-map.patch
-infiniband-core-fix-handling-of-0-hop-directed-route-mads.patch
-infiniband-core-add-more-parameters-to-process_mad.patch
-infiniband-core-add-qp_type-to-struct-ib_qp.patch
-infiniband-core-add-ib_find_cached_gid-function.patch
-infiniband-update-copyrights-for-new-year.patch
-infiniband-ipoib-move-structs-from-stack-to-device-private-struct.patch
-infiniband-core-rename-handle_outgoing_smp.patch
-mark-page-accessed-in-filemapc-not-quite-right.patch
-restore-net-sched-iptc-after-iptables-kmod-cleanup.patch
-ppc32-fix-mpc8272ads.patch
-ppc32-add-freescale-pq2fads-support.patch
-ppc64-make-hvlpevent_unregisterhandler-work.patch
-ppc64-make-iseries_veth-call-flush_scheduled_work.patch
-ppc64-iommu-avoid-isa-io-space-on-power3.patch
-frv-remove-mandatory-single-step-debugging-diversion.patch
-frv-excess-whitespace-cleanup.patch
-x86_64-i386-increase-command-line-size.patch
-x86_64-add-brackets-to-bitops.patch
-x86_64-move-early-cpu-detection-earlier.patch
-x86_64-disable-uselib-when-possible.patch
-x86_64-optimize-nodemask-operations-slightly.patch
-x86_64-fix-a-bug-in-timer_suspend.patch
-x86-consolidate-code-segment-base-calculation.patch
-swsusp-more-small-fixes.patch
-swsusp-dm-use-right-levels-for-device_suspend.patch
-swsusp-update-docs.patch
-acpi-comment-whitespace-updates.patch
-make-suspend-work-with-ioapic.patch
-swsusp-refrigerator-cleanups.patch
-uml-avoid-null-dereference-in-linec.patch
-uml-readd-config_magic_sysrq-for-uml.patch
-uml-commentary-addition-to-recent-sysemu-fix.patch
-uml-drop-unused-buffer_headh-header-from-hostfs.patch
-uml-delete-unused-header-umnh.patch
-uml-commentary-about-sigwinch-handling-for-consoles.patch
-uml-fail-xterm_open-when-we-have-no-display.patch
-uml-depend-on-usermode-in-drivers-block-kconfig-and-drop-arch-um-kconfig_block.patch
-uml-makefile-simplification-and-correction.patch
-uml-fix-compilation-for-missing-headers.patch
-uml-fix-some-uml-own-initcall-macros.patch
-uml-refuse-to-run-without-skas-if-no-tt-mode-in.patch
-uml-for-ubd-cmdline-param-use-colon-as-delimiter.patch
-uml-allow-free-ubd-flag-ordering.patch
-uml-move-code-from-ubd_user-to-ubd_kern.patch
-uml-fix-and-cleanup-code-in-ubd_kernc-coming-from-ubd_userc.patch
-uml-add-stack-content-to-dumps.patch
-uml-add-stack-addresses-to-dumps.patch
-uml-update-ld-scripts-to-newer-binutils.patch
-reintroduce-export_symboltask_nice-for-binfmt_elf32.patch
-csum_and_copy_from_user-gcc4-warning-fixes.patch
-csum_and_copy_from_user-gcc4-warning-fixes-m32r-fix.patch
-smbfs-fixes.patch
-fixups-for-block2mtd.patch
-lock-initializer-cleanup-networking.patch
-ext3-ea-revert-cleanup.patch
-ext3-ea-revert-old-ea-in-inode.patch
-ext3-ea-mbcache-cleanup.patch
-ext2-ea-race-in-ext-xattr-sharing-code.patch
-ext3-ea-ext3-do-not-use-journal_release_buffer.patch
-ext3-ea-ext3-factor-our-common-xattr-code-unnecessary-lock.patch
-ext3-ea-ext-no-spare-xattr-handler-slots-needed.patch
-ext3-ea-cleanup-and-prepare-ext3-for-in-inode-xattrs.patch
-ext3-ea-hide-ext3_get_inode_loc-in_mem-option.patch
-ext3-ea-in-inode-extended-attributes-for-ext3.patch
-ioctl-rework-2.patch
-ioctl-rework-2-fix.patch
-make-standard-conversions-work-with-compat_ioctl.patch
-fget_light-fput_light-for-ioctls.patch
-macros-to-detect-existance-of-unlocked_ioctl-and-ioctl_compat.patch
-fix-coredump_wait-deadlock-with-ptracer-tracee-on-shared-mm.patch
-fix-race-between-core-dumping-and-exec.patch
-fix-exec-deadlock-when-ptrace-used-inside-the-thread-group.patch
-ptrace-unlocked-access-to-last_siginfo-resending.patch
-clear-false-pending-signal-indication-in-core-dump.patch
-pcmcia-remove-irq_type_time.patch
-pcmcia-ignore-driver-irq-mask.patch
-pcmcia-remove-irq_mask-and-irq_list-parameters-from-pcmcia-drivers.patch
-pcmcia-use-irq_mask-to-mark-irqs-as-unusable.patch
-pcmcia-remove-racy-try_irq.patch
-pcmcia-modify-irq_mask-via-sysfs.patch
-pcmcia-remove-includes-in-rsrc_mgr-which-arent-necessary-any-longer.patch
-mpsc-driver-patch.patch
-fbdev-cleanup-broken-edid-fixup-code.patch
-fbcon-catch-blank-events-on-both-device-and-console-level.patch
-fbcon-fix-compile-error.patch
-fbdev-fbmon-cleanup.patch
-i810fb-module-param-fix.patch
-atyfb-fix-module-parameter-descriptions.patch
-radeonfb-fix-init-exit-section-usage.patch
-pxafb-reorder-add_wait_queue-and-set_current_state.patch
-sa1100fb-reorder-add_wait_queue-and-set_current_state.patch
-backlight-add-backlight-lcd-device-basic-support.patch
-fbdev-add-w100-framebuffer-driver.patch
-fix-typo-in-arch-i386-kconfig.patch
-random-whitespace-doh.patch
-random-entropy-debugging-improvements.patch
-random-run-time-configurable-debugging.patch
-random-periodicity-detection-fix.patch
-random-add_input_randomness.patch
-various-kconfig-fixes.patch

 Merged

+acpi-build-fix-99.patch

 Fix ACPi build

+mips-default-mlock-limit-fix.patch

 MIPS rlimit fix

+shared_policy_replace-fix.patch

 mempolicy fix

+generic_file_buffered_write-handle-partial-dio.patch

 direct-io fix

+cputimeh-seems-to-assume-hz==1000.patch

 partial cputime fix

+ppc32-fix-pmac-kernel-build-with-oprofile.patch

 ppc32 build fix

+spinlocking-fixes.patch

 Fix the rwlock_is_locked snafu - still needs work.

+fix-config_agp-depencies.patch

 AGP Kconfig fix

+ioctl-compatibility-for-tiocmiwait-and-tiocgicount.patch

 Additional compat ioctls

+cls_api-build-fix.patch

 Net build fix

+acpi-sleep-while-atomic-during-s3-resume-from-ram.patch

 Fix sleep-in-spinlock in ACPI

+alsa-conversion-to-compat_ioctl-kconfig.patch
+alsa-conversion-to-compat_ioctl-alsa-pcm-api.patch
+alsa-conversion-to-compat_ioctl-alsa-apis.patch

 ALSA ioctl updates

+ac97-audio-support-for-intel-ich7-2611-rc1.patch

 New audio PCI ID

+disable-sidewinder-debug-messages.patch

 Kill noisy debug

+prevent-pci_name_bus-buffer-overflows.patch

 Avoid possible buffer overruns

+scsi-ncr53c9x-fixes.patch
+maintainers-add-entry-for-qla2xxx-driver.patch

 SCSI fixes

+swapspace-layout-improvements.patch

 Rework the way in which we lay out swapspace.

+uninline-mod_page_state.patch

 Code uninlining

+fix-audit-control-message-checks.patch
+fix-audit-control-message-checks-tidy.patch

 audit+security system fixes

+selinux-add-netlink-message-types-for-the-tc-action-code.patch

 SELinux update

+ppc32-pmac-sleep-support-update.patch
+add-try_acquire_console_sem.patch
+update-aty128fb-sleep-wakeup-code-for-new-powermac-changes.patch
+radeonfb-massive-update-of-pm-code.patch
+radeonfb-build-fix.patch
+ppc32-update-cpu-state-save-restore.patch
+ppc32-add-missing-prototype.patch
+ppc32-system-platform_device-description-discovery-and-management.patch
+ppc32-infrastructure-changes-to-mpc85xx-sub-arch-from-ocp-to-platform_device.patch
+ppc32-convert-boards-from-using-ocp-to-platform_device.patch
+ppc32-convert-gianfar-ethernet-driver-from-using-an-ocp-to-platform_device.patch
+ppc32-remove-cli-sti-in-arch-ppc-4xx_io-serial_siccc.patch
+ppc32-remove-cli-sti-in-arch-ppc-8xx_io-cs4218_tdmc.patch
+ppc32-remove-cli-sti-in-arch-ppc-8xx_io-fecc.patch
+ppc32-remove-cli-sti-in-arch-ppc-platforms-apus_setupc.patch
+ppc32-remove-cli-sti-in-arch-ppc-platforms-pal4_setupc.patch
+ppc32-remove-cli-sti-in-arch-ppc-syslib-m8xx_setupc.patch
+ppc32-remove-cli-sti-in-arch-ppc-syslib-qspan_pcic.patch
+ppc32-mpc8xx-tlb-miss-vs-tlb-error-fix.patch
+ppc32-update_process_times-simplification.patch
+ppc32-add-defconfigs-for-85xx-boards.patch

 ppc32 and radeon driver updates

+ppc64-remove-config_irq_all_cpus.patch
+ppc64-pci-eeh-documentation.patch
+ppc64-ppc-cleanup-pci-skipping.patch
+ppc64-minimum-hashtable-size.patch
+ppc64-remove-some-unused-iseries-functions.patch

 ppc64 update

+fix-xenu-kernel-crash-in-dmi_iterate.patch

 Check ioremap return value.

+x86-use-cpumask_t-instead-of-unsigned-long.patch

 cpumask fix

+i386-init_intel_cacheinfo-can-be-__init.patch

 Add an __init

+x86-no-interrupts-from-secondary-cpus-until-officially-online.patch

 Fix x86 secondary CPU startup race

+arch-i386-kernel-signalc-fix-err-test-twice.patch

 Simplify x86 signal handling code

+fix-num_online_nodes-warning-on-numa-q.patch

 Fix NUMA warning

+x86_64-fix-cmp-with-interleaving.patch
+x86_64-fix-flush-race-on-context-switch.patch
+i386-x86-64-fix-smp-nmi-watchdog-race.patch
+x86-64-fix-pud-typo-in-ioremap.patch
+x86-64-fix-do_suspend_lowlevel.patch
+x86-64-clean-up-cpuid-level-detection.patch
+kprobes-x86_64-memory-allocation-changes.patch

 x86_64 updates

+h8-300-defconfig-update.patch
+h8-300-mm-update.patch

 h8/300 update

+swsusp-remove-on2-algorithm-in-page-relocation.patch
+driver-model-pass-pm_message_t-down-to-pci-drivers.patch

 swsusp/PM update

+uml-provide-an-arch-specific-define-for-register-file-size.patch
+uml-provide-some-initcall-definitions-for-userspace-code.patch
+uml-provide-a-release-method-for-the-ubd-driver.patch
+uml-allow-ubd-devices-to-provide-partial-end-blocks.patch
+uml-change-for_each_cpu-to-for_each_online_cpu.patch
+uml-eliminate-unhandled-sigprof-on-halt.patch
+uml-fix-__pud_alloc-definition-to-match-the-declaration.patch
+uml-fix-a-stack-corruption-crash.patch
+uml-define-__have_arch_cmpxchg-on-x86.patch

 UML update

+radio-typhoon-use-correct-module_param-data-type.patch

 module_param fix

+cleanup-vc-array-access.patch
+remove-console_macrosh.patch
+merge-vt_struct-into-vc_data.patch

 Console code cleanup

+avoid-sparse-warning-due-to-time-interpolator.patch

 sparse fix

+allow-all-architectures-to-set-config_debug_preempt.patch

 CONFIG_DEBUG_PREEMPT is now kernel-wide

+binfmt_elf-allow-mips-to-overrid-e_flags.patch

 mips build fix

+remove-bogus-softirq_pending-usage-in-cris.patch

 cris cleanup

+switch-frw-to-use-local_soft_irq_pending.patch

 Use local_softirq_pending() in arch/FRV

+kill-softirq_pending.patch

 Remove softirq_pending().  This breaks net/core/pktgen.c.

+scripts-referencepl-treat-built-ino-as-conglomerate.patch

 reference.pl fix

+vgacon-fixes-to-help-font-restauration-in-x11.patch

 Make vgacon play nicer with X

+clean-up-uts_release-usage.patch

 Remove some UTS_RELEASE usages

+use-official-unicodes-for-dec-vt-characters.patch

 console unicode fix

+ext3-commit-superblock-before-panicking.patch

 panic later on in ext3_panic()

+consolidate-arch-specific-resourceh-headers.patch

 Common-up the reqource.h implementations

+use-wno-pointer-sign-for-gcc-40.patch

 Avoid some gcc-4 warnings

+3c59x-ethtool-provide-nic-specific-stats.patch

 3com driver ethtool fixes

+fix-init_sighand-warning-on-mips.patch

 MIPS warning fix

+add-page_offset-to-mmh.patch

 Add kernel-wide page_offset() helper.

+minor-ipmi-driver-updates.patch

 IPMI driver update

+ext3-ea-no-lock-needed-when-freeing-inode.patch
+ext3-ea-set-the-ext3_feature_compat_ext_attr-for-in-inode-xattrs.patch
+ext3-ea-documentation-fix.patch
+ext3-ea-fix-i_extra_isize-check.patch
+ext3-ea-disallow-in-inode-attributes-for-reserved-inodes.patch

 ext3/extended attribute fixes

+completion-api-additions.patch

 Add some additional completion functions.

+convert-xfs-to-unlocked_ioctl-and-compat_ioctl.patch
+some-fixes-for-compat-ioctl.patch
+convert-infiniband-mad-driver-to-compat-unlocked_ioctl.patch
+support-compat_ioctl-for-block-devices.patch
+convert-cciss-to-compat_ioctl.patch
+add-compat_ioctl-to-frame-buffer-layer.patch
+convert-sis-fb-driver-to-compat_ioctl.patch
+convert-dv1394-driver-to-compat_ioctl.patch
+convert-video1394-driver-to-compat_ioctl.patch
+convert-amdtp-driver-to-compat_ioctl.patch

 Update various ioctl(), compat-ioctl() and actual ioctl)( implementation code

+random-pt2-cleanup-waitqueue-logic-fix-missed-wakeup.patch
+random-pt2-kill-pool-clearing.patch
+random-pt2-combine-legacy-ioctls.patch
+random-pt2-re-init-all-pools-on-zero.patch
+random-pt2-simplify-initialization.patch
+random-pt2-kill-memsets-of-static-data.patch
+random-pt2-kill-dead-extract_state-struct.patch
+random-pt2-kill-22-compat-waitqueue-defs.patch
+random-pt2-kill-redundant-rotate_left-definitions.patch
+random-pt2-kill-misnamed-log2.patch
+random-pt3-more-meaningful-pool-names.patch
+random-pt3-static-allocation-of-pools.patch
+random-pt3-static-sysctl-bits.patch
+random-pt3-catastrophic-reseed-checks.patch
+random-pt3-entropy-reservation-accounting.patch
+random-pt3-reservation-flag-in-pool-struct.patch
+random-pt3-reseed-pointer-in-pool-struct.patch
+random-pt3-break-up-extract_user.patch
+random-pt3-remove-dead-md5-copy.patch
+random-pt3-simplify-hash-folding.patch
+random-pt3-clean-up-hash-buffering.patch
+random-pt3-remove-entropy-batching.patch

 random driver cleanups and fixes

+fat-kill-fatfs_symsc.patch
+fat-merge-msdos_fs_isbh-into-msdos_fsh.patch
+fat-is_badchar-is_replacechr-is_skipchar-cleanup.patch
+fat-is_badchar-is_replacechr-is_skipchar-cleanup-cleanup.patch
+fat-return-better-error-codes-from.patch
+fat-manually-inline-shortname_info_to_lcase.patch
+fat-use-vprintk-instead-of-snprintf-with-static.patch
+fat-kill-unnecessary-kmap.patch
+fat-fs-fat-cachec-make-__fat_access-static.patch
+fat-lindent-fs-msdos-nameic.patch
+fat-lindent-fs-vfat-nameic.patch
+fat-lindent-fs-vfat-nameic-fix.patch
+fat-fs-fat-cleanup.patch
+fat-reserved-clusters-cleanup.patch
+fat-show-current-nls-config-even-if-its-default.patch

 fatfs update

+relayfs-remove-klog-debugging-channel.patch
+relayfs-remove-klog-debugging-channel-headers.patch

 remove the log stuff from relayfs

+fix-loss-of-records-on-size-4096-in-proc-pid-maps.patch
+speedup-proc-pid-maps-fix-fix-fix-fix.patch

 More work on the /proc/pid/maps speedup

+pcmcia-tcic-eleminate-deprecated-check_region.patch
+pcmcia-i82365-use-config_pnp-instead-of-__isapnp__.patch
+pcmcia-i82092-fix-checking-of-return-value-from-request_region.patch
+pcmcia-socket-acregion-are-unused.patch
+pcmcia-use-unsigned-long-for-io-port-address.patch

 small pcmcia updates

+nfs-fix_vfsflock.patch
+nfs-flock.patch

 BSD flocking for the NFS client.

+sched-isochronous-class-for-unprivileged-soft-rt-scheduling.patch

 Add SCHED_ISO

-assign_irq_vector-section-fix.patch
-kexec-i8259-shutdowni386.patch
-kexec-i8259-shutdown-x86_64.patch
-kexec-apic-virtwire-on-shutdowni386patch.patch
-kexec-apic-virtwire-on-shutdownx86_64.patch
-kexec-ioapic-virtwire-on-shutdowni386.patch
-kexec-apic-virt-wire-fix.patch
-kexec-ioapic-virtwire-on-shutdownx86_64.patch
-kexec-e820-64bit.patch
+x86-rename-apic_mode_exint.patch
+x86-local-apic-fix.patch
+x86_64-e820-64bit.patch
+x86-i8259-shutdown.patch
+x86_64-i8259-shutdown.patch
+x86-apic-virtwire-on-shutdown.patch
+x86_64-apic-virtwire-on-shutdown.patch
+vmlinux-fix-physical-addrs.patch
+x86-vmlinux-fix-physical-addrs.patch
+x86_64-vmlinux-fix-physical-addrs.patch
+x86_64-entry64.patch
+x86-config-kernel-start.patch
+x86_64-config-kernel-start.patch
-kexec-ide-spindown-fix.patch
-kexec-ifdef-cleanup.patch
-kexec-machine_shutdownx86_64.patch
-kexec-kexecx86_64.patch
-kexec-kexecx86_64-4level-fix.patch
-kexec-kexecx86_64-4level-fix-unfix.patch
-kexec-machine_shutdowni386.patch
-kexec-kexeci386.patch
-kexec-use_mm.patch
-kexec-loading-kernel-from-non-default-offset.patch
-kexec-loading-kernel-from-non-default-offset-fix.patch
-kexec-enabling-co-existence-of-normal-kexec-kernel-and-panic-kernel.patch
+x86-machine_shutdown.patch
+x86-kexec.patch
+x86-crashkernel.patch
+x86_64-machine_shutdown.patch
+x86_64-kexec.patch
+x86_64-crashkernel.patch
+x86-crash_shutdown-nmi-shootdown.patch
+x86-crash_shutdown-snapshot-registers.patch
+x86-crash_shutdown-apic-shutdown.patch
-crashdump-memory-preserving-reboot-using-kexec-fix.patch
-kdump-config_discontigmem-fix.patch
-crashdump-routines-for-copying-dump-pages-kmap-fiddle.patch
-crashdump-kmap-build-fix.patch
-crashdump-register-snapshotting-before-kexec-boot.patch
-crashdump-minor-bug-fixes-to-kexec-crashdump-code.patch
-crashdump-cleanups-to-the-kexec-based-crashdump-code.patch
-x86-rename-apic_mode_exint.patch
-x86-local-apic-fix.patch

 Big kexec/crashdump update

+radeonfb-set-accelerator-id.patch
+vesafb-change-return-error-id.patch
+intelfb-workaround-for-830m.patch
+fbcon-save-blank-state-last.patch
+backlight-fix-compile-error-if-config_fb-is-unset.patch
+matroxfb-fb_matrox_g-kconfig-changes.patch

 fbdev/fbcon updates

+include-type-information-as-module-info-where-possible.patch

 include type info in module parameter wrappers

-waiting-10s-before-mounting-root-filesystem.patch

 This broke stuff

+fuse-make-two-functions-static.patch
+fuse-fix-variable-with-confusing-name.patch
+fuse-dont-check-against-zero-fsuid.patch
+fuse-remove-mount_max-and-user_allow_other-module-parameters.patch
+fuse-transfer-readdir-data-through-device.patch

 FUSE updates/fixes

+cryptoapi-prepare-for-processing-multiple-buffers-at.patch
+cryptoapi-update-padlock-to-process-multiple-blocks-at.patch

 crypto API updates

+update-email-address-of-andrea-arcangeli.patch
+compile-error-blackbird_load_firmware.patch
+i386-x86_64-apicc-make-two-functions-static.patch
+i386-cyrixc-make-a-function-static.patch
+mtrr-some-cleanups.patch
+i386-cpu-commonc-some-cleanups.patch
+i386-cpuidc-make-two-functions-static.patch
+i386-efic-make-some-code-static.patch
+i386-x86_64-io_apicc-misc-cleanups.patch
+i386-mpparsec-make-mp_processor_info-static.patch
+i386-x86_64-msrc-make-two-functions-static.patch
+3w-abcdh-tw_device_extension-remove-an-unused-filed.patch
+hpet-make-some-code-static.patch
+26-patch-i386-trapsc-make-a-function-static.patch
+i386-semaphorec-make-4-functions-static.patch
+i386-rebootc-cleanups.patch
+kill-aux_device_present.patch
+i386-setupc-make-4-variables-static.patch
+mostly-i386-mm-cleanup.patch
+scsi-megaraid_mmc-make-some-code-static.patch
+update-email-address-of-benjamin-lahaise.patch
+update-email-address-of-philip-blundell.patch
+mm-filemapc-make-a-function-static.patch
+kernel-acctc-make-a-function-static.patch
+kernel-auditc-make-some-functions-static.patch
+kernel-capabilityc-make-a-spinlock-static.patch
+mm-thrashc-make-a-variable-static.patch
+lib-kernel_lockc-make-kernel_sem-static.patch
+saa7146_vv_ksymsc-remove-two-unused-export_symbol_gpls.patch
+fix-placement-of-static-inline-in-nfsdh.patch
+drivers-block-umemc-make-two-functions-static.patch
+drivers-block-xdc-make-a-variable-static.patch
+typo-in-arch-x86_64-kconfig.patch
+misc-isapnp-cleanups.patch
+some-pnp-cleanups.patch
+if-0-cx88_risc_disasm.patch

 Various little fixes and cleanups

+add-map_populate-sys_remap_file_pages-support-to-xfs.patch

 Teach XFS about filemap_populate()




number of patches in -mm: 519
number of changesets in external trees: 233
number of patches in -mm only: 507
total patches: 740




All 519 patches:


linus.patch

acpi-build-fix-99.patch
  acpi build fix

mips-default-mlock-limit-fix.patch
  mips default mlock limit fix

shared_policy_replace-fix.patch
  shared_policy_replace() fix

generic_file_buffered_write-handle-partial-dio.patch
  generic_file_buffered_write: handle partial DIO writes with multiple iovecs

cputimeh-seems-to-assume-hz==1000.patch
  cputime.h assumes HZ==1000

ppc32-fix-pmac-kernel-build-with-oprofile.patch
  ppc32: Fix pmac kernel build with oprofile

spinlocking-fixes.patch
  spinlocking fixes

fix-config_agp-depencies.patch
  fix CONFIG_AGP depencies

ioctl-compatibility-for-tiocmiwait-and-tiocgicount.patch
  ioctl compatibility for TIOCMIWAIT and TIOCGICOUNT

cls_api-build-fix.patch
  cls_api-build-fix

ia64-acpi-build-fix.patch
  ia64 acpi build fix

ia64-config_apci_numa-fix.patch
  ia64 CONFIG_APCI_NUMA fix

acpi-sleep-while-atomic-during-s3-resume-from-ram.patch
  acpi: sleep-while-atomic during S3 resume from ram

bk-acpi-revert-20041210.patch
  bk-acpi-revert-20041210

acpi-report-errors-in-fanc.patch
  ACPI: report errors in fan.c

acpi-flush-tlb-when-pagetable-changed.patch
  acpi: flush TLB when pagetable changed

acpi-kfree-fix.patch
  a

alsa-conversion-to-compat_ioctl-kconfig.patch
  ALSA: Conversion to compat_ioctl: Kconfig

alsa-conversion-to-compat_ioctl-alsa-pcm-api.patch
  ALSA: Conversion to compat_ioctl: PCM API

alsa-conversion-to-compat_ioctl-alsa-apis.patch
  ALSA: Conversion to compat_ioctl: ALSA APIs

ac97-audio-support-for-intel-ich7-2611-rc1.patch
  AC'97 Audio support for Intel ICH7 - 2.6.11-rc1

bk-arm.patch

bk-cifs.patch

bk-drm.patch

bk-drm-via.patch

bk-ide-dev.patch

ide-dev-build-fix.patch
  ide-dev-build-fix

bk-input.patch

disable-sidewinder-debug-messages.patch
  Disable Sidewinder debug messages

bk-dtor-input.patch

alps-touchpad-detection-fix.patch
  ALPS touchpad detection fix

bk-kbuild.patch

seagate-st3200822as-sata-disk-needs-to-be-in-sil_blacklist-as-well.patch
  Seagate ST3200822AS SATA disk needs to be in sil_blacklist as well

bk-netdev.patch

bk-ntfs.patch

prevent-pci_name_bus-buffer-overflows.patch
  prevent pci_name_bus() buffer overflows

scsi-ncr53c9x-fixes.patch
  SCSI NCR53C9x.c fixes

maintainers-add-entry-for-qla2xxx-driver.patch
  MAINTAINERS: add entry for qla2xxx driver.

bk-xfs.patch

mm.patch
  add -mmN to EXTRAVERSION

fix-smm-failures-on-e750x-systems.patch
  fix SMM failures on E750x systems

vm-pageout-throttling.patch
  vm: pageout throttling

orphaned-pagecache-memleak-fix.patch
  orphaned pagecache memleak fix

swapspace-layout-improvements.patch
  swapspace-layout-improvements

uninline-mod_page_state.patch
  uninline mod_page_state(offset, delta)

make-tree_lock-an-rwlock.patch
  make mapping->tree_lock an rwlock

must-fix.patch
  must fix lists update
  must fix list update
  mustfix update
  must-fix update
  mustfix lists

pcnet32-79c976-with-fiber-optic.patch
  pcnet32: 79c976 with fiber optic fix

add-omap-support-to-smc91x-ethernet-driver.patch
  Add OMAP support to smc91x Ethernet driver

b44-bounce-buffer-fix.patch
  b44 bounce buffering fix

netpoll-fix-napi-polling-race-on-smp.patch
  netpoll: fix NAPI polling race on SMP

tun-tan-arp-monitor-support.patch
  tun/tap ARP monitor support

atmel_cs-add-support-lg-lw2100n-wlan-pcmcia-card.patch
  atmel_cs: Add support LG LW2100N WLAN PCMCIA card

fix-audit-control-message-checks.patch
  Fix audit control message checks

fix-audit-control-message-checks-tidy.patch
  fix-audit-control-message-checks-tidy

selinux-add-netlink-message-types-for-the-tc-action-code.patch
  SELinux: add Netlink message types for the TC action code.

ppc32-pmac-sleep-support-update.patch
  ppc32: pmac sleep support update

add-try_acquire_console_sem.patch
  Add try_acquire_console_sem

update-aty128fb-sleep-wakeup-code-for-new-powermac-changes.patch
  update aty128fb sleep/wakeup code for new powermac changes

radeonfb-massive-update-of-pm-code.patch
  radeonfb: massive update of PM code

radeonfb-build-fix.patch
  radeonfb-build-fix

ppc32-update-cpu-state-save-restore.patch
  ppc32: update cpu state save/restore

ppc32-add-missing-prototype.patch
  ppc32: Add missing prototype

ppc32-system-platform_device-description-discovery-and-management.patch
  ppc32: System platform_device description, discovery and management

ppc32-infrastructure-changes-to-mpc85xx-sub-arch-from-ocp-to-platform_device.patch
  ppc32: Infrastructure changes to MPC85xx sub-arch from OCP to platform_device

ppc32-convert-boards-from-using-ocp-to-platform_device.patch
  ppc32: convert boards from using OCP to platform_device

ppc32-convert-gianfar-ethernet-driver-from-using-an-ocp-to-platform_device.patch
  ppc32: Convert gianfar ethernet driver from using an OCP to platform_device

ppc32-remove-cli-sti-in-arch-ppc-4xx_io-serial_siccc.patch
  ppc32: remove cli()/sti() in arch/ppc/4xx_io/serial_sicc.c

ppc32-remove-cli-sti-in-arch-ppc-8xx_io-cs4218_tdmc.patch
  ppc32: remove cli()/sti() in arch/ppc/8xx_io/cs4218_tdm.c

ppc32-remove-cli-sti-in-arch-ppc-8xx_io-fecc.patch
  ppc32: remove cli()/sti() in arch/ppc/8xx_io/fec.c

ppc32-remove-cli-sti-in-arch-ppc-platforms-apus_setupc.patch
  ppc32: remove cli()/sti() in arch/ppc/platforms/apus_setup.c

ppc32-remove-cli-sti-in-arch-ppc-platforms-pal4_setupc.patch
  ppc32: remove cli()/sti() in arch/ppc/platforms/pal4_setup.c

ppc32-remove-cli-sti-in-arch-ppc-syslib-m8xx_setupc.patch
  ppc32: remove cli()/sti() in arch/ppc/syslib/m8xx_setup.c

ppc32-remove-cli-sti-in-arch-ppc-syslib-qspan_pcic.patch
  ppc32: remove cli()/sti() in arch/ppc/syslib/qspan_pci.c

ppc32-mpc8xx-tlb-miss-vs-tlb-error-fix.patch
  ppc32: MPC8xx TLB Miss vs TLB Error fix

ppc32-update_process_times-simplification.patch
  ppc32: update_process_times simplification

ppc32-add-defconfigs-for-85xx-boards.patch
  ppc32: Add defconfigs for 85xx boards

ppc64-remove-config_irq_all_cpus.patch
  ppc64: Remove CONFIG_IRQ_ALL_CPUS

ppc64-pci-eeh-documentation.patch
  ppc64: PCI EEH documentation

ppc64-ppc-cleanup-pci-skipping.patch
  ppc64/ppc: Cleanup PCI skipping

ppc64-minimum-hashtable-size.patch
  ppc64: Minimum hashtable size

ppc64-remove-some-unused-iseries-functions.patch
  ppc64: remove some unused iSeries functions

ppc64-reloc_hide.patch

agpgart-allow-multiple-backends-to-be-initialized.patch
  agpgart: allow multiple backends to be initialized
  agpgart-allow-multiple-backends-to-be-initialized fix
  agpgart: add bridge assignment missed in agp_allocate_memory
  x86_64 agp failure fix

agpgart-add-agp_find_bridge-function.patch
  agpgart: add agp_find_bridge function

agpgart-allow-drivers-to-allocate-memory-local-to.patch
  agpgart: allow drivers to allocate memory local to the bridge

drm-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
  drm: add support for new multiple agp bridge agpgart api

fb-add-support-for-new-multiple-agp-bridge-agpgart-api.patch
  fb: add support for new multiple agp bridge agpgart api

agpgart-add-bridge-parameter-to-driver-functions.patch
  agpgart: add bridge parameter to driver functions

superhyway-bus-support.patch
  SuperHyway bus support

fix-xenu-kernel-crash-in-dmi_iterate.patch
  fix xenU kernel crash in dmi_iterate

x86-use-cpumask_t-instead-of-unsigned-long.patch
  x86: use cpumask_t instead of unsigned long

i386-init_intel_cacheinfo-can-be-__init.patch
  i386: init_intel_cacheinfo() can be __init

x86-no-interrupts-from-secondary-cpus-until-officially-online.patch
  x86: no interrupts from secondary CPUs until officially online

arch-i386-kernel-signalc-fix-err-test-twice.patch
  arch/i386/kernel/signal.c: fix err test twice

fix-num_online_nodes-warning-on-numa-q.patch
  Fix num_online_nodes() warning on NUMA-Q

x86_64-fix-cmp-with-interleaving.patch
  x86_64: Fix CMP with interleaving

x86_64-fix-flush-race-on-context-switch.patch
  x86_64: fix flush race on context switch

i386-x86-64-fix-smp-nmi-watchdog-race.patch
  i386/x86-64: Fix SMP NMI watchdog race

x86-64-fix-pud-typo-in-ioremap.patch
  x86-64: Fix pud typo in ioremap

x86-64-fix-do_suspend_lowlevel.patch
  x86-64: Fix do_suspend_lowlevel

x86-64-clean-up-cpuid-level-detection.patch
  x86-64: Clean up cpuid level detection

kprobes-x86_64-memory-allocation-changes.patch
  kprobes: x86_64 memory allocation changes

xen-vmm-4-add-ptep_establish_new-to-make-va-available.patch
  Xen VMM #4: add ptep_establish_new to make va available

xen-vmm-4-return-code-for-arch_free_page.patch
  Xen VMM #4: return code for arch_free_page

xen-vmm-4-return-code-for-arch_free_page-fix.patch
  Get rid of arch_free_page() warning

xen-vmm-4-runtime-disable-of-vt-console.patch
  Xen VMM #4: runtime disable of VT console

xen-vmm-4-has_arch_dev_mem.patch
  Xen VMM #4: HAS_ARCH_DEV_MEM

xen-vmm-4-split-free_irq-into-teardown_irq.patch
  Xen VMM #4: split free_irq into teardown_irq

h8-300-defconfig-update.patch
  H8/300 defconfig update

h8-300-mm-update.patch
  H8/300 mm update

swsusp-remove-on2-algorithm-in-page-relocation.patch
  swsusp: remove O(n^2) algorithm in page relocation

driver-model-pass-pm_message_t-down-to-pci-drivers.patch
  driver model: pass pm_message_t down to pci drivers

uml-provide-an-arch-specific-define-for-register-file-size.patch
  uml: provide an arch-specific define for register file size

uml-provide-some-initcall-definitions-for-userspace-code.patch
  uml: provide some initcall definitions for userspace code

uml-provide-a-release-method-for-the-ubd-driver.patch
  uml: provide a release method for the ubd driver

uml-allow-ubd-devices-to-provide-partial-end-blocks.patch
  uml: allow ubd devices to provide partial end blocks

uml-change-for_each_cpu-to-for_each_online_cpu.patch
  uml: change for_each_cpu to for_each_online_cpu

uml-eliminate-unhandled-sigprof-on-halt.patch
  uml: eliminate unhandled SIGPROF on halt

uml-fix-__pud_alloc-definition-to-match-the-declaration.patch
  uml: fix __pud_alloc definition to match the declaration

uml-fix-a-stack-corruption-crash.patch
  uml: fix a stack corruption crash

uml-define-__have_arch_cmpxchg-on-x86.patch
  uml: define __HAVE_ARCH_CMPXCHG on x86

wacom-tablet-driver.patch
  wacom tablet driver

force-feedback-support-for-uinput.patch
  Force feedback support for uinput

kmap_atomic-takes-char.patch
  kmap_atomic takes char*

kmap_atomic-takes-char-fix.patch
  kmap_atomic-takes-char-fix

kmap_atomic-fallout.patch
  kmap_atomic fallout

kunmap-fallout-more-fixes.patch
  kunmap-fallout-more-fixes

make-sysrq-f-call-oom_kill.patch
  make sysrq-F call oom_kill()

allow-admin-to-enable-only-some-of-the-magic-sysrq-functions.patch
  Allow admin to enable only some of the Magic-Sysrq functions

sort-out-pci_rom_address_enable-vs-ioresource_rom_enable.patch
  Sort out PCI_ROM_ADDRESS_ENABLE vs IORESOURCE_ROM_ENABLE

irqpoll.patch
  irqpoll

poll-mini-optimisations.patch
  poll: mini optimisations

file_tableexpand_files-code-cleanup.patch
  file_table:expand_files() code cleanup

file_tableexpand_files-code-cleanup-remove-debug.patch
  file_tableexpand_files-code-cleanup-remove-debug

mtrr-size-and-base-debug.patch
  mtrr size-and-base debugging

minor-ext3-speedup.patch
  Minor ext3 speedup

move-read-only-and-immutable-checks-into-permission.patch
  move read-only and immutable checks into permission()

factor-out-common-code-around-follow_link-invocation.patch
  factor out common code around ->follow_link invocation

radio-typhoon-use-correct-module_param-data-type.patch
  radio-typhoon: use correct module_param data type

cleanup-vc-array-access.patch
  cleanup vc array access

remove-console_macrosh.patch
  remove console_macros.h

merge-vt_struct-into-vc_data.patch
  merge vt_struct into vc_data

avoid-sparse-warning-due-to-time-interpolator.patch
  avoid sparse warning due to time-interpolator

allow-all-architectures-to-set-config_debug_preempt.patch
  allow all architectures to set CONFIG_DEBUG_PREEMPT

binfmt_elf-allow-mips-to-overrid-e_flags.patch
  binfmt_elf: allow mips to overrid e_flags

remove-bogus-softirq_pending-usage-in-cris.patch
  remove bogus softirq_pending() usage in cris

switch-frw-to-use-local_soft_irq_pending.patch
  switch frw to use local_soft_irq_pending

kill-softirq_pending.patch
  kill softirq_pending()

scripts-referencepl-treat-built-ino-as-conglomerate.patch
  scripts/reference*.pl - treat built-in.o as conglomerate

vgacon-fixes-to-help-font-restauration-in-x11.patch
  vgacon fixes to help font restauration in X11

clean-up-uts_release-usage.patch
  clean up UTS_RELEASE usage

use-official-unicodes-for-dec-vt-characters.patch
  Use official Unicodes for DEC VT characters

ext3-commit-superblock-before-panicking.patch
  ext3: commit superblock before panicking

consolidate-arch-specific-resourceh-headers.patch
  consolidate arch specific resource.h headers

use-wno-pointer-sign-for-gcc-40.patch
  Use -Wno-pointer-sign for gcc 4.0

3c59x-ethtool-provide-nic-specific-stats.patch
  3c59x ethtool: provide NIC-specific stats

fix-init_sighand-warning-on-mips.patch
  fix INIT_SIGHAND warning on mips

add-page_offset-to-mmh.patch
  add page_offset to mm.h

minor-ipmi-driver-updates.patch
  Minor IPMI driver updates

ext3-ea-no-lock-needed-when-freeing-inode.patch
  ext3/ea: no lock needed when freeing inode

ext3-ea-set-the-ext3_feature_compat_ext_attr-for-in-inode-xattrs.patch
  ext3/ea: set the EXT3_FEATURE_COMPAT_EXT_ATTR for in-inode xattrs

ext3-ea-documentation-fix.patch
  ext3/ea: documentation fix

ext3-ea-fix-i_extra_isize-check.patch
  ext3/ea: ix i_extra_isize check

ext3-ea-disallow-in-inode-attributes-for-reserved-inodes.patch
  ext3/ea: disallow in-inode attributes for reserved inodes

completion-api-additions.patch
  completion API additions

convert-xfs-to-unlocked_ioctl-and-compat_ioctl.patch
  Convert XFS to unlocked_ioctl and compat_ioctl

some-fixes-for-compat-ioctl.patch
  Some fixes for compat ioctl

convert-infiniband-mad-driver-to-compat-unlocked_ioctl.patch
  Convert Infiniband MAD driver to compat/unlocked_ioctl

support-compat_ioctl-for-block-devices.patch
  Support compat_ioctl for block devices

convert-cciss-to-compat_ioctl.patch
  Convert cciss to compat_ioctl

add-compat_ioctl-to-frame-buffer-layer.patch
  Add compat_ioctl to frame buffer layer

convert-sis-fb-driver-to-compat_ioctl.patch
  Convert sis fb driver to compat_ioctl

convert-dv1394-driver-to-compat_ioctl.patch
  Convert dv1394 driver to compat_ioctl

convert-video1394-driver-to-compat_ioctl.patch
  Convert video1394 driver to compat_ioctl

convert-amdtp-driver-to-compat_ioctl.patch
  Convert amdtp driver to compat_ioctl

random-pt2-cleanup-waitqueue-logic-fix-missed-wakeup.patch
  random: cleanup waitqueue logic, fix missed wakeup

random-pt2-kill-pool-clearing.patch
  random: kill pool clearing

random-pt2-combine-legacy-ioctls.patch
  random: combine legacy ioctls

random-pt2-re-init-all-pools-on-zero.patch
  random: re-init all pools on zero

random-pt2-simplify-initialization.patch
  random: simplify initialization

random-pt2-kill-memsets-of-static-data.patch
  random: kill memsets of static data

random-pt2-kill-dead-extract_state-struct.patch
  random: kill dead extract_state struct

random-pt2-kill-22-compat-waitqueue-defs.patch
  random: kill 2.2 compat waitqueue defs

random-pt2-kill-redundant-rotate_left-definitions.patch
  random: kill redundant rotate_left definitions

random-pt2-kill-misnamed-log2.patch
  random: kill misnamed log2

random-pt3-more-meaningful-pool-names.patch
  random: More meaningful pool names

random-pt3-static-allocation-of-pools.patch
  random: Static allocation of pools

random-pt3-static-sysctl-bits.patch
  random: Static sysctl bits

random-pt3-catastrophic-reseed-checks.patch
  random: Catastrophic reseed checks

random-pt3-entropy-reservation-accounting.patch
  random: Entropy reservation accounting

random-pt3-reservation-flag-in-pool-struct.patch
  random: Reservation flag in pool struct

random-pt3-reseed-pointer-in-pool-struct.patch
  random: Reseed pointer in pool struct

random-pt3-break-up-extract_user.patch
  random: Break up extract_user

random-pt3-remove-dead-md5-copy.patch
  random: Remove dead MD5 copy

random-pt3-simplify-hash-folding.patch
  random: Simplify hash folding

random-pt3-clean-up-hash-buffering.patch
  random: Clean up hash buffering

random-pt3-remove-entropy-batching.patch
  random: Remove entropy batching

fat-kill-fatfs_symsc.patch
  fat: kill fatfs_syms.c

fat-merge-msdos_fs_isbh-into-msdos_fsh.patch
  fat: merge msdos_fs_{i,sb}.h into msdos_fs.h

fat-is_badchar-is_replacechr-is_skipchar-cleanup.patch
  fat: IS_BADCHAR/IS_REPLACECHR/IS_SKIPCHAR cleanup

fat-is_badchar-is_replacechr-is_skipchar-cleanup-cleanup.patch
  FAT: Further IS_BADCHAR/IS_REPLACECHR/IS_SKIPCHAR cleanup

fat-return-better-error-codes-from.patch
  fat: Return better error codes from vfat_valid_longname()

fat-manually-inline-shortname_info_to_lcase.patch
  fat: Manually inline shortname_info_to_lcase()

fat-use-vprintk-instead-of-snprintf-with-static.patch
  fat: use vprintk instead of snprintf with static buffer

fat-kill-unnecessary-kmap.patch
  fat: kill unnecessary kmap()

fat-fs-fat-cachec-make-__fat_access-static.patch
  fat: fs/fat/cache.c: make __fat_access static

fat-lindent-fs-msdos-nameic.patch
  fat: Lindent fs/msdos/namei.c

fat-lindent-fs-vfat-nameic.patch
  fat: Lindent fs/vfat/namei.c

fat-lindent-fs-vfat-nameic-fix.patch
  FAT: Lindent fs/vfat/namei.c fix

fat-fs-fat-cleanup.patch
  fat: fs/fat/* cleanup

fat-reserved-clusters-cleanup.patch
  fat: reserved clusters cleanup

fat-show-current-nls-config-even-if-its-default.patch
  fat: show current nls config even if it's default.

relayfs-doc.patch
  relayfs: doc

relayfs-common-files.patch
  relayfs: common files

relayfs-remove-klog-debugging-channel.patch
  relayfs - remove klog debugging channel

relayfs-locking-lockless-implementation.patch
  relayfs: locking/lockless implementation

relayfs-headers.patch
  relayfs: headers

relayfs-remove-klog-debugging-channel-headers.patch
  relayfs - remove klog debugging channel

ltt-core-implementation.patch
  ltt: core implementation

ltt-core-headers.patch
  ltt: core headers

ltt-kconfig-fix.patch
  ltt kconfig fix

ltt-kernel-events.patch
  ltt: kernel/ events

ltt-kernel-events-tidy.patch
  ltt-kernel-events tidy

ltt-kernel-events-build-fix.patch
  ltt-kernel-events-build-fix

ltt-fs-events.patch
  ltt: fs/ events

ltt-fs-events-tidy.patch
  ltt-fs-events tidy

ltt-ipc-events.patch
  ltt: ipc/ events

ltt-mm-events.patch
  ltt: mm/ events

ltt-net-events.patch
  ltt: net/ events

ltt-architecture-events.patch
  ltt: architecture events

lock-initializer-cleanup-ppc.patch
  Lock initializer cleanup: PPC

lock-initializer-cleanup-m32r.patch
  Lock initializer cleanup: M32R

lock-initializer-cleanup-video.patch
  Lock initializer cleanup: Video

lock-initializer-cleanup-ide.patch
  Lock initializer cleanup: IDE

lock-initializer-cleanup-sound.patch
  Lock initializer cleanup: sound

lock-initializer-cleanup-sh.patch
  Lock initializer cleanup: SH

lock-initializer-cleanup-ppc64.patch
  Lock initializer cleanup: PPC64

lock-initializer-cleanup-security.patch
  Lock initializer cleanup: Security

lock-initializer-cleanup-core.patch
  Lock initializer cleanup: Core

lock-initializer-cleanup-media-drivers.patch
  Lock initializer cleanup: media drivers

lock-initializer-cleanup-block-devices.patch
  Lock initializer cleanup: Block devices

lock-initializer-cleanup-s390.patch
  Lock initializer cleanup: S390

lock-initializer-cleanup-usermode.patch
  Lock initializer cleanup: UserMode

lock-initializer-cleanup-scsi.patch
  Lock initializer cleanup: SCSI

lock-initializer-cleanup-sparc.patch
  Lock initializer cleanup: SPARC

lock-initializer-cleanup-v850.patch
  Lock initializer cleanup: V850

lock-initializer-cleanup-i386.patch
  Lock initializer cleanup: I386

lock-initializer-cleanup-drm.patch
  Lock initializer cleanup: DRM

lock-initializer-cleanup-firewire.patch
  Lock initializer cleanup: Firewire

lock-initializer-cleanup-arm26.patch
  Lock initializer cleanup - (ARM26)

lock-initializer-cleanup-m68k.patch
  Lock initializer cleanup: M68K

lock-initializer-cleanup-network-drivers.patch
  Lock initializer cleanup: Network drivers

lock-initializer-cleanup-mtd.patch
  Lock initializer cleanup: MTD

lock-initializer-cleanup-x86_64.patch
  Lock initializer cleanup: X86_64

lock-initializer-cleanup-filesystems.patch
  Lock initializer cleanup: Filesystems

lock-initializer-cleanup-ia64.patch
  Lock initializer cleanup: IA64

lock-initializer-cleanup-raid.patch
  Lock initializer cleanup: Raid

lock-initializer-cleanup-isdn.patch
  Lock initializer cleanup: ISDN

lock-initializer-cleanup-parisc.patch
  Lock initializer cleanup: PARISC

lock-initializer-cleanup-sparc64.patch
  Lock initializer cleanup: SPARC64

lock-initializer-cleanup-arm.patch
  Lock initializer cleanup: ARM

lock-initializer-cleanup-misc-drivers.patch
  Lock initializer cleanup: Misc drivers

lock-initializer-cleanup-alpha.patch
  Lock initializer cleanup - (ALPHA)

lock-initializer-cleanup-character-devices.patch
  Lock initializer cleanup: character devices

lock-initializer-cleanup-drivers-serial.patch
  Lock initializer cleanup: drivers/serial

lock-initializer-cleanup-frv.patch
  Lock initializer cleanup: FRV

speedup-proc-pid-maps.patch
  Speed up /proc/pid/maps

speedup-proc-pid-maps-fix.patch
  Speed up /proc/pid/maps fix

speedup-proc-pid-maps-fix-fix.patch
  speedup-proc-pid-maps fix fix

speedup-proc-pid-maps-fix-fix-fix.patch
  speedup /proc/<pid>/maps(4th version)

fix-loss-of-records-on-size-4096-in-proc-pid-maps.patch
  fix loss of records on size > 4096 in proc/<pid>/maps

speedup-proc-pid-maps-fix-fix-fix-fix.patch
  speedup-proc-pid-maps-fix-fix-fix fix

inotify.patch
  inotify

pcmcia-tcic-eleminate-deprecated-check_region.patch
  pcmcia: tcic: eleminate deprecated check_region()

pcmcia-i82365-use-config_pnp-instead-of-__isapnp__.patch
  pcmcia: i82365: use CONFIG_PNP instead of __ISAPNP__

pcmcia-i82092-fix-checking-of-return-value-from-request_region.patch
  pcmcia: i82092: fix checking of return value from request_region

pcmcia-socket-acregion-are-unused.patch
  pcmcia: socket->{a,c}region are unused

pcmcia-use-unsigned-long-for-io-port-address.patch
  pcmcia: use unsigned long for IO port address

nfs-fix_vfsflock.patch
  VFS: Fix structure initialization in locks_remove_flock()

nfs-flock.patch
  NFS: Add NFS support for BSD flock()

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)
  kgdbL warning fix
  kgdb buffer overflow fix
  kgdbL warning fix
  kgdb: CONFIG_DEBUG_INFO fix
  x86_64 fixes
  correct kgdb.txt Documentation link (against  2.6.1-rc1-mm2)
  kgdb: fix for recent gcc
  kgdb warning fixes
  THREAD_SIZE fixes for kgdb
  Fix stack overflow test for non-8k stacks
  kgdb-ga.patch fix for i386 single-step into sysenter
  fix TRAP_BAD_SYSCALL_EXITS on i386
  add TRAP_BAD_SYSCALL_EXITS config for i386
  kgdb-is-incompatible-with-kprobes
  kgdb-ga-build-fix
  kgdb-ga-fixes

kgdb-kill-off-highmem_start_page.patch
  kgdb: kill off highmem_start_page

kgdboe-netpoll.patch
  kgdb-over-ethernet via netpoll
  kgdboe: fix configuration of MAC address

kgdb-x86_64-support.patch
  kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
  kgdb-x86_64-warning-fixes
  kgdb-x86_64-fix
  kgdb-x86_64-serial-fix
  kprobes exception notifier fix

dev-mem-restriction-patch.patch
  /dev/mem restriction patch

dev-mem-restriction-patch-allow-reads.patch
  dev-mem-restriction-patch: allow reads

jbd-remove-livelock-avoidance.patch
  JBD: remove livelock avoidance code in journal_dirty_data()

journal_add_journal_head-debug.patch
  journal_add_journal_head-debug

list_del-debug.patch
  list_del debug check

unplug-can-sleep.patch
  unplug functions can sleep

firestream-warnings.patch
  firestream warnings

perfctr-core.patch
  perfctr: core
  perfctr: remove bogus perfctr_sample_thread() calls

perfctr-i386.patch
  perfctr: i386

perfctr-x86-core-updates.patch
  perfctr x86 core updates

perfctr-x86-driver-updates.patch
  perfctr x86 driver updates

perfctr-x86-driver-cleanup.patch
  perfctr: x86 driver cleanup

perfctr-prescott-fix.patch
  Prescott fix for perfctr

perfctr-x86-update-2.patch
  perfctr x86 update 2

perfctr-x86_64.patch
  perfctr: x86_64

perfctr-x86_64-core-updates.patch
  perfctr x86_64 core updates

perfctr-ppc.patch
  perfctr: PowerPC

perfctr-ppc32-driver-update.patch
  perfctr: ppc32 driver update

perfctr-ppc32-mmcr0-handling-fixes.patch
  perfctr ppc32 MMCR0 handling fixes

perfctr-ppc32-update.patch
  perfctr ppc32 update

perfctr-ppc32-update-2.patch
  perfctr ppc32 update

perfctr-virtualised-counters.patch
  perfctr: virtualised counters

perfctr-remap_page_range-fix.patch

virtual-perfctr-illegal-sleep.patch
  virtual perfctr illegal sleep

make-perfctr_virtual-default-in-kconfig-match-recommendation.patch
  Make PERFCTR_VIRTUAL default in Kconfig match recommendation  in help text

perfctr-ifdef-cleanup.patch
  perfctr ifdef cleanup

perfctr-update-2-6-kconfig-related-updates.patch
  perfctr: Kconfig-related updates

perfctr-virtual-updates.patch
  perfctr virtual updates

perfctr-virtual-cleanup.patch
  perfctr: virtual cleanup

perfctr-ppc32-preliminary-interrupt-support.patch
  perfctr ppc32 preliminary interrupt support

perfctr-update-5-6-reduce-stack-usage.patch
  perfctr: reduce stack usage

perfctr-interrupt-support-kconfig-fix.patch
  perfctr interrupt_support Kconfig fix

perfctr-low-level-documentation.patch
  perfctr low-level documentation

perfctr-inheritance-1-3-driver-updates.patch
  perfctr inheritance: driver updates

perfctr-inheritance-2-3-kernel-updates.patch
  perfctr inheritance: kernel updates

perfctr-inheritance-3-3-documentation-updates.patch
  perfctr inheritance: documentation updates

perfctr-inheritance-locking-fix.patch
  perfctr inheritance locking fix

perfctr-api-changes-first-step.patch
  perfctr API changes: first step

perfctr-virtual-update.patch
  perfctr virtual update

perfctr-x86-64-ia32-emulation-fix.patch
  perfctr x86-64 ia32 emulation fix

perfctr-sysfs-update-1-4-core.patch
  perfctr sysfs update: core

perfctr-sysfs-update.patch
  Perfctr sysfs update

perfctr-sysfs-update-2-4-x86.patch
  perfctr sysfs update: x86

perfctr-sysfs-update-3-4-x86-64.patch
  perfctr sysfs update: x86-64
  perfctr: syscall numbers in x86-64 ia32-emulation
  perfctr x86_64 native syscall numbers fix

perfctr-sysfs-update-4-4-ppc32.patch
  perfctr sysfs update: ppc32

sched-fix-preemption-race-core-i386.patch
  sched: fix preemption race (Core/i386)

sched-make-use-of-preempt_schedule_irq-ppc.patch
  sched: make use of preempt_schedule_irq() (PPC)

sched-make-use-of-preempt_schedule_irq-arm.patch
  sched: make use of preempt_schedule_irq (ARM)

sched-isochronous-class-for-unprivileged-soft-rt-scheduling.patch
  sched: Isochronous class for unprivileged soft rt scheduling

add-do_proc_doulonglongvec_minmax-to-sysctl-functions.patch
  Add do_proc_doulonglongvec_minmax to sysctl functions
  add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix
  add-do_proc_doulonglongvec_minmax-to-sysctl-functions fix 2

add-sysctl-interface-to-sched_domain-parameters.patch
  Add sysctl interface to sched_domain parameters

allow-modular-ide-pnp.patch
  allow modular ide-pnp

allow-x86_64-to-reenable-interrupts-on-contention.patch
  Allow x86_64 to reenable interrupts on contention

i386-cpu-hotplug-updated-for-mm.patch
  i386 CPU hotplug updated for -mm

ppc64-fix-cpu-hotplug.patch
  ppc64: fix hotplug cpu

serialize-access-to-ide-devices.patch
  serialize access to ide devices

disable-atykb-warning.patch
  disable atykb "too many keys pressed" warning

export-file_ra_state_init-again.patch
  Export file_ra_state_init() again

cachefs-filesystem.patch
  CacheFS filesystem

numa-policies-for-file-mappings-mpol_mf_move-cachefs.patch
  numa-policies-for-file-mappings-mpol_mf_move for cachefs

cachefs-release-search-records-lest-they-return-to-haunt-us.patch
  CacheFS: release search records lest they return to haunt us

fix-64-bit-problems-in-cachefs.patch
  Fix 64-bit problems in cachefs

cachefs-fixed-typos-that-cause-wrong-pointer-to-be-kunmapped.patch
  cachefs: fixed typos that cause wrong pointer to be kunmapped

cachefs-return-the-right-error-upon-invalid-mount.patch
  CacheFS: return the right error upon invalid mount

fix-cachefs-barrier-handling-and-other-kernel-discrepancies.patch
  Fix CacheFS barrier handling and other kernel discrepancies

remove-error-from-linux-cachefsh.patch
  Remove #error from linux/cachefs.h

cachefs-warning-fix-2.patch
  cachefs warning fix 2

cachefs-linkage-fix-2.patch
  cachefs linkage fix

cachefs-build-fix.patch
  cachefs build fix

cachefs-documentation.patch
  CacheFS documentation

add-page-becoming-writable-notification.patch
  Add page becoming writable notification

add-page-becoming-writable-notification-fix.patch
  do_wp_page_mk_pte_writable() fix

add-page-becoming-writable-notification-build-fix.patch
  add-page-becoming-writable-notification build fix

provide-a-filesystem-specific-syncable-page-bit.patch
  Provide a filesystem-specific sync'able page bit

provide-a-filesystem-specific-syncable-page-bit-fix.patch
  provide-a-filesystem-specific-syncable-page-bit-fix

provide-a-filesystem-specific-syncable-page-bit-fix-2.patch
  provide-a-filesystem-specific-syncable-page-bit-fix-2

make-afs-use-cachefs.patch
  Make AFS use CacheFS

afs-cachefs-dependency-fix.patch
  afs-cachefs-dependency-fix

split-general-cache-manager-from-cachefs.patch
  Split general cache manager from CacheFS

turn-cachefs-into-a-cache-backend.patch
  Turn CacheFS into a cache backend

rework-the-cachefs-documentation-to-reflect-fs-cache-split.patch
  Rework the CacheFS documentation to reflect FS-Cache split

update-afs-client-to-reflect-cachefs-split.patch
  Update AFS client to reflect CacheFS split

x86-rename-apic_mode_exint.patch
  kexec: x86: rename APIC_MODE_EXINT

x86-local-apic-fix.patch
  kexec: x86: local apic fix

x86_64-e820-64bit.patch
  kexec: x86_64: e820 64bit fix

x86-i8259-shutdown.patch
  kexec: x86: i8259 shutdown: disable interrupts

x86_64-i8259-shutdown.patch
  kexec: x86_64: add i8259 shutdown method

x86-apic-virtwire-on-shutdown.patch
  kexec: x86: resture apic virtual wire mode on shutdown

x86_64-apic-virtwire-on-shutdown.patch
  kexec: x86_64: restore apic virtual wire mode on shutdown

vmlinux-fix-physical-addrs.patch
  kexec: vmlinux: fix physical addresses

x86-vmlinux-fix-physical-addrs.patch
  kexec: x86: vmlinux: fix physical addresses

x86_64-vmlinux-fix-physical-addrs.patch
  kexec: x86_64: vmlinux: fix physical addresses

x86_64-entry64.patch
  kexec: x86_64: add 64-bit entry

x86-config-kernel-start.patch
  kexec: x86: add CONFIG_PYSICAL_START

x86_64-config-kernel-start.patch
  kexec: x86_64: add CONFIG_PHYSICAL_START

kexec-kexec-generic.patch
  kexec: add kexec syscalls

x86-machine_shutdown.patch
  kexec: x86: factor out apic shutdown code

x86-kexec.patch
  kexec: x86 kexec core

x86-crashkernel.patch
  crashdump: x86 crashkernel option

x86_64-machine_shutdown.patch
  kexec: x86_64: factor out apic shutdown code

x86_64-kexec.patch
  kexec: x86_64 kexec implementation

x86_64-crashkernel.patch
  crashdump: x86_64: crashkernel option

kexec-ppc-support.patch
  kexec: kexec ppc support

x86-crash_shutdown-nmi-shootdown.patch
  crashdump: x86: add NMI handler to capture other CPUs

x86-crash_shutdown-snapshot-registers.patch
  kexec: x86: snapshot registers during crash shutdown

x86-crash_shutdown-apic-shutdown.patch
  kexec: x86 shutdown APICs during crash_shutdown

crashdump-documentation.patch
  crashdump: documentation

crashdump-memory-preserving-reboot-using-kexec.patch
  crashdump: memory preserving reboot using kexec

crashdump-routines-for-copying-dump-pages.patch
  crashdump: routines for copying dump pages

crashdump-elf-format-dump-file-access.patch
  crashdump: elf format dump file access

crashdump-linear-raw-format-dump-file-access.patch
  crashdump: linear raw format dump file access

new-bitmap-list-format-for-cpusets.patch
  new bitmap list format (for cpusets)

cpusets-big-numa-cpu-and-memory-placement.patch
  cpusets - big numa cpu and memory placement

cpusets-config_cpusets-depends-on-smp.patch
  Cpusets: CONFIG_CPUSETS depends on SMP

cpusets-move-cpusets-above-embedded.patch
  move CPUSETS above EMBEDDED

cpusets-fix-cpuset_get_dentry.patch
  cpusets : fix cpuset_get_dentry()

cpusets-fix-race-in-cpuset_add_file.patch
  cpusets: fix race in cpuset_add_file()

cpusets-remove-more-casts.patch
  cpusets: remove more casts

cpusets-make-config_cpusets-the-default-in-sn2_defconfig.patch
  cpusets: make CONFIG_CPUSETS the default in sn2_defconfig

cpusets-document-proc-status-allowed-fields.patch
  cpusets: document proc status allowed fields

cpusets-dont-export-proc_cpuset_operations.patch
  Cpusets - Dont export proc_cpuset_operations

cpusets-display-allowed-masks-in-proc-status.patch
  cpusets: display allowed masks in proc status

cpusets-simplify-cpus_allowed-setting-in-attach.patch
  cpusets: simplify cpus_allowed setting in attach

cpusets-remove-useless-validation-check.patch
  cpusets: remove useless validation check

cpusets-tasks-file-simplify-format-fixes.patch
  Cpusets tasks file: simplify format, fixes

cpusets-simplify-memory-generation.patch
  Cpusets: simplify memory generation

cpusets-interoperate-with-hotplug-online-maps.patch
  cpusets: interoperate with hotplug online maps

cpusets-alternative-fix-for-possible-race-in.patch
  cpusets: alternative fix for possible race in  cpuset_tasks_read()

cpusets-remove-casts.patch
  cpusets: remove void* typecasts

reiser4-sb_sync_inodes.patch
  reiser4: vfs: add super_operations.sync_inodes()

reiser4-allow-drop_inode-implementation.patch
  reiser4: export vfs inode.c symbols

reiser4-truncate_inode_pages_range.patch
  reiser4: vfs: add truncate_inode_pages_range()

reiser4-export-remove_from_page_cache.patch
  reiser4: export pagecache add/remove functions to modules

reiser4-export-page_cache_readahead.patch
  reiser4: export page_cache_readahead to modules

reiser4-reget-page-mapping.patch
  reiser4: vfs: re-check page->mapping after calling try_to_release_page()

reiser4-rcu-barrier.patch
  reiser4: add rcu_barrier() synchronization point

reiser4-export-inode_lock.patch
  reiser4: export inode_lock to modules

reiser4-export-pagevec-funcs.patch
  reiser4: export pagevec functions to modules

reiser4-export-radix_tree_preload.patch
  reiser4: export radix_tree_preload() to modules

reiser4-export-find_get_pages.patch

reiser4-radix-tree-tag.patch
  reiser4: add new radix tree tag

reiser4-radix_tree_lookup_slot.patch
  reiser4: add radix_tree_lookup_slot()

reiser4-perthread-pages.patch
  reiser4: per-thread page pools

reiser4-include-reiser4.patch
  reiser4: add to build system

reiser4-doc.patch
  reiser4: documentation

reiser4-only.patch
  reiser4: main fs

reiser4-recover-read-performance.patch
  reiser4: recover read performance

reiser4-export-find_get_pages_tag.patch
  reiser4-export-find_get_pages_tag

reiser4-add-missing-context.patch

add-acpi-based-floppy-controller-enumeration.patch
  Add ACPI-based floppy controller enumeration.

possible-dcache-bug-debugging-patch.patch
  Possible dcache BUG: debugging patch

serial-add-support-for-non-standard-xtals-to-16c950-driver.patch
  serial: add support for non-standard XTALs to 16c950 driver

add-support-for-possio-gcc-aka-pcmcia-siemens-mc45.patch
  Add support for Possio GCC AKA PCMCIA Siemens MC45

generic-serial-cli-conversion.patch
  generic-serial cli() conversion

specialix-io8-cli-conversion.patch
  Specialix/IO8 cli() conversion

sx-cli-conversion.patch
  SX cli() conversion

revert-allow-oem-written-modules-to-make-calls-to-ia64-oem-sal-functions.patch
  revert "allow OEM written modules to make calls to ia64 OEM SAL functions"

md-add-interface-for-userspace-monitoring-of-events.patch
  md: add interface for userspace monitoring of events.

make-acpi_bus_register_driver-consistent-with-pci_register_driver-again.patch
  make acpi_bus_register_driver() consistent with pci_register_driver()

remove-lock_section-from-x86_64-spin_lock-asm.patch
  remove LOCK_SECTION from x86_64 spin_lock asm

kfree_skb-dump_stack.patch
  kfree_skb-dump_stack

cancel_rearming_delayed_work.patch
  cancel_rearming_delayed_work()
  make cancel_rearming_delayed_workqueue static

ipvs-deadlock-fix.patch
  ipvs deadlock fix

minimal-ide-disk-updates.patch
  Minimal ide-disk updates

use-find_trylock_page-in-free_swap_and_cache-instead-of-hand-coding.patch
  use find_trylock_page in free_swap_and_cache instead of hand coding

radeonfb-set-accelerator-id.patch
  radeonfb: Set accelerator id

vesafb-change-return-error-id.patch
  vesafb: Change return error id

intelfb-workaround-for-830m.patch
  intelfb: Workaround for 830M

fbcon-save-blank-state-last.patch
  fbcon: Save blank state last

backlight-fix-compile-error-if-config_fb-is-unset.patch
  backlight: Fix compile error if CONFIG_FB is unset

matroxfb-fb_matrox_g-kconfig-changes.patch
  matroxfb: FB_MATROX_G Kconfig changes

raid5-overlapping-read-hack.patch
  raid5 overlapping read hack

include-type-information-as-module-info-where-possible.patch
  Include type information as module info where possible

figure-out-who-is-inserting-bogus-modules.patch
  Figure out who is inserting bogus modules

detect-atomic-counter-underflows.patch
  detect atomic counter underflows

post-halloween-doc.patch
  post halloween doc

periodically-scan-redzone-entries-and-slab-control-structures.patch
  periodically scan redzone entries and slab control structures

fuse-maintainers-kconfig-and-makefile-changes.patch
  Subject: [PATCH 1/11] FUSE - MAINTAINERS, Kconfig and Makefile changes

fuse-core.patch
  Subject: [PATCH 2/11] FUSE - core

fuse-device-functions.patch
  Subject: [PATCH 3/11] FUSE - device functions

fuse-make-two-functions-static.patch
  fuse: make two functions static

fuse-fix-variable-with-confusing-name.patch
  fuse: fix variable with confusing name

fuse-read-only-operations.patch
  Subject: [PATCH 4/11] FUSE - read-only operations

fuse-read-write-operations.patch
  Subject: [PATCH 5/11] FUSE - read-write operations

fuse-file-operations.patch
  Subject: [PATCH 6/11] FUSE - file operations

fuse-mount-options.patch
  Subject: [PATCH 7/11] FUSE - mount options

fuse-dont-check-against-zero-fsuid.patch
  fuse: don't check against zero fsuid

fuse-remove-mount_max-and-user_allow_other-module-parameters.patch
  fuse: remove mount_max and user_allow_other module parameters

fuse-extended-attribute-operations.patch
  Subject: [PATCH 8/11] FUSE - extended attribute operations

fuse-readpages-operation.patch
  Subject: [PATCH 9/11] FUSE - readpages operation

fuse-nfs-export.patch
  Subject: [PATCH 10/11] FUSE - NFS export

fuse-direct-i-o.patch
  Subject: [PATCH 11/11] FUSE - direct I/O

fuse-transfer-readdir-data-through-device.patch
  fuse: transfer readdir data through device

ieee1394-adds-a-disable_irm-option-to-ieee1394ko.patch
  ieee1394: add a disable_irm option to ieee1394.ko

cryptoapi-prepare-for-processing-multiple-buffers-at.patch
  CryptoAPI: prepare for processing multiple buffers at a time

cryptoapi-update-padlock-to-process-multiple-blocks-at.patch
  CryptoAPI: Update PadLock to process multiple blocks at  once

update-email-address-of-andrea-arcangeli.patch
  update email address of Andrea Arcangeli

compile-error-blackbird_load_firmware.patch
  blackbird_load_firmware compile fix

i386-x86_64-apicc-make-two-functions-static.patch
  i386/x86_64 apic.c: make two functions static

i386-cyrixc-make-a-function-static.patch
  i386 cyrix.c: make a function static

mtrr-some-cleanups.patch
  mtrr: some cleanups

i386-cpu-commonc-some-cleanups.patch
  i386 cpu/common.c: some cleanups

i386-cpuidc-make-two-functions-static.patch
  i386 cpuid.c: make two functions static

i386-efic-make-some-code-static.patch
  i386 efi.c: make some code static

i386-x86_64-io_apicc-misc-cleanups.patch
  i386/x86_64 io_apic.c: misc cleanups

i386-mpparsec-make-mp_processor_info-static.patch
  i386 mpparse.c: make MP_processor_info static

i386-x86_64-msrc-make-two-functions-static.patch
  i386/x86_64 msr.c: make two functions static

3w-abcdh-tw_device_extension-remove-an-unused-filed.patch
  3w-abcd.h: TW_Device_Extension: remove an unused field

hpet-make-some-code-static.patch
  hpet: make some code static

26-patch-i386-trapsc-make-a-function-static.patch
  i386 traps.c: make a function static

i386-semaphorec-make-4-functions-static.patch
  i386 semaphore.c: make 4 functions static

i386-rebootc-cleanups.patch
  i386: reboot.c cleanups

kill-aux_device_present.patch
  kill aux_device_present

i386-setupc-make-4-variables-static.patch
  i386 setup.c: make 4 variables static

mostly-i386-mm-cleanup.patch
  (mostly i386) mm cleanup

scsi-megaraid_mmc-make-some-code-static.patch
  SCSI megaraid_mm.c: make some code static

update-email-address-of-benjamin-lahaise.patch
  Update email address of Benjamin LaHaise

add-map_populate-sys_remap_file_pages-support-to-xfs.patch
  add MAP_POPULATE/sys_remap_file_pages support to XFS

update-email-address-of-philip-blundell.patch
  Update email address of Philip Blundell

mm-filemapc-make-a-function-static.patch
  mm/filemap.c: make a function static

kernel-acctc-make-a-function-static.patch
  kernel/acct.c: make a function static

kernel-auditc-make-some-functions-static.patch
  kernel/audit.c: make some functions static

kernel-capabilityc-make-a-spinlock-static.patch
  kernel/capability.c: make a spinlock static

mm-thrashc-make-a-variable-static.patch
  mm/thrash.c: make a variable static

lib-kernel_lockc-make-kernel_sem-static.patch
  lib/kernel_lock.c: make kernel_sem static

saa7146_vv_ksymsc-remove-two-unused-export_symbol_gpls.patch
  saa7146_vv_ksyms.c: remove two unused EXPORT_SYMBOL_GPL's

fix-placement-of-static-inline-in-nfsdh.patch
  fix placement of static inline in nfsd.h

drivers-block-umemc-make-two-functions-static.patch
  drivers/block/umem.c: make two functions static

drivers-block-xdc-make-a-variable-static.patch
  drivers/block/xd.c: make a variable static

typo-in-arch-x86_64-kconfig.patch
  Typo in arch/x86_64/Kconfig

misc-isapnp-cleanups.patch
  misc ISAPNP cleanups

some-pnp-cleanups.patch
  some PNP cleanups

if-0-cx88_risc_disasm.patch
  #if 0 cx88_risc_disasm




^ permalink raw reply	[flat|nested] 246+ messages in thread

* 2.6.11-rc1-mm2: CONFIG_SMP=n compile error
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
@ 2005-01-20  6:53                         ` Adrian Bunk
  2005-01-20  7:12                           ` Andrew Morton
  2005-01-20  9:57                         ` 2.6.11-rc1-mm2 Steffen Klassert
                                           ` (6 subsequent siblings)
  7 siblings, 1 reply; 246+ messages in thread
From: Adrian Bunk @ 2005-01-20  6:53 UTC (permalink / raw)
  To: Andrew Morton, Andi Kleen; +Cc: linux-kernel

On Wed, Jan 19, 2005 at 09:38:18PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.11-rc1-mm1:
>...
> +i386-x86-64-fix-smp-nmi-watchdog-race.patch
>...
>  x86_64 updates
>...

This obviously breaks compilation for CONFIG_SMP=n:

<--  snip  -->

...
  CC      arch/i386/kernel/nmi.o
arch/i386/kernel/nmi.c: In function `check_nmi_watchdog':
arch/i386/kernel/nmi.c:130: error: `cpu_callin_map' undeclared (first use in this function)
arch/i386/kernel/nmi.c:130: error: (Each undeclared identifier is reported only once
arch/i386/kernel/nmi.c:130: error: for each function it appears in.)
make[1]: *** [arch/i386/kernel/nmi.o] Error 1

<--  snip  -->

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2: CONFIG_SMP=n compile error
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Andrew Morton @ 2005-01-20  7:12 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: ak, linux-kernel

Adrian Bunk <bunk@stusta.de> wrote:
>
> arch/i386/kernel/nmi.c:130: error: `cpu_callin_map' undeclared (first use in this function)

--- 25/arch/i386/kernel/nmi.c~i386-x86-64-fix-smp-nmi-watchdog-race-fix	2005-01-19 23:03:08.946815320 -0800
+++ 25-akpm/arch/i386/kernel/nmi.c	2005-01-19 23:05:07.968721240 -0800
@@ -117,8 +117,10 @@ int __init check_nmi_watchdog (void)
 	/* FIXME: Only boot CPU is online at this stage.  Check CPUs
            as they come up. */
 	for (cpu = 0; cpu < NR_CPUS; cpu++) {
+#ifdef CONFIG_SMP
 		if (!cpu_isset(cpu, cpu_callin_map))
 			continue;
+#endif
 		if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) {
 			printk("CPU#%d: NMI appears to be stuck!\n", cpu);
 			nmi_active = 0;
diff -puN include/asm-i386/smp.h~i386-x86-64-fix-smp-nmi-watchdog-race-fix include/asm-i386/smp.h
_


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  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  9:57                         ` 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
                                           ` (5 subsequent siblings)
  7 siblings, 1 reply; 246+ messages in thread
From: Steffen Klassert @ 2005-01-20  9:57 UTC (permalink / raw)
  To: Andrew Morton, robert.olsson; +Cc: linux-kernel

On Wed, Jan 19, 2005 at 09:38:18PM -0800 or thereabouts, Andrew Morton wrote:

> +kill-softirq_pending.patch
> 
>  Remove softirq_pending().  This breaks net/core/pktgen.c.

net/built-in.o: In function `pktgen_thread_worker':
/usr/src/linux-2.6.11-rc1-mm2/net/core/pktgen.c:2809: undefined reference to `softirq_pending'
make: *** [.tmp_vmlinux1] Error 1

The patch below is a compile fix.

Signed-off-by: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>

--- vanilla-2.6.11-rc1-mm2/net/core/pktgen.c	Thu Jan 20 10:30:12 2005
+++ linux-2.6.11-rc1-mm2/net/core/pktgen.c	Thu Jan 20 10:26:03 2005
@@ -2806,7 +2806,7 @@
 			tx_since_softirq += pkt_dev->last_ok;
 
 			if (tx_since_softirq > max_before_softirq) {
-				if(softirq_pending(smp_processor_id()))  
+				if(local_softirq_pending())  
 					do_softirq();
 				tx_since_softirq = 0;
 			}

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-20  9:57                         ` 2.6.11-rc1-mm2 Steffen Klassert
@ 2005-01-20 10:39                           ` Christoph Hellwig
  0 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-20 10:39 UTC (permalink / raw)
  To: Andrew Morton, robert.olsson, linux-kernel

On Thu, Jan 20, 2005 at 10:57:09AM +0100, Steffen Klassert wrote:
> On Wed, Jan 19, 2005 at 09:38:18PM -0800 or thereabouts, Andrew Morton wrote:
> 
> > +kill-softirq_pending.patch
> > 
> >  Remove softirq_pending().  This breaks net/core/pktgen.c.
> 
> net/built-in.o: In function `pktgen_thread_worker':
> /usr/src/linux-2.6.11-rc1-mm2/net/core/pktgen.c:2809: undefined reference to `softirq_pending'
> make: *** [.tmp_vmlinux1] Error 1
> 
> The patch below is a compile fix.
> 
> Signed-off-by: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
> 
> --- vanilla-2.6.11-rc1-mm2/net/core/pktgen.c	Thu Jan 20 10:30:12 2005
> +++ linux-2.6.11-rc1-mm2/net/core/pktgen.c	Thu Jan 20 10:26:03 2005
> @@ -2806,7 +2806,7 @@
>  			tx_since_softirq += pkt_dev->last_ok;
>  
>  			if (tx_since_softirq > max_before_softirq) {
> -				if(softirq_pending(smp_processor_id()))  
> +				if(local_softirq_pending())  

That patch is fine, thanks.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  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  9:57                         ` 2.6.11-rc1-mm2 Steffen Klassert
@ 2005-01-20 11:40                         ` 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
                                           ` (4 subsequent siblings)
  7 siblings, 1 reply; 246+ messages in thread
From: Benoit Boissinot @ 2005-01-20 11:40 UTC (permalink / raw)
  To: Andrew Morton, Zwane Mwaikambo; +Cc: linux-kernel

On Wed, 19 Jan 2005 21:38:18 -0800, Andrew Morton <akpm@osdl.org> wrote:
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc1-mm2/
> 
> - There are a bunch of ioctl() and compat_ioctl() changes in here which seem
>   to be of dubious maturity.  Could people involved in this area please
>   review, test and let me know?
> 
> - A revamp of the kexec and crashdump patches.  Anyone who is interested in
>   this work, please help to get this ball rolling a little faster?
> 
> - This kernel isn't particularly well-tested, sorry.  I've been a bit tied
>   up with other stuff.
> 
> Changes since 2.6.11-rc1-mm1:
> 

>
> i386-cpu-hotplug-updated-for-mm.patch
>  i386 CPU hotplug updated for -mm

With this patch, it doesn't build on UP with local APIC :

arch/i386/kernel/nmi.c: In function `check_nmi_watchdog':
arch/i386/kernel/nmi.c:130: error: `cpu_callin_map' undeclared (first
use in this function)

(cpu_callin_map is only declared on smp)

regards,

Benoit

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-20 11:40                         ` 2.6.11-rc1-mm2 Benoit Boissinot
@ 2005-01-20 11:49                           ` Benoit Boissinot
  0 siblings, 0 replies; 246+ messages in thread
From: Benoit Boissinot @ 2005-01-20 11:49 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Thu, 20 Jan 2005 12:40:40 +0100, Benoit Boissinot <bboissin@gmail.com> wrote:
> On Wed, 19 Jan 2005 21:38:18 -0800, Andrew Morton <akpm@osdl.org> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc1-mm2/
> >
> >
> > i386-cpu-hotplug-updated-for-mm.patch
> >  i386 CPU hotplug updated for -mm
> 
> With this patch, it doesn't build on UP with local APIC :
> 
> arch/i386/kernel/nmi.c: In function `check_nmi_watchdog':
> arch/i386/kernel/nmi.c:130: error: `cpu_callin_map' undeclared (first
> use in this function)
> 
> (cpu_callin_map is only declared on smp)


i found the fix in the other thread 
(2.6.11-rc1-mm2: CONFIG_SMP=n compile error)

sorry for the noise

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
                                           ` (2 preceding siblings ...)
  2005-01-20 11:40                         ` 2.6.11-rc1-mm2 Benoit Boissinot
@ 2005-01-20 11:58                         ` Christoph Hellwig
  2005-01-21  0:09                         ` security hook missing in compat ioctl in 2.6.11-rc1-mm2 Michael S. Tsirkin
                                           ` (3 subsequent siblings)
  7 siblings, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-20 11:58 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

> +uml-provide-a-release-method-for-the-ubd-driver.patch

This one is bogus.  The driver core doesn't warn about a missing
release method just so that we add an empty one and bloat the kernel.

The object's lifetime rules needs fixing instead, and until that
happens that warning should be kept.


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2: CONFIG_SMP=n compile error
  2005-01-20  7:12                           ` Andrew Morton
@ 2005-01-20 17:44                             ` Rafael J. Wysocki
  0 siblings, 0 replies; 246+ messages in thread
From: Rafael J. Wysocki @ 2005-01-20 17:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Adrian Bunk, ak, linux-kernel

On Thursday, 20 of January 2005 08:12, Andrew Morton wrote:
> Adrian Bunk <bunk@stusta.de> wrote:
> >
> > arch/i386/kernel/nmi.c:130: error: `cpu_callin_map' undeclared (first use in this function)
> 
> --- 25/arch/i386/kernel/nmi.c~i386-x86-64-fix-smp-nmi-watchdog-race-fix	2005-01-19 23:03:08.946815320 -0800
> +++ 25-akpm/arch/i386/kernel/nmi.c	2005-01-19 23:05:07.968721240 -0800
> @@ -117,8 +117,10 @@ int __init check_nmi_watchdog (void)
>  	/* FIXME: Only boot CPU is online at this stage.  Check CPUs
>             as they come up. */
>  	for (cpu = 0; cpu < NR_CPUS; cpu++) {
> +#ifdef CONFIG_SMP
>  		if (!cpu_isset(cpu, cpu_callin_map))
>  			continue;
> +#endif
>  		if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) {
>  			printk("CPU#%d: NMI appears to be stuck!\n", cpu);
>  			nmi_active = 0;
> diff -puN include/asm-i386/smp.h~i386-x86-64-fix-smp-nmi-watchdog-race-fix include/asm-i386/smp.h

Similar fix is necessary for x86-64, it appears.

Greets,
RJW


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
		-- Lewis Carroll "Alice's Adventures in Wonderland"

^ permalink raw reply	[flat|nested] 246+ messages in thread

* security hook missing in compat ioctl in 2.6.11-rc1-mm2
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
                                           ` (3 preceding siblings ...)
  2005-01-20 11:58                         ` 2.6.11-rc1-mm2 Christoph Hellwig
@ 2005-01-21  0:09                         ` 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  8:06                         ` 2.6.11-rc1-mm2 Con Kolivas
                                           ` (2 subsequent siblings)
  7 siblings, 2 replies; 246+ messages in thread
From: Michael S. Tsirkin @ 2005-01-21  0:09 UTC (permalink / raw)
  To: Andrew Morton, Chris Wright, ak
  Cc: Greg KH, tiwai, mingo, rlrevell, linux-kernel, pavel, discuss,
	gordon.jin, alsa-devel, VANDROVE

Hi!
Security hook seems to be missing before compat_ioctl in mm2.
And, it would be nice to avoid calling it twice on some paths.

Chris Wright's patch addressed this in the most elegant way I think,
by adding vfs_ioctl.

Accordingly, this change:

@@ -468,6 +496,11 @@ asmlinkage long compat_sys_ioctl(unsigne
 
  found_handler:
 	if (t->handler) {
+		/* RED-PEN how should LSM module know it's handling 32bit? */
+		error = security_file_ioctl(filp, cmd, arg);
+		if (error)
+			goto out_fput;
+
 		lock_kernel();
 		error = t->handler(fd, cmd, arg, filp);
 		unlock_kernel();

 from Andy's "some fixes" patch wont be needed.

Chris - are you planning to update your patch to -rc1-mm2?
I'd like to see this addressed, after this I believe logically
we'll get everything right, then I have a couple of small
cosmetic patches, and I believe we'll be set.

-- 
I dont speak for Mellanox.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: security hook missing in compat ioctl in 2.6.11-rc1-mm2
  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
  1 sibling, 0 replies; 246+ messages in thread
From: Chris Wright @ 2005-01-21  0:10 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, Chris Wright, ak, Greg KH, tiwai, mingo, rlrevell,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, VANDROVE

* Michael S. Tsirkin (mst@mellanox.co.il) wrote:
> Hi!
> Security hook seems to be missing before compat_ioctl in mm2.
> And, it would be nice to avoid calling it twice on some paths.
> 
> Chris Wright's patch addressed this in the most elegant way I think,
> by adding vfs_ioctl.
> 
> Accordingly, this change:
> 
> @@ -468,6 +496,11 @@ asmlinkage long compat_sys_ioctl(unsigne
>  
>   found_handler:
>  	if (t->handler) {
> +		/* RED-PEN how should LSM module know it's handling 32bit? */
> +		error = security_file_ioctl(filp, cmd, arg);
> +		if (error)
> +			goto out_fput;
> +
>  		lock_kernel();
>  		error = t->handler(fd, cmd, arg, filp);
>  		unlock_kernel();
> 
>  from Andy's "some fixes" patch wont be needed.
> 
> Chris - are you planning to update your patch to -rc1-mm2?
> I'd like to see this addressed, after this I believe logically
> we'll get everything right, then I have a couple of small
> cosmetic patches, and I believe we'll be set.

Yes, Andrew asked me to wait until mm2 came out, so I'll rediff and send
shortly.

thanks,
-chris
-- 
Linux Security Modules     http://lsm.immunix.org     http://lsm.bkbits.net

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] compat ioctl security hook fixup
  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                           ` Chris Wright
  2005-01-21  4:19                             ` Andi Kleen
  1 sibling, 1 reply; 246+ messages in thread
From: Chris Wright @ 2005-01-21  1:26 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Andrew Morton, Chris Wright, ak, Greg KH, tiwai, mingo, rlrevell,
	linux-kernel, pavel, discuss, gordon.jin, alsa-devel, VANDROVE

* Michael S. Tsirkin (mst@mellanox.co.il) wrote:
> Security hook seems to be missing before compat_ioctl in mm2.
> And, it would be nice to avoid calling it twice on some paths.
> 
> Chris Wright's patch addressed this in the most elegant way I think,
> by adding vfs_ioctl.

The patch below is against Linus' tree as per Andrew's request.  It will
conflict with some of the changes in -mm2 (including the some-fixes bit
from Andi, and LTT).  I also have a patch directly against -mm2 if anyone
would like to see that instead.

thanks,
-chris
--

Introduce a simple helper, vfs_ioctl(), so that both sys_ioctl() and
compat_sys_ioctl() call the security hook in all cases and without
duplication.

Signed-off-by: Chris Wright <chrisw@osdl.org>

===== fs/ioctl.c 1.15 vs edited =====
--- 1.15/fs/ioctl.c	2005-01-15 14:31:01 -08:00
+++ edited/fs/ioctl.c	2005-01-18 11:18:33 -08:00
@@ -77,21 +77,10 @@ static int file_ioctl(struct file *filp,
 	return do_ioctl(filp, cmd, arg);
 }
 
-
-asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+int vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, unsigned long arg)
 {
-	struct file * filp;
 	unsigned int flag;
-	int on, error = -EBADF;
-	int fput_needed;
-
-	filp = fget_light(fd, &fput_needed);
-	if (!filp)
-		goto out;
-
-	error = security_file_ioctl(filp, cmd, arg);
-	if (error)
-		goto out_fput;
+	int on, error = 0;
 
 	switch (cmd) {
 		case FIOCLEX:
@@ -157,6 +146,24 @@ asmlinkage long sys_ioctl(unsigned int f
 				error = do_ioctl(filp, cmd, arg);
 			break;
 	}
+	return error;
+}
+
+asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+{
+	struct file * filp;
+	int error = -EBADF;
+	int fput_needed;
+
+	filp = fget_light(fd, &fput_needed);
+	if (!filp)
+		goto out;
+
+	error = security_file_ioctl(filp, cmd, arg);
+	if (error)
+		goto out_fput;
+
+	error = vfs_ioctl(filp, fd, cmd, arg);
  out_fput:
 	fput_light(filp, fput_needed);
  out:
===== fs/compat.c 1.48 vs edited =====
--- 1.48/fs/compat.c	2005-01-15 14:31:01 -08:00
+++ edited/fs/compat.c	2005-01-18 11:07:56 -08:00
@@ -437,6 +437,11 @@ asmlinkage long compat_sys_ioctl(unsigne
 	if (!filp)
 		goto out;
 
+	/* RED-PEN how should LSM module know it's handling 32bit? */
+	error = security_file_ioctl(filp, cmd, arg);
+	if (error)
+		goto out_fput;
+
 	if (filp->f_op && filp->f_op->compat_ioctl) {
 		error = filp->f_op->compat_ioctl(filp, cmd, arg);
 		if (error != -ENOIOCTLCMD)
@@ -477,7 +482,7 @@ asmlinkage long compat_sys_ioctl(unsigne
 
 	up_read(&ioctl32_sem);
  do_ioctl:
-	error = sys_ioctl(fd, cmd, arg);
+	error = vfs_ioctl(filp, fd, cmd, arg);
  out_fput:
 	fput_light(filp, fput_needed);
  out:
===== include/linux/fs.h 1.373 vs edited =====
--- 1.373/include/linux/fs.h	2005-01-15 14:31:01 -08:00
+++ edited/include/linux/fs.h	2005-01-18 11:10:54 -08:00
@@ -1564,6 +1564,8 @@ extern int vfs_stat(char __user *, struc
 extern int vfs_lstat(char __user *, struct kstat *);
 extern int vfs_fstat(unsigned int, struct kstat *);
 
+extern int vfs_ioctl(struct file *, unsigned int, unsigned int, unsigned long);
+
 extern struct file_system_type *get_fs_type(const char *name);
 extern struct super_block *get_super(struct block_device *);
 extern struct super_block *user_get_super(dev_t);

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] compat ioctl security hook fixup
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-21  4:19 UTC (permalink / raw)
  To: Chris Wright
  Cc: Michael S. Tsirkin, Andrew Morton, ak, Greg KH, tiwai, mingo,
	rlrevell, linux-kernel, pavel, discuss, gordon.jin, alsa-devel,
	VANDROVE

On Thu, Jan 20, 2005 at 05:26:56PM -0800, Chris Wright wrote:
> * Michael S. Tsirkin (mst@mellanox.co.il) wrote:
> > Security hook seems to be missing before compat_ioctl in mm2.
> > And, it would be nice to avoid calling it twice on some paths.
> > 
> > Chris Wright's patch addressed this in the most elegant way I think,
> > by adding vfs_ioctl.
> 
> The patch below is against Linus' tree as per Andrew's request.  It will
> conflict with some of the changes in -mm2 (including the some-fixes bit
> from Andi, and LTT).  I also have a patch directly against -mm2 if anyone
> would like to see that instead.

I'm not sure really adding vfs_ioctl is a good idea politically.
I predict we'll see drivers starting to use it, which will cause quite
broken design.

If you add it make at least sure it's not EXPORT_SYMBOL()ed.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] compat ioctl security hook fixup
  2005-01-21  4:19                             ` Andi Kleen
@ 2005-01-21  5:51                               ` Chris Wright
  2005-01-21  6:11                                 ` Andi Kleen
  0 siblings, 1 reply; 246+ messages in thread
From: Chris Wright @ 2005-01-21  5:51 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Chris Wright, Michael S. Tsirkin, Andrew Morton, Greg KH, tiwai,
	mingo, rlrevell, linux-kernel, pavel, discuss, gordon.jin,
	alsa-devel, VANDROVE

* Andi Kleen (ak@suse.de) wrote:
> I'm not sure really adding vfs_ioctl is a good idea politically.
> I predict we'll see drivers starting to use it, which will cause quite
> broken design.

Yes, that'd be quite broken.  I didn't have the same expectation.

> If you add it make at least sure it's not EXPORT_SYMBOL()ed.

It's certainly not, nor intended to be.  Would a comment to that
affect alleviate your concern?

thanks,
-chris

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: [PATCH] compat ioctl security hook fixup
  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
  0 siblings, 1 reply; 246+ messages in thread
From: Andi Kleen @ 2005-01-21  6:11 UTC (permalink / raw)
  To: Chris Wright
  Cc: Andi Kleen, Michael S. Tsirkin, Andrew Morton, Greg KH, tiwai,
	mingo, rlrevell, linux-kernel, pavel, discuss, gordon.jin,
	alsa-devel, VANDROVE

On Thu, Jan 20, 2005 at 09:51:03PM -0800, Chris Wright wrote:
> > If you add it make at least sure it's not EXPORT_SYMBOL()ed.
> 
> It's certainly not, nor intended to be.  Would a comment to that
> affect alleviate your concern?

Yes please.

-Andi

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] compat ioctl security hook fixup (take2)
  2005-01-21  6:11                                 ` Andi Kleen
@ 2005-01-21  6:35                                   ` Chris Wright
  0 siblings, 0 replies; 246+ messages in thread
From: Chris Wright @ 2005-01-21  6:35 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Chris Wright, Michael S. Tsirkin, Andrew Morton, Greg KH, tiwai,
	mingo, rlrevell, linux-kernel, pavel, discuss, gordon.jin,
	alsa-devel, VANDROVE

* Andi Kleen (ak@suse.de) wrote:
> On Thu, Jan 20, 2005 at 09:51:03PM -0800, Chris Wright wrote:
> > > If you add it make at least sure it's not EXPORT_SYMBOL()ed.
> > 
> > It's certainly not, nor intended to be.  Would a comment to that
> > affect alleviate your concern?
> 
> Yes please.

Patch respun, with comment added.

thanks,
-chris
--

Introduce a simple helper, vfs_ioctl(), so that both sys_ioctl() and
compat_sys_ioctl() call the security hook in all cases and without
duplication.

Signed-off-by: Chris Wright <chrisw@osdl.org>

===== fs/ioctl.c 1.15 vs edited =====
--- 1.15/fs/ioctl.c	2005-01-15 14:31:01 -08:00
+++ edited/fs/ioctl.c	2005-01-20 22:27:43 -08:00
@@ -77,21 +77,13 @@ static int file_ioctl(struct file *filp,
 	return do_ioctl(filp, cmd, arg);
 }
 
-
-asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+/* Simple helper for sys_ioctl and compat_sys_ioctl.  Not for drivers'
+ * use, and not intended to be EXPORT_SYMBOL()'d
+ */
+int vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, unsigned long arg)
 {
-	struct file * filp;
 	unsigned int flag;
-	int on, error = -EBADF;
-	int fput_needed;
-
-	filp = fget_light(fd, &fput_needed);
-	if (!filp)
-		goto out;
-
-	error = security_file_ioctl(filp, cmd, arg);
-	if (error)
-		goto out_fput;
+	int on, error = 0;
 
 	switch (cmd) {
 		case FIOCLEX:
@@ -157,6 +149,24 @@ asmlinkage long sys_ioctl(unsigned int f
 				error = do_ioctl(filp, cmd, arg);
 			break;
 	}
+	return error;
+}
+
+asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
+{
+	struct file * filp;
+	int error = -EBADF;
+	int fput_needed;
+
+	filp = fget_light(fd, &fput_needed);
+	if (!filp)
+		goto out;
+
+	error = security_file_ioctl(filp, cmd, arg);
+	if (error)
+		goto out_fput;
+
+	error = vfs_ioctl(filp, fd, cmd, arg);
  out_fput:
 	fput_light(filp, fput_needed);
  out:
===== fs/compat.c 1.48 vs edited =====
--- 1.48/fs/compat.c	2005-01-15 14:31:01 -08:00
+++ edited/fs/compat.c	2005-01-20 22:25:33 -08:00
@@ -437,6 +437,11 @@ asmlinkage long compat_sys_ioctl(unsigne
 	if (!filp)
 		goto out;
 
+	/* RED-PEN how should LSM module know it's handling 32bit? */
+	error = security_file_ioctl(filp, cmd, arg);
+	if (error)
+		goto out_fput;
+
 	if (filp->f_op && filp->f_op->compat_ioctl) {
 		error = filp->f_op->compat_ioctl(filp, cmd, arg);
 		if (error != -ENOIOCTLCMD)
@@ -477,7 +482,7 @@ asmlinkage long compat_sys_ioctl(unsigne
 
 	up_read(&ioctl32_sem);
  do_ioctl:
-	error = sys_ioctl(fd, cmd, arg);
+	error = vfs_ioctl(filp, fd, cmd, arg);
  out_fput:
 	fput_light(filp, fput_needed);
  out:
===== include/linux/fs.h 1.373 vs edited =====
--- 1.373/include/linux/fs.h	2005-01-15 14:31:01 -08:00
+++ edited/include/linux/fs.h	2005-01-20 22:25:33 -08:00
@@ -1564,6 +1564,8 @@ extern int vfs_stat(char __user *, struc
 extern int vfs_lstat(char __user *, struct kstat *);
 extern int vfs_fstat(unsigned int, struct kstat *);
 
+extern int vfs_ioctl(struct file *, unsigned int, unsigned int, unsigned long);
+
 extern struct file_system_type *get_fs_type(const char *name);
 extern struct super_block *get_super(struct block_device *);
 extern struct super_block *user_get_super(dev_t);

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
                                           ` (4 preceding siblings ...)
  2005-01-21  0:09                         ` security hook missing in compat ioctl in 2.6.11-rc1-mm2 Michael S. Tsirkin
@ 2005-01-21  8:06                         ` Con Kolivas
  2005-01-21  8:30                           ` 2.6.11-rc1-mm2 Andrew Morton
                                             ` (2 more replies)
  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
  7 siblings, 3 replies; 246+ messages in thread
From: Con Kolivas @ 2005-01-21  8:06 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 10610 bytes --]

Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc1/2.6.11-rc1-mm2/
> 
> - There are a bunch of ioctl() and compat_ioctl() changes in here which seem
>   to be of dubious maturity.  Could people involved in this area please
>   review, test and let me know?
> 
> - A revamp of the kexec and crashdump patches.  Anyone who is interested in
>   this work, please help to get this ball rolling a little faster?
> 
> - This kernel isn't particularly well-tested, sorry.  I've been a bit tied
>   up with other stuff.

Wont boot.

Stops after BIOS check successful.
Tried reverting a couple of patches mentioning boot or reboot and had no 
luck. Any ideas?

P4HT3.06 on a P4PE motherboard.

dmesg of working boot:
Linux version 2.6.10-ck5 (con@localhost) (gcc version 3.4.3) #1 SMP Tue 
Jan 18 19:45:16 EST 2005
BIOS-provided physical RAM map:
  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
  BIOS-e820: 0000000000100000 - 000000003ffec000 (usable)
  BIOS-e820: 000000003ffec000 - 000000003ffef000 (ACPI data)
  BIOS-e820: 000000003ffef000 - 000000003ffff000 (reserved)
  BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
  BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
  BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
1023MB LOWMEM available.
DMI 2.3 present.
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 15:2 APIC version 20
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1 15:2 APIC version 20
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 22 low level)
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Built 1 zonelists
Kernel command line: BOOT_IMAGE=ck5 ro root=305 
netconsole=6665@192.168.1.251/eth0,6666@192.168.1.1/
netconsole: local port 6665
netconsole: local IP 192.168.1.251
netconsole: interface eth0
netconsole: remote port 6666
netconsole: remote IP 192.168.1.1
netconsole: remote ethernet address ff:ff:ff:ff:ff:ff
Initializing CPU#0
CPU 0 irqstacks, hard=b03b7000 soft=b03b5000
PID hash table entries: 4096 (order: 12, 65536 bytes)
Detected 3105.371 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
Memory: 1035036k/1048496k available (1565k kernel code, 12932k reserved, 
1012k data, 168k init, 0k h
ighmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Physical Processor ID: 0
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
CPU0: Thermal monitoring enabled
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
CPU0: Intel(R) Pentium(R) 4 CPU 3.06GHz stepping 07
per-CPU timeslice cutoff: 1462.74 usecs.
task migration cache decay timeout: 2 msecs.
Booting processor 1/1 eip 3000
CPU 1 irqstacks, hard=b03b8000 soft=b03b6000
Initializing CPU#1
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Physical Processor ID: 0
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel P4/Xeon Extended MCE MSRs (12) available
CPU1: Thermal monitoring enabled
CPU1: Intel(R) Pentium(R) 4 CPU 3.06GHz stepping 07
Total of 2 processors activated (12320.76 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=-1
checking TSC synchronization across 2 CPUs: passed.
Brought up 2 CPUs
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xf1e50, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20041105
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 11 *12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, 
disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Enabled i801 SMBus device
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically.  If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device().  As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior.  If this argument makes the device work again,
** please email the output of "lspci" to bjorn.helgaas@hp.com
** so I can fix the driver.
Simple Boot Flag at 0x3a set to 0x80
Machine check exception polling timer started.
IA-32 Microcode Update Driver: v1.14 <tigran@veritas.com>
Initializing Cryptographic API
vesafb: framebuffer at 0xdc000000, mapped to 0xf0880000, using 1875k, 
total 65536k
vesafb: mode is 800x600x16, linelength=1600, pages=2
vesafb: protected mode interface info at c000:ed00
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 100x37
fb0: VESA VGA frame buffer device
ACPI: Power Button (FF) [PWRF]
Real Time Clock Driver v1.12
Non-volatile memory driver v1.2
hw_random: RNG not detected
Hangcheck: starting hangcheck timer 0.5.0 (tick is 180 seconds, margin 
is 60 seconds).
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
elevator: using cfq as default io scheduler
nbd: registered device at major 43
b44.c:v0.95 (Aug 3, 2004)
ACPI: PCI interrupt 0000:02:05.0[A] -> GSI 20 (level, low) -> IRQ 20
eth0: Broadcom 4400 10/100BaseT Ethernet 00:e0:18:ed:a2:29
netconsole: device eth0 not up yet, forcing it
netconsole: carrier detect appears flaky, waiting 10 seconds
b44: eth0: Link is down.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is on for TX and on for RX.
netconsole: network logging started
Linux video capture interface: v1.00
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH4: IDE controller at PCI slot 0000:00:1f.1
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
ICH4: chipset revision 2
ICH4: not 100% native mode: will probe irqs later
     ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
     ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: Maxtor 6Y080P0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: LITE-ON DVDRW SOHW-1653S, ATAPI CD/DVD-ROM drive
hdd: JLMS XJ-HD165H, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 160086528 sectors (81964 MB) w/7936KiB Cache, CHS=65535/16/63, 
UDMA(100)
  hda: hda1 hda2 < hda5 hda6 hda7 >
hdc: ATAPI 48X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
hdd: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 64Kbytes
TCP: Hash tables configured (established 131072 bind 43690)
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 15
Starting balanced_irq
ACPI wakeup devices:
PCI0 PCI1 PCI2 UAR1 USB0 USB1 USB2 US20 AC97
ACPI: (supports S0 S1 S4 S5)
BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 168k freed


lspci output:
00:00.0 Host bridge: Intel Corp. 82845G/GL[Brookdale-G]/GE/PE DRAM 
Controller/Host-Hub Interface (rev 02)
00:01.0 PCI bridge: Intel Corp. 82845G/GL[Brookdale-G]/GE/PE Host-to-AGP 
Bridge (rev 02)
00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) 
USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) 
USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) 
USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 
EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 82)
00:1f.0 ISA bridge: Intel Corp. 82801DB/DBL (ICH4/ICH4-L) LPC Bridge 
(rev 02)
00:1f.1 IDE interface: Intel Corp. 82801DB/DBL (ICH4/ICH4-L) 
UltraATA-100 IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus 
Controller (rev 02)
00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 
440 AGP 8x] (rev a4)
02:05.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
02:0d.0 Multimedia video controller: Brooktree Corporation Bt878 Video 
Capture (rev 11)
02:0d.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture 
(rev 11)



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-21  8:06                         ` 2.6.11-rc1-mm2 Con Kolivas
@ 2005-01-21  8:30                           ` Andrew Morton
  2005-01-21  8:34                           ` 2.6.11-rc1-mm2 Andrew Morton
  2005-01-21 12:48                           ` 2.6.11-rc1-mm2 Adrian Bunk
  2 siblings, 0 replies; 246+ messages in thread
From: Andrew Morton @ 2005-01-21  8:30 UTC (permalink / raw)
  To: Con Kolivas; +Cc: linux-kernel

Con Kolivas <kernel@kolivas.org> wrote:
>
>  Wont boot.
> 
>  Stops after BIOS check successful.

Your config boots OK on my P4.  As per usual :(

>  Tried reverting a couple of patches mentioning boot or reboot and had no 
>  luck. Any ideas?

None whatsoever, sorry.  Guess you could try stripping the .config, see if
you can identify something from that.

Did you try early printk?

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  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                           ` 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
  2 siblings, 1 reply; 246+ messages in thread
From: Andrew Morton @ 2005-01-21  8:34 UTC (permalink / raw)
  To: Con Kolivas; +Cc: linux-kernel

Con Kolivas <kernel@kolivas.org> wrote:
>
> Stops after BIOS check successful.

What does this mean, btw?  Can you be more specific about where it gets
stuck?

If you mean that it actually prints no messages at all then yeah, early
printk.  One suspect would be the kexec patches which play with boot-time
memory layouts and such.

Make sure that CONFIG_PHYSICAL_START is 0x100000.

x86-vmlinux-fix-physical-addrs.patch, perhaps..

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-21  8:34                           ` 2.6.11-rc1-mm2 Andrew Morton
@ 2005-01-21  8:37                             ` Con Kolivas
  0 siblings, 0 replies; 246+ messages in thread
From: Con Kolivas @ 2005-01-21  8:37 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 602 bytes --]

Andrew Morton wrote:
> Con Kolivas <kernel@kolivas.org> wrote:
> 
>>Stops after BIOS check successful.

earlyprintk on
> 
> 
> What does this mean, btw?  Can you be more specific about where it gets
> stuck?

It says decompressing BIOS check successful and then sits there

> If you mean that it actually prints no messages at all then yeah, early
> printk.  One suspect would be the kexec patches which play with boot-time
> memory layouts and such.

Hmm ok

> Make sure that CONFIG_PHYSICAL_START is 0x100000.

Yeah it is.
> 
> x86-vmlinux-fix-physical-addrs.patch, perhaps..

I'll try.

Cheers,
Con

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  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 12:48                           ` Adrian Bunk
  2005-01-21 22:29                             ` 2.6.11-rc1-mm2 Con Kolivas
  2 siblings, 1 reply; 246+ messages in thread
From: Adrian Bunk @ 2005-01-21 12:48 UTC (permalink / raw)
  To: Con Kolivas; +Cc: Andrew Morton, linux-kernel

On Fri, Jan 21, 2005 at 07:06:31PM +1100, Con Kolivas wrote:
> 
> Wont boot.
> 
> Stops after BIOS check successful.
> Tried reverting a couple of patches mentioning boot or reboot and had no 
> luck. Any ideas?
>...

Known bug that came from Linus' tree, already fixed in Linus' tree.

The thread discussion this bug starts with
  http://www.ussg.iu.edu/hypermail/linux/kernel/0501.2/1132.html

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-21 12:48                           ` 2.6.11-rc1-mm2 Adrian Bunk
@ 2005-01-21 22:29                             ` Con Kolivas
  0 siblings, 0 replies; 246+ messages in thread
From: Con Kolivas @ 2005-01-21 22:29 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 478 bytes --]

Adrian Bunk wrote:
> On Fri, Jan 21, 2005 at 07:06:31PM +1100, Con Kolivas wrote:
> 
>>Wont boot.
>>
>>Stops after BIOS check successful.
>>Tried reverting a couple of patches mentioning boot or reboot and had no 
>>luck. Any ideas?
>>...
> 
> 
> Known bug that came from Linus' tree, already fixed in Linus' tree.
> 
> The thread discussion this bug starts with
>   http://www.ussg.iu.edu/hypermail/linux/kernel/0501.2/1132.html

Yes indeed that fixes it. Thanks!

Cheers,
Con

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* [PATCH] sched: account rt_tasks as iso_ticks
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
                                           ` (5 preceding siblings ...)
  2005-01-21  8:06                         ` 2.6.11-rc1-mm2 Con Kolivas
@ 2005-01-21 22:43                         ` Con Kolivas
  2005-02-01  0:34                         ` 2.6.11-rc1-mm2 Ed Tomlinson
  7 siblings, 0 replies; 246+ messages in thread
From: Con Kolivas @ 2005-01-21 22:43 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 254 bytes --]


SCHED_ISO tasks should have their cpu accounting be a proportion of 
ticks that would normally be available for SCHED_NORMAL tasks.

Add ticks consumed by rt_tasks to the iso_ticks variable and comments.

Signed-off-by: Con Kolivas <kernel@kolivas.org>

[-- Attachment #1.2: account_rt_tasks_in_iso_ticks.diff --]
[-- Type: text/x-diff, Size: 783 bytes --]

Index: linux-2.6.11-rc1-mm2/kernel/sched.c
===================================================================
--- linux-2.6.11-rc1-mm2.orig/kernel/sched.c	2005-01-22 09:36:27.000000000 +1100
+++ linux-2.6.11-rc1-mm2/kernel/sched.c	2005-01-22 09:36:49.000000000 +1100
@@ -2499,7 +2499,13 @@ void scheduler_tick(void)
 	task_t *p = current;
 
 	rq->timestamp_last_tick = sched_clock();
-	if (iso_task(p) && !rq->iso_refractory)
+	/*
+	 * The iso_ticks accounting is incremented only when a SCHED_ISO task
+	 * is running in soft rt mode. Running rt_tasks are also accounted
+	 * to make the iso_cpu a proportion of cpu available for SCHED_NORMAL
+	 * tasks only.
+	 */
+	if (rt_task(p) || (iso_task(p) && !rq->iso_refractory))
 		inc_iso_ticks(rq, p);
 	else
 		dec_iso_ticks(rq, p);

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 246+ messages in thread

* reiser4 core patches: [Was: [RFC] per thread page reservation patch]
  2005-01-07 21:24                   ` Andrew Morton
  2005-01-07 21:24                     ` Andi Kleen
  2005-01-07 22:12                     ` Nikita Danilov
@ 2005-01-25 16:39                     ` Vladimir Saveliev
  2005-01-27 10:37                       ` Adrian Bunk
  2005-01-27 11:01                       ` Christoph Hellwig
  2 siblings, 2 replies; 246+ messages in thread
From: Vladimir Saveliev @ 2005-01-25 16:39 UTC (permalink / raw)
  To: Andrew Morton, Christoph Hellwig; +Cc: Nikita Danilov, linux-mm, linux-kernel

Hello

[per thread page reservation discussion is snipped]

> And the whole idea is pretty flaky really - how can one precalculate how
> much memory an arbitrary md-on-dm-on-loop-on-md-on-NBD stack will want to
> use?  It really would be better if we could drop the whole patch and make
> reiser4 behave more sanely when its writepage is called with for_reclaim=1.

ok, we will change reiser4 to keep its pool of preallocated pages
privately as Andi suggested. This will require to have
reiser4_find_or_create_page which will do what find_or_create_page does
plus get a page from the list of preallocated pages if alloc_page
returns NULL.

So, currently, reiser4 depends on the core patches listed below. Would
you please look over them and let us know which look reasonable and
which are to be eliminated.

reiser4-sb_sync_inodes.patch
This patch adds new operation (sync_inodes) to struct super_operations.
This operation allows a filesystem to writeout dirty pages not
necessarily on per-inode basis. Default implementation of this operation
is sync_sb_inodes.

reiser4-allow-drop_inode-implementation.patch
This EXPORT_SYMBOL-s inodes_stat, generic_forget_inode, destroy_inode
and wake_up_inode which are needed to implement drop_inode.
reiser4 implements function similar to generic_delete_inode to be able
to truncate inode pages together with metadata destroying in
reiser4_delete_inode whereas generic_delete_inode first truncates pages
and then calls foofs_delete_inode.

reiser4-truncate_inode_pages_range.patch
This patch makes truncate_inode_pages_range from truncate_inode_pages.
truncate_inode_pages_range can truncate only pages which fall into
specified range. truncate_inode_pages which trucates all pages starting
from specified offset is made a one liner which calls
truncate_inode_pages_range.

reiser4-rcu-barrier.patch
This patch introduces a new interface - rcu_barrier() which waits until
all the RCUs queued until this call have been completed.
This patch is by Dipankar Sarma <dipankar@in.ibm.com>

reiser4-reget-page-mapping.patch
This patch allows to remove page from page cache in foofs_releasepage.

reiser4-radix_tree_lookup_slot.patch
This patch extents radxi tree API with a function which returns pointer
to found item within the tree.

reiser4-export-remove_from_page_cache.patch
reiser4-export-page_cache_readahead.patch
reiser4-export-pagevec-funcs.patch
reiser4-export-radix_tree_preload.patch
reiser4-export-find_get_pages.patch
reiser4-export-generic_sync_sb_inodes.patch
The above patches EXPORT_SYMBOL several functions. Others may find it
useful if they were exported. 

reiser4-export-inode_lock.patch
Reiser4 used to manipulate with super block inode lists so it needs
inode_lock exported.
We are working now to not need this. But quite many things are based on
it. Is there any chance to have it included?


Thanks


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: reiser4 core patches: [Was: [RFC] per thread page reservation patch]
  2005-01-25 16:39                     ` reiser4 core patches: [Was: [RFC] per thread page reservation patch] Vladimir Saveliev
@ 2005-01-27 10:37                       ` Adrian Bunk
  2005-01-27 11:01                       ` Christoph Hellwig
  1 sibling, 0 replies; 246+ messages in thread
From: Adrian Bunk @ 2005-01-27 10:37 UTC (permalink / raw)
  To: Vladimir Saveliev
  Cc: Andrew Morton, Christoph Hellwig, Nikita Danilov, linux-mm, linux-kernel

Hi Vladimir,

a general request:

If you add new EXPORT_SYMBOL's, I'd strongly prefer them being 
EXPORT_SYMBOL_GPL's unless there's a very good reason for an 
EXPORT_SYMBOL.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: reiser4 core patches: [Was: [RFC] per thread page reservation patch]
  2005-01-25 16:39                     ` reiser4 core patches: [Was: [RFC] per thread page reservation patch] Vladimir Saveliev
  2005-01-27 10:37                       ` Adrian Bunk
@ 2005-01-27 11:01                       ` Christoph Hellwig
  1 sibling, 0 replies; 246+ messages in thread
From: Christoph Hellwig @ 2005-01-27 11:01 UTC (permalink / raw)
  To: Vladimir Saveliev; +Cc: Andrew Morton, Nikita Danilov, linux-mm, linux-kernel

> So, currently, reiser4 depends on the core patches listed below. Would
> you please look over them and let us know which look reasonable and
> which are to be eliminated.

> reiser4-sb_sync_inodes.patch
> This patch adds new operation (sync_inodes) to struct super_operations.
> This operation allows a filesystem to writeout dirty pages not
> necessarily on per-inode basis. Default implementation of this operation
> is sync_sb_inodes.

ok.

> reiser4-allow-drop_inode-implementation.patch
> This EXPORT_SYMBOL-s inodes_stat, generic_forget_inode, destroy_inode
> and wake_up_inode which are needed to implement drop_inode.
> reiser4 implements function similar to generic_delete_inode to be able
> to truncate inode pages together with metadata destroying in
> reiser4_delete_inode whereas generic_delete_inode first truncates pages
> and then calls foofs_delete_inode.

Not okay.  I though I explained you how to do it instead already?

> reiser4-truncate_inode_pages_range.patch
> This patch makes truncate_inode_pages_range from truncate_inode_pages.
> truncate_inode_pages_range can truncate only pages which fall into
> specified range. truncate_inode_pages which trucates all pages starting
> from specified offset is made a one liner which calls
> truncate_inode_pages_range.

Ok.

> reiser4-rcu-barrier.patch
> This patch introduces a new interface - rcu_barrier() which waits until
> all the RCUs queued until this call have been completed.
> This patch is by Dipankar Sarma <dipankar@in.ibm.com>

No idea, but if Dipankar things it's okay it probably is.

> reiser4-reget-page-mapping.patch
> This patch allows to remove page from page cache in foofs_releasepage.

probably ok, Andrew?

> reiser4-radix_tree_lookup_slot.patch
> This patch extents radxi tree API with a function which returns pointer
> to found item within the tree.

Idea is okay, implementation needs work:

__lookup_slot should be called radix_tree_lookup_slot and exported direcly.

radix_tree_lookup should be an inlined wrapper in the header, and kill
the != NULL comparims, it's superflous:

static inline void *radix_tree_lookup(struct radix_tree_root *root,
		unsigned long index)
{
	void **slot = radix_tree_lookup_slot(root, index);
	return slot ? *slot : NULL;
}

> reiser4-export-remove_from_page_cache.patch

Probably okay, but why do you need both remove_from_page_cache
and __remove_from_page_cache?

> reiser4-export-page_cache_readahead.patch

ok

> reiser4-export-pagevec-funcs.patch

ok

> reiser4-export-radix_tree_preload.patch

this one is nasty.  not your fault though, but why do we even
have global radix-tree preloads instead of pools.  What do you
need it for?

> reiser4-export-find_get_pages.patch

Why don't you use pagevecs instead?

> reiser4-export-generic_sync_sb_inodes.patch

Can't find this one in current -mm

> reiser4-export-inode_lock.patch
> Reiser4 used to manipulate with super block inode lists so it needs
> inode_lock exported.
> We are working now to not need this. But quite many things are based on
> it. Is there any chance to have it included?

No.  Modules must not look at inode_lock, it's far too much of an
implementation detail.

^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
                                           ` (6 preceding siblings ...)
  2005-01-21 22:43                         ` [PATCH] sched: account rt_tasks as iso_ticks Con Kolivas
@ 2005-02-01  0:34                         ` Ed Tomlinson
  2005-02-03 16:36                           ` 2.6.11-rc1-mm2 Alexander Nyberg
  7 siblings, 1 reply; 246+ messages in thread
From: Ed Tomlinson @ 2005-02-01  0:34 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, mikpe

On Thursday 20 January 2005 00:38, Andrew Morton wrote:
> - This kernel isn't particularly well-tested, sorry.  I've been a bit tied
>   up with other stuff.

I recently switched my main box to a x86_64 box and installed the unofficial
debian 'true64' port on it.  I have been running 11-rc2 (with the aa oom patches)
with no real problems.  I decided to try 11-rc2-mm2. 

The first time (with a serial console active) it ended with a panic.  When I enabled
a serial console it stalled.  I used alt+sysrq+T and then rebooted.  Here is the 
log.  There are no extra patches on top of mm2.  I compiled using gcc 3.4, with
a .config based on 11-rc2 using oldconfig.

Ed Tomlinson

Bootdata ok (command line is root=/dev/hda3 ro console=tty0 console=ttyS0,38400)
Linux version 2.6.11-rc2-mm2 (ed@grover) (gcc version 3.4.4 20041218 (prerelease) (Debian 3.4.3-7)) #1 Sun Jan 30 09:18:40 EST 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001fff0000 (usable)
 BIOS-e820: 000000001fff0000 - 000000001fff3000 (ACPI NVS)
 BIOS-e820: 000000001fff3000 - 0000000020000000 (ACPI data)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved)
 BIOS-e820: 00000000fefffc00 - 00000000ff000000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Nvidia board detected. Ignoring ACPI timer override.
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 15:4 APIC version 16
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: BIOS IRQ0 pin2 override ignored.
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 14 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 15 high edge)
Setting APIC routing to flat
Using ACPI (MADT) for SMP configuration information
Checking aperture...
CPU 0: aperture @ e0000000 size 128 MB
Built 1 zonelists
Initializing CPU#0
Kernel command line: root=/dev/hda3 ro console=tty0 console=ttyS0,38400
PID hash table entries: 2048 (order: 11, 65536 bytes)
time.c: Using 1.193182 MHz PIT timer.
time.c: Detected 1808.838 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
Memory: 510272k/524224k available (2163k kernel code, 13180k reserved, 1393k data, 140k init)
Security Framework v1.0.0 initialized
Capability LSM initialized
Mount-cache hash table entries: 256 (order: 0, 4096 bytes)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: AMD Athlon(tm) 64 Processor 2800+ stepping 0a
Using local APIC NMI watchdog using perfctr0
Using local APIC timer interrupts.
Detected 12.561 MHz APIC timer.
NET: Registered protocol family 16
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20050125
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
ACPI: Power Resource [ISAV] (on)
ACPI: PCI Interrupt Link [LNK1] (IRQs<7>Losing some ticks... checking if CPU frequency changed.
 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 *7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LUBA] (IRQs *3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LUBB] (IRQs *3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LAPU] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LUB2] (IRQs *3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LSID] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LFID] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [APC1] (IRQs *16), disabled.
ACPI: PCI Interrupt Link [APC2] (IRQs *17), disabled.
ACPI: PCI Interrupt Link [APC3] (IRQs *18), disabled.
ACPI: PCI Interrupt Link [APC4] (IRQs *19), disabled.
ACPI: PCI Interrupt Link [APC5] (IRQs *16), disabled.
ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCS] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APSI] (IRQs 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [APSJ] (IRQs 20 21 22 23) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically.  If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device().  As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior.  If this argument makes the device work again,
** please email the output of "lspci" to bjorn.helgaas@hp.com
** so I can fix the driver.
agpgart: Detected AGP bridge 0
agpgart: Setting up Nforce3 AGP.
agpgart: AGP aperture is 128M @ 0xe0000000
PCI-DMA: Disabling IOMMU.
IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
Initializing Cryptographic API
inotify device minor=63
Linux agpgart interface v0.101 (c) Dave Jones
[drm] Initialized drm 1.0.0 20040925
ACPI: PS/2 Keyboard Controller [PS2K] at I/O 0x60, 0x64, irq 1
ACPI: PS/2 Mouse Controller [PS2M] at irq 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 48 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE3-250: IDE controller at PCI slot 0000:00:08.0
NFORCE3-250: chipset revision 162
NFORCE3-250: not 100% native mode: will probe irqs later
NFORCE3-250: BIOS didn't set cable bits correctly. Enabling workaround.
NFORCE3-250: 0000:00:08.0 (rev a2) UDMA133 controller
    ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: Maxtor 6Y160P0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: CD-ROM 50X, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 1024KiB
hda: 320173056 sectors (163928 MB) w/7936KiB Cache, CHS=19929/255/63, UDMA(133)
 hda: hda1 hda2 hda3 hda4 < hda5 >
hdc: ATAPI 32X CD-ROM drive, 128kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
input: AT Translated Set 2 keyboard on isa0060/serio0
Linux telephony interface: v1.00
$Id: ixj.c,v 4.7 2001/08/13 06:19:33 craigs Exp $
Please email the following PERFCTR INIT lines to mikpe@csd.uu.se
To remove this message, rebuild the driver with CONFIG_PERFCTR_INIT_TESTS=n
PERFCTR INIT: vendor 2, family 15, model 4, stepping 10, clock 1808838 kHz
PERFCTR INIT: NITER == 64
PERFCTR INIT: loop overhead is 242 cycles
PERFCTR INIT: rdtsc cost is 9.3 cycles (839 total)
PERFCTR INIT: rdpmc cost is 10.0 cycles (882 total)
PERFCTR INIT: rdmsr (counter) cost is 51.0 cycles (3506 total)
PERFCTR INIT: rdmsr (evntsel) cost is 57.1 cycles (3902 total)
PERFCTR INIT: wrmsr (counter) cost is 71.9 cycles (4849 total)
PERFCTR INIT: wrmsr (evntsel) cost is 328.7 cycles (21285 total)
PERFCTR INIT: read cr4 cost is 6.0 cycles (626 total)
PERFCTR INIT: write cr4 cost is 67.0 cycles (4535 total)
PERFCTR INIT: write LVTPC cost is 22.5 cycles (1686 total)
PERFCTR INIT: sync_core cost is 164.5 cycles (10775 total)
perfctr: driver 2.7.9, cpu type AMD K7/K8 at 1808838 kHz
NET: Registered protocol family 2
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP established hash table entries: 32768 (order: 6, 262144 bytes)
TCP bind hash table entries: 32768 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 32768 bind 32768)
NET: Registered protocol family 8
NET: Registered protocol family 20
ACPI wakeup devices: 
HUB0 HUB1 USB0 USB1 USB2 F139 MMAC MMCI UAR1 
ACPI: (supports S0 S1 S4 S5)
ReiserFS: hda3: found reiserfs format "3.6" with standard journal
ReiserFS: hda3: using ordered data mode
ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda3: checking transaction log (hda3)
ReiserFS: hda3: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 140k freed
INIT: version 2.86 booting
NET: Registered protocol family 1
kobject_register failed for unix (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8015811d>{blockable_page_cache_readahead+109} 
       <ffffffff80151de0>{file_read_actor+0} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8017c127>{do_lookup+55} <ffffffff8017cfc9>{link_path_walk+2953} 
       <ffffffff801fdb46>{prio_tree_insert+406} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
kobject_register failed for unix (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8015811d>{blockable_page_cache_readahead+109} 
       <ffffffff80151de0>{file_read_actor+0} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8017c127>{do_lookup+55} <ffffffff8017cfc9>{link_path_walk+2953} 
       <ffffffff801fdb46>{prio_tree_insert+406} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
kobject_register failed for unix (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8015811d>{blockable_page_cache_readahead+109} 
       <ffffffff80151de0>{file_read_actor+0} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8017c127>{do_lookup+55} <ffffffff8017cfc9>{link_path_walk+2953} 
       <ffffffff801fdb46>{prio_tree_insert+406} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
kobject_register failed for unix (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8015811d>{blockable_page_cache_readahead+109} 
       <ffffffff80151de0>{file_read_actor+0} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fdb46>{prio_tree_insert+406} 
       <ffffffff8015cf18>{vma_prio_tree_insert+40} <ffffffff8016259c>{vma_link+172} 
       <ffffffff80163d28>{do_mmap_pgoff+1720} <ffffffff80113f5f>{sys_mmap+191} 
       <ffffffff8010e22a>{system_call+126} 
kobject_register failed for unix (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8015811d>{blockable_page_cache_readahead+109} 
       <ffffffff80151de0>{file_read_actor+0} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8017c127>{do_lookup+55} <ffffffff8017cfc9>{link_path_walk+2953} 
       <ffffffff801fdb46>{prio_tree_insert+406} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
Setting disc parameters: done.
Activating swap.
Adding 979956k swap on /dev/hda2.  Priority:-1 extents:1
Checking root file system...
fsck 1.36-rc5 (27-Jan-2005)
Reiserfs super block in block 16 on 0x303 of format 3.6 with standard journal
Blocks (total/free): 2196880/1332899 by 4096 bytes
Filesystem is clean
Filesystem seems mounted read-only. Skipping journal replay.
Checking internal tree..finished
Real Time Clock Driver v1.12
System time was Mon Jan 31 23:28:44 UTC 2005.
Setting the System Clock using the Hardware Clock as reference...
System Clock set. System local time is now Mon Jan 31 18:28:46 EST 2005.
Cleaning up ifupdown...done.
Calculating module dependencies... done.
Loading modules...
    ide-cd
FATAL: Module ide_cd not found.
    ide-generic
FATAL: Module ide_generic not found.
    sbp2
SCSI subsystem initialized
sbp2: Unknown symbol scsi_remove_host
sbp2: Unknown symbol hpsb_get_hostinfo
sbp2: Unknown symbol hpsb_node_write
sbp2: Unknown symbol hpsb_register_addrspace
sbp2: Unknown symbol hpsb_node_fill_packet
sbp2: Unknown symbol hpsb_register_protocol
sbp2: Unknown symbol _csr1212_read_keyval
sbp2: Unknown symbol hpsb_make_writepacket
sbp2: Unknown symbol hpsb_speedto_str
sbp2: Unknown symbol scsi_host_put
sbp2: Unknown symbol hpsb_send_packet
sbp2: Unknown symbol hpsb_unregister_protocol
sbp2: Unknown symbol hpsb_free_packet
sbp2: Unknown symbol scsi_add_host
sbp2: Unknown symbol ieee1394_bus_type
sbp2: Unknown symbol hpsb_create_hostinfo
sbp2: Unknown symbol hpsb_register_highlevel
sbp2: Unknown symbol hpsb_free_tlabel
sbp2: Unknown symbol hpsb_unregister_highlevel
sbp2: Unknown symbol scsi_unblock_requests
sbp2: Unknown symbol __scsi_print_command
sbp2: Unknown symbol scsi_block_requests
sbp2: Unknown symbol scsi_host_alloc
sbp2: Unknown symbol __scsi_add_device
sbp2: Unknown symbol hpsb_set_packet_complete_task
FATAL: Error inserting sbp2 (/likobject_register failed for scsi_mod (-17)
b/modules/2.6.11
Call Trace:-rc2-mm2/kernel/<ffffffff801fcac6>{kobject_register+70}drivers/ieee1394 /sbp2.ko): Unkno<ffffffff8014adc7>{sys_init_module+5559}wn symbol in mod ule, or unknown 
       parameter (see d<ffffffff801bfa09>{reiserfs_dirty_inode+105}mesg)
    sr_mo d
<ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff801d0c98>{do_journal_end+936} 
       <ffffffff801bfa09>{reiserfs_dirty_inode+105} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff8015cf18>{vma_prio_tree_insert+40} <ffffffff8016259c>{vma_link+172} 
       <ffffffff80163d28>{do_mmap_pgoff+1720} <ffffffff80113f5f>{sys_mmap+191} 
       <ffffffff8010e22a>{system_call+126} 
sr_mod: Unknown symbol scsi_mode_sense
sr_mod: Unknown symbol scsi_device_get
sr_mod: Unknown symbol scsi_wait_req
sr_mod: Unknown symbol scsi_test_unit_ready
sr_mod: Unknown symbol scsi_block_when_processing_errors
sr_mod: Unknown symbol scsi_register_driver
sr_mod: Unknown symbol scsi_ioctl
sr_mod: Unknown symbol scsi_nonblockable_ioctl
sr_mod: Unknown symbol scsi_device_put
sr_mod: Unknown symbol scsi_logging_level
sr_mod: Unknown symbol scsi_print_req_sense
sr_mod: Unknown symbol scsi_release_request
sr_mod: Unknown symbol scsi_print_sense
sr_mod: Unknown symbol scsi_allocate_request
sr_mod: Unknown symbol scsi_io_completion
sr_mod: Unknown symbol __scsi_print_command
sr_mod: Unknown symbol scsi_set_medium_removal
FATAL: Error inserting sr_mod (/lib/modules/2.6.11-rc2-mm2/kernel/drivers/scsi/sr_mod.ko): Unknown symbol in module, or unknown parameter (see dmesg)
All modules loaded.
Checking all file systems...
fsck 1.36-rc5 (27-Jan-2005)
/boot: clean, 39/52208 files, 25450/104391 blocks
Reiserfs super block in block 16 on 0x305 of format 3.6 with standard journal
Blocks (total/free): 37551920/24104839 by 4096 bytes
Filesystem is clean
Replaying journal..
Reiserfs journal '/dev/hda5' in blocks [18..8211]: 0 transactions replayed
Checking internal tree..finished
Setting kernel variables ...
... done.
Mounting local filesystems...
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
ReiserFS: hda5: found reiserfs format "3.6" with standard journal
ReiserFS: hda5: using ordered data mode
ReiserFS: hda5: journal params: device hda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda5: checking transaction log (hda5)
ReiserFS: hda5: Using r5 hash to sort names
/dev/hda1 on /boot type ext3 (rw)
/dev/hda5 on /poola type reiserfs (rw)
Cleaning /tmp /var/run /var/lock.
Detecting hardware: ohci1394 ide_scsi
Loading ohci1394 module.
kobject_register failed for ieee1394 (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
ohci1394: Unknown symbol hpsb_iso_wake
ohci1394: Unknown symbol hpsb_packet_received
ohci1394: Unknown symbol dma_prog_region_free
ohci1394: Unknown symbol hpsb_add_host
ohci1394: Unknown symbol dma_region_sync_for_device
ohci1394: Unknown symbol dma_prog_region_init
ohci1394: Unknown symbol dma_prog_region_alloc
ohci1394: Unknown symbol dma_region_offset_to_bus
ohci1394: Unknown symbol hpsb_alloc_host
ohci1394: Unknown symbol hpsb_selfid_complete
ohci1394: Unknown symbol hpsb_remove_host
ohci1394: Unknown symbol hpsb_iso_packet_received
ohci1394: Unknown symbol hpsb_iso_packet_sent
ohci1394: Unknown symbol hpsb_packet_sent
ohci1394: Unknown symbol dma_region_sync_for_cpu
ohci1394: Unknown symbol hpsb_selfid_received
ohci1394: Unknown symbol hpsb_bus_reset
FATAL: Error inserting ohci1394 (/lib/modules/2.6.11-rc2-mm2/kernel/drivers/ieee1394/ohci1394.ko): Unknown symbol in module, or unknown parametekobject_register failed for scsi_mod (-17)
r (see dmesg)
L
Call Trace:oading ide_scsi <ffffffff801fcac6>{kobject_register+70}module.
 <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
ide_scsi: Unknown symbol scsi_remove_host
ide_scsi: Unknown symbol scsi_host_put
ide_scsi: Unknown symbol scsi_scan_host
ide_scsi: Unknown symbol scsi_add_host
ide_scsi: Unknown symbol scsi_adjust_queue_depth
ide_scsi: Unknown symbol scsi_host_alloc
FATAL: Error inserting ide_scsi (/lib/modules/2.6.11-rc2-mm2/kernel/drivers/scsi/ide-scsi.ko): Unknown symbol in module, or unknown parameter (see dmesg)
Setting sensors limits:Can't access procfs/sysfs file
Unable to find i2c bus information;
For 2.6 kernels, make sure you have mounted sysfs and done
'modprobe i2c_sensor'!
For older kernels, make sure you have done 'modprobe i2c-proc'!
Can't access procfs/sysfs file
Unable to find i2c bus information;
For 2.6 kernels, make sure you have mounted sysfs and done
'modprobe i2c_sensor'!
For older kernels, make sure you have done 'modprobe i2c-proc'!
 done.
Running 0dns-down to make sure resolv.conf is ok...done.
/dev/shm/network/...Initializing: /etc/network/ifstate.
Starting hotplug subsystem:
   input   
     evbug: blacklisted
     evdev: loaded successfully
     evbug: blacklisted
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff801869ef>{__d_lookup+127} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
     evdev: loaded successfully
   input    [success]
   isapnp  
   isapnp   [success]
   net     
input.agent[1265]: segfault at 00007fffffffeb00 rip 00007fffffffeb00 rsp 00007fffffffe970 error 15
   net      [success]
   pci     
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff80188d78>{unlock_new_inode+8} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
i2c_nforce2: Unknown symbol i2c_del_adapter
i2c_nforce2: Unknown symbol i2c_add_adapter
modprobe: FATAL: Error inserting i2c_nforce2 (/lib/modules/2.6.11-rc2-mm2/kernel/drivers/i2c/busses/i2c-nforce2.ko): Unknown symbol in module, or unknown parameter (see dmesg)

     i2c-nforce2: can't be loaded
missing kernel or user mode driver i2c-nforce2 
ACPI: PCI Interrupt Link [APCF] enabled at IRQ 23
ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 23 (level, high) -> IRQ 23
ohci_hcd 0000:00:02.0: PCI device 10de:00e7 (nVidia Corporation)
ohci_hcd 0000:00:02.0: irq 23, pci mem 0xeb003000
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 4 ports detected
ACPI: PCI Interrupt Link [APCG] enabled at IRQ 22
ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 22 (level, high) -> IRQ 22
ohci_hcd 0000:00:02.1: PCI device 10de:00e7 (nVidia Corporation)
ohci_hcd 0000:00:02.1: irq 22, pci mem 0xeb004000
ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
     ohci-hcd: loaded successfully
ohci_hcd 0000:00:02.0: wakeup
ohci_hcd 0000:00:02.0: wakeup
kobject_register failed for ohci_hcd (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
     ohci-hcd: loaded successfully
ohci_hcd 0000:00:02.0: wakeup
ACPI: PCI Interrupt Link [APCL] enabled at IRQ 21
ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 21 (level, high) -> IRQ 21
ehci_hcd 0000:00:02.2: PCI device 10de:00e8 (nVidia Corporation)
ehci_hcd 0000:00:02.2: irq 21, pci mem 0xeb005000
ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 3
ehci_hcd 0000:00:02.2: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 8 ports detected
     ehci-hcd: loaded successfully
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.31.
ACPI: PCI Interrupt Link [APCH] enabled at IRQ 20
ACPI: PCI interrupt 0000:00:05.0[A] -> GSI 20 (level, high) -> IRQ 20
hub 3-0:1.0: over-current change on port 1
hub 3-0:1.0: over-current change on port 2
hub 3-0:1.0: over-current change on port 5
hub 3-0:1.0: over-current change on port 6
eth0: forcedeth.c: subsystem: 01462:0300 bound to 0000:00:05.0
     forcedeth: loaded successfully
ohci_hcd 0000:00:02.1: wakeup
snd: Unknown symbol unregister_sound_special
snd: Unknown symbol register_sound_special
snd: Unknown symbol sound_class
modprobe: WARNING: Error inserting snd (snd_timer: Unknown symbol snd_info_register
/lib/modules/2.6snd_timer: Unknown symbol snd_info_create_module_entry
.11-rc2-mm2/kernsnd_timer: Unknown symbol snd_info_free_entry
el/sound/core/snsnd_timer: Unknown symbol snd_iprintf
d.ko): Unknown ssnd_timer: Unknown symbol snd_ecards_limit
ymbol in module,snd_timer: Unknown symbol snd_oss_info_register
 or unknown parasnd_timer: Unknown symbol snd_unregister_device
meter (see dmesgsnd_timer: Unknown symbol snd_device_new
)

snd_timer: Unknown symbol snd_kmalloc_strdup
snd_timer: Unknown symbol snd_info_unregister
snd_timer: Unknown symbol snd_register_device
modprobe: WARNING: Error insertikobject_register failed for snd_page_alloc (-17)
ng snd_timer (/l
Call Trace:ib/modules/2.6.1<ffffffff801fcac6>{kobject_register+70}1-rc2-mm2/kernel /sound/core/snd-<ffffffff8014adc7>{sys_init_module+5559}timer.ko): Unkno wn symbol in mod
       ule, or unknown <ffffffff8019ffa0>{proc_alloc_inode+64}parameter (see d mesg)

<ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
kobject_register failed for soundcore (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
snd: Unknown symbol unregister_sound_special
snd: Unknown symbol register_sound_special
snd: Unknown symbol sound_class
modprobe: WARNINsnd_timer: Unknown symbol snd_info_register
G: Error insertisnd_timer: Unknown symbol snd_info_create_module_entry
ng snd (/lib/modsnd_timer: Unknown symbol snd_info_free_entry
ules/2.6.11-rc2-snd_timer: Unknown symbol snd_iprintf
mm2/kernel/soundsnd_timer: Unknown symbol snd_ecards_limit
/core/snd.ko): Usnd_timer: Unknown symbol snd_oss_info_register
nknown symbol insnd_timer: Unknown symbol snd_unregister_device
 module, or unknsnd_timer: Unknown symbol snd_device_new
own parameter (ssnd_timer: Unknown symbol snd_kmalloc_strdup
ee dmesg)

snd_timer: Unknown symbol snd_info_unregister
snd_timer: Unknown symbol snd_register_device
usb 2-4: new low speed USB device using ohci_hcd and address 3
modprobe: WARNING: Error inserting snd_timer (/lib/modules/2.6.11-rc2-mm2/kernelsnd_pcm: Unknown symbol snd_info_register
/sound/core/snd-snd_pcm: Unknown symbol snd_info_create_module_entry
timer.ko): Unknosnd_pcm: Unknown symbol snd_ctl_unregister_ioctl_compat
wn symbol in modsnd_pcm: Unknown symbol snd_timer_notify
ule, or unknown snd_pcm: Unknown symbol snd_timer_interrupt
parameter (see dsnd_pcm: Unknown symbol snd_info_free_entry
mesg)

snd_pcm: Unknown symbol snd_info_get_str
snd_pcm: Unknown symbol snd_dma_reserve_buf
snd_pcm: Unknown symbol snd_dma_free_pages
snd_pcm: Unknown symbol snd_ctl_register_ioctl
snd_pcm: Unknown symbol snd_card_file_add
snd_pcm: Unknown symbol snd_iprintf
snd_pcm: Unknown symbol snd_major
snd_pcm: Unknown symbol snd_malloc_pages
snd_pcm: Unknown symbol snd_unregister_device
snd_pcm: Unknown symbol snd_timer_new
snd_pcm: Unknown symbol snd_device_new
snd_pcm: Unknown symbol snd_dma_get_reserved_buf
snd_pcm: Unknown symbol snd_ctl_unregister_ioctl
snd_pcm: Unknown symbol snd_ctl_register_ioctl_compat
snd_pcm: Unknown symbol snd_info_create_card_entry
snd_pcm: Unknown symbol snd_power_wait
snd_pcm: Unknown symbol snd_device_free
snd_pcm: Unknown symbol snd_dma_alloc_pages
snd_pcm: Unknown symbol snd_card_file_remove
snd_pcm: Unknown symbol snd_free_pages
snd_pcm: Unknown symbol snd_info_unregister
snd_pcm: Unknown symbol snd_device_register
snd_pcm: Unknown symbol snd_register_device
snd_pcm: Unknown symbol snd_info_get_line
modprobe: FATAL: Error inserting snd_pcm (/lib/modules/2.6.11-rc2-mm2/kernel/sound/core/snd-pcm.snd_ac97_codec: Unknown symbol snd_info_register
ko): Unknown symsnd_ac97_codec: Unknown symbol snd_ctl_add
bol in module, osnd_ac97_codec: Unknown symbol snd_info_free_entry
r unknown paramesnd_ac97_codec: Unknown symbol snd_interval_refine
ter (see dmesg)snd_ac97_codec: Unknown symbol snd_ctl_find_id


modprobe: WAsnd_ac97_codec: Unknown symbol snd_ctl_new1
RNING: Error runsnd_ac97_codec: Unknown symbol snd_ctl_remove_id
ning install comsnd_ac97_codec: Unknown symbol snd_component_add
mand for snd_pcmsnd_ac97_codec: Unknown symbol snd_pcm_hw_rule_add


snd_ac97_codec: Unknown symbol snd_iprintf
snd_ac97_codec: Unknown symbol snd_device_new
snd_ac97_codec: Unknown symbol snd_info_create_card_entry
snd_ac97_codec: Unknown symbol snd_info_unregister
modprobe: WARNING: Error insertikobject_register failed for snd_page_alloc (-17)
ng snd_ac97_code
Call Trace:c (/lib/modules/<ffffffff801fcac6>{kobject_register+70}2.6.11-rc2-mm2/k ernel/sound/pci/<ffffffff8014adc7>{sys_init_module+5559}ac97/snd-ac97-co dec.ko): Unknown
        symbol in modul<ffffffff801bfa09>{reiserfs_dirty_inode+105}e, or unknown pa rameter (see dme<ffffffff80145430>{autoremove_wake_function+0}sg)

 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff801d0c98>{do_journal_end+936} 
       <ffffffff801bfa09>{reiserfs_dirty_inode+105} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff8015cf18>{vma_prio_tree_insert+40} <ffffffff8016259c>{vma_link+172} 
       <ffffffff80163d28>{do_mmap_pgoff+1720} <ffffffff80113f5f>{sys_mmap+191} 
       <ffffffff8010e22a>{system_call+126} 
kobject_register failed for soundcore (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff801bfa09>{reiserfs_dirty_inode+105} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff801d0c98>{do_journal_end+936} 
       <ffffffff801bfa09>{reiserfs_dirty_inode+105} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff8015cf18>{vma_prio_tree_insert+40} <ffffffff8016259c>{vma_link+172} 
       <ffffffff80163d28>{do_mmap_pgoff+1720} <ffffffff80113f5f>{sys_mmap+191} 
       <ffffffff8010e22a>{system_call+126} 
snd: Unknown symbol unregister_sound_special
snd: Unknown symbol register_sound_special
snd: Unknown symbol sound_class
modprobe: WARNINsnd_timer: Unknown symbol snd_info_register
G: Error insertisnd_timer: Unknown symbol snd_info_create_module_entry
ng snd (/lib/modsnd_timer: Unknown symbol snd_info_free_entry
ules/2.6.11-rc2-snd_timer: Unknown symbol snd_iprintf
mm2/kernel/soundsnd_timer: Unknown symbol snd_ecards_limit
/core/snd.ko): Usnd_timer: Unknown symbol snd_oss_info_register
nknown symbol insnd_timer: Unknown symbol snd_unregister_device
 module, or unknsnd_timer: Unknown symbol snd_device_new
own parameter (ssnd_timer: Unknown symbol snd_kmalloc_strdup
ee dmesg)

snd_timer: Unknown symbol snd_info_unregister
snd_timer: Unknown symbol snd_register_device
modprobe: WARNING: Error inserting snd_timer (/lib/modules/2.6.11-rc2-mm2/kernel/sound/core/snd-timer.ko): Unknown symbol in module, or unknown parameter (see dmesg)

usbcore: registered new driver hiddev
input: USB HID v1.00 Mouse [Microsoft Microsoft IntelliMouse® Optical] on usb-0000:00:02.1-4
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff80151de0>{file_read_actor+0} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
ts: Compaq touchscreen protocol output
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
mice: PS/2 mouse device common for all mice
kobject_register failed for evdev (-17)

Call Trace:<ffffffff801fcac6>{kobject_register+70} <ffffffff8014adc7>{sys_init_module+5559} 
       <ffffffff8019ffa0>{proc_alloc_inode+64} <ffffffff80187660>{alloc_inode+288} 
       <ffffffff80188752>{iget_locked+210} <ffffffff80145588>{wake_up_bit+24} 
       <ffffffff801a0089>{proc_get_inode+121} <ffffffff8017c127>{do_lookup+55} 
       <ffffffff8017cfc9>{link_path_walk+2953} <ffffffff801fd9e0>{prio_tree_insert+48} 
       <ffffffff80135c3f>{current_fs_time+79} <ffffffff8015cf18>{vma_prio_tree_insert+40} 
       <ffffffff8016259c>{vma_link+172} <ffffffff80163d28>{do_mmap_pgoff+1720} 
       <ffffffff80113f5f>{sys_mmap+191} <ffffffff8010e22a>{system_call+126} 
       
SysRq : Show State

                                                       sibling
  task                 PC          pid father child younger older
init          S 00000000fffccdd9     0     1      0     2               (NOTLB)
ffff81001ff93d88 0000000000000046 0000000000000000 ffffffff803e0440 
       ffff81001ff914a0 0000000000000218 ffffffff803d0400 ffff81001ff916b0 
       ffff81001ff914a0 000000101ffe0ec0 
Call Trace:<ffffffff803193fe>{schedule_timeout+158} <ffffffff8013a1e0>{process_timeout+0} 
       <ffffffff8017b211>{pipe_poll+65} <ffffffff80182117>{do_select+967} 
       <ffffffff80181c60>{__pollwait+0} <ffffffff801824e9>{sys_select+889} 
       <ffffffff8010e22a>{system_call+126} 
ksoftirqd/0   S 0000000000000000     0     2      1             3       (L-TLB)
ffff81001ff97f08 0000000000000046 ffffffff804915e0 ffffffff80141f30 
       ffff81001ff90dd0 00000000000004bb ffffffff803d0400 ffff81001ff90fe0 
       0000000000000005 ffffffff80136024 
Call Trace:<ffffffff80141f30>{__rcu_process_callbacks+272} <ffffffff80136024>{tasklet_action+68} 
       <ffffffff80136140>{ksoftirqd+0} <ffffffff80136185>{ksoftirqd+69} 
       <ffffffff80136140>{ksoftirqd+0} <ffffffff80144f4d>{kthread+205} 
       <ffffffff8010edef>{child_rip+8} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
events/0      R  running task       0     3      1             4     2 (L-TLB)
khelper       S ffff81001ffd31b0     0     4      1             9     3 (L-TLB)
ffff81001ffbde78 0000000000000046 0000000000000001 0000006f00000000 
       ffff81001ff90030 00000000000000a1 ffff81001bf8f720 ffff81001ff90240 
       ffff81001ffd31b0 ffff81001ffd31a0 
Call Trace:<ffffffff80140ec6>{worker_thread+278} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80140db0>{worker_thread+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144e80>{kthread+0} <ffffffff8010ede7>{child_rip+0} 
       
kthread       S ffff81001ff810f0     0     9      1    18     141     4 (L-TLB)
ffff8100018d3e78 0000000000000046 0000000000000001 0000007300000000 
       ffff81001ffbf4e0 0000000000000075 ffff81001ff914a0 ffff81001ffbf6f0 
       ffff81001ff810f0 ffff81001ff810e0 
Call Trace:<ffffffff80140ec6>{worker_thread+278} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80140db0>{worker_thread+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff801f7830>{dummy_d_instantiate+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
kacpid        S ffff81001ff83cb0     0    18      9           133       (L-TLB)
ffff810001945e78 0000000000000046 ffff81001ffbeeb0 0000007d8051ffb0 
       ffff81001ffbee10 00000000000005e1 ffff81001ff914a0 ffff81001ffbf020 
       ffff81001ffbeeb0 0000000000010000 
Call Trace:<ffffffff80140ec6>{worker_thread+278} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80140db0>{worker_thread+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144f90>{keventd_create_kthread+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
kblockd/0     S ffff81001ff83230     0   133      9           186    18 (L-TLB)
ffff8100019a7e78 0000000000000046 0000000000000000 0000007600000000 
       ffff81001ffbe740 000000000000063b ffff81001f5df6a0 ffff81001ffbe950 
       ffff81001ff83230 ffff81001ff83220 
Call Trace:<ffffffff80140ec6>{worker_thread+278} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80140db0>{worker_thread+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144f90>{keventd_create_kthread+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
khubd         S 0000000000000000     0   141      1           188     9 (L-TLB)
ffff8100019a9e38 0000000000000046 ffff81001fdd5a40 000000791ca54200 
       ffff81001ffbe070 00000000000012a2 ffff81001fb46840 ffff81001ffbe280 
       ffff8100000003e8 0000000000333030 
Call Trace:<ffffffff80290028>{hub_thread+2584} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff801339f7>{do_exit+2711} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff8010edef>{child_rip+8} <ffffffff8020c390>{vgacon_cursor+0} 
       <ffffffff8028f610>{hub_thread+0} <ffffffff8010ede7>{child_rip+0} 
       
pdflush       S ffff81001ff93df8     0   186      9           187   133 (L-TLB)
ffff81001fc0fec8 0000000000000046 0000000000000000 0000006f1fc0fe78 
       ffff8100019ad520 0000000000000057 ffff8100019ace50 ffff8100019ad730 
       0000000000000297 ffff81001fc0fec8 
Call Trace:<ffffffff80157995>{pdflush+165} <ffffffff801578f0>{pdflush+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144f90>{keventd_create_kthread+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
pdflush       S ffff81001fc11ef0     0   187      9           189   186 (L-TLB)
ffff81001fc11ec8 0000000000000046 0000000000000000 0000000000000000 
       ffff8100019ace50 000000000000004f ffffffff803d0400 ffff8100019ad060 
       0000000000000000 0000000000000005 
Call Trace:<ffffffff80157995>{pdflush+165} <ffffffff801578f0>{pdflush+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144f90>{keventd_create_kthread+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
aio/0         S ffffffff80488370     0   189      9           605   187 (L-TLB)
ffff81001fc15e78 0000000000000046 0000000000000000 0000007500000000 
       ffff8100019ac0b0 00000000000000de ffff81001ff90030 ffff8100019ac2c0 
       0000000000000000 0000000000010000 
Call Trace:<ffffffff80140ec6>{worker_thread+278} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80140db0>{worker_thread+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144f90>{keventd_create_kthread+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
kswapd0       S ffffffff803e04e0     0   188      1           523   141 (L-TLB)
ffff81001fc13ea8 0000000000000046 0000000000000000 0000007d00000000 
       ffff8100019ac780 0000000000000fc1 ffff81001ff914a0 ffff8100019ac990 
       0000000000000000 0000000000000000 
Call Trace:<ffffffff8015ccc5>{kswapd+261} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff8010edef>{child_rip+8} 
       <ffffffff8015cbc0>{kswapd+0} <ffffffff8010ede7>{child_rip+0} 
       
kseriod       S ffffffff801001b0     0   523      1           610   188 (L-TLB)
ffff81001fc9dea8 0000000000000046 ffff81001fc29600 0000007d1fc9de58 
       ffff81001fc29560 0000000000000f08 ffff81001ff914a0 ffff81001fc29770 
       000000000000020a 0000007700000086 
Call Trace:<ffffffff80257552>{serio_thread+434} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff8010edef>{child_rip+8} 
       <ffffffff8020c390>{vgacon_cursor+0} <ffffffff802573a0>{serio_thread+0} 
       <ffffffff8010ede7>{child_rip+0} 
reiserfs/0    S ffff81001fca8a40     0   605      9                 189 (L-TLB)
ffff810001b2fe78 0000000000000046 0000000000000000 0000000000000000 
       ffff81001fc28e90 00000000000035cb ffffffff803d0400 ffff81001fc290a0 
       ffff81001fca8a70 ffff81001fca8a60 
Call Trace:<ffffffff80140ec6>{worker_thread+278} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80140db0>{worker_thread+0} 
       <ffffffff80144f4d>{kthread+205} <ffffffff8010edef>{child_rip+8} 
       <ffffffff80144f90>{keventd_create_kthread+0} <ffffffff80144e80>{kthread+0} 
       <ffffffff8010ede7>{child_rip+0} 
init          S 0000000000000263     0   610      1   611     631   523 (NOTLB)
ffff81001f97fe68 0000000000000046 ffffffff8014186f 000000741f8e8130 
       ffff81001f8e8800 0000000000000a9f ffff81001ff914a0 ffff81001f8e8a10 
       0000000000000014 00002aaaaac6bd10 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da61>{sys_rt_sigaction+113} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
rcS           S ffff81001f8e8248     0   611    610  1150               (NOTLB)
ffff81001f993e68 0000000000000046 ffffffff8014186f ffff81001fb46f10 
       ffff81001f8e8130 00000000000019bb ffffffff803d0400 ffff81001f8e8340 
       0000000000000007 00000000005d0000 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da84>{sys_rt_sigaction+148} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
udevd         S 7fffffffffffffff     0   631      1           850   610 (NOTLB)
ffff81001f63bd88 0000000000000046 0000000000000000 00000070803e0440 
       ffff81001fb62880 0000000000001775 ffff81001e7196e0 ffff81001fb62a90 
       ffff81001fb62880 0000001000000000 
Call Trace:<ffffffff8031937e>{schedule_timeout+30} <ffffffff80181caa>{__pollwait+74} 
       <ffffffff80182117>{do_select+967} <ffffffff80181c60>{__pollwait+0} 
       <ffffffff801824e9>{sys_select+889} <ffffffff8010e22a>{system_call+126} 
       
khpsbpkt      S ffffffff8804e670     0   850      1           970   631 (L-TLB)
ffff81001ec01e78 0000000000000046 ffff81001fb46170 0000000000000001 
       ffff81001fb46170 0000000000000706 ffffffff803d0400 ffff81001fb46380 
       ffffffff8806b400 ffffffff80132846 
Call Trace:<ffffffff80132846>{reparent_to_init+486} <ffffffff80318386>{__down_interruptible+198} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff80319961>{__down_failed_interruptible+53} 
       <ffffffff8010edef>{child_rip+8} <ffffffff8010ede7>{child_rip+0} 
       
kjournald     S 0000000000000001     0   970      1                 850 (L-TLB)
ffff81001c29be58 0000000000000046 ffff81001c29be38 0000007780145439 
       ffff81001fb82f90 00000000002a08a8 ffff81001f8e95a0 ffff81001fb831a0 
       ffff81001cb23200 ffff81001f0bf400 
Call Trace:<ffffffff801ec0ba>{kjournald+474} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff801ebec0>{commit_timeout+0} 
       <ffffffff8010edef>{child_rip+8} <ffffffff801ebee0>{kjournald+0} 
       <ffffffff8010ede7>{child_rip+0} 
S40hotplug    S 00000000ffffffff     0  1150    611  1269               (NOTLB)
ffff81001f673e68 0000000000000046 ffffffff8014186f 000000781f5de230 
       ffff81001fb46f10 0000000000002e37 ffff81001fc280f0 ffff81001fb47120 
       0000000000000007 00000000005cb088 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da84>{sys_rt_sigaction+148} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
pci.rc        S 00000000ffffffff     0  1269   1150  1710               (NOTLB)
ffff81001d4f1e68 0000000000000046 ffffffff8014186f 000000731fb828c0 
       ffff81001f5de230 000000000000b348 ffff81001ffbe070 ffff81001f5de440 
       0000000000000007 00000000005ce208 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da84>{sys_rt_sigaction+148} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
pci.agent     S ffff81001fb829d8     0  1710   1269  1738               (NOTLB)
ffff81001d37fe68 0000000000000046 ffffffff8014186f ffff81001fc280f0 
       ffff81001fb828c0 0000000000012b21 ffffffff803d0400 ffff81001fb82ad0 
       0000000000000007 00000000005c5fe4 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da84>{sys_rt_sigaction+148} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
modprobe      S 00000000000006e3     0  1738   1710  1763               (NOTLB)
ffff81001ea1de68 0000000000000046 ffffffff8014186f 000000791fb63620 
       ffff81001fc280f0 00000000000008ce ffff81001f5df6a0 ffff81001fc28300 
       0000000000000007 00002aaaaadfdbf0 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8010e22a>{system_call+126} 
sh            S 00000000ffffffff     0  1763   1738  1764               (NOTLB)
ffff81001e6fbe68 0000000000000046 ffffffff8014186f 000000751f5df6a0 
       ffff81001fb63620 0000000000003d22 ffff81001fc280f0 ffff81001fb63830 
       0000000000000007 00002aaaaabbf0f0 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da84>{sys_rt_sigaction+148} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
modprobe      S 00000000000006ef     0  1764   1763  1775               (NOTLB)
ffff81001e4f3e68 0000000000000046 ffffffff8014186f 000000781fb46840 
       ffff81001f5df6a0 0000000000001e3e ffff81001fb621b0 ffff81001f5df8b0 
       0000000000000007 00002aaaaadfdbf0 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8012dc80>{default_wake_function+0} 
       <ffffffff8010e22a>{system_call+126} 
sh            S 00000000ffffffff     0  1775   1764  1794               (NOTLB)
ffff81001c4fbe68 0000000000000046 ffffffff8014186f 000000791f8e8ed0 
       ffff81001fb46840 00000000000122d5 ffff81001f5df6a0 ffff81001fb46a50 
       0000000000000007 00002aaaaabbf0f0 
Call Trace:<ffffffff8014186f>{attach_pid+47} <ffffffff80134a69>{do_wait+3193} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8013da84>{sys_rt_sigaction+148} 
       <ffffffff8012dc80>{default_wake_function+0} <ffffffff8010e22a>{system_call+126} 
       
modprobe      S ffff81001e231ec8     0  1794   1775                     (NOTLB)
ffff81001e231e88 0000000000000046 ffff81001f189b10 0000007900000296 
       ffff81001f8e8ed0 000000000040b490 ffff81001fb46840 ffff81001f8e90e0 
       fffffff500000000 0000000000000000 
Call Trace:<ffffffff80185127>{fcntl_setlk+583} <ffffffff80145430>{autoremove_wake_function+0} 
       <ffffffff80145430>{autoremove_wake_function+0} <ffffffff80180c99>{sys_fcntl+697} 
       <ffffffff8010e22a>{system_call+126} 
SysRq : Emergency Sync
Emergency Sync complete
SysRq : Emergency Remount R/O
Emergency Remount complete
SysRq : Resetting
machine restart


^ permalink raw reply	[flat|nested] 246+ messages in thread

* Re: 2.6.11-rc1-mm2
  2005-02-01  0:34                         ` 2.6.11-rc1-mm2 Ed Tomlinson
@ 2005-02-03 16:36                           ` Alexander Nyberg
  0 siblings, 0 replies; 246+ messages in thread
From: Alexander Nyberg @ 2005-02-03 16:36 UTC (permalink / raw)
  To: Ed Tomlinson; +Cc: Andrew Morton, linux-kernel, mikpe

> Bootdata ok (command line is root=/dev/hda3 ro console=tty0 console=ttyS0,38400)
> Linux version 2.6.11-rc2-mm2 (ed@grover) (gcc version 3.4.4 20041218 (prerelease) (Debian 3.4.3-7)) #1 Sun Jan 30 09:18:40 EST 2005
                ^^^^^^^^^^^^^^

Me thinks this will fix it for you:

--- 25/include/linux/stop_machine.h~fix-kallsyms-insmod-rmmod-race-fix-fix-fix	2005-01-29 16:17:47.936137064 -0800
+++ 25-akpm/include/linux/stop_machine.h	2005-01-29 16:18:09.493859792 -0800
@@ -57,7 +57,7 @@ static inline int stop_machine_run(int (
 static inline int stop_machine_run(int (*fn)(void *), void *data,
 				   unsigned int cpu)
 {
-	return 0;
+	return fn(data);
 }
 
 #endif	/* CONFIG_STOP_MACHINE */
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/




^ permalink raw reply	[flat|nested] 246+ messages in thread

end of thread, other threads:[~2005-02-03 16:39 UTC | newest]

Thread overview: 246+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-15  6:56 unregister_ioctl32_conversion and modules. ioctl32 revisited Andi Kleen
2004-12-15  7:46 ` Michael S. Tsirkin
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-16  5:03       ` [discuss] " 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: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 20:21                 ` Nikita Danilov
2005-01-07 19:05               ` Christoph Hellwig
2005-01-07 19:12                 ` Christoph Hellwig
2005-01-07 19:21                 ` Robert Love
2005-01-07 20:48                 ` Nikita Danilov
2005-01-07 20:54                   ` Christoph Hellwig
2005-01-07 21:00                     ` Nikita Danilov
2005-01-07 21:07                       ` Christoph Hellwig
2005-01-07 19:14               ` Paulo Marques
2005-01-07 19:32                 ` Christoph Hellwig
2005-01-07 19:42                   ` Andi Kleen
2005-01-07 20:55                 ` Nikita Danilov
2005-01-07 21:24                   ` Andrew Morton
2005-01-07 21:24                     ` Andi Kleen
2005-01-07 22:12                     ` Nikita Danilov
2005-01-07 23:03                       ` Andrew Morton
2005-01-07 23:17                         ` Nikita Danilov
2005-01-07 23:43                           ` Andrew Morton
2005-01-08 12:44                             ` Nikita Danilov
2005-01-08 13:43                               ` Hugh Dickins
2005-01-09 11:35                             ` Marcelo Tosatti
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-27 10:37                       ` Adrian Bunk
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 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-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
     [not found]               ` <20050106192701.GA13955@linux-mips.org>
2005-01-06 19:35                 ` Ilya A. Volynets-Evenbakh
2005-01-06 19:46                   ` Greg KH
2005-01-07  9:12                     ` 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
2005-01-06 19:03                       ` 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

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