[kernel] r12586 - in people/dannf/2.6.24+CVE-2009-0029/debian: . patches/bugfix/all/CVE-2009-0029 patches/series

Dann Frazier dannf at alioth.debian.org
Wed Jan 21 08:39:17 UTC 2009


Author: dannf
Date: Wed Jan 21 08:39:04 2009
New Revision: 12586

Log:
first pass - not yet compile-tested

Added:
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/   (props changed)
      - copied from r12585, /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch
Modified:
   people/dannf/2.6.24+CVE-2009-0029/debian/changelog
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038pre1-missing-include.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch
   people/dannf/2.6.24+CVE-2009-0029/debian/patches/series/6~etchnhalf.7etch1

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/changelog
==============================================================================
--- people/dannf/2.6.24+CVE-2009-0029/debian/changelog	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/changelog	Wed Jan 21 08:39:04 2009
@@ -7,8 +7,10 @@
   * [mips] Fix potential DOS by untrusted user app (CVE-2008-5701)
   * sctp: Fix memory overflow (CVE-2009-0065)
   * nfs: Fix fcntl/close race (CVE-2008-4307)
+  * Fix sign-extend ABI issue w/ system calls on various 64-bit architectures
+    (CVE-2009-0029)
 
- -- dann frazier <dannf at debian.org>  Tue, 13 Jan 2009 21:56:46 -0700
+ -- dann frazier <dannf at debian.org>  Wed, 21 Jan 2009 01:35:50 -0700
 
 linux-2.6.24 (2.6.24-6~etchnhalf.7) stable-security; urgency=high
 

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch	Wed Jan 21 08:39:04 2009
@@ -16,14 +16,14 @@
  include/linux/syscalls.h |   12 ------------
  2 files changed, 13 insertions(+), 12 deletions(-)
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/include/linux/compat.h linux-source-2.6.26/include/linux/compat.h
---- linux-source-2.6.26.orig/include/linux/compat.h	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/include/linux/compat.h	2009-01-19 11:09:53.000000000 -0700
-@@ -278,5 +278,18 @@ asmlinkage long compat_sys_timerfd_setti
- asmlinkage long compat_sys_timerfd_gettime(int ufd,
- 				   struct compat_itimerspec __user *otmr);
+diff -urpN linux-source-2.6.24.orig/include/linux/compat.h linux-source-2.6.24/include/linux/compat.h
+--- linux-source-2.6.24.orig/include/linux/compat.h	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/include/linux/compat.h	2009-01-21 00:03:52.000000000 -0700
+@@ -267,5 +267,18 @@ asmlinkage long compat_sys_signalfd(int 
+ asmlinkage long compat_sys_timerfd(int ufd, int clockid, int flags,
+ 				const struct compat_itimerspec __user *utmr);
  
 +asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page,
 +				      __u32 __user *pages,
@@ -40,10 +40,10 @@
 +
  #endif /* CONFIG_COMPAT */
  #endif /* _LINUX_COMPAT_H */
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 11:09:54.000000000 -0700
-@@ -527,11 +527,6 @@ asmlinkage long sys_move_pages(pid_t pid
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 00:03:52.000000000 -0700
+@@ -526,11 +526,6 @@ asmlinkage long sys_move_pages(pid_t pid
  				const int __user *nodes,
  				int __user *status,
  				int flags);
@@ -55,7 +55,7 @@
  asmlinkage long sys_mbind(unsigned long start, unsigned long len,
  				unsigned long mode,
  				unsigned long __user *nmask,
-@@ -579,13 +574,6 @@ asmlinkage long sys_readlinkat(int dfd, 
+@@ -578,13 +573,6 @@ asmlinkage long sys_readlinkat(int dfd, 
  			       int bufsiz);
  asmlinkage long sys_utimensat(int dfd, char __user *filename,
  				struct timespec __user *utimes, int flags);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch	Wed Jan 21 08:39:04 2009
@@ -15,11 +15,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org)
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org)
 
-diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
---- linux-source-2.6.26.orig/fs/read_write.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/read_write.c	2009-01-19 11:12:44.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
+--- linux-source-2.6.24.orig/fs/read_write.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/read_write.c	2009-01-21 00:05:39.000000000 -0700
 @@ -128,7 +128,7 @@ loff_t vfs_llseek(struct file *file, lof
  }
  EXPORT_SYMBOL(vfs_llseek);
@@ -29,7 +29,7 @@
  {
  	off_t retval;
  	struct file * file;
-@@ -350,7 +350,7 @@ static inline void file_pos_write(struct
+@@ -354,7 +354,7 @@ static inline void file_pos_write(struct
  	file->f_pos = pos;
  }
  
@@ -38,16 +38,16 @@
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -367,7 +367,7 @@ asmlinkage ssize_t sys_read(unsigned int
- 	return ret;
+@@ -372,7 +372,7 @@ asmlinkage ssize_t sys_read(unsigned int
  }
+ EXPORT_UNUSED_SYMBOL_GPL(sys_read); /* to be deleted for 2.6.25 */
  
 -asmlinkage ssize_t sys_write(unsigned int fd, const char __user * buf, size_t count)
 +asmlinkage long sys_write(unsigned int fd, const char __user * buf, size_t count)
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -384,7 +384,7 @@ asmlinkage ssize_t sys_write(unsigned in
+@@ -389,7 +389,7 @@ asmlinkage ssize_t sys_write(unsigned in
  	return ret;
  }
  
@@ -56,7 +56,7 @@
  			     size_t count, loff_t pos)
  {
  	struct file *file;
-@@ -405,7 +405,7 @@ asmlinkage ssize_t sys_pread64(unsigned 
+@@ -410,7 +410,7 @@ asmlinkage ssize_t sys_pread64(unsigned 
  	return ret;
  }
  
@@ -65,7 +65,7 @@
  			      size_t count, loff_t pos)
  {
  	struct file *file;
-@@ -653,7 +653,7 @@ ssize_t vfs_writev(struct file *file, co
+@@ -660,7 +660,7 @@ ssize_t vfs_writev(struct file *file, co
  
  EXPORT_SYMBOL(vfs_writev);
  
@@ -74,7 +74,7 @@
  sys_readv(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
  {
  	struct file *file;
-@@ -674,7 +674,7 @@ sys_readv(unsigned long fd, const struct
+@@ -681,7 +681,7 @@ sys_readv(unsigned long fd, const struct
  	return ret;
  }
  
@@ -83,7 +83,7 @@
  sys_writev(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
  {
  	struct file *file;
-@@ -793,7 +793,7 @@ out:
+@@ -808,7 +808,7 @@ out:
  	return retval;
  }
  
@@ -92,7 +92,7 @@
  {
  	loff_t pos;
  	off_t off;
-@@ -812,7 +812,7 @@ asmlinkage ssize_t sys_sendfile(int out_
+@@ -827,7 +827,7 @@ asmlinkage ssize_t sys_sendfile(int out_
  	return do_sendfile(out_fd, in_fd, NULL, count, 0);
  }
  
@@ -101,55 +101,55 @@
  {
  	loff_t pos;
  	ssize_t ret;
-diff -urpN linux-source-2.6.26.orig/fs/xattr.c linux-source-2.6.26/fs/xattr.c
---- linux-source-2.6.26.orig/fs/xattr.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/xattr.c	2009-01-19 11:14:17.000000000 -0700
-@@ -349,7 +349,7 @@ getxattr(struct dentry *d, const char __
+diff -urpN linux-source-2.6.24.orig/fs/xattr.c linux-source-2.6.24/fs/xattr.c
+--- linux-source-2.6.24.orig/fs/xattr.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/xattr.c	2009-01-21 00:11:43.000000000 -0700
+@@ -310,7 +310,7 @@ getxattr(struct dentry *d, char __user *
  	return error;
  }
  
 -asmlinkage ssize_t
 +asmlinkage long
- sys_getxattr(const char __user *path, const char __user *name,
- 	     void __user *value, size_t size)
+ sys_getxattr(char __user *path, char __user *name, void __user *value,
+ 	     size_t size)
  {
-@@ -364,7 +364,7 @@ sys_getxattr(const char __user *path, co
+@@ -325,7 +325,7 @@ sys_getxattr(char __user *path, char __u
  	return error;
  }
  
 -asmlinkage ssize_t
 +asmlinkage long
- sys_lgetxattr(const char __user *path, const char __user *name, void __user *value,
+ sys_lgetxattr(char __user *path, char __user *name, void __user *value,
  	      size_t size)
  {
-@@ -379,7 +379,7 @@ sys_lgetxattr(const char __user *path, c
+@@ -340,7 +340,7 @@ sys_lgetxattr(char __user *path, char __
  	return error;
  }
  
 -asmlinkage ssize_t
 +asmlinkage long
- sys_fgetxattr(int fd, const char __user *name, void __user *value, size_t size)
+ sys_fgetxattr(int fd, char __user *name, void __user *value, size_t size)
  {
  	struct file *f;
-@@ -424,7 +424,7 @@ listxattr(struct dentry *d, char __user 
+@@ -385,7 +385,7 @@ listxattr(struct dentry *d, char __user 
  	return error;
  }
  
 -asmlinkage ssize_t
 +asmlinkage long
- sys_listxattr(const char __user *path, char __user *list, size_t size)
+ sys_listxattr(char __user *path, char __user *list, size_t size)
  {
  	struct nameidata nd;
-@@ -438,7 +438,7 @@ sys_listxattr(const char __user *path, c
+@@ -399,7 +399,7 @@ sys_listxattr(char __user *path, char __
  	return error;
  }
  
 -asmlinkage ssize_t
 +asmlinkage long
- sys_llistxattr(const char __user *path, char __user *list, size_t size)
+ sys_llistxattr(char __user *path, char __user *list, size_t size)
  {
  	struct nameidata nd;
-@@ -452,7 +452,7 @@ sys_llistxattr(const char __user *path, 
+@@ -413,7 +413,7 @@ sys_llistxattr(char __user *path, char _
  	return error;
  }
  
@@ -158,10 +158,10 @@
  sys_flistxattr(int fd, char __user *list, size_t size)
  {
  	struct file *f;
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2009-01-19 11:09:54.000000000 -0700
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 11:12:44.000000000 -0700
-@@ -77,7 +77,7 @@ asmlinkage long sys_times(struct tms __u
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2009-01-21 00:03:52.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 00:10:17.000000000 -0700
+@@ -78,7 +78,7 @@ asmlinkage long sys_times(struct tms __u
  
  asmlinkage long sys_gettid(void);
  asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp);
@@ -170,7 +170,7 @@
  asmlinkage long sys_getpid(void);
  asmlinkage long sys_getppid(void);
  asmlinkage long sys_getuid(void);
-@@ -166,7 +166,7 @@ asmlinkage long sys_kexec_load(unsigned 
+@@ -167,7 +167,7 @@ asmlinkage long sys_kexec_load(unsigned 
  				unsigned long flags);
  
  asmlinkage long sys_exit(int error_code);
@@ -179,7 +179,7 @@
  asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr,
  				int options, struct rusage __user *ru);
  asmlinkage long sys_waitid(int which, pid_t pid,
-@@ -196,7 +196,7 @@ asmlinkage long sys_tkill(int pid, int s
+@@ -197,7 +197,7 @@ asmlinkage long sys_tkill(int pid, int s
  asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo);
  asmlinkage long sys_sgetmask(void);
  asmlinkage long sys_ssetmask(int newmask);
@@ -188,37 +188,35 @@
  asmlinkage long sys_pause(void);
  
  asmlinkage long sys_sync(void);
-@@ -246,29 +246,29 @@ asmlinkage long sys_lsetxattr(const char
- 			      const void __user *value, size_t size, int flags);
- asmlinkage long sys_fsetxattr(int fd, const char __user *name,
- 			      const void __user *value, size_t size, int flags);
--asmlinkage ssize_t sys_getxattr(const char __user *path, const char __user *name,
+@@ -247,27 +247,27 @@ asmlinkage long sys_lsetxattr(char __use
+ 				void __user *value, size_t size, int flags);
+ asmlinkage long sys_fsetxattr(int fd, char __user *name, void __user *value,
+ 				size_t size, int flags);
+-asmlinkage ssize_t sys_getxattr(char __user *path, char __user *name,
 -				void __user *value, size_t size);
--asmlinkage ssize_t sys_lgetxattr(const char __user *path, const char __user *name,
+-asmlinkage ssize_t sys_lgetxattr(char __user *path, char __user *name,
 -				void __user *value, size_t size);
--asmlinkage ssize_t sys_fgetxattr(int fd, const char __user *name,
+-asmlinkage ssize_t sys_fgetxattr(int fd, char __user *name,
 -				void __user *value, size_t size);
--asmlinkage ssize_t sys_listxattr(const char __user *path, char __user *list,
+-asmlinkage ssize_t sys_listxattr(char __user *path, char __user *list,
 -				size_t size);
--asmlinkage ssize_t sys_llistxattr(const char __user *path, char __user *list,
+-asmlinkage ssize_t sys_llistxattr(char __user *path, char __user *list,
 -				size_t size);
 -asmlinkage ssize_t sys_flistxattr(int fd, char __user *list, size_t size);
-+asmlinkage long sys_getxattr(const char __user *path, const char __user *name,
++asmlinkage long sys_getxattr(char __user *path, char __user *name,
 +			     void __user *value, size_t size);
-+asmlinkage long sys_lgetxattr(const char __user *path, const char __user *name,
++asmlinkage long sys_lgetxattr(char __user *path, char __user *name,
 +			      void __user *value, size_t size);
-+asmlinkage long sys_fgetxattr(int fd, const char __user *name,
++asmlinkage long sys_fgetxattr(int fd, char __user *name,
 +			      void __user *value, size_t size);
-+asmlinkage long sys_listxattr(const char __user *path, char __user *list,
++asmlinkage long sys_listxattr(char __user *path, char __user *list,
 +			      size_t size);
-+asmlinkage long sys_llistxattr(const char __user *path, char __user *list,
++asmlinkage long sys_llistxattr(char __user *path, char __user *list,
 +			       size_t size);
 +asmlinkage long sys_flistxattr(int fd, char __user *list, size_t size);
- asmlinkage long sys_removexattr(const char __user *path,
- 				const char __user *name);
- asmlinkage long sys_lremovexattr(const char __user *path,
- 				 const char __user *name);
- asmlinkage long sys_fremovexattr(int fd, const char __user *name);
+ asmlinkage long sys_removexattr(char __user *path, char __user *name);
+ asmlinkage long sys_lremovexattr(char __user *path, char __user *name);
+ asmlinkage long sys_fremovexattr(int fd, char __user *name);
  
 -asmlinkage unsigned long sys_brk(unsigned long brk);
 +asmlinkage long sys_brk(unsigned long brk);
@@ -233,7 +231,7 @@
  asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
  			unsigned long prot, unsigned long pgoff,
  			unsigned long flags);
-@@ -320,10 +320,10 @@ asmlinkage long sys_io_submit(aio_contex
+@@ -319,10 +319,10 @@ asmlinkage long sys_io_submit(aio_contex
  				struct iocb __user * __user *);
  asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
  			      struct io_event __user *result);
@@ -248,7 +246,7 @@
  asmlinkage long sys_readlink(const char __user *path,
  				char __user *buf, int bufsiz);
  asmlinkage long sys_creat(const char __user *pathname, int mode);
-@@ -367,26 +367,25 @@ asmlinkage long sys_utime(char __user *f
+@@ -366,26 +366,25 @@ asmlinkage long sys_utime(char __user *f
  				struct utimbuf __user *times);
  asmlinkage long sys_utimes(char __user *filename,
  				struct timeval __user *utimes);
@@ -291,7 +289,7 @@
  asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
  asmlinkage long sys_mkdir(const char __user *pathname, int mode);
  asmlinkage long sys_chdir(const char __user *filename);
-@@ -473,7 +472,7 @@ asmlinkage long sys_shmctl(int shmid, in
+@@ -472,7 +471,7 @@ asmlinkage long sys_shmctl(int shmid, in
  asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr);
  asmlinkage long sys_mq_unlink(const char __user *name);
  asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout);
@@ -300,10 +298,10 @@
  asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification);
  asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat);
  
-diff -urpN linux-source-2.6.26.orig/ipc/mqueue.c linux-source-2.6.26/ipc/mqueue.c
---- linux-source-2.6.26.orig/ipc/mqueue.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/ipc/mqueue.c	2009-01-19 11:12:44.000000000 -0700
-@@ -907,7 +907,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/ipc/mqueue.c linux-source-2.6.24/ipc/mqueue.c
+--- linux-source-2.6.24.orig/ipc/mqueue.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/ipc/mqueue.c	2009-01-21 00:05:39.000000000 -0700
+@@ -894,7 +894,7 @@ out:
  	return ret;
  }
  
@@ -312,10 +310,10 @@
  	size_t msg_len, unsigned int __user *u_msg_prio,
  	const struct timespec __user *u_abs_timeout)
  {
-diff -urpN linux-source-2.6.26.orig/kernel/exit.c linux-source-2.6.26/kernel/exit.c
---- linux-source-2.6.26.orig/kernel/exit.c	2009-01-10 05:42:12.000000000 -0700
-+++ linux-source-2.6.26/kernel/exit.c	2009-01-19 11:12:44.000000000 -0700
-@@ -1162,9 +1162,11 @@ do_group_exit(int exit_code)
+diff -urpN linux-source-2.6.24.orig/kernel/exit.c linux-source-2.6.24/kernel/exit.c
+--- linux-source-2.6.24.orig/kernel/exit.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/exit.c	2009-01-21 00:05:39.000000000 -0700
+@@ -1104,9 +1104,11 @@ do_group_exit(int exit_code)
   * wait4()-ing process will get the correct exit code - even if this
   * thread is not the thread group leader.
   */
@@ -327,11 +325,11 @@
 +	return 0;
  }
  
- static struct pid *task_pid_type(struct task_struct *task, enum pid_type type)
-diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
---- linux-source-2.6.26.orig/kernel/signal.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/signal.c	2009-01-19 11:12:44.000000000 -0700
-@@ -2532,7 +2532,7 @@ sys_ssetmask(int newmask)
+ static int eligible_child(pid_t pid, int options, struct task_struct *p)
+diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
+--- linux-source-2.6.24.orig/kernel/signal.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/signal.c	2009-01-21 00:05:39.000000000 -0700
+@@ -2543,7 +2543,7 @@ sys_ssetmask(int newmask)
  /*
   * For backwards compatibility.  Functionality superseded by sigaction.
   */
@@ -340,10 +338,10 @@
  sys_signal(int sig, __sighandler_t handler)
  {
  	struct k_sigaction new_sa, old_sa;
-diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
---- linux-source-2.6.26.orig/kernel/timer.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/timer.c	2009-01-19 11:12:44.000000000 -0700
-@@ -1082,7 +1082,7 @@ void do_timer(unsigned long ticks)
+diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
+--- linux-source-2.6.24.orig/kernel/timer.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/kernel/timer.c	2009-01-21 00:05:39.000000000 -0700
+@@ -947,7 +947,7 @@ void do_timer(unsigned long ticks)
   * For backwards compatibility?  This can be done in libc so Alpha
   * and all newer ports shouldn't need it.
   */
@@ -352,10 +350,10 @@
  {
  	return alarm_setitimer(seconds);
  }
-diff -urpN linux-source-2.6.26.orig/mm/filemap.c linux-source-2.6.26/mm/filemap.c
---- linux-source-2.6.26.orig/mm/filemap.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/mm/filemap.c	2009-01-19 11:12:44.000000000 -0700
-@@ -1253,7 +1253,7 @@ do_readahead(struct address_space *mappi
+diff -urpN linux-source-2.6.24.orig/mm/filemap.c linux-source-2.6.24/mm/filemap.c
+--- linux-source-2.6.24.orig/mm/filemap.c	2008-10-10 00:11:30.000000000 -0600
++++ linux-source-2.6.24/mm/filemap.c	2009-01-21 00:05:39.000000000 -0700
+@@ -1231,7 +1231,7 @@ do_readahead(struct address_space *mappi
  	return 0;
  }
  
@@ -364,10 +362,10 @@
  {
  	ssize_t ret;
  	struct file *file;
-diff -urpN linux-source-2.6.26.orig/mm/mmap.c linux-source-2.6.26/mm/mmap.c
---- linux-source-2.6.26.orig/mm/mmap.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/mmap.c	2009-01-19 11:12:44.000000000 -0700
-@@ -240,7 +240,7 @@ static struct vm_area_struct *remove_vma
+diff -urpN linux-source-2.6.24.orig/mm/mmap.c linux-source-2.6.24/mm/mmap.c
+--- linux-source-2.6.24.orig/mm/mmap.c	2008-10-10 00:11:27.000000000 -0600
++++ linux-source-2.6.24/mm/mmap.c	2009-01-21 00:05:39.000000000 -0700
+@@ -233,7 +233,7 @@ static struct vm_area_struct *remove_vma
  	return next;
  }
  
@@ -376,9 +374,9 @@
  {
  	unsigned long rlim, retval;
  	unsigned long newbrk, oldbrk;
-diff -urpN linux-source-2.6.26.orig/mm/mremap.c linux-source-2.6.26/mm/mremap.c
---- linux-source-2.6.26.orig/mm/mremap.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/mremap.c	2009-01-19 11:12:44.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/mremap.c linux-source-2.6.24/mm/mremap.c
+--- linux-source-2.6.24.orig/mm/mremap.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/mremap.c	2009-01-21 00:05:39.000000000 -0700
 @@ -412,7 +412,7 @@ out_nc:
  	return ret;
  }
@@ -388,10 +386,10 @@
  	unsigned long old_len, unsigned long new_len,
  	unsigned long flags, unsigned long new_addr)
  {
-diff -urpN linux-source-2.6.26.orig/mm/nommu.c linux-source-2.6.26/mm/nommu.c
---- linux-source-2.6.26.orig/mm/nommu.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/nommu.c	2009-01-19 11:12:44.000000000 -0700
-@@ -334,7 +334,7 @@ EXPORT_SYMBOL(vm_insert_page);
+diff -urpN linux-source-2.6.24.orig/mm/nommu.c linux-source-2.6.24/mm/nommu.c
+--- linux-source-2.6.24.orig/mm/nommu.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/nommu.c	2009-01-21 00:05:39.000000000 -0700
+@@ -295,7 +295,7 @@ EXPORT_SYMBOL(vm_insert_page);
   *  to a regular file.  in this case, the unmapping will need
   *  to invoke file system routines that need the global lock.
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch	Wed Jan 21 08:39:04 2009
@@ -12,11 +12,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+(mn10300 and sh arch-specific changes ignored)
 
-diff -urpN linux-source-2.6.26.orig/arch/arm/kernel/calls.S linux-source-2.6.26/arch/arm/kernel/calls.S
---- linux-source-2.6.26.orig/arch/arm/kernel/calls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/arm/kernel/calls.S	2009-01-19 11:16:52.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/arm/kernel/calls.S linux-source-2.6.24/arch/arm/kernel/calls.S
+--- linux-source-2.6.24.orig/arch/arm/kernel/calls.S	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/arch/arm/kernel/calls.S	2009-01-21 00:12:49.000000000 -0700
 @@ -98,7 +98,7 @@
  		CALL(sys_uselib)
  		CALL(sys_swapon)
@@ -26,10 +27,10 @@
  /* 90 */	CALL(OBSOLETE(old_mmap))	/* used by libc4 */
  		CALL(sys_munmap)
  		CALL(sys_truncate)
-diff -urpN linux-source-2.6.26.orig/arch/cris/arch-v10/kernel/entry.S linux-source-2.6.26/arch/cris/arch-v10/kernel/entry.S
---- linux-source-2.6.26.orig/arch/cris/arch-v10/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/cris/arch-v10/kernel/entry.S	2009-01-19 11:16:52.000000000 -0700
-@@ -691,7 +691,7 @@ sys_call_table:	
+diff -urpN linux-source-2.6.24.orig/arch/cris/arch-v10/kernel/entry.S linux-source-2.6.24/arch/cris/arch-v10/kernel/entry.S
+--- linux-source-2.6.24.orig/arch/cris/arch-v10/kernel/entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/cris/arch-v10/kernel/entry.S	2009-01-21 00:12:49.000000000 -0700
+@@ -934,7 +934,7 @@ sys_call_table:	
  	.long sys_uselib
  	.long sys_swapon
  	.long sys_reboot
@@ -38,10 +39,10 @@
  	.long old_mmap		/* 90 */
  	.long sys_munmap
  	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/cris/arch-v32/kernel/entry.S linux-source-2.6.26/arch/cris/arch-v32/kernel/entry.S
---- linux-source-2.6.26.orig/arch/cris/arch-v32/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/cris/arch-v32/kernel/entry.S	2009-01-19 11:16:52.000000000 -0700
-@@ -614,7 +614,7 @@ sys_call_table:
+diff -urpN linux-source-2.6.24.orig/arch/cris/arch-v32/kernel/entry.S linux-source-2.6.24/arch/cris/arch-v32/kernel/entry.S
+--- linux-source-2.6.24.orig/arch/cris/arch-v32/kernel/entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/cris/arch-v32/kernel/entry.S	2009-01-21 00:12:49.000000000 -0700
+@@ -609,7 +609,7 @@ sys_call_table:
  	.long sys_uselib
  	.long sys_swapon
  	.long sys_reboot
@@ -50,9 +51,9 @@
  	.long old_mmap		/* 90 */
  	.long sys_munmap
  	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/h8300/kernel/syscalls.S linux-source-2.6.26/arch/h8300/kernel/syscalls.S
---- linux-source-2.6.26.orig/arch/h8300/kernel/syscalls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/h8300/kernel/syscalls.S	2009-01-19 11:16:52.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/h8300/kernel/syscalls.S linux-source-2.6.24/arch/h8300/kernel/syscalls.S
+--- linux-source-2.6.24.orig/arch/h8300/kernel/syscalls.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/h8300/kernel/syscalls.S	2009-01-21 00:12:49.000000000 -0700
 @@ -103,7 +103,7 @@ SYMBOL_NAME_LABEL(sys_call_table)	
  	.long SYMBOL_NAME(sys_uselib)
  	.long SYMBOL_NAME(sys_swapon)
@@ -62,9 +63,9 @@
  	.long SYMBOL_NAME(old_mmap)		/* 90 */
  	.long SYMBOL_NAME(sys_munmap)
  	.long SYMBOL_NAME(sys_truncate)
-diff -urpN linux-source-2.6.26.orig/arch/m68k/kernel/entry.S linux-source-2.6.26/arch/m68k/kernel/entry.S
---- linux-source-2.6.26.orig/arch/m68k/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/m68k/kernel/entry.S	2009-01-19 11:16:52.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/m68k/kernel/entry.S linux-source-2.6.24/arch/m68k/kernel/entry.S
+--- linux-source-2.6.24.orig/arch/m68k/kernel/entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/m68k/kernel/entry.S	2009-01-21 00:12:49.000000000 -0700
 @@ -513,7 +513,7 @@ sys_call_table:
  	.long sys_uselib
  	.long sys_swapon
@@ -74,9 +75,9 @@
  	.long old_mmap		/* 90 */
  	.long sys_munmap
  	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/m68knommu/kernel/syscalltable.S linux-source-2.6.26/arch/m68knommu/kernel/syscalltable.S
---- linux-source-2.6.26.orig/arch/m68knommu/kernel/syscalltable.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/m68knommu/kernel/syscalltable.S	2009-01-19 11:16:52.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/m68knommu/kernel/syscalltable.S linux-source-2.6.24/arch/m68knommu/kernel/syscalltable.S
+--- linux-source-2.6.24.orig/arch/m68knommu/kernel/syscalltable.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/m68knommu/kernel/syscalltable.S	2009-01-21 00:12:49.000000000 -0700
 @@ -107,7 +107,7 @@ ENTRY(sys_call_table)
  	.long sys_uselib
  	.long sys_ni_syscall	/* sys_swapon */
@@ -86,10 +87,10 @@
  	.long old_mmap		/* 90 */
  	.long sys_munmap
  	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/mips/kernel/scall32-o32.S linux-source-2.6.26/arch/mips/kernel/scall32-o32.S
---- linux-source-2.6.26.orig/arch/mips/kernel/scall32-o32.S	2009-01-10 05:42:16.000000000 -0700
-+++ linux-source-2.6.26/arch/mips/kernel/scall32-o32.S	2009-01-19 11:16:52.000000000 -0700
-@@ -413,7 +413,7 @@ einval:	li	v0, -EINVAL
+diff -urpN linux-source-2.6.24.orig/arch/mips/kernel/scall32-o32.S linux-source-2.6.24/arch/mips/kernel/scall32-o32.S
+--- linux-source-2.6.24.orig/arch/mips/kernel/scall32-o32.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/mips/kernel/scall32-o32.S	2009-01-21 00:12:49.000000000 -0700
+@@ -420,7 +420,7 @@ einval:	li	v0, -EINVAL
  	sys	sys_uselib		1
  	sys	sys_swapon		2
  	sys	sys_reboot		3
@@ -98,45 +99,9 @@
  	sys	old_mmap		6	/* 4090 */
  	sys	sys_munmap		2
  	sys	sys_truncate		2
-diff -urpN linux-source-2.6.26.orig/arch/mn10300/kernel/entry.S linux-source-2.6.26/arch/mn10300/kernel/entry.S
---- linux-source-2.6.26.orig/arch/mn10300/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/mn10300/kernel/entry.S	2009-01-19 11:16:52.000000000 -0700
-@@ -477,7 +477,7 @@ ENTRY(sys_call_table)
- 	.long sys_uselib
- 	.long sys_swapon
- 	.long sys_reboot
--	.long old_readdir
-+	.long sys_old_readdir
- 	.long old_mmap		/* 90 */
- 	.long sys_munmap
- 	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S linux-source-2.6.26/arch/sh/kernel/syscalls_32.S
---- linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sh/kernel/syscalls_32.S	2009-01-19 11:17:08.000000000 -0700
-@@ -105,7 +105,7 @@ ENTRY(sys_call_table)
- 	.long sys_uselib
- 	.long sys_swapon
- 	.long sys_reboot
--	.long old_readdir
-+	.long sys_old_readdir
- 	.long old_mmap		/* 90 */
- 	.long sys_munmap
- 	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/syscalls_64.S linux-source-2.6.26/arch/sh/kernel/syscalls_64.S
---- linux-source-2.6.26.orig/arch/sh/kernel/syscalls_64.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sh/kernel/syscalls_64.S	2009-01-19 11:17:08.000000000 -0700
-@@ -109,7 +109,7 @@ sys_call_table:
- 	.long sys_uselib
- 	.long sys_swapon
- 	.long sys_reboot
--	.long old_readdir
-+	.long sys_old_readdir
- 	.long old_mmap			/* 90 */
- 	.long sys_munmap
- 	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S linux-source-2.6.26/arch/sparc/kernel/systbls.S
---- linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sparc/kernel/systbls.S	2009-01-19 11:17:08.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S linux-source-2.6.24/arch/sparc/kernel/systbls.S
+--- linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/sparc/kernel/systbls.S	2009-01-21 00:13:05.000000000 -0700
 @@ -56,7 +56,7 @@ sys_call_table:
  /*185*/	.long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname
  /*190*/	.long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl
@@ -146,9 +111,9 @@
  /*205*/	.long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
  /*210*/	.long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
  /*215*/	.long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex
-diff -urpN linux-source-2.6.26.orig/arch/x86/kernel/syscall_table_32.S linux-source-2.6.26/arch/x86/kernel/syscall_table_32.S
---- linux-source-2.6.26.orig/arch/x86/kernel/syscall_table_32.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/x86/kernel/syscall_table_32.S	2009-01-19 11:17:08.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/x86/kernel/syscall_table_32.S linux-source-2.6.24/arch/x86/kernel/syscall_table_32.S
+--- linux-source-2.6.24.orig/arch/x86/kernel/syscall_table_32.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/x86/kernel/syscall_table_32.S	2009-01-21 00:13:05.000000000 -0700
 @@ -88,7 +88,7 @@ ENTRY(sys_call_table)
  	.long sys_uselib
  	.long sys_swapon
@@ -158,10 +123,10 @@
  	.long old_mmap		/* 90 */
  	.long sys_munmap
  	.long sys_truncate
-diff -urpN linux-source-2.6.26.orig/fs/readdir.c linux-source-2.6.26/fs/readdir.c
---- linux-source-2.6.26.orig/fs/readdir.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/readdir.c	2009-01-19 11:17:08.000000000 -0700
-@@ -100,7 +100,7 @@ efault:
+diff -urpN linux-source-2.6.24.orig/fs/readdir.c linux-source-2.6.24/fs/readdir.c
+--- linux-source-2.6.24.orig/fs/readdir.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/readdir.c	2009-01-21 00:13:05.000000000 -0700
+@@ -97,7 +97,7 @@ efault:
  	return -EFAULT;
  }
  
@@ -170,9 +135,9 @@
  {
  	int error;
  	struct file * file;
-diff -urpN linux-source-2.6.26.orig/include/asm-powerpc/systbl.h linux-source-2.6.26/include/asm-powerpc/systbl.h
---- linux-source-2.6.26.orig/include/asm-powerpc/systbl.h	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/include/asm-powerpc/systbl.h	2009-01-19 11:18:35.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/include/asm-powerpc/systbl.h linux-source-2.6.24/include/asm-powerpc/systbl.h
+--- linux-source-2.6.24.orig/include/asm-powerpc/systbl.h	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/include/asm-powerpc/systbl.h	2009-01-21 00:13:05.000000000 -0700
 @@ -92,7 +92,7 @@ COMPAT_SYS_SPU(readlink)
  SYSCALL(uselib)
  SYSCALL(swapon)
@@ -182,9 +147,9 @@
  SYSCALL_SPU(mmap)
  SYSCALL_SPU(munmap)
  SYSCALL_SPU(truncate)
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 11:17:08.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2009-01-21 00:10:17.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 00:13:05.000000000 -0700
 @@ -54,6 +54,7 @@ struct compat_stat;
  struct compat_timeval;
  struct robust_list_head;
@@ -193,8 +158,8 @@
  
  #include <linux/types.h>
  #include <linux/aio_abi.h>
-@@ -602,6 +603,7 @@ asmlinkage long sys_timerfd_settime(int 
- asmlinkage long sys_timerfd_gettime(int ufd, struct itimerspec __user *otmr);
+@@ -598,6 +599,7 @@ asmlinkage long sys_timerfd(int ufd, int
+ 			    const struct itimerspec __user *utmr);
  asmlinkage long sys_eventfd(unsigned int count);
  asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
 +asmlinkage long sys_old_readdir(unsigned int, struct old_linux_dirent __user *, unsigned int);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch	Wed Jan 21 08:39:04 2009
@@ -19,11 +19,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/arch/alpha/kernel/entry.S linux-source-2.6.26/arch/alpha/kernel/entry.S
---- linux-source-2.6.26.orig/arch/alpha/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/alpha/kernel/entry.S	2009-01-19 11:38:17.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/alpha/kernel/entry.S linux-source-2.6.24/arch/alpha/kernel/entry.S
+--- linux-source-2.6.24.orig/arch/alpha/kernel/entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/alpha/kernel/entry.S	2009-01-21 00:29:42.000000000 -0700
 @@ -894,9 +894,9 @@ sys_getxpid:
  .end sys_getxpid
  
@@ -46,9 +46,9 @@
  
  	.align	4
  	.globl	sys_execve
-diff -urpN linux-source-2.6.26.orig/arch/alpha/kernel/systbls.S linux-source-2.6.26/arch/alpha/kernel/systbls.S
---- linux-source-2.6.26.orig/arch/alpha/kernel/systbls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/alpha/kernel/systbls.S	2009-01-19 11:38:17.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/alpha/kernel/systbls.S linux-source-2.6.24/arch/alpha/kernel/systbls.S
+--- linux-source-2.6.24.orig/arch/alpha/kernel/systbls.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/alpha/kernel/systbls.S	2009-01-21 00:29:42.000000000 -0700
 @@ -52,7 +52,7 @@ sys_call_table:
  	.quad sys_setpgid
  	.quad alpha_ni_syscall			/* 40 */
@@ -58,9 +58,9 @@
  	.quad osf_set_program_attributes
  	.quad alpha_ni_syscall
  	.quad sys_open				/* 45 */
-diff -urpN linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S
---- linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S	2009-01-19 11:33:32.000000000 -0700
-+++ linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S	2009-01-19 11:38:17.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S
+--- linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S	2009-01-21 00:15:40.000000000 -0700
++++ linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S	2009-01-21 00:29:42.000000000 -0700
 @@ -215,7 +215,7 @@ ia32_syscall_table:
  	data8 sys_mkdir
  	data8 sys_rmdir		  /* 40 */
@@ -70,10 +70,10 @@
  	data8 compat_sys_times
  	data8 sys_ni_syscall	  /* old prof syscall holder */
  	data8 sys32_brk		  /* 45 */
-diff -urpN linux-source-2.6.26.orig/arch/ia64/kernel/entry.S linux-source-2.6.26/arch/ia64/kernel/entry.S
---- linux-source-2.6.26.orig/arch/ia64/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/ia64/kernel/entry.S	2009-01-19 11:38:32.000000000 -0700
-@@ -1408,7 +1408,7 @@ sys_call_table:
+diff -urpN linux-source-2.6.24.orig/arch/ia64/kernel/entry.S linux-source-2.6.24/arch/ia64/kernel/entry.S
+--- linux-source-2.6.24.orig/arch/ia64/kernel/entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/ia64/kernel/entry.S	2009-01-21 00:29:42.000000000 -0700
+@@ -1336,7 +1336,7 @@ sys_call_table:
  	data8 sys_mkdir				// 1055
  	data8 sys_rmdir
  	data8 sys_dup
@@ -82,9 +82,9 @@
  	data8 sys_times
  	data8 ia64_brk				// 1060
  	data8 sys_setgid
-diff -urpN linux-source-2.6.26.orig/arch/ia64/kernel/sys_ia64.c linux-source-2.6.26/arch/ia64/kernel/sys_ia64.c
---- linux-source-2.6.26.orig/arch/ia64/kernel/sys_ia64.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/ia64/kernel/sys_ia64.c	2009-01-19 11:38:32.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/ia64/kernel/sys_ia64.c linux-source-2.6.24/arch/ia64/kernel/sys_ia64.c
+--- linux-source-2.6.24.orig/arch/ia64/kernel/sys_ia64.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/ia64/kernel/sys_ia64.c	2009-01-21 00:29:42.000000000 -0700
 @@ -154,7 +154,7 @@ out:
   * and r9) as this is faster than doing a copy_to_user().
   */
@@ -94,46 +94,11 @@
  {
  	struct pt_regs *regs = task_pt_regs(current);
  	int fd[2];
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/entry.h linux-source-2.6.26/arch/s390/kernel/entry.h
---- linux-source-2.6.26.orig/arch/s390/kernel/entry.h	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/s390/kernel/entry.h	2009-01-19 11:38:32.000000000 -0700
-@@ -30,7 +30,6 @@ struct fadvise64_64_args;
- struct old_sigaction;
- struct sel_arg_struct;
- 
--long sys_pipe(unsigned long __user *fildes);
- long sys_mmap2(struct mmap_arg_struct __user  *arg);
- long old_mmap(struct mmap_arg_struct __user *arg);
- long sys_ipc(uint call, int first, unsigned long second,
-diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S linux-source-2.6.26/arch/sh/kernel/syscalls_32.S
---- linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S	2009-01-19 11:17:08.000000000 -0700
-+++ linux-source-2.6.26/arch/sh/kernel/syscalls_32.S	2009-01-19 11:38:35.000000000 -0700
-@@ -58,7 +58,7 @@ ENTRY(sys_call_table)
- 	.long sys_mkdir
- 	.long sys_rmdir		/* 40 */
- 	.long sys_dup
--	.long sys_pipe
-+	.long sys_sh_pipe
- 	.long sys_times
- 	.long sys_ni_syscall	/* old prof syscall holder */
- 	.long sys_brk		/* 45 */
-diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/sys_sh32.c linux-source-2.6.26/arch/sh/kernel/sys_sh32.c
---- linux-source-2.6.26.orig/arch/sh/kernel/sys_sh32.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sh/kernel/sys_sh32.c	2009-01-19 11:38:35.000000000 -0700
-@@ -21,7 +21,7 @@
-  * sys_pipe() is the normal C calling standard for creating
-  * a pipe. It's not the way Unix traditionally does this, though.
-  */
--asmlinkage int sys_pipe(unsigned long r4, unsigned long r5,
-+asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
- 	unsigned long r6, unsigned long r7,
- 	struct pt_regs __regs)
- {
-diff -urpN linux-source-2.6.26.orig/arch/sparc/kernel/entry.S linux-source-2.6.26/arch/sparc/kernel/entry.S
---- linux-source-2.6.26.orig/arch/sparc/kernel/entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sparc/kernel/entry.S	2009-01-19 11:38:35.000000000 -0700
-@@ -1141,8 +1141,8 @@ sunos_execv:
- 	 ld	[%sp + STACKFRAME_SZ + PT_I0], %o0
+diff -urpN linux-source-2.6.24.orig/arch/sparc/kernel/entry.S linux-source-2.6.24/arch/sparc/kernel/entry.S
+--- linux-source-2.6.24.orig/arch/sparc/kernel/entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/sparc/kernel/entry.S	2009-01-21 00:29:55.000000000 -0700
+@@ -1250,8 +1250,8 @@ sys_execve:
+ 	 mov	%l5, %o7
  
  	.align	4
 -	.globl	sys_pipe
@@ -143,9 +108,9 @@
  	mov	%o7, %l5
  	add	%sp, STACKFRAME_SZ, %o0		! pt_regs *regs arg
  	call	sparc_pipe
-diff -urpN linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S linux-source-2.6.26/arch/sparc/kernel/systbls.S
---- linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S	2009-01-19 11:17:08.000000000 -0700
-+++ linux-source-2.6.26/arch/sparc/kernel/systbls.S	2009-01-19 11:38:35.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S linux-source-2.6.24/arch/sparc/kernel/systbls.S
+--- linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S	2009-01-21 00:13:05.000000000 -0700
++++ linux-source-2.6.24/arch/sparc/kernel/systbls.S	2009-01-21 00:29:55.000000000 -0700
 @@ -24,7 +24,7 @@ sys_call_table:
  /*25*/	.long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause
  /*30*/	.long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
@@ -155,23 +120,11 @@
  /*45*/	.long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
  /*50*/	.long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl
  /*55*/	.long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve
-diff -urpN linux-source-2.6.26.orig/arch/sparc64/kernel/syscalls.S linux-source-2.6.26/arch/sparc64/kernel/syscalls.S
---- linux-source-2.6.26.orig/arch/sparc64/kernel/syscalls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sparc64/kernel/syscalls.S	2009-01-19 11:38:35.000000000 -0700
-@@ -20,7 +20,7 @@ execve_merge:
- 	 add	%sp, PTREGS_OFF, %o0
- 
- 	.align	32
--sys_pipe:
-+sys_sparc_pipe:
- 	ba,pt	%xcc, sparc_pipe
- 	 add	%sp, PTREGS_OFF, %o0
- sys_nis_syscall:
-diff -urpN linux-source-2.6.26.orig/arch/sparc64/kernel/systbls.S linux-source-2.6.26/arch/sparc64/kernel/systbls.S
---- linux-source-2.6.26.orig/arch/sparc64/kernel/systbls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/sparc64/kernel/systbls.S	2009-01-19 11:40:10.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/sparc64/kernel/systbls.S linux-source-2.6.24/arch/sparc64/kernel/systbls.S
+--- linux-source-2.6.24.orig/arch/sparc64/kernel/systbls.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/sparc64/kernel/systbls.S	2009-01-21 00:29:57.000000000 -0700
 @@ -26,7 +26,7 @@ sys_call_table32:
- /*25*/	.word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
+ /*25*/	.word sys32_vmsplice, sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
  /*30*/	.word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
  	.word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
 -/*40*/	.word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid
@@ -179,7 +132,7 @@
  	.word sys32_umount, sys32_setgid16, sys32_getgid16, sys32_signal, sys32_geteuid16
  /*50*/	.word sys32_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
  	.word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
-@@ -99,7 +99,7 @@ sys_call_table:
+@@ -98,7 +98,7 @@ sys_call_table:
  /*25*/	.word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
  /*30*/	.word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
  	.word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
@@ -188,10 +141,10 @@
  	.word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
  /*50*/	.word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
  	.word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
-diff -urpN linux-source-2.6.26.orig/fs/pipe.c linux-source-2.6.26/fs/pipe.c
---- linux-source-2.6.26.orig/fs/pipe.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/pipe.c	2009-01-19 11:38:50.000000000 -0700
-@@ -1078,7 +1078,7 @@ int do_pipe(int *fd)
+diff -urpN linux-source-2.6.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
+--- linux-source-2.6.24.orig/fs/pipe.c	2009-01-21 00:27:52.000000000 -0700
++++ linux-source-2.6.24/fs/pipe.c	2009-01-21 00:29:57.000000000 -0700
+@@ -1079,7 +1079,7 @@ int do_pipe(int *fd)
   * sys_pipe() is the normal C calling standard for creating
   * a pipe. It's not the way Unix traditionally does this, though.
   */
@@ -200,10 +153,10 @@
  {
  	int fd[2];
  	int error;
-diff -urpN linux-source-2.6.26.orig/include/asm-ia64/unistd.h linux-source-2.6.26/include/asm-ia64/unistd.h
---- linux-source-2.6.26.orig/include/asm-ia64/unistd.h	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/include/asm-ia64/unistd.h	2009-01-19 11:38:32.000000000 -0700
-@@ -357,7 +357,7 @@ struct pt_regs;
+diff -urpN linux-source-2.6.24.orig/include/asm-ia64/unistd.h linux-source-2.6.24/include/asm-ia64/unistd.h
+--- linux-source-2.6.24.orig/include/asm-ia64/unistd.h	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/include/asm-ia64/unistd.h	2009-01-21 00:29:57.000000000 -0700
+@@ -354,7 +354,7 @@ struct pt_regs;
  struct sigaction;
  long sys_execve(char __user *filename, char __user * __user *argv,
  			   char __user * __user *envp, struct pt_regs *regs);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch	Wed Jan 21 08:39:04 2009
@@ -10,11 +10,11 @@
     Signed-off-by: Christoph Hellwig <hch at lst.de>
     Signed-off-by: Tony Luck <tony.luck at intel.com>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S
---- linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S	2009-01-19 11:33:32.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S
+--- linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S	2009-01-21 00:15:40.000000000 -0700
 @@ -215,7 +215,7 @@ ia32_syscall_table:
  	data8 sys_mkdir
  	data8 sys_rmdir		  /* 40 */
@@ -24,10 +24,10 @@
  	data8 compat_sys_times
  	data8 sys_ni_syscall	  /* old prof syscall holder */
  	data8 sys32_brk		  /* 45 */
-diff -urpN linux-source-2.6.26.orig/arch/ia64/ia32/sys_ia32.c linux-source-2.6.26/arch/ia64/ia32/sys_ia32.c
---- linux-source-2.6.26.orig/arch/ia64/ia32/sys_ia32.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/ia64/ia32/sys_ia32.c	2009-01-19 11:34:39.000000000 -0700
-@@ -1133,21 +1133,6 @@ sys32_mremap (unsigned int addr, unsigne
+diff -urpN linux-source-2.6.24.orig/arch/ia64/ia32/sys_ia32.c linux-source-2.6.24/arch/ia64/ia32/sys_ia32.c
+--- linux-source-2.6.24.orig/arch/ia64/ia32/sys_ia32.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/ia64/ia32/sys_ia32.c	2009-01-21 00:15:40.000000000 -0700
+@@ -1137,21 +1137,6 @@ sys32_mremap (unsigned int addr, unsigne
  	return ret;
  }
  

Added: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch
==============================================================================
--- (empty file)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch	Wed Jan 21 08:39:04 2009
@@ -0,0 +1,407 @@
+commit d35c7b0e54a596c5a8134d75999b7f391a9c6550
+Author: Ulrich Drepper <drepper at redhat.com>
+Date:   Sat May 3 15:10:37 2008 -0400
+
+    unified (weak) sys_pipe implementation
+    
+    This replaces the duplicated arch-specific versions of "sys_pipe()" with
+    one unified implementation.  This removes almost 250 lines of duplicated
+    code.
+    
+    It's marked __weak, so that *if* an architecture wants to override the
+    default implementation it can do so by simply having its own replacement
+    version, since many architectures use alternate calling conventions for
+    the 'pipe()' system call for legacy reasons (ie traditional UNIX
+    implementations often return the two file descriptors in registers)
+    
+    I still haven't changed the cris version even though Linus says the BKL
+    isn't needed.  The arch maintainer can easily do it if there are really
+    no obstacles.
+    
+    Signed-off-by: Ulrich Drepper <drepper at redhat.com>
+    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.24.orig/arch/arm/kernel/sys_arm.c linux-source-2.6.24/arch/arm/kernel/sys_arm.c
+--- linux-source-2.6.24.orig/arch/arm/kernel/sys_arm.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/arm/kernel/sys_arm.c	2009-01-21 00:27:33.000000000 -0700
+@@ -34,23 +34,6 @@ extern unsigned long do_mremap(unsigned 
+ 			       unsigned long new_len, unsigned long flags,
+ 			       unsigned long new_addr);
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-asmlinkage int sys_pipe(unsigned long __user *fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ /* common code for old and new mmaps */
+ inline long do_mmap2(
+ 	unsigned long addr, unsigned long len,
+diff -urpN linux-source-2.6.24.orig/arch/avr32/kernel/sys_avr32.c linux-source-2.6.24/arch/avr32/kernel/sys_avr32.c
+--- linux-source-2.6.24.orig/arch/avr32/kernel/sys_avr32.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/avr32/kernel/sys_avr32.c	2009-01-21 00:27:33.000000000 -0700
+@@ -14,19 +14,6 @@
+ #include <asm/mman.h>
+ #include <asm/uaccess.h>
+ 
+-asmlinkage int sys_pipe(unsigned long __user *filedes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(filedes, fd, sizeof(fd)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
+ 			  unsigned long prot, unsigned long flags,
+ 			  unsigned long fd, off_t offset)
+diff -urpN linux-source-2.6.24.orig/arch/frv/kernel/sys_frv.c linux-source-2.6.24/arch/frv/kernel/sys_frv.c
+--- linux-source-2.6.24.orig/arch/frv/kernel/sys_frv.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/frv/kernel/sys_frv.c	2009-01-21 00:27:37.000000000 -0700
+@@ -28,23 +28,6 @@
+ #include <asm/setup.h>
+ #include <asm/uaccess.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-asmlinkage long sys_pipe(unsigned long __user * fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
+ 			  unsigned long prot, unsigned long flags,
+ 			  unsigned long fd, unsigned long pgoff)
+diff -urpN linux-source-2.6.24.orig/arch/h8300/kernel/sys_h8300.c linux-source-2.6.24/arch/h8300/kernel/sys_h8300.c
+--- linux-source-2.6.24.orig/arch/h8300/kernel/sys_h8300.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/h8300/kernel/sys_h8300.c	2009-01-21 00:27:37.000000000 -0700
+@@ -27,23 +27,6 @@
+ #include <asm/traps.h>
+ #include <asm/unistd.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-asmlinkage int sys_pipe(unsigned long * fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ /* common code for old and new mmaps */
+ static inline long do_mmap2(
+ 	unsigned long addr, unsigned long len,
+diff -urpN linux-source-2.6.24.orig/arch/m68k/kernel/sys_m68k.c linux-source-2.6.24/arch/m68k/kernel/sys_m68k.c
+--- linux-source-2.6.24.orig/arch/m68k/kernel/sys_m68k.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/m68k/kernel/sys_m68k.c	2009-01-21 00:27:37.000000000 -0700
+@@ -30,23 +30,6 @@
+ #include <asm/page.h>
+ #include <asm/unistd.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-asmlinkage int sys_pipe(unsigned long __user * fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ /* common code for old and new mmaps */
+ static inline long do_mmap2(
+ 	unsigned long addr, unsigned long len,
+diff -urpN linux-source-2.6.24.orig/arch/m68knommu/kernel/sys_m68k.c linux-source-2.6.24/arch/m68knommu/kernel/sys_m68k.c
+--- linux-source-2.6.24.orig/arch/m68knommu/kernel/sys_m68k.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/m68knommu/kernel/sys_m68k.c	2009-01-21 00:27:37.000000000 -0700
+@@ -28,23 +28,6 @@
+ #include <asm/cacheflush.h>
+ #include <asm/unistd.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-asmlinkage int sys_pipe(unsigned long * fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ /* common code for old and new mmaps */
+ static inline long do_mmap2(
+ 	unsigned long addr, unsigned long len,
+diff -urpN linux-source-2.6.24.orig/arch/parisc/kernel/sys_parisc.c linux-source-2.6.24/arch/parisc/kernel/sys_parisc.c
+--- linux-source-2.6.24.orig/arch/parisc/kernel/sys_parisc.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/parisc/kernel/sys_parisc.c	2009-01-21 00:27:49.000000000 -0700
+@@ -33,19 +33,6 @@
+ #include <linux/utsname.h>
+ #include <linux/personality.h>
+ 
+-int sys_pipe(int __user *fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ static unsigned long get_unshared_area(unsigned long addr, unsigned long len)
+ {
+ 	struct vm_area_struct *vma;
+diff -urpN linux-source-2.6.24.orig/arch/powerpc/kernel/syscalls.c linux-source-2.6.24/arch/powerpc/kernel/syscalls.c
+--- linux-source-2.6.24.orig/arch/powerpc/kernel/syscalls.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/powerpc/kernel/syscalls.c	2009-01-21 00:27:49.000000000 -0700
+@@ -137,23 +137,6 @@ int sys_ipc(uint call, int first, unsign
+ 	return ret;
+ }
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-int sys_pipe(int __user *fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ static inline unsigned long do_mmap2(unsigned long addr, size_t len,
+ 			unsigned long prot, unsigned long flags,
+ 			unsigned long fd, unsigned long off, int shift)
+diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.24/arch/s390/kernel/sys_s390.c
+--- linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/s390/kernel/sys_s390.c	2009-01-21 00:27:49.000000000 -0700
+@@ -32,23 +32,6 @@
+ 
+ #include <asm/uaccess.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way Unix traditionally does this, though.
+- */
+-asmlinkage long sys_pipe(unsigned long __user *fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ /* common code for old and new mmaps */
+ static inline long do_mmap2(
+ 	unsigned long addr, unsigned long len,
+diff -urpN linux-source-2.6.24.orig/arch/um/kernel/syscall.c linux-source-2.6.24/arch/um/kernel/syscall.c
+--- linux-source-2.6.24.orig/arch/um/kernel/syscall.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/um/kernel/syscall.c	2009-01-21 00:27:52.000000000 -0700
+@@ -76,23 +76,6 @@ long old_mmap(unsigned long addr, unsign
+  out:
+ 	return err;
+ }
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-long sys_pipe(unsigned long __user * fildes)
+-{
+-	int fd[2];
+-	long error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, sizeof(fd)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ 
+ long sys_uname(struct old_utsname __user * name)
+ {
+diff -urpN linux-source-2.6.24.orig/arch/v850/kernel/syscalls.c linux-source-2.6.24/arch/v850/kernel/syscalls.c
+--- linux-source-2.6.24.orig/arch/v850/kernel/syscalls.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/v850/kernel/syscalls.c	2009-01-21 00:27:52.000000000 -0700
+@@ -133,23 +133,6 @@ sys_ipc (uint call, int first, int secon
+ 	return ret;
+ }
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way unix traditionally does this, though.
+- */
+-int sys_pipe (int *fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe (fd);
+-	if (!error) {
+-		if (copy_to_user (fildes, fd, 2*sizeof (int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ static inline unsigned long
+ do_mmap2 (unsigned long addr, size_t len,
+ 	 unsigned long prot, unsigned long flags,
+diff -urpN linux-source-2.6.24.orig/arch/x86/kernel/sys_i386_32.c linux-source-2.6.24/arch/x86/kernel/sys_i386_32.c
+--- linux-source-2.6.24.orig/arch/x86/kernel/sys_i386_32.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/x86/kernel/sys_i386_32.c	2009-01-21 00:27:52.000000000 -0700
+@@ -22,23 +22,6 @@
+ #include <asm/uaccess.h>
+ #include <asm/unistd.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way Unix traditionally does this, though.
+- */
+-asmlinkage int sys_pipe(unsigned long __user * fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
+ 			  unsigned long prot, unsigned long flags,
+ 			  unsigned long fd, unsigned long pgoff)
+diff -urpN linux-source-2.6.24.orig/arch/x86/kernel/sys_x86_64.c linux-source-2.6.24/arch/x86/kernel/sys_x86_64.c
+--- linux-source-2.6.24.orig/arch/x86/kernel/sys_x86_64.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/x86/kernel/sys_x86_64.c	2009-01-21 00:27:52.000000000 -0700
+@@ -16,23 +16,6 @@
+ #include <asm/uaccess.h>
+ #include <asm/ia32.h>
+ 
+-/*
+- * sys_pipe() is the normal C calling standard for creating
+- * a pipe. It's not the way Unix traditionally does this, though.
+- */
+-asmlinkage long sys_pipe(int __user *fildes)
+-{
+-	int fd[2];
+-	int error;
+-
+-	error = do_pipe(fd);
+-	if (!error) {
+-		if (copy_to_user(fildes, fd, 2*sizeof(int)))
+-			error = -EFAULT;
+-	}
+-	return error;
+-}
+-
+ asmlinkage long sys_mmap(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags,
+ 	unsigned long fd, unsigned long off)
+ {
+diff -urpN linux-source-2.6.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
+--- linux-source-2.6.24.orig/fs/pipe.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/pipe.c	2009-01-21 00:27:52.000000000 -0700
+@@ -1076,6 +1076,23 @@ int do_pipe(int *fd)
+ }
+ 
+ /*
++ * sys_pipe() is the normal C calling standard for creating
++ * a pipe. It's not the way Unix traditionally does this, though.
++ */
++asmlinkage long __weak sys_pipe(int __user *fildes)
++{
++	int fd[2];
++	int error;
++
++	error = do_pipe(fd);
++	if (!error) {
++		if (copy_to_user(fildes, fd, sizeof(fd)))
++			error = -EFAULT;
++	}
++	return error;
++}
++
++/*
+  * pipefs should _never_ be mounted by userland - too much of security hassle,
+  * no real gain from having the whole whorehouse mounted. So we don't need
+  * any operations on the root directory. However, we need a non-trivial
+diff -urpN linux-source-2.6.24.orig/include/asm-powerpc/syscalls.h linux-source-2.6.24/include/asm-powerpc/syscalls.h
+--- linux-source-2.6.24.orig/include/asm-powerpc/syscalls.h	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/include/asm-powerpc/syscalls.h	2009-01-21 00:27:52.000000000 -0700
+@@ -30,7 +30,7 @@ asmlinkage int sys_fork(unsigned long p1
+ asmlinkage int sys_vfork(unsigned long p1, unsigned long p2,
+ 		unsigned long p3, unsigned long p4, unsigned long p5,
+ 		unsigned long p6, struct pt_regs *regs);
+-asmlinkage int sys_pipe(int __user *fildes);
++asmlinkage long sys_pipe(int __user *fildes);
+ asmlinkage long sys_rt_sigaction(int sig,
+ 		const struct sigaction __user *act,
+ 		struct sigaction __user *oact, size_t sigsetsize);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch	Wed Jan 21 08:39:04 2009
@@ -14,21 +14,21 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/compat.c linux-source-2.6.26/fs/compat.c
---- linux-source-2.6.26.orig/fs/compat.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/compat.c	2009-01-19 11:42:04.000000000 -0700
-@@ -1636,7 +1636,7 @@ sticky:
+diff -urpN linux-source-2.6.24.orig/fs/compat.c linux-source-2.6.24/fs/compat.c
+--- linux-source-2.6.24.orig/fs/compat.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/compat.c	2009-01-21 00:40:29.000000000 -0700
+@@ -1642,7 +1642,7 @@ sticky:
  }
  
- #ifdef HAVE_SET_RESTORE_SIGMASK
+ #ifdef TIF_RESTORE_SIGMASK
 -asmlinkage long compat_sys_pselect7(int n, compat_ulong_t __user *inp,
 +static long do_compat_pselect(int n, compat_ulong_t __user *inp,
  	compat_ulong_t __user *outp, compat_ulong_t __user *exp,
  	struct compat_timespec __user *tsp, compat_sigset_t __user *sigmask,
  	compat_size_t sigsetsize)
-@@ -1744,8 +1744,8 @@ asmlinkage long compat_sys_pselect6(int 
+@@ -1750,8 +1750,8 @@ asmlinkage long compat_sys_pselect6(int 
  				(compat_size_t __user *)(sig+sizeof(up))))
  			return -EFAULT;
  	}
@@ -39,13 +39,13 @@
  }
  
  asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
-diff -urpN linux-source-2.6.26.orig/fs/select.c linux-source-2.6.26/fs/select.c
---- linux-source-2.6.26.orig/fs/select.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/select.c	2009-01-19 11:42:04.000000000 -0700
-@@ -427,9 +427,9 @@ sticky:
+diff -urpN linux-source-2.6.24.orig/fs/select.c linux-source-2.6.24/fs/select.c
+--- linux-source-2.6.24.orig/fs/select.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/select.c	2009-01-21 00:41:11.000000000 -0700
+@@ -426,9 +426,9 @@ sticky:
  }
  
- #ifdef HAVE_SET_RESTORE_SIGMASK
+ #ifdef TIF_RESTORE_SIGMASK
 -asmlinkage long sys_pselect7(int n, fd_set __user *inp, fd_set __user *outp,
 -		fd_set __user *exp, struct timespec __user *tsp,
 -		const sigset_t __user *sigmask, size_t sigsetsize)
@@ -55,12 +55,12 @@
  {
  	s64 timeout = MAX_SCHEDULE_TIMEOUT;
  	sigset_t ksigmask, sigsaved;
-@@ -527,7 +527,7 @@ asmlinkage long sys_pselect6(int n, fd_s
+@@ -526,7 +526,7 @@ asmlinkage long sys_pselect6(int n, fd_s
  			return -EFAULT;
  	}
  
 -	return sys_pselect7(n, inp, outp, exp, tsp, up, sigsetsize);
 +	return do_pselect(n, inp, outp, exp, tsp, up, sigsetsize);
  }
- #endif /* HAVE_SET_RESTORE_SIGMASK */
+ #endif /* TIF_RESTORE_SIGMASK */
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch	Wed Jan 21 08:39:04 2009
@@ -14,12 +14,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/printk.c linux-source-2.6.26/kernel/printk.c
---- linux-source-2.6.26.orig/kernel/printk.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/printk.c	2009-01-19 11:44:54.000000000 -0700
-@@ -802,11 +802,6 @@ EXPORT_SYMBOL(vprintk);
+diff -urpN linux-source-2.6.24.orig/kernel/printk.c linux-source-2.6.24/kernel/printk.c
+--- linux-source-2.6.24.orig/kernel/printk.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/printk.c	2009-01-21 00:42:57.000000000 -0700
+@@ -755,11 +755,6 @@ EXPORT_SYMBOL(vprintk);
  
  #else
  
@@ -28,13 +28,13 @@
 -	return -ENOSYS;
 -}
 -
- static void call_console_drivers(unsigned start, unsigned end)
+ static void call_console_drivers(unsigned long start, unsigned long end)
  {
  }
-diff -urpN linux-source-2.6.26.orig/kernel/sys_ni.c linux-source-2.6.26/kernel/sys_ni.c
---- linux-source-2.6.26.orig/kernel/sys_ni.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys_ni.c	2009-01-19 11:48:00.000000000 -0700
-@@ -122,6 +122,7 @@ cond_syscall(sys_vm86old);
+diff -urpN linux-source-2.6.24.orig/kernel/sys_ni.c linux-source-2.6.24/kernel/sys_ni.c
+--- linux-source-2.6.24.orig/kernel/sys_ni.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/sys_ni.c	2009-01-21 00:42:23.000000000 -0700
+@@ -121,6 +121,7 @@ cond_syscall(sys_vm86old);
  cond_syscall(sys_vm86);
  cond_syscall(compat_sys_ipc);
  cond_syscall(compat_sys_sysctl);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch	Wed Jan 21 08:39:04 2009
@@ -21,25 +21,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/arch/Kconfig linux-source-2.6.26/arch/Kconfig
---- linux-source-2.6.26.orig/arch/Kconfig	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/Kconfig	2009-01-19 11:50:53.000000000 -0700
-@@ -27,6 +27,9 @@ config KPROBES
- 	  for kernel debugging, non-intrusive instrumentation and testing.
- 	  If in doubt, say "N".
- 
-+config HAVE_SYSCALL_WRAPPERS
-+	bool
-+
- config KRETPROBES
- 	def_bool y
- 	depends on KPROBES && HAVE_KRETPROBES
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2009-01-19 11:17:08.000000000 -0700
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 11:50:53.000000000 -0700
-@@ -66,6 +66,68 @@ struct old_linux_dirent;
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2009-01-21 00:13:05.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 00:43:49.000000000 -0700
+@@ -67,6 +67,68 @@ struct old_linux_dirent;
  #include <linux/quota.h>
  #include <linux/key.h>
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch	Wed Jan 21 08:39:04 2009
@@ -14,23 +14,23 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/arch/powerpc/Kconfig linux-source-2.6.26/arch/powerpc/Kconfig
---- linux-source-2.6.26.orig/arch/powerpc/Kconfig	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/powerpc/Kconfig	2009-01-19 11:54:09.000000000 -0700
-@@ -110,6 +110,7 @@ config PPC
- 	select HAVE_KPROBES
- 	select HAVE_KRETPROBES
- 	select HAVE_LMB
+diff -urpN linux-source-2.6.24.orig/arch/powerpc/Kconfig linux-source-2.6.24/arch/powerpc/Kconfig
+--- linux-source-2.6.24.orig/arch/powerpc/Kconfig	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/powerpc/Kconfig	2009-01-21 00:47:56.000000000 -0700
+@@ -79,6 +79,7 @@ config ARCH_NO_VIRT_TO_BUS
+ config PPC
+ 	bool
+ 	default y
 +	select HAVE_SYSCALL_WRAPPERS if PPC64
  
  config EARLY_PRINTK
  	bool
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2009-01-19 11:50:53.000000000 -0700
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 11:53:03.000000000 -0700
-@@ -103,8 +103,14 @@ struct old_linux_dirent;
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2009-01-21 00:43:49.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 00:45:15.000000000 -0700
+@@ -104,8 +104,14 @@ struct old_linux_dirent;
  #define SYSCALL_DEFINE5(...)    SYSCALL_DEFINEx(5, __VA_ARGS__)
  #define SYSCALL_DEFINE6(...)    SYSCALL_DEFINEx(6, __VA_ARGS__)
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch	Wed Jan 21 08:39:04 2009
@@ -13,13 +13,16 @@
  arch/s390/Kconfig |    1 +
  1 file changed, 1 insertion(+)
 
---- a/arch/s390/Kconfig
-+++ b/arch/s390/Kconfig
-@@ -70,6 +70,7 @@ mainmenu "Linux Kernel Configuration"
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.24.orig/arch/s390/Kconfig linux-source-2.6.24/arch/s390/Kconfig
+--- linux-source-2.6.24.orig/arch/s390/Kconfig	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/s390/Kconfig	2009-01-21 00:49:39.000000000 -0700
+@@ -51,6 +51,7 @@ mainmenu "Linux Kernel Configuration"
  
  config S390
  	def_bool y
 +	select HAVE_SYSCALL_WRAPPERS
- 	select HAVE_OPROFILE
- 	select HAVE_KPROBES
- 	select HAVE_KRETPROBES
+ 
+ source "init/Kconfig"
+ 

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch	Wed Jan 21 08:39:04 2009
@@ -18,12 +18,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/dcookies.c linux-source-2.6.26/fs/dcookies.c
---- linux-source-2.6.26.orig/fs/dcookies.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/dcookies.c	2009-01-19 11:55:54.000000000 -0700
-@@ -140,7 +140,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/dcookies.c linux-source-2.6.24/fs/dcookies.c
+--- linux-source-2.6.24.orig/fs/dcookies.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/dcookies.c	2009-01-21 00:50:44.000000000 -0700
+@@ -143,7 +143,7 @@ out:
  /* And here is where the userspace process can look up the cookie value
   * to retrieve the path.
   */
@@ -32,7 +32,7 @@
  {
  	unsigned long cookie = (unsigned long)cookie64;
  	int err = -EINVAL;
-@@ -193,7 +193,13 @@ out:
+@@ -196,7 +196,13 @@ out:
  	mutex_unlock(&dcookie_mutex);
  	return err;
  }
@@ -47,10 +47,10 @@
  
  static int dcookie_init(void)
  {
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 11:55:54.000000000 -0700
-@@ -345,21 +345,35 @@ asmlinkage long sys_ftruncate(unsigned i
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 00:52:46.000000000 -0700
+@@ -341,21 +341,35 @@ asmlinkage long sys_ftruncate(unsigned i
  
  /* LFS versions of truncate are only needed on 32 bit machines */
  #if BITS_PER_LONG == 32
@@ -72,7 +72,7 @@
  {
  	long ret = do_sys_ftruncate(fd, length, 0);
  	/* avoid REGPARM breakage on x86: */
- 	asmlinkage_protect(2, ret, fd, length);
+ 	prevent_tail_call(ret);
  	return ret;
  }
 +#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
@@ -89,7 +89,7 @@
  {
  	struct file *file;
  	struct inode *inode;
-@@ -416,6 +430,13 @@ out_fput:
+@@ -412,6 +426,13 @@ out_fput:
  out:
  	return ret;
  }
@@ -103,10 +103,10 @@
  
  /*
   * access() needs to use the real uid/gid, not the effective uid/gid.
-diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
---- linux-source-2.6.26.orig/fs/read_write.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/fs/read_write.c	2009-01-19 11:55:54.000000000 -0700
-@@ -384,8 +384,8 @@ asmlinkage long sys_write(unsigned int f
+diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
+--- linux-source-2.6.24.orig/fs/read_write.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/fs/read_write.c	2009-01-21 00:50:44.000000000 -0700
+@@ -389,8 +389,8 @@ asmlinkage long sys_write(unsigned int f
  	return ret;
  }
  
@@ -117,7 +117,7 @@
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -404,9 +404,17 @@ asmlinkage long sys_pread64(unsigned int
+@@ -409,9 +409,17 @@ asmlinkage long sys_pread64(unsigned int
  
  	return ret;
  }
@@ -137,7 +137,7 @@
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -425,6 +433,14 @@ asmlinkage long sys_pwrite64(unsigned in
+@@ -430,6 +438,14 @@ asmlinkage long sys_pwrite64(unsigned in
  
  	return ret;
  }
@@ -152,9 +152,9 @@
  
  /*
   * Reduce an iovec's length in-place.  Return the resulting number of segments
-diff -urpN linux-source-2.6.26.orig/fs/sync.c linux-source-2.6.26/fs/sync.c
---- linux-source-2.6.26.orig/fs/sync.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/sync.c	2009-01-19 11:55:54.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/sync.c linux-source-2.6.24/fs/sync.c
+--- linux-source-2.6.24.orig/fs/sync.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/sync.c	2009-01-21 00:50:44.000000000 -0700
 @@ -174,8 +174,8 @@ asmlinkage long sys_fdatasync(unsigned i
   * already-instantiated disk blocks, there are no guarantees here that the data
   * will be available after a crash.
@@ -201,10 +201,10 @@
  
  /*
   * `endbyte' is inclusive
-diff -urpN linux-source-2.6.26.orig/ipc/sem.c linux-source-2.6.26/ipc/sem.c
---- linux-source-2.6.26.orig/ipc/sem.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/ipc/sem.c	2009-01-19 11:55:54.000000000 -0700
-@@ -893,7 +893,7 @@ out_up:
+diff -urpN linux-source-2.6.24.orig/ipc/sem.c linux-source-2.6.24/ipc/sem.c
+--- linux-source-2.6.24.orig/ipc/sem.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/ipc/sem.c	2009-01-21 00:50:44.000000000 -0700
+@@ -960,7 +960,7 @@ out_unlock:
  	return err;
  }
  
@@ -213,7 +213,7 @@
  {
  	int err = -EINVAL;
  	int version;
-@@ -929,6 +929,13 @@ asmlinkage long sys_semctl (int semid, i
+@@ -998,6 +998,13 @@ asmlinkage long sys_semctl (int semid, i
  		return -EINVAL;
  	}
  }
@@ -227,9 +227,9 @@
  
  /* If the task doesn't already have a undo_list, then allocate one
   * here.  We guarantee there is only one thread using this undo list,
-diff -urpN linux-source-2.6.26.orig/mm/fadvise.c linux-source-2.6.26/mm/fadvise.c
---- linux-source-2.6.26.orig/mm/fadvise.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/fadvise.c	2009-01-19 11:55:54.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/fadvise.c linux-source-2.6.24/mm/fadvise.c
+--- linux-source-2.6.24.orig/mm/fadvise.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/fadvise.c	2009-01-21 00:50:44.000000000 -0700
 @@ -24,7 +24,7 @@
   * POSIX_FADV_WILLNEED could set PG_Referenced, and POSIX_FADV_NOREUSE could
   * deactivate the pages and clear PG_Referenced.
@@ -239,7 +239,7 @@
  {
  	struct file *file = fget(fd);
  	struct address_space *mapping;
-@@ -126,12 +126,26 @@ out:
+@@ -114,12 +114,26 @@ out:
  	fput(file);
  	return ret;
  }
@@ -267,10 +267,10 @@
 +#endif
  
  #endif
-diff -urpN linux-source-2.6.26.orig/mm/filemap.c linux-source-2.6.26/mm/filemap.c
---- linux-source-2.6.26.orig/mm/filemap.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/mm/filemap.c	2009-01-19 11:55:54.000000000 -0700
-@@ -1253,7 +1253,7 @@ do_readahead(struct address_space *mappi
+diff -urpN linux-source-2.6.24.orig/mm/filemap.c linux-source-2.6.24/mm/filemap.c
+--- linux-source-2.6.24.orig/mm/filemap.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/mm/filemap.c	2009-01-21 00:50:44.000000000 -0700
+@@ -1231,7 +1231,7 @@ do_readahead(struct address_space *mappi
  	return 0;
  }
  
@@ -279,7 +279,7 @@
  {
  	ssize_t ret;
  	struct file *file;
-@@ -1272,6 +1272,13 @@ asmlinkage long sys_readahead(int fd, lo
+@@ -1250,6 +1250,13 @@ asmlinkage long sys_readahead(int fd, lo
  	}
  	return ret;
  }

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch	Wed Jan 21 08:39:04 2009
@@ -10,13 +10,13 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/hrtimer.c linux-source-2.6.26/kernel/hrtimer.c
---- linux-source-2.6.26.orig/kernel/hrtimer.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/hrtimer.c	2009-01-19 11:57:28.000000000 -0700
-@@ -1561,8 +1561,8 @@ out:
- 	return ret;
+diff -urpN linux-source-2.6.24.orig/kernel/hrtimer.c linux-source-2.6.24/kernel/hrtimer.c
+--- linux-source-2.6.24.orig/kernel/hrtimer.c	2008-10-10 00:11:27.000000000 -0600
++++ linux-source-2.6.24/kernel/hrtimer.c	2009-01-21 00:54:00.000000000 -0700
+@@ -1379,8 +1379,8 @@ long hrtimer_nanosleep(struct timespec *
+ 	return -ERESTART_RESTARTBLOCK;
  }
  
 -asmlinkage long
@@ -26,10 +26,10 @@
  {
  	struct timespec tu;
  
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 11:57:28.000000000 -0700
-@@ -868,7 +868,7 @@ asmlinkage long sys_setfsgid(gid_t gid)
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 00:54:00.000000000 -0700
+@@ -862,7 +862,7 @@ asmlinkage long sys_setfsgid(gid_t gid)
  	return old_fsgid;
  }
  
@@ -38,10 +38,10 @@
  {
  	/*
  	 *	In the SMP world we might just be unlucky and have one of
-diff -urpN linux-source-2.6.26.orig/kernel/time.c linux-source-2.6.26/kernel/time.c
---- linux-source-2.6.26.orig/kernel/time.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/time.c	2009-01-19 11:57:28.000000000 -0700
-@@ -59,7 +59,7 @@ EXPORT_SYMBOL(sys_tz);
+diff -urpN linux-source-2.6.24.orig/kernel/time.c linux-source-2.6.24/kernel/time.c
+--- linux-source-2.6.24.orig/kernel/time.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/time.c	2009-01-21 00:54:34.000000000 -0700
+@@ -55,7 +55,7 @@ EXPORT_SYMBOL(sys_tz);
   * why not move it into the appropriate arch directory (for those
   * architectures that need it).
   */
@@ -50,7 +50,7 @@
  {
  	time_t i = get_seconds();
  
-@@ -77,7 +77,7 @@ asmlinkage long sys_time(time_t __user *
+@@ -73,7 +73,7 @@ asmlinkage long sys_time(time_t __user *
   * architectures that need it).
   */
  
@@ -59,18 +59,17 @@
  {
  	struct timespec tv;
  	int err;
-@@ -97,8 +97,8 @@ asmlinkage long sys_stime(time_t __user 
+@@ -93,7 +93,8 @@ asmlinkage long sys_stime(time_t __user 
  
  #endif /* __ARCH_WANT_SYS_TIME */
  
--asmlinkage long sys_gettimeofday(struct timeval __user *tv,
--				 struct timezone __user *tz)
+-asmlinkage long sys_gettimeofday(struct timeval __user *tv, struct timezone __user *tz)
 +SYSCALL_DEFINE2(gettimeofday, struct timeval __user *, tv,
 +		struct timezone __user *, tz)
  {
  	if (likely(tv != NULL)) {
  		struct timeval ktv;
-@@ -182,8 +182,8 @@ int do_sys_settimeofday(struct timespec 
+@@ -176,8 +177,8 @@ int do_sys_settimeofday(struct timespec 
  	return 0;
  }
  
@@ -81,7 +80,7 @@
  {
  	struct timeval user_tv;
  	struct timespec	new_ts;
-@@ -203,7 +203,7 @@ asmlinkage long sys_settimeofday(struct 
+@@ -197,7 +198,7 @@ asmlinkage long sys_settimeofday(struct 
  	return do_sys_settimeofday(tv ? &new_ts : NULL, tz ? &new_tz : NULL);
  }
  
@@ -90,10 +89,10 @@
  {
  	struct timex txc;		/* Local copy of parameter */
  	int ret;
-diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
---- linux-source-2.6.26.orig/kernel/timer.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/kernel/timer.c	2009-01-19 11:57:28.000000000 -0700
-@@ -1082,7 +1082,7 @@ void do_timer(unsigned long ticks)
+diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
+--- linux-source-2.6.24.orig/kernel/timer.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/kernel/timer.c	2009-01-21 00:54:00.000000000 -0700
+@@ -947,7 +947,7 @@ void do_timer(unsigned long ticks)
   * For backwards compatibility?  This can be done in libc so Alpha
   * and all newer ports shouldn't need it.
   */
@@ -102,7 +101,7 @@
  {
  	return alarm_setitimer(seconds);
  }
-@@ -1105,7 +1105,7 @@ asmlinkage long sys_alarm(unsigned int s
+@@ -970,7 +970,7 @@ asmlinkage long sys_alarm(unsigned int s
   *
   * This is SMP safe as current->tgid does not change.
   */
@@ -111,7 +110,7 @@
  {
  	return task_tgid_vnr(current);
  }
-@@ -1261,7 +1261,7 @@ signed long __sched schedule_timeout_uni
+@@ -1116,7 +1116,7 @@ signed long __sched schedule_timeout_uni
  EXPORT_SYMBOL(schedule_timeout_uninterruptible);
  
  /* Thread ID - the internal kernel "pid" */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 11:57:28.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 11:58:42.000000000 -0700
-@@ -748,7 +748,7 @@ asmlinkage long sys_setresuid(uid_t ruid
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 00:54:00.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 00:56:20.000000000 -0700
+@@ -742,7 +742,7 @@ asmlinkage long sys_setresuid(uid_t ruid
  	return security_task_post_setuid(old_ruid, old_euid, old_suid, LSM_SETID_RES);
  }
  
@@ -24,7 +24,7 @@
  {
  	int retval;
  
-@@ -799,7 +799,7 @@ asmlinkage long sys_setresgid(gid_t rgid
+@@ -793,7 +793,7 @@ asmlinkage long sys_setresgid(gid_t rgid
  	return 0;
  }
  
@@ -33,36 +33,37 @@
  {
  	int retval;
  
-@@ -989,7 +989,7 @@ out:
+@@ -987,7 +987,7 @@ out:
  	return err;
  }
  
 -asmlinkage long sys_getpgid(pid_t pid)
 +SYSCALL_DEFINE1(getpgid, pid_t, pid)
  {
- 	struct task_struct *p;
- 	struct pid *grp;
-@@ -1019,14 +1019,14 @@ out:
+ 	if (!pid)
+ 		return task_pgrp_vnr(current);
+@@ -1013,7 +1013,7 @@ asmlinkage long sys_getpgid(pid_t pid)
  
  #ifdef __ARCH_WANT_SYS_GETPGRP
  
 -asmlinkage long sys_getpgrp(void)
 +SYSCALL_DEFINE0(getpgrp)
  {
- 	return sys_getpgid(0);
- }
+ 	/* SMP - assuming writes are word atomic this is fine */
+ 	return task_pgrp_vnr(current);
+@@ -1021,7 +1021,7 @@ asmlinkage long sys_getpgrp(void)
  
  #endif
  
 -asmlinkage long sys_getsid(pid_t pid)
 +SYSCALL_DEFINE1(getsid, pid_t, pid)
  {
- 	struct task_struct *p;
- 	struct pid *sid;
-diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
---- linux-source-2.6.26.orig/kernel/timer.c	2009-01-19 11:57:28.000000000 -0700
-+++ linux-source-2.6.26/kernel/timer.c	2009-01-19 11:58:42.000000000 -0700
-@@ -1116,7 +1116,7 @@ SYSCALL_DEFINE0(getpid)
+ 	if (!pid)
+ 		return task_session_vnr(current);
+diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
+--- linux-source-2.6.24.orig/kernel/timer.c	2009-01-21 00:54:00.000000000 -0700
++++ linux-source-2.6.24/kernel/timer.c	2009-01-21 00:55:17.000000000 -0700
+@@ -981,7 +981,7 @@ SYSCALL_DEFINE0(getpid)
   * value of ->real_parent under rcu_read_lock(), see
   * release_task()->call_rcu(delayed_put_task_struct).
   */
@@ -71,7 +72,7 @@
  {
  	int pid;
  
-@@ -1127,25 +1127,25 @@ asmlinkage long sys_getppid(void)
+@@ -992,25 +992,25 @@ asmlinkage long sys_getppid(void)
  	return pid;
  }
  
@@ -101,3 +102,1405 @@
  {
  	/* Only we change this so SMP safe */
  	return  current->egid;
+diff -urpN linux-source-2.6.24.orig/kernel/timer.c.orig linux-source-2.6.24/kernel/timer.c.orig
+--- linux-source-2.6.24.orig/kernel/timer.c.orig	1969-12-31 17:00:00.000000000 -0700
++++ linux-source-2.6.24/kernel/timer.c.orig	2009-01-21 00:54:00.000000000 -0700
+@@ -0,0 +1,1398 @@
++/*
++ *  linux/kernel/timer.c
++ *
++ *  Kernel internal timers, basic process system calls
++ *
++ *  Copyright (C) 1991, 1992  Linus Torvalds
++ *
++ *  1997-01-28  Modified by Finn Arne Gangstad to make timers scale better.
++ *
++ *  1997-09-10  Updated NTP code according to technical memorandum Jan '96
++ *              "A Kernel Model for Precision Timekeeping" by Dave Mills
++ *  1998-12-24  Fixed a xtime SMP race (we need the xtime_lock rw spinlock to
++ *              serialize accesses to xtime/lost_ticks).
++ *                              Copyright (C) 1998  Andrea Arcangeli
++ *  1999-03-10  Improved NTP compatibility by Ulrich Windl
++ *  2002-05-31	Move sys_sysinfo here and make its locking sane, Robert Love
++ *  2000-10-05  Implemented scalable SMP per-CPU timer handling.
++ *                              Copyright (C) 2000, 2001, 2002  Ingo Molnar
++ *              Designed by David S. Miller, Alexey Kuznetsov and Ingo Molnar
++ */
++
++#include <linux/kernel_stat.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/percpu.h>
++#include <linux/init.h>
++#include <linux/mm.h>
++#include <linux/swap.h>
++#include <linux/pid_namespace.h>
++#include <linux/notifier.h>
++#include <linux/thread_info.h>
++#include <linux/time.h>
++#include <linux/jiffies.h>
++#include <linux/posix-timers.h>
++#include <linux/cpu.h>
++#include <linux/syscalls.h>
++#include <linux/delay.h>
++#include <linux/tick.h>
++#include <linux/kallsyms.h>
++
++#include <asm/uaccess.h>
++#include <asm/unistd.h>
++#include <asm/div64.h>
++#include <asm/timex.h>
++#include <asm/io.h>
++
++u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
++
++EXPORT_SYMBOL(jiffies_64);
++
++/*
++ * per-CPU timer vector definitions:
++ */
++#define TVN_BITS (CONFIG_BASE_SMALL ? 4 : 6)
++#define TVR_BITS (CONFIG_BASE_SMALL ? 6 : 8)
++#define TVN_SIZE (1 << TVN_BITS)
++#define TVR_SIZE (1 << TVR_BITS)
++#define TVN_MASK (TVN_SIZE - 1)
++#define TVR_MASK (TVR_SIZE - 1)
++
++typedef struct tvec_s {
++	struct list_head vec[TVN_SIZE];
++} tvec_t;
++
++typedef struct tvec_root_s {
++	struct list_head vec[TVR_SIZE];
++} tvec_root_t;
++
++struct tvec_t_base_s {
++	spinlock_t lock;
++	struct timer_list *running_timer;
++	unsigned long timer_jiffies;
++	tvec_root_t tv1;
++	tvec_t tv2;
++	tvec_t tv3;
++	tvec_t tv4;
++	tvec_t tv5;
++} ____cacheline_aligned;
++
++typedef struct tvec_t_base_s tvec_base_t;
++
++tvec_base_t boot_tvec_bases;
++EXPORT_SYMBOL(boot_tvec_bases);
++static DEFINE_PER_CPU(tvec_base_t *, tvec_bases) = &boot_tvec_bases;
++
++/*
++ * Note that all tvec_bases is 2 byte aligned and lower bit of
++ * base in timer_list is guaranteed to be zero. Use the LSB for
++ * the new flag to indicate whether the timer is deferrable
++ */
++#define TBASE_DEFERRABLE_FLAG		(0x1)
++
++/* Functions below help us manage 'deferrable' flag */
++static inline unsigned int tbase_get_deferrable(tvec_base_t *base)
++{
++	return ((unsigned int)(unsigned long)base & TBASE_DEFERRABLE_FLAG);
++}
++
++static inline tvec_base_t *tbase_get_base(tvec_base_t *base)
++{
++	return ((tvec_base_t *)((unsigned long)base & ~TBASE_DEFERRABLE_FLAG));
++}
++
++static inline void timer_set_deferrable(struct timer_list *timer)
++{
++	timer->base = ((tvec_base_t *)((unsigned long)(timer->base) |
++				       TBASE_DEFERRABLE_FLAG));
++}
++
++static inline void
++timer_set_base(struct timer_list *timer, tvec_base_t *new_base)
++{
++	timer->base = (tvec_base_t *)((unsigned long)(new_base) |
++				      tbase_get_deferrable(timer->base));
++}
++
++/**
++ * __round_jiffies - function to round jiffies to a full second
++ * @j: the time in (absolute) jiffies that should be rounded
++ * @cpu: the processor number on which the timeout will happen
++ *
++ * __round_jiffies() rounds an absolute time in the future (in jiffies)
++ * up or down to (approximately) full seconds. This is useful for timers
++ * for which the exact time they fire does not matter too much, as long as
++ * they fire approximately every X seconds.
++ *
++ * By rounding these timers to whole seconds, all such timers will fire
++ * at the same time, rather than at various times spread out. The goal
++ * of this is to have the CPU wake up less, which saves power.
++ *
++ * The exact rounding is skewed for each processor to avoid all
++ * processors firing at the exact same time, which could lead
++ * to lock contention or spurious cache line bouncing.
++ *
++ * The return value is the rounded version of the @j parameter.
++ */
++unsigned long __round_jiffies(unsigned long j, int cpu)
++{
++	int rem;
++	unsigned long original = j;
++
++	/*
++	 * We don't want all cpus firing their timers at once hitting the
++	 * same lock or cachelines, so we skew each extra cpu with an extra
++	 * 3 jiffies. This 3 jiffies came originally from the mm/ code which
++	 * already did this.
++	 * The skew is done by adding 3*cpunr, then round, then subtract this
++	 * extra offset again.
++	 */
++	j += cpu * 3;
++
++	rem = j % HZ;
++
++	/*
++	 * If the target jiffie is just after a whole second (which can happen
++	 * due to delays of the timer irq, long irq off times etc etc) then
++	 * we should round down to the whole second, not up. Use 1/4th second
++	 * as cutoff for this rounding as an extreme upper bound for this.
++	 */
++	if (rem < HZ/4) /* round down */
++		j = j - rem;
++	else /* round up */
++		j = j - rem + HZ;
++
++	/* now that we have rounded, subtract the extra skew again */
++	j -= cpu * 3;
++
++	if (j <= jiffies) /* rounding ate our timeout entirely; */
++		return original;
++	return j;
++}
++EXPORT_SYMBOL_GPL(__round_jiffies);
++
++/**
++ * __round_jiffies_relative - function to round jiffies to a full second
++ * @j: the time in (relative) jiffies that should be rounded
++ * @cpu: the processor number on which the timeout will happen
++ *
++ * __round_jiffies_relative() rounds a time delta  in the future (in jiffies)
++ * up or down to (approximately) full seconds. This is useful for timers
++ * for which the exact time they fire does not matter too much, as long as
++ * they fire approximately every X seconds.
++ *
++ * By rounding these timers to whole seconds, all such timers will fire
++ * at the same time, rather than at various times spread out. The goal
++ * of this is to have the CPU wake up less, which saves power.
++ *
++ * The exact rounding is skewed for each processor to avoid all
++ * processors firing at the exact same time, which could lead
++ * to lock contention or spurious cache line bouncing.
++ *
++ * The return value is the rounded version of the @j parameter.
++ */
++unsigned long __round_jiffies_relative(unsigned long j, int cpu)
++{
++	/*
++	 * In theory the following code can skip a jiffy in case jiffies
++	 * increments right between the addition and the later subtraction.
++	 * However since the entire point of this function is to use approximate
++	 * timeouts, it's entirely ok to not handle that.
++	 */
++	return  __round_jiffies(j + jiffies, cpu) - jiffies;
++}
++EXPORT_SYMBOL_GPL(__round_jiffies_relative);
++
++/**
++ * round_jiffies - function to round jiffies to a full second
++ * @j: the time in (absolute) jiffies that should be rounded
++ *
++ * round_jiffies() rounds an absolute time in the future (in jiffies)
++ * up or down to (approximately) full seconds. This is useful for timers
++ * for which the exact time they fire does not matter too much, as long as
++ * they fire approximately every X seconds.
++ *
++ * By rounding these timers to whole seconds, all such timers will fire
++ * at the same time, rather than at various times spread out. The goal
++ * of this is to have the CPU wake up less, which saves power.
++ *
++ * The return value is the rounded version of the @j parameter.
++ */
++unsigned long round_jiffies(unsigned long j)
++{
++	return __round_jiffies(j, raw_smp_processor_id());
++}
++EXPORT_SYMBOL_GPL(round_jiffies);
++
++/**
++ * round_jiffies_relative - function to round jiffies to a full second
++ * @j: the time in (relative) jiffies that should be rounded
++ *
++ * round_jiffies_relative() rounds a time delta  in the future (in jiffies)
++ * up or down to (approximately) full seconds. This is useful for timers
++ * for which the exact time they fire does not matter too much, as long as
++ * they fire approximately every X seconds.
++ *
++ * By rounding these timers to whole seconds, all such timers will fire
++ * at the same time, rather than at various times spread out. The goal
++ * of this is to have the CPU wake up less, which saves power.
++ *
++ * The return value is the rounded version of the @j parameter.
++ */
++unsigned long round_jiffies_relative(unsigned long j)
++{
++	return __round_jiffies_relative(j, raw_smp_processor_id());
++}
++EXPORT_SYMBOL_GPL(round_jiffies_relative);
++
++
++static inline void set_running_timer(tvec_base_t *base,
++					struct timer_list *timer)
++{
++#ifdef CONFIG_SMP
++	base->running_timer = timer;
++#endif
++}
++
++static void internal_add_timer(tvec_base_t *base, struct timer_list *timer)
++{
++	unsigned long expires = timer->expires;
++	unsigned long idx = expires - base->timer_jiffies;
++	struct list_head *vec;
++
++	if (idx < TVR_SIZE) {
++		int i = expires & TVR_MASK;
++		vec = base->tv1.vec + i;
++	} else if (idx < 1 << (TVR_BITS + TVN_BITS)) {
++		int i = (expires >> TVR_BITS) & TVN_MASK;
++		vec = base->tv2.vec + i;
++	} else if (idx < 1 << (TVR_BITS + 2 * TVN_BITS)) {
++		int i = (expires >> (TVR_BITS + TVN_BITS)) & TVN_MASK;
++		vec = base->tv3.vec + i;
++	} else if (idx < 1 << (TVR_BITS + 3 * TVN_BITS)) {
++		int i = (expires >> (TVR_BITS + 2 * TVN_BITS)) & TVN_MASK;
++		vec = base->tv4.vec + i;
++	} else if ((signed long) idx < 0) {
++		/*
++		 * Can happen if you add a timer with expires == jiffies,
++		 * or you set a timer to go off in the past
++		 */
++		vec = base->tv1.vec + (base->timer_jiffies & TVR_MASK);
++	} else {
++		int i;
++		/* If the timeout is larger than 0xffffffff on 64-bit
++		 * architectures then we use the maximum timeout:
++		 */
++		if (idx > 0xffffffffUL) {
++			idx = 0xffffffffUL;
++			expires = idx + base->timer_jiffies;
++		}
++		i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK;
++		vec = base->tv5.vec + i;
++	}
++	/*
++	 * Timers are FIFO:
++	 */
++	list_add_tail(&timer->entry, vec);
++}
++
++#ifdef CONFIG_TIMER_STATS
++void __timer_stats_timer_set_start_info(struct timer_list *timer, void *addr)
++{
++	if (timer->start_site)
++		return;
++
++	timer->start_site = addr;
++	memcpy(timer->start_comm, current->comm, TASK_COMM_LEN);
++	timer->start_pid = current->pid;
++}
++
++static void timer_stats_account_timer(struct timer_list *timer)
++{
++	unsigned int flag = 0;
++
++	if (unlikely(tbase_get_deferrable(timer->base)))
++		flag |= TIMER_STATS_FLAG_DEFERRABLE;
++
++	timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
++				 timer->function, timer->start_comm, flag);
++}
++
++#else
++static void timer_stats_account_timer(struct timer_list *timer) {}
++#endif
++
++/**
++ * init_timer - initialize a timer.
++ * @timer: the timer to be initialized
++ *
++ * init_timer() must be done to a timer prior calling *any* of the
++ * other timer functions.
++ */
++void fastcall init_timer(struct timer_list *timer)
++{
++	timer->entry.next = NULL;
++	timer->base = __raw_get_cpu_var(tvec_bases);
++#ifdef CONFIG_TIMER_STATS
++	timer->start_site = NULL;
++	timer->start_pid = -1;
++	memset(timer->start_comm, 0, TASK_COMM_LEN);
++#endif
++}
++EXPORT_SYMBOL(init_timer);
++
++void fastcall init_timer_deferrable(struct timer_list *timer)
++{
++	init_timer(timer);
++	timer_set_deferrable(timer);
++}
++EXPORT_SYMBOL(init_timer_deferrable);
++
++static inline void detach_timer(struct timer_list *timer,
++				int clear_pending)
++{
++	struct list_head *entry = &timer->entry;
++
++	__list_del(entry->prev, entry->next);
++	if (clear_pending)
++		entry->next = NULL;
++	entry->prev = LIST_POISON2;
++}
++
++/*
++ * We are using hashed locking: holding per_cpu(tvec_bases).lock
++ * means that all timers which are tied to this base via timer->base are
++ * locked, and the base itself is locked too.
++ *
++ * So __run_timers/migrate_timers can safely modify all timers which could
++ * be found on ->tvX lists.
++ *
++ * When the timer's base is locked, and the timer removed from list, it is
++ * possible to set timer->base = NULL and drop the lock: the timer remains
++ * locked.
++ */
++static tvec_base_t *lock_timer_base(struct timer_list *timer,
++					unsigned long *flags)
++	__acquires(timer->base->lock)
++{
++	tvec_base_t *base;
++
++	for (;;) {
++		tvec_base_t *prelock_base = timer->base;
++		base = tbase_get_base(prelock_base);
++		if (likely(base != NULL)) {
++			spin_lock_irqsave(&base->lock, *flags);
++			if (likely(prelock_base == timer->base))
++				return base;
++			/* The timer has migrated to another CPU */
++			spin_unlock_irqrestore(&base->lock, *flags);
++		}
++		cpu_relax();
++	}
++}
++
++int __mod_timer(struct timer_list *timer, unsigned long expires)
++{
++	tvec_base_t *base, *new_base;
++	unsigned long flags;
++	int ret = 0;
++
++	timer_stats_timer_set_start_info(timer);
++	BUG_ON(!timer->function);
++
++	base = lock_timer_base(timer, &flags);
++
++	if (timer_pending(timer)) {
++		detach_timer(timer, 0);
++		ret = 1;
++	}
++
++	new_base = __get_cpu_var(tvec_bases);
++
++	if (base != new_base) {
++		/*
++		 * We are trying to schedule the timer on the local CPU.
++		 * However we can't change timer's base while it is running,
++		 * otherwise del_timer_sync() can't detect that the timer's
++		 * handler yet has not finished. This also guarantees that
++		 * the timer is serialized wrt itself.
++		 */
++		if (likely(base->running_timer != timer)) {
++			/* See the comment in lock_timer_base() */
++			timer_set_base(timer, NULL);
++			spin_unlock(&base->lock);
++			base = new_base;
++			spin_lock(&base->lock);
++			timer_set_base(timer, base);
++		}
++	}
++
++	timer->expires = expires;
++	internal_add_timer(base, timer);
++	spin_unlock_irqrestore(&base->lock, flags);
++
++	return ret;
++}
++
++EXPORT_SYMBOL(__mod_timer);
++
++/**
++ * add_timer_on - start a timer on a particular CPU
++ * @timer: the timer to be added
++ * @cpu: the CPU to start it on
++ *
++ * This is not very scalable on SMP. Double adds are not possible.
++ */
++void add_timer_on(struct timer_list *timer, int cpu)
++{
++	tvec_base_t *base = per_cpu(tvec_bases, cpu);
++	unsigned long flags;
++
++	timer_stats_timer_set_start_info(timer);
++	BUG_ON(timer_pending(timer) || !timer->function);
++	spin_lock_irqsave(&base->lock, flags);
++	timer_set_base(timer, base);
++	internal_add_timer(base, timer);
++	/*
++	 * Check whether the other CPU is idle and needs to be
++	 * triggered to reevaluate the timer wheel when nohz is
++	 * active. We are protected against the other CPU fiddling
++	 * with the timer by holding the timer base lock. This also
++	 * makes sure that a CPU on the way to idle can not evaluate
++	 * the timer wheel.
++	 */
++	wake_up_idle_cpu(cpu);
++	spin_unlock_irqrestore(&base->lock, flags);
++}
++
++/**
++ * mod_timer - modify a timer's timeout
++ * @timer: the timer to be modified
++ * @expires: new timeout in jiffies
++ *
++ * mod_timer() is a more efficient way to update the expire field of an
++ * active timer (if the timer is inactive it will be activated)
++ *
++ * mod_timer(timer, expires) is equivalent to:
++ *
++ *     del_timer(timer); timer->expires = expires; add_timer(timer);
++ *
++ * Note that if there are multiple unserialized concurrent users of the
++ * same timer, then mod_timer() is the only safe way to modify the timeout,
++ * since add_timer() cannot modify an already running timer.
++ *
++ * The function returns whether it has modified a pending timer or not.
++ * (ie. mod_timer() of an inactive timer returns 0, mod_timer() of an
++ * active timer returns 1.)
++ */
++int mod_timer(struct timer_list *timer, unsigned long expires)
++{
++	BUG_ON(!timer->function);
++
++	timer_stats_timer_set_start_info(timer);
++	/*
++	 * This is a common optimization triggered by the
++	 * networking code - if the timer is re-modified
++	 * to be the same thing then just return:
++	 */
++	if (timer->expires == expires && timer_pending(timer))
++		return 1;
++
++	return __mod_timer(timer, expires);
++}
++
++EXPORT_SYMBOL(mod_timer);
++
++/**
++ * del_timer - deactive a timer.
++ * @timer: the timer to be deactivated
++ *
++ * del_timer() deactivates a timer - this works on both active and inactive
++ * timers.
++ *
++ * The function returns whether it has deactivated a pending timer or not.
++ * (ie. del_timer() of an inactive timer returns 0, del_timer() of an
++ * active timer returns 1.)
++ */
++int del_timer(struct timer_list *timer)
++{
++	tvec_base_t *base;
++	unsigned long flags;
++	int ret = 0;
++
++	timer_stats_timer_clear_start_info(timer);
++	if (timer_pending(timer)) {
++		base = lock_timer_base(timer, &flags);
++		if (timer_pending(timer)) {
++			detach_timer(timer, 1);
++			ret = 1;
++		}
++		spin_unlock_irqrestore(&base->lock, flags);
++	}
++
++	return ret;
++}
++
++EXPORT_SYMBOL(del_timer);
++
++#ifdef CONFIG_SMP
++/**
++ * try_to_del_timer_sync - Try to deactivate a timer
++ * @timer: timer do del
++ *
++ * This function tries to deactivate a timer. Upon successful (ret >= 0)
++ * exit the timer is not queued and the handler is not running on any CPU.
++ *
++ * It must not be called from interrupt contexts.
++ */
++int try_to_del_timer_sync(struct timer_list *timer)
++{
++	tvec_base_t *base;
++	unsigned long flags;
++	int ret = -1;
++
++	base = lock_timer_base(timer, &flags);
++
++	if (base->running_timer == timer)
++		goto out;
++
++	ret = 0;
++	if (timer_pending(timer)) {
++		detach_timer(timer, 1);
++		ret = 1;
++	}
++out:
++	spin_unlock_irqrestore(&base->lock, flags);
++
++	return ret;
++}
++
++EXPORT_SYMBOL(try_to_del_timer_sync);
++
++/**
++ * del_timer_sync - deactivate a timer and wait for the handler to finish.
++ * @timer: the timer to be deactivated
++ *
++ * This function only differs from del_timer() on SMP: besides deactivating
++ * the timer it also makes sure the handler has finished executing on other
++ * CPUs.
++ *
++ * Synchronization rules: Callers must prevent restarting of the timer,
++ * otherwise this function is meaningless. It must not be called from
++ * interrupt contexts. The caller must not hold locks which would prevent
++ * completion of the timer's handler. The timer's handler must not call
++ * add_timer_on(). Upon exit the timer is not queued and the handler is
++ * not running on any CPU.
++ *
++ * The function returns whether it has deactivated a pending timer or not.
++ */
++int del_timer_sync(struct timer_list *timer)
++{
++	for (;;) {
++		int ret = try_to_del_timer_sync(timer);
++		if (ret >= 0)
++			return ret;
++		cpu_relax();
++	}
++}
++
++EXPORT_SYMBOL(del_timer_sync);
++#endif
++
++static int cascade(tvec_base_t *base, tvec_t *tv, int index)
++{
++	/* cascade all the timers from tv up one level */
++	struct timer_list *timer, *tmp;
++	struct list_head tv_list;
++
++	list_replace_init(tv->vec + index, &tv_list);
++
++	/*
++	 * We are removing _all_ timers from the list, so we
++	 * don't have to detach them individually.
++	 */
++	list_for_each_entry_safe(timer, tmp, &tv_list, entry) {
++		BUG_ON(tbase_get_base(timer->base) != base);
++		internal_add_timer(base, timer);
++	}
++
++	return index;
++}
++
++#define INDEX(N) ((base->timer_jiffies >> (TVR_BITS + (N) * TVN_BITS)) & TVN_MASK)
++
++/**
++ * __run_timers - run all expired timers (if any) on this CPU.
++ * @base: the timer vector to be processed.
++ *
++ * This function cascades all vectors and executes all expired timer
++ * vectors.
++ */
++static inline void __run_timers(tvec_base_t *base)
++{
++	struct timer_list *timer;
++
++	spin_lock_irq(&base->lock);
++	while (time_after_eq(jiffies, base->timer_jiffies)) {
++		struct list_head work_list;
++		struct list_head *head = &work_list;
++		int index = base->timer_jiffies & TVR_MASK;
++
++		/*
++		 * Cascade timers:
++		 */
++		if (!index &&
++			(!cascade(base, &base->tv2, INDEX(0))) &&
++				(!cascade(base, &base->tv3, INDEX(1))) &&
++					!cascade(base, &base->tv4, INDEX(2)))
++			cascade(base, &base->tv5, INDEX(3));
++		++base->timer_jiffies;
++		list_replace_init(base->tv1.vec + index, &work_list);
++		while (!list_empty(head)) {
++			void (*fn)(unsigned long);
++			unsigned long data;
++
++			timer = list_first_entry(head, struct timer_list,entry);
++			fn = timer->function;
++			data = timer->data;
++
++			timer_stats_account_timer(timer);
++
++			set_running_timer(base, timer);
++			detach_timer(timer, 1);
++			spin_unlock_irq(&base->lock);
++			{
++				int preempt_count = preempt_count();
++				fn(data);
++				if (preempt_count != preempt_count()) {
++					printk(KERN_WARNING "huh, entered %p "
++					       "with preempt_count %08x, exited"
++					       " with %08x?\n",
++					       fn, preempt_count,
++					       preempt_count());
++					BUG();
++				}
++			}
++			spin_lock_irq(&base->lock);
++		}
++	}
++	set_running_timer(base, NULL);
++	spin_unlock_irq(&base->lock);
++}
++
++#if defined(CONFIG_NO_IDLE_HZ) || defined(CONFIG_NO_HZ)
++/*
++ * Find out when the next timer event is due to happen. This
++ * is used on S/390 to stop all activity when a cpus is idle.
++ * This functions needs to be called disabled.
++ */
++static unsigned long __next_timer_interrupt(tvec_base_t *base)
++{
++	unsigned long timer_jiffies = base->timer_jiffies;
++	unsigned long expires = timer_jiffies + NEXT_TIMER_MAX_DELTA;
++	int index, slot, array, found = 0;
++	struct timer_list *nte;
++	tvec_t *varray[4];
++
++	/* Look for timer events in tv1. */
++	index = slot = timer_jiffies & TVR_MASK;
++	do {
++		list_for_each_entry(nte, base->tv1.vec + slot, entry) {
++			if (tbase_get_deferrable(nte->base))
++				continue;
++
++			found = 1;
++			expires = nte->expires;
++			/* Look at the cascade bucket(s)? */
++			if (!index || slot < index)
++				goto cascade;
++			return expires;
++		}
++		slot = (slot + 1) & TVR_MASK;
++	} while (slot != index);
++
++cascade:
++	/* Calculate the next cascade event */
++	if (index)
++		timer_jiffies += TVR_SIZE - index;
++	timer_jiffies >>= TVR_BITS;
++
++	/* Check tv2-tv5. */
++	varray[0] = &base->tv2;
++	varray[1] = &base->tv3;
++	varray[2] = &base->tv4;
++	varray[3] = &base->tv5;
++
++	for (array = 0; array < 4; array++) {
++		tvec_t *varp = varray[array];
++
++		index = slot = timer_jiffies & TVN_MASK;
++		do {
++			list_for_each_entry(nte, varp->vec + slot, entry) {
++				found = 1;
++				if (time_before(nte->expires, expires))
++					expires = nte->expires;
++			}
++			/*
++			 * Do we still search for the first timer or are
++			 * we looking up the cascade buckets ?
++			 */
++			if (found) {
++				/* Look at the cascade bucket(s)? */
++				if (!index || slot < index)
++					break;
++				return expires;
++			}
++			slot = (slot + 1) & TVN_MASK;
++		} while (slot != index);
++
++		if (index)
++			timer_jiffies += TVN_SIZE - index;
++		timer_jiffies >>= TVN_BITS;
++	}
++	return expires;
++}
++
++/*
++ * Check, if the next hrtimer event is before the next timer wheel
++ * event:
++ */
++static unsigned long cmp_next_hrtimer_event(unsigned long now,
++					    unsigned long expires)
++{
++	ktime_t hr_delta = hrtimer_get_next_event();
++	struct timespec tsdelta;
++	unsigned long delta;
++
++	if (hr_delta.tv64 == KTIME_MAX)
++		return expires;
++
++	/*
++	 * Expired timer available, let it expire in the next tick
++	 */
++	if (hr_delta.tv64 <= 0)
++		return now + 1;
++
++	tsdelta = ktime_to_timespec(hr_delta);
++	delta = timespec_to_jiffies(&tsdelta);
++
++	/*
++	 * Limit the delta to the max value, which is checked in
++	 * tick_nohz_stop_sched_tick():
++	 */
++	if (delta > NEXT_TIMER_MAX_DELTA)
++		delta = NEXT_TIMER_MAX_DELTA;
++
++	/*
++	 * Take rounding errors in to account and make sure, that it
++	 * expires in the next tick. Otherwise we go into an endless
++	 * ping pong due to tick_nohz_stop_sched_tick() retriggering
++	 * the timer softirq
++	 */
++	if (delta < 1)
++		delta = 1;
++	now += delta;
++	if (time_before(now, expires))
++		return now;
++	return expires;
++}
++
++/**
++ * get_next_timer_interrupt - return the jiffy of the next pending timer
++ * @now: current time (in jiffies)
++ */
++unsigned long get_next_timer_interrupt(unsigned long now)
++{
++	tvec_base_t *base = __get_cpu_var(tvec_bases);
++	unsigned long expires;
++
++	spin_lock(&base->lock);
++	expires = __next_timer_interrupt(base);
++	spin_unlock(&base->lock);
++
++	if (time_before_eq(expires, now))
++		return now;
++
++	return cmp_next_hrtimer_event(now, expires);
++}
++
++#ifdef CONFIG_NO_IDLE_HZ
++unsigned long next_timer_interrupt(void)
++{
++	return get_next_timer_interrupt(jiffies);
++}
++#endif
++
++#endif
++
++#ifndef CONFIG_VIRT_CPU_ACCOUNTING
++void account_process_tick(struct task_struct *p, int user_tick)
++{
++	if (user_tick) {
++		account_user_time(p, jiffies_to_cputime(1));
++		account_user_time_scaled(p, jiffies_to_cputime(1));
++	} else {
++		account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1));
++		account_system_time_scaled(p, jiffies_to_cputime(1));
++	}
++}
++#endif
++
++/*
++ * Called from the timer interrupt handler to charge one tick to the current
++ * process.  user_tick is 1 if the tick is user time, 0 for system.
++ */
++void update_process_times(int user_tick)
++{
++	struct task_struct *p = current;
++	int cpu = smp_processor_id();
++
++	/* Note: this timer irq context must be accounted for as well. */
++	account_process_tick(p, user_tick);
++	run_local_timers();
++	if (rcu_pending(cpu))
++		rcu_check_callbacks(cpu, user_tick);
++	scheduler_tick();
++	run_posix_cpu_timers(p);
++}
++
++/*
++ * Nr of active tasks - counted in fixed-point numbers
++ */
++static unsigned long count_active_tasks(void)
++{
++	return nr_active() * FIXED_1;
++}
++
++/*
++ * Hmm.. Changed this, as the GNU make sources (load.c) seems to
++ * imply that avenrun[] is the standard name for this kind of thing.
++ * Nothing else seems to be standardized: the fractional size etc
++ * all seem to differ on different machines.
++ *
++ * Requires xtime_lock to access.
++ */
++unsigned long avenrun[3];
++
++EXPORT_SYMBOL(avenrun);
++
++/*
++ * calc_load - given tick count, update the avenrun load estimates.
++ * This is called while holding a write_lock on xtime_lock.
++ */
++static inline void calc_load(unsigned long ticks)
++{
++	unsigned long active_tasks; /* fixed-point */
++	static int count = LOAD_FREQ;
++
++	count -= ticks;
++	if (unlikely(count < 0)) {
++		active_tasks = count_active_tasks();
++		do {
++			CALC_LOAD(avenrun[0], EXP_1, active_tasks);
++			CALC_LOAD(avenrun[1], EXP_5, active_tasks);
++			CALC_LOAD(avenrun[2], EXP_15, active_tasks);
++			count += LOAD_FREQ;
++		} while (count < 0);
++	}
++}
++
++/*
++ * This function runs timers and the timer-tq in bottom half context.
++ */
++static void run_timer_softirq(struct softirq_action *h)
++{
++	tvec_base_t *base = __get_cpu_var(tvec_bases);
++
++	hrtimer_run_queues();
++
++	if (time_after_eq(jiffies, base->timer_jiffies))
++		__run_timers(base);
++}
++
++/*
++ * Called by the local, per-CPU timer interrupt on SMP.
++ */
++void run_local_timers(void)
++{
++	raise_softirq(TIMER_SOFTIRQ);
++	softlockup_tick();
++}
++
++/*
++ * Called by the timer interrupt. xtime_lock must already be taken
++ * by the timer IRQ!
++ */
++static inline void update_times(unsigned long ticks)
++{
++	update_wall_time();
++	calc_load(ticks);
++}
++
++/*
++ * The 64-bit jiffies value is not atomic - you MUST NOT read it
++ * without sampling the sequence number in xtime_lock.
++ * jiffies is defined in the linker script...
++ */
++
++void do_timer(unsigned long ticks)
++{
++	jiffies_64 += ticks;
++	update_times(ticks);
++}
++
++#ifdef __ARCH_WANT_SYS_ALARM
++
++/*
++ * For backwards compatibility?  This can be done in libc so Alpha
++ * and all newer ports shouldn't need it.
++ */
++SYSCALL_DEFINE1(alarm, unsigned int, seconds)
++{
++	return alarm_setitimer(seconds);
++}
++
++#endif
++
++#ifndef __alpha__
++
++/*
++ * The Alpha uses getxpid, getxuid, and getxgid instead.  Maybe this
++ * should be moved into arch/i386 instead?
++ */
++
++/**
++ * sys_getpid - return the thread group id of the current process
++ *
++ * Note, despite the name, this returns the tgid not the pid.  The tgid and
++ * the pid are identical unless CLONE_THREAD was specified on clone() in
++ * which case the tgid is the same in all threads of the same group.
++ *
++ * This is SMP safe as current->tgid does not change.
++ */
++SYSCALL_DEFINE0(getpid)
++{
++	return task_tgid_vnr(current);
++}
++
++/*
++ * Accessing ->real_parent is not SMP-safe, it could
++ * change from under us. However, we can use a stale
++ * value of ->real_parent under rcu_read_lock(), see
++ * release_task()->call_rcu(delayed_put_task_struct).
++ */
++asmlinkage long sys_getppid(void)
++{
++	int pid;
++
++	rcu_read_lock();
++	pid = task_tgid_nr_ns(current->real_parent, current->nsproxy->pid_ns);
++	rcu_read_unlock();
++
++	return pid;
++}
++
++asmlinkage long sys_getuid(void)
++{
++	/* Only we change this so SMP safe */
++	return current->uid;
++}
++
++asmlinkage long sys_geteuid(void)
++{
++	/* Only we change this so SMP safe */
++	return current->euid;
++}
++
++asmlinkage long sys_getgid(void)
++{
++	/* Only we change this so SMP safe */
++	return current->gid;
++}
++
++asmlinkage long sys_getegid(void)
++{
++	/* Only we change this so SMP safe */
++	return  current->egid;
++}
++
++#endif
++
++static void process_timeout(unsigned long __data)
++{
++	wake_up_process((struct task_struct *)__data);
++}
++
++/**
++ * schedule_timeout - sleep until timeout
++ * @timeout: timeout value in jiffies
++ *
++ * Make the current task sleep until @timeout jiffies have
++ * elapsed. The routine will return immediately unless
++ * the current task state has been set (see set_current_state()).
++ *
++ * You can set the task state as follows -
++ *
++ * %TASK_UNINTERRUPTIBLE - at least @timeout jiffies are guaranteed to
++ * pass before the routine returns. The routine will return 0
++ *
++ * %TASK_INTERRUPTIBLE - the routine may return early if a signal is
++ * delivered to the current task. In this case the remaining time
++ * in jiffies will be returned, or 0 if the timer expired in time
++ *
++ * The current task state is guaranteed to be TASK_RUNNING when this
++ * routine returns.
++ *
++ * Specifying a @timeout value of %MAX_SCHEDULE_TIMEOUT will schedule
++ * the CPU away without a bound on the timeout. In this case the return
++ * value will be %MAX_SCHEDULE_TIMEOUT.
++ *
++ * In all cases the return value is guaranteed to be non-negative.
++ */
++fastcall signed long __sched schedule_timeout(signed long timeout)
++{
++	struct timer_list timer;
++	unsigned long expire;
++
++	switch (timeout)
++	{
++	case MAX_SCHEDULE_TIMEOUT:
++		/*
++		 * These two special cases are useful to be comfortable
++		 * in the caller. Nothing more. We could take
++		 * MAX_SCHEDULE_TIMEOUT from one of the negative value
++		 * but I' d like to return a valid offset (>=0) to allow
++		 * the caller to do everything it want with the retval.
++		 */
++		schedule();
++		goto out;
++	default:
++		/*
++		 * Another bit of PARANOID. Note that the retval will be
++		 * 0 since no piece of kernel is supposed to do a check
++		 * for a negative retval of schedule_timeout() (since it
++		 * should never happens anyway). You just have the printk()
++		 * that will tell you if something is gone wrong and where.
++		 */
++		if (timeout < 0) {
++			printk(KERN_ERR "schedule_timeout: wrong timeout "
++				"value %lx\n", timeout);
++			dump_stack();
++			current->state = TASK_RUNNING;
++			goto out;
++		}
++	}
++
++	expire = timeout + jiffies;
++
++	setup_timer(&timer, process_timeout, (unsigned long)current);
++	__mod_timer(&timer, expire);
++	schedule();
++	del_singleshot_timer_sync(&timer);
++
++	timeout = expire - jiffies;
++
++ out:
++	return timeout < 0 ? 0 : timeout;
++}
++EXPORT_SYMBOL(schedule_timeout);
++
++/*
++ * We can use __set_current_state() here because schedule_timeout() calls
++ * schedule() unconditionally.
++ */
++signed long __sched schedule_timeout_interruptible(signed long timeout)
++{
++	__set_current_state(TASK_INTERRUPTIBLE);
++	return schedule_timeout(timeout);
++}
++EXPORT_SYMBOL(schedule_timeout_interruptible);
++
++signed long __sched schedule_timeout_uninterruptible(signed long timeout)
++{
++	__set_current_state(TASK_UNINTERRUPTIBLE);
++	return schedule_timeout(timeout);
++}
++EXPORT_SYMBOL(schedule_timeout_uninterruptible);
++
++/* Thread ID - the internal kernel "pid" */
++SYSCALL_DEFINE0(gettid)
++{
++	return task_pid_vnr(current);
++}
++
++/**
++ * do_sysinfo - fill in sysinfo struct
++ * @info: pointer to buffer to fill
++ */
++int do_sysinfo(struct sysinfo *info)
++{
++	unsigned long mem_total, sav_total;
++	unsigned int mem_unit, bitcount;
++	unsigned long seq;
++
++	memset(info, 0, sizeof(struct sysinfo));
++
++	do {
++		struct timespec tp;
++		seq = read_seqbegin(&xtime_lock);
++
++		/*
++		 * This is annoying.  The below is the same thing
++		 * posix_get_clock_monotonic() does, but it wants to
++		 * take the lock which we want to cover the loads stuff
++		 * too.
++		 */
++
++		getnstimeofday(&tp);
++		tp.tv_sec += wall_to_monotonic.tv_sec;
++		tp.tv_nsec += wall_to_monotonic.tv_nsec;
++		monotonic_to_bootbased(&tp);
++		if (tp.tv_nsec - NSEC_PER_SEC >= 0) {
++			tp.tv_nsec = tp.tv_nsec - NSEC_PER_SEC;
++			tp.tv_sec++;
++		}
++		info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
++
++		info->loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT);
++		info->loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT);
++		info->loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT);
++
++		info->procs = nr_threads;
++	} while (read_seqretry(&xtime_lock, seq));
++
++	si_meminfo(info);
++	si_swapinfo(info);
++
++	/*
++	 * If the sum of all the available memory (i.e. ram + swap)
++	 * is less than can be stored in a 32 bit unsigned long then
++	 * we can be binary compatible with 2.2.x kernels.  If not,
++	 * well, in that case 2.2.x was broken anyways...
++	 *
++	 *  -Erik Andersen <andersee at debian.org>
++	 */
++
++	mem_total = info->totalram + info->totalswap;
++	if (mem_total < info->totalram || mem_total < info->totalswap)
++		goto out;
++	bitcount = 0;
++	mem_unit = info->mem_unit;
++	while (mem_unit > 1) {
++		bitcount++;
++		mem_unit >>= 1;
++		sav_total = mem_total;
++		mem_total <<= 1;
++		if (mem_total < sav_total)
++			goto out;
++	}
++
++	/*
++	 * If mem_total did not overflow, multiply all memory values by
++	 * info->mem_unit and set it to 1.  This leaves things compatible
++	 * with 2.2.x, and also retains compatibility with earlier 2.4.x
++	 * kernels...
++	 */
++
++	info->mem_unit = 1;
++	info->totalram <<= bitcount;
++	info->freeram <<= bitcount;
++	info->sharedram <<= bitcount;
++	info->bufferram <<= bitcount;
++	info->totalswap <<= bitcount;
++	info->freeswap <<= bitcount;
++	info->totalhigh <<= bitcount;
++	info->freehigh <<= bitcount;
++
++out:
++	return 0;
++}
++
++asmlinkage long sys_sysinfo(struct sysinfo __user *info)
++{
++	struct sysinfo val;
++
++	do_sysinfo(&val);
++
++	if (copy_to_user(info, &val, sizeof(struct sysinfo)))
++		return -EFAULT;
++
++	return 0;
++}
++
++/*
++ * lockdep: we want to track each per-CPU base as a separate lock-class,
++ * but timer-bases are kmalloc()-ed, so we need to attach separate
++ * keys to them:
++ */
++static struct lock_class_key base_lock_keys[NR_CPUS];
++
++static int __cpuinit init_timers_cpu(int cpu)
++{
++	int j;
++	tvec_base_t *base;
++	static char __cpuinitdata tvec_base_done[NR_CPUS];
++
++	if (!tvec_base_done[cpu]) {
++		static char boot_done;
++
++		if (boot_done) {
++			/*
++			 * The APs use this path later in boot
++			 */
++			base = kmalloc_node(sizeof(*base),
++						GFP_KERNEL | __GFP_ZERO,
++						cpu_to_node(cpu));
++			if (!base)
++				return -ENOMEM;
++
++			/* Make sure that tvec_base is 2 byte aligned */
++			if (tbase_get_deferrable(base)) {
++				WARN_ON(1);
++				kfree(base);
++				return -ENOMEM;
++			}
++			per_cpu(tvec_bases, cpu) = base;
++		} else {
++			/*
++			 * This is for the boot CPU - we use compile-time
++			 * static initialisation because per-cpu memory isn't
++			 * ready yet and because the memory allocators are not
++			 * initialised either.
++			 */
++			boot_done = 1;
++			base = &boot_tvec_bases;
++		}
++		tvec_base_done[cpu] = 1;
++	} else {
++		base = per_cpu(tvec_bases, cpu);
++	}
++
++	spin_lock_init(&base->lock);
++	lockdep_set_class(&base->lock, base_lock_keys + cpu);
++
++	for (j = 0; j < TVN_SIZE; j++) {
++		INIT_LIST_HEAD(base->tv5.vec + j);
++		INIT_LIST_HEAD(base->tv4.vec + j);
++		INIT_LIST_HEAD(base->tv3.vec + j);
++		INIT_LIST_HEAD(base->tv2.vec + j);
++	}
++	for (j = 0; j < TVR_SIZE; j++)
++		INIT_LIST_HEAD(base->tv1.vec + j);
++
++	base->timer_jiffies = jiffies;
++	return 0;
++}
++
++#ifdef CONFIG_HOTPLUG_CPU
++static void migrate_timer_list(tvec_base_t *new_base, struct list_head *head)
++{
++	struct timer_list *timer;
++
++	while (!list_empty(head)) {
++		timer = list_first_entry(head, struct timer_list, entry);
++		detach_timer(timer, 0);
++		timer_set_base(timer, new_base);
++		internal_add_timer(new_base, timer);
++	}
++}
++
++static void __cpuinit migrate_timers(int cpu)
++{
++	tvec_base_t *old_base;
++	tvec_base_t *new_base;
++	int i;
++
++	BUG_ON(cpu_online(cpu));
++	old_base = per_cpu(tvec_bases, cpu);
++	new_base = get_cpu_var(tvec_bases);
++
++	local_irq_disable();
++	double_spin_lock(&new_base->lock, &old_base->lock,
++			 smp_processor_id() < cpu);
++
++	BUG_ON(old_base->running_timer);
++
++	for (i = 0; i < TVR_SIZE; i++)
++		migrate_timer_list(new_base, old_base->tv1.vec + i);
++	for (i = 0; i < TVN_SIZE; i++) {
++		migrate_timer_list(new_base, old_base->tv2.vec + i);
++		migrate_timer_list(new_base, old_base->tv3.vec + i);
++		migrate_timer_list(new_base, old_base->tv4.vec + i);
++		migrate_timer_list(new_base, old_base->tv5.vec + i);
++	}
++
++	double_spin_unlock(&new_base->lock, &old_base->lock,
++			   smp_processor_id() < cpu);
++	local_irq_enable();
++	put_cpu_var(tvec_bases);
++}
++#endif /* CONFIG_HOTPLUG_CPU */
++
++static int __cpuinit timer_cpu_notify(struct notifier_block *self,
++				unsigned long action, void *hcpu)
++{
++	long cpu = (long)hcpu;
++	switch(action) {
++	case CPU_UP_PREPARE:
++	case CPU_UP_PREPARE_FROZEN:
++		if (init_timers_cpu(cpu) < 0)
++			return NOTIFY_BAD;
++		break;
++#ifdef CONFIG_HOTPLUG_CPU
++	case CPU_DEAD:
++	case CPU_DEAD_FROZEN:
++		migrate_timers(cpu);
++		break;
++#endif
++	default:
++		break;
++	}
++	return NOTIFY_OK;
++}
++
++static struct notifier_block __cpuinitdata timers_nb = {
++	.notifier_call	= timer_cpu_notify,
++};
++
++
++void __init init_timers(void)
++{
++	int err = timer_cpu_notify(&timers_nb, (unsigned long)CPU_UP_PREPARE,
++				(void *)(long)smp_processor_id());
++
++	init_timer_stats();
++
++	BUG_ON(err == NOTIFY_BAD);
++	register_cpu_notifier(&timers_nb);
++	open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL);
++}
++
++/**
++ * msleep - sleep safely even with waitqueue interruptions
++ * @msecs: Time in milliseconds to sleep for
++ */
++void msleep(unsigned int msecs)
++{
++	unsigned long timeout = msecs_to_jiffies(msecs) + 1;
++
++	while (timeout)
++		timeout = schedule_timeout_uninterruptible(timeout);
++}
++
++EXPORT_SYMBOL(msleep);
++
++/**
++ * msleep_interruptible - sleep waiting for signals
++ * @msecs: Time in milliseconds to sleep for
++ */
++unsigned long msleep_interruptible(unsigned int msecs)
++{
++	unsigned long timeout = msecs_to_jiffies(msecs) + 1;
++
++	while (timeout && !signal_pending(current))
++		timeout = schedule_timeout_interruptible(timeout);
++	return jiffies_to_msecs(timeout);
++}
++
++EXPORT_SYMBOL(msleep_interruptible);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 11:58:42.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 11:59:57.000000000 -0700
-@@ -485,7 +485,7 @@ void ctrl_alt_del(void)
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 00:56:20.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 00:57:05.000000000 -0700
+@@ -479,7 +479,7 @@ void ctrl_alt_del(void)
   * SMP: There are not races, the GIDs are checked only by filesystem
   *      operations (as far as semantic preservation is concerned).
   */
@@ -24,7 +24,7 @@
  {
  	int old_rgid = current->gid;
  	int old_egid = current->egid;
-@@ -534,7 +534,7 @@ asmlinkage long sys_setregid(gid_t rgid,
+@@ -528,7 +528,7 @@ asmlinkage long sys_setregid(gid_t rgid,
   *
   * SMP: Same implicit races as above.
   */
@@ -33,7 +33,7 @@
  {
  	int old_egid = current->egid;
  	int retval;
-@@ -604,7 +604,7 @@ static int set_user(uid_t new_ruid, int 
+@@ -598,7 +598,7 @@ static int set_user(uid_t new_ruid, int 
   * 100% compatible with BSD.  A program which uses just setuid() will be
   * 100% compatible with POSIX with saved IDs. 
   */
@@ -42,7 +42,7 @@
  {
  	int old_ruid, old_euid, old_suid, new_ruid, new_euid;
  	int retval;
-@@ -666,7 +666,7 @@ asmlinkage long sys_setreuid(uid_t ruid,
+@@ -660,7 +660,7 @@ asmlinkage long sys_setreuid(uid_t ruid,
   * will allow a root program to temporarily drop privileges and be able to
   * regain them by swapping the real and effective uid.  
   */
@@ -51,7 +51,7 @@
  {
  	int old_euid = current->euid;
  	int old_ruid, old_suid, new_suid;
-@@ -705,7 +705,7 @@ asmlinkage long sys_setuid(uid_t uid)
+@@ -699,7 +699,7 @@ asmlinkage long sys_setuid(uid_t uid)
   * This function implements a generic ability to update ruid, euid,
   * and suid.  This allows you to implement the 4.4 compatible seteuid().
   */
@@ -60,7 +60,7 @@
  {
  	int old_ruid = current->uid;
  	int old_euid = current->euid;
-@@ -762,7 +762,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user 
+@@ -756,7 +756,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user 
  /*
   * Same as above, but for rgid, egid, sgid.
   */
@@ -69,7 +69,7 @@
  {
  	int retval;
  
-@@ -817,7 +817,7 @@ SYSCALL_DEFINE3(getresgid, gid_t __user 
+@@ -811,7 +811,7 @@ SYSCALL_DEFINE3(getresgid, gid_t __user 
   * whatever uid it wants to). It normally shadows "euid", except when
   * explicitly set by setfsuid() or for access..
   */
@@ -78,7 +78,7 @@
  {
  	int old_fsuid;
  
-@@ -846,7 +846,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
+@@ -840,7 +840,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
  /*
   * Samma på svenska..
   */
@@ -87,7 +87,7 @@
  {
  	int old_fsgid;
  
-@@ -1260,7 +1260,7 @@ int set_current_groups(struct group_info
+@@ -1257,7 +1257,7 @@ int set_current_groups(struct group_info
  
  EXPORT_SYMBOL(set_current_groups);
  
@@ -96,3 +96,1405 @@
  {
  	int i = 0;
  
+diff -urpN linux-source-2.6.24.orig/kernel/timer.c.orig linux-source-2.6.24/kernel/timer.c.orig
+--- linux-source-2.6.24.orig/kernel/timer.c.orig	2009-01-21 00:54:00.000000000 -0700
++++ linux-source-2.6.24/kernel/timer.c.orig	1969-12-31 17:00:00.000000000 -0700
+@@ -1,1398 +0,0 @@
+-/*
+- *  linux/kernel/timer.c
+- *
+- *  Kernel internal timers, basic process system calls
+- *
+- *  Copyright (C) 1991, 1992  Linus Torvalds
+- *
+- *  1997-01-28  Modified by Finn Arne Gangstad to make timers scale better.
+- *
+- *  1997-09-10  Updated NTP code according to technical memorandum Jan '96
+- *              "A Kernel Model for Precision Timekeeping" by Dave Mills
+- *  1998-12-24  Fixed a xtime SMP race (we need the xtime_lock rw spinlock to
+- *              serialize accesses to xtime/lost_ticks).
+- *                              Copyright (C) 1998  Andrea Arcangeli
+- *  1999-03-10  Improved NTP compatibility by Ulrich Windl
+- *  2002-05-31	Move sys_sysinfo here and make its locking sane, Robert Love
+- *  2000-10-05  Implemented scalable SMP per-CPU timer handling.
+- *                              Copyright (C) 2000, 2001, 2002  Ingo Molnar
+- *              Designed by David S. Miller, Alexey Kuznetsov and Ingo Molnar
+- */
+-
+-#include <linux/kernel_stat.h>
+-#include <linux/module.h>
+-#include <linux/interrupt.h>
+-#include <linux/percpu.h>
+-#include <linux/init.h>
+-#include <linux/mm.h>
+-#include <linux/swap.h>
+-#include <linux/pid_namespace.h>
+-#include <linux/notifier.h>
+-#include <linux/thread_info.h>
+-#include <linux/time.h>
+-#include <linux/jiffies.h>
+-#include <linux/posix-timers.h>
+-#include <linux/cpu.h>
+-#include <linux/syscalls.h>
+-#include <linux/delay.h>
+-#include <linux/tick.h>
+-#include <linux/kallsyms.h>
+-
+-#include <asm/uaccess.h>
+-#include <asm/unistd.h>
+-#include <asm/div64.h>
+-#include <asm/timex.h>
+-#include <asm/io.h>
+-
+-u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
+-
+-EXPORT_SYMBOL(jiffies_64);
+-
+-/*
+- * per-CPU timer vector definitions:
+- */
+-#define TVN_BITS (CONFIG_BASE_SMALL ? 4 : 6)
+-#define TVR_BITS (CONFIG_BASE_SMALL ? 6 : 8)
+-#define TVN_SIZE (1 << TVN_BITS)
+-#define TVR_SIZE (1 << TVR_BITS)
+-#define TVN_MASK (TVN_SIZE - 1)
+-#define TVR_MASK (TVR_SIZE - 1)
+-
+-typedef struct tvec_s {
+-	struct list_head vec[TVN_SIZE];
+-} tvec_t;
+-
+-typedef struct tvec_root_s {
+-	struct list_head vec[TVR_SIZE];
+-} tvec_root_t;
+-
+-struct tvec_t_base_s {
+-	spinlock_t lock;
+-	struct timer_list *running_timer;
+-	unsigned long timer_jiffies;
+-	tvec_root_t tv1;
+-	tvec_t tv2;
+-	tvec_t tv3;
+-	tvec_t tv4;
+-	tvec_t tv5;
+-} ____cacheline_aligned;
+-
+-typedef struct tvec_t_base_s tvec_base_t;
+-
+-tvec_base_t boot_tvec_bases;
+-EXPORT_SYMBOL(boot_tvec_bases);
+-static DEFINE_PER_CPU(tvec_base_t *, tvec_bases) = &boot_tvec_bases;
+-
+-/*
+- * Note that all tvec_bases is 2 byte aligned and lower bit of
+- * base in timer_list is guaranteed to be zero. Use the LSB for
+- * the new flag to indicate whether the timer is deferrable
+- */
+-#define TBASE_DEFERRABLE_FLAG		(0x1)
+-
+-/* Functions below help us manage 'deferrable' flag */
+-static inline unsigned int tbase_get_deferrable(tvec_base_t *base)
+-{
+-	return ((unsigned int)(unsigned long)base & TBASE_DEFERRABLE_FLAG);
+-}
+-
+-static inline tvec_base_t *tbase_get_base(tvec_base_t *base)
+-{
+-	return ((tvec_base_t *)((unsigned long)base & ~TBASE_DEFERRABLE_FLAG));
+-}
+-
+-static inline void timer_set_deferrable(struct timer_list *timer)
+-{
+-	timer->base = ((tvec_base_t *)((unsigned long)(timer->base) |
+-				       TBASE_DEFERRABLE_FLAG));
+-}
+-
+-static inline void
+-timer_set_base(struct timer_list *timer, tvec_base_t *new_base)
+-{
+-	timer->base = (tvec_base_t *)((unsigned long)(new_base) |
+-				      tbase_get_deferrable(timer->base));
+-}
+-
+-/**
+- * __round_jiffies - function to round jiffies to a full second
+- * @j: the time in (absolute) jiffies that should be rounded
+- * @cpu: the processor number on which the timeout will happen
+- *
+- * __round_jiffies() rounds an absolute time in the future (in jiffies)
+- * up or down to (approximately) full seconds. This is useful for timers
+- * for which the exact time they fire does not matter too much, as long as
+- * they fire approximately every X seconds.
+- *
+- * By rounding these timers to whole seconds, all such timers will fire
+- * at the same time, rather than at various times spread out. The goal
+- * of this is to have the CPU wake up less, which saves power.
+- *
+- * The exact rounding is skewed for each processor to avoid all
+- * processors firing at the exact same time, which could lead
+- * to lock contention or spurious cache line bouncing.
+- *
+- * The return value is the rounded version of the @j parameter.
+- */
+-unsigned long __round_jiffies(unsigned long j, int cpu)
+-{
+-	int rem;
+-	unsigned long original = j;
+-
+-	/*
+-	 * We don't want all cpus firing their timers at once hitting the
+-	 * same lock or cachelines, so we skew each extra cpu with an extra
+-	 * 3 jiffies. This 3 jiffies came originally from the mm/ code which
+-	 * already did this.
+-	 * The skew is done by adding 3*cpunr, then round, then subtract this
+-	 * extra offset again.
+-	 */
+-	j += cpu * 3;
+-
+-	rem = j % HZ;
+-
+-	/*
+-	 * If the target jiffie is just after a whole second (which can happen
+-	 * due to delays of the timer irq, long irq off times etc etc) then
+-	 * we should round down to the whole second, not up. Use 1/4th second
+-	 * as cutoff for this rounding as an extreme upper bound for this.
+-	 */
+-	if (rem < HZ/4) /* round down */
+-		j = j - rem;
+-	else /* round up */
+-		j = j - rem + HZ;
+-
+-	/* now that we have rounded, subtract the extra skew again */
+-	j -= cpu * 3;
+-
+-	if (j <= jiffies) /* rounding ate our timeout entirely; */
+-		return original;
+-	return j;
+-}
+-EXPORT_SYMBOL_GPL(__round_jiffies);
+-
+-/**
+- * __round_jiffies_relative - function to round jiffies to a full second
+- * @j: the time in (relative) jiffies that should be rounded
+- * @cpu: the processor number on which the timeout will happen
+- *
+- * __round_jiffies_relative() rounds a time delta  in the future (in jiffies)
+- * up or down to (approximately) full seconds. This is useful for timers
+- * for which the exact time they fire does not matter too much, as long as
+- * they fire approximately every X seconds.
+- *
+- * By rounding these timers to whole seconds, all such timers will fire
+- * at the same time, rather than at various times spread out. The goal
+- * of this is to have the CPU wake up less, which saves power.
+- *
+- * The exact rounding is skewed for each processor to avoid all
+- * processors firing at the exact same time, which could lead
+- * to lock contention or spurious cache line bouncing.
+- *
+- * The return value is the rounded version of the @j parameter.
+- */
+-unsigned long __round_jiffies_relative(unsigned long j, int cpu)
+-{
+-	/*
+-	 * In theory the following code can skip a jiffy in case jiffies
+-	 * increments right between the addition and the later subtraction.
+-	 * However since the entire point of this function is to use approximate
+-	 * timeouts, it's entirely ok to not handle that.
+-	 */
+-	return  __round_jiffies(j + jiffies, cpu) - jiffies;
+-}
+-EXPORT_SYMBOL_GPL(__round_jiffies_relative);
+-
+-/**
+- * round_jiffies - function to round jiffies to a full second
+- * @j: the time in (absolute) jiffies that should be rounded
+- *
+- * round_jiffies() rounds an absolute time in the future (in jiffies)
+- * up or down to (approximately) full seconds. This is useful for timers
+- * for which the exact time they fire does not matter too much, as long as
+- * they fire approximately every X seconds.
+- *
+- * By rounding these timers to whole seconds, all such timers will fire
+- * at the same time, rather than at various times spread out. The goal
+- * of this is to have the CPU wake up less, which saves power.
+- *
+- * The return value is the rounded version of the @j parameter.
+- */
+-unsigned long round_jiffies(unsigned long j)
+-{
+-	return __round_jiffies(j, raw_smp_processor_id());
+-}
+-EXPORT_SYMBOL_GPL(round_jiffies);
+-
+-/**
+- * round_jiffies_relative - function to round jiffies to a full second
+- * @j: the time in (relative) jiffies that should be rounded
+- *
+- * round_jiffies_relative() rounds a time delta  in the future (in jiffies)
+- * up or down to (approximately) full seconds. This is useful for timers
+- * for which the exact time they fire does not matter too much, as long as
+- * they fire approximately every X seconds.
+- *
+- * By rounding these timers to whole seconds, all such timers will fire
+- * at the same time, rather than at various times spread out. The goal
+- * of this is to have the CPU wake up less, which saves power.
+- *
+- * The return value is the rounded version of the @j parameter.
+- */
+-unsigned long round_jiffies_relative(unsigned long j)
+-{
+-	return __round_jiffies_relative(j, raw_smp_processor_id());
+-}
+-EXPORT_SYMBOL_GPL(round_jiffies_relative);
+-
+-
+-static inline void set_running_timer(tvec_base_t *base,
+-					struct timer_list *timer)
+-{
+-#ifdef CONFIG_SMP
+-	base->running_timer = timer;
+-#endif
+-}
+-
+-static void internal_add_timer(tvec_base_t *base, struct timer_list *timer)
+-{
+-	unsigned long expires = timer->expires;
+-	unsigned long idx = expires - base->timer_jiffies;
+-	struct list_head *vec;
+-
+-	if (idx < TVR_SIZE) {
+-		int i = expires & TVR_MASK;
+-		vec = base->tv1.vec + i;
+-	} else if (idx < 1 << (TVR_BITS + TVN_BITS)) {
+-		int i = (expires >> TVR_BITS) & TVN_MASK;
+-		vec = base->tv2.vec + i;
+-	} else if (idx < 1 << (TVR_BITS + 2 * TVN_BITS)) {
+-		int i = (expires >> (TVR_BITS + TVN_BITS)) & TVN_MASK;
+-		vec = base->tv3.vec + i;
+-	} else if (idx < 1 << (TVR_BITS + 3 * TVN_BITS)) {
+-		int i = (expires >> (TVR_BITS + 2 * TVN_BITS)) & TVN_MASK;
+-		vec = base->tv4.vec + i;
+-	} else if ((signed long) idx < 0) {
+-		/*
+-		 * Can happen if you add a timer with expires == jiffies,
+-		 * or you set a timer to go off in the past
+-		 */
+-		vec = base->tv1.vec + (base->timer_jiffies & TVR_MASK);
+-	} else {
+-		int i;
+-		/* If the timeout is larger than 0xffffffff on 64-bit
+-		 * architectures then we use the maximum timeout:
+-		 */
+-		if (idx > 0xffffffffUL) {
+-			idx = 0xffffffffUL;
+-			expires = idx + base->timer_jiffies;
+-		}
+-		i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK;
+-		vec = base->tv5.vec + i;
+-	}
+-	/*
+-	 * Timers are FIFO:
+-	 */
+-	list_add_tail(&timer->entry, vec);
+-}
+-
+-#ifdef CONFIG_TIMER_STATS
+-void __timer_stats_timer_set_start_info(struct timer_list *timer, void *addr)
+-{
+-	if (timer->start_site)
+-		return;
+-
+-	timer->start_site = addr;
+-	memcpy(timer->start_comm, current->comm, TASK_COMM_LEN);
+-	timer->start_pid = current->pid;
+-}
+-
+-static void timer_stats_account_timer(struct timer_list *timer)
+-{
+-	unsigned int flag = 0;
+-
+-	if (unlikely(tbase_get_deferrable(timer->base)))
+-		flag |= TIMER_STATS_FLAG_DEFERRABLE;
+-
+-	timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
+-				 timer->function, timer->start_comm, flag);
+-}
+-
+-#else
+-static void timer_stats_account_timer(struct timer_list *timer) {}
+-#endif
+-
+-/**
+- * init_timer - initialize a timer.
+- * @timer: the timer to be initialized
+- *
+- * init_timer() must be done to a timer prior calling *any* of the
+- * other timer functions.
+- */
+-void fastcall init_timer(struct timer_list *timer)
+-{
+-	timer->entry.next = NULL;
+-	timer->base = __raw_get_cpu_var(tvec_bases);
+-#ifdef CONFIG_TIMER_STATS
+-	timer->start_site = NULL;
+-	timer->start_pid = -1;
+-	memset(timer->start_comm, 0, TASK_COMM_LEN);
+-#endif
+-}
+-EXPORT_SYMBOL(init_timer);
+-
+-void fastcall init_timer_deferrable(struct timer_list *timer)
+-{
+-	init_timer(timer);
+-	timer_set_deferrable(timer);
+-}
+-EXPORT_SYMBOL(init_timer_deferrable);
+-
+-static inline void detach_timer(struct timer_list *timer,
+-				int clear_pending)
+-{
+-	struct list_head *entry = &timer->entry;
+-
+-	__list_del(entry->prev, entry->next);
+-	if (clear_pending)
+-		entry->next = NULL;
+-	entry->prev = LIST_POISON2;
+-}
+-
+-/*
+- * We are using hashed locking: holding per_cpu(tvec_bases).lock
+- * means that all timers which are tied to this base via timer->base are
+- * locked, and the base itself is locked too.
+- *
+- * So __run_timers/migrate_timers can safely modify all timers which could
+- * be found on ->tvX lists.
+- *
+- * When the timer's base is locked, and the timer removed from list, it is
+- * possible to set timer->base = NULL and drop the lock: the timer remains
+- * locked.
+- */
+-static tvec_base_t *lock_timer_base(struct timer_list *timer,
+-					unsigned long *flags)
+-	__acquires(timer->base->lock)
+-{
+-	tvec_base_t *base;
+-
+-	for (;;) {
+-		tvec_base_t *prelock_base = timer->base;
+-		base = tbase_get_base(prelock_base);
+-		if (likely(base != NULL)) {
+-			spin_lock_irqsave(&base->lock, *flags);
+-			if (likely(prelock_base == timer->base))
+-				return base;
+-			/* The timer has migrated to another CPU */
+-			spin_unlock_irqrestore(&base->lock, *flags);
+-		}
+-		cpu_relax();
+-	}
+-}
+-
+-int __mod_timer(struct timer_list *timer, unsigned long expires)
+-{
+-	tvec_base_t *base, *new_base;
+-	unsigned long flags;
+-	int ret = 0;
+-
+-	timer_stats_timer_set_start_info(timer);
+-	BUG_ON(!timer->function);
+-
+-	base = lock_timer_base(timer, &flags);
+-
+-	if (timer_pending(timer)) {
+-		detach_timer(timer, 0);
+-		ret = 1;
+-	}
+-
+-	new_base = __get_cpu_var(tvec_bases);
+-
+-	if (base != new_base) {
+-		/*
+-		 * We are trying to schedule the timer on the local CPU.
+-		 * However we can't change timer's base while it is running,
+-		 * otherwise del_timer_sync() can't detect that the timer's
+-		 * handler yet has not finished. This also guarantees that
+-		 * the timer is serialized wrt itself.
+-		 */
+-		if (likely(base->running_timer != timer)) {
+-			/* See the comment in lock_timer_base() */
+-			timer_set_base(timer, NULL);
+-			spin_unlock(&base->lock);
+-			base = new_base;
+-			spin_lock(&base->lock);
+-			timer_set_base(timer, base);
+-		}
+-	}
+-
+-	timer->expires = expires;
+-	internal_add_timer(base, timer);
+-	spin_unlock_irqrestore(&base->lock, flags);
+-
+-	return ret;
+-}
+-
+-EXPORT_SYMBOL(__mod_timer);
+-
+-/**
+- * add_timer_on - start a timer on a particular CPU
+- * @timer: the timer to be added
+- * @cpu: the CPU to start it on
+- *
+- * This is not very scalable on SMP. Double adds are not possible.
+- */
+-void add_timer_on(struct timer_list *timer, int cpu)
+-{
+-	tvec_base_t *base = per_cpu(tvec_bases, cpu);
+-	unsigned long flags;
+-
+-	timer_stats_timer_set_start_info(timer);
+-	BUG_ON(timer_pending(timer) || !timer->function);
+-	spin_lock_irqsave(&base->lock, flags);
+-	timer_set_base(timer, base);
+-	internal_add_timer(base, timer);
+-	/*
+-	 * Check whether the other CPU is idle and needs to be
+-	 * triggered to reevaluate the timer wheel when nohz is
+-	 * active. We are protected against the other CPU fiddling
+-	 * with the timer by holding the timer base lock. This also
+-	 * makes sure that a CPU on the way to idle can not evaluate
+-	 * the timer wheel.
+-	 */
+-	wake_up_idle_cpu(cpu);
+-	spin_unlock_irqrestore(&base->lock, flags);
+-}
+-
+-/**
+- * mod_timer - modify a timer's timeout
+- * @timer: the timer to be modified
+- * @expires: new timeout in jiffies
+- *
+- * mod_timer() is a more efficient way to update the expire field of an
+- * active timer (if the timer is inactive it will be activated)
+- *
+- * mod_timer(timer, expires) is equivalent to:
+- *
+- *     del_timer(timer); timer->expires = expires; add_timer(timer);
+- *
+- * Note that if there are multiple unserialized concurrent users of the
+- * same timer, then mod_timer() is the only safe way to modify the timeout,
+- * since add_timer() cannot modify an already running timer.
+- *
+- * The function returns whether it has modified a pending timer or not.
+- * (ie. mod_timer() of an inactive timer returns 0, mod_timer() of an
+- * active timer returns 1.)
+- */
+-int mod_timer(struct timer_list *timer, unsigned long expires)
+-{
+-	BUG_ON(!timer->function);
+-
+-	timer_stats_timer_set_start_info(timer);
+-	/*
+-	 * This is a common optimization triggered by the
+-	 * networking code - if the timer is re-modified
+-	 * to be the same thing then just return:
+-	 */
+-	if (timer->expires == expires && timer_pending(timer))
+-		return 1;
+-
+-	return __mod_timer(timer, expires);
+-}
+-
+-EXPORT_SYMBOL(mod_timer);
+-
+-/**
+- * del_timer - deactive a timer.
+- * @timer: the timer to be deactivated
+- *
+- * del_timer() deactivates a timer - this works on both active and inactive
+- * timers.
+- *
+- * The function returns whether it has deactivated a pending timer or not.
+- * (ie. del_timer() of an inactive timer returns 0, del_timer() of an
+- * active timer returns 1.)
+- */
+-int del_timer(struct timer_list *timer)
+-{
+-	tvec_base_t *base;
+-	unsigned long flags;
+-	int ret = 0;
+-
+-	timer_stats_timer_clear_start_info(timer);
+-	if (timer_pending(timer)) {
+-		base = lock_timer_base(timer, &flags);
+-		if (timer_pending(timer)) {
+-			detach_timer(timer, 1);
+-			ret = 1;
+-		}
+-		spin_unlock_irqrestore(&base->lock, flags);
+-	}
+-
+-	return ret;
+-}
+-
+-EXPORT_SYMBOL(del_timer);
+-
+-#ifdef CONFIG_SMP
+-/**
+- * try_to_del_timer_sync - Try to deactivate a timer
+- * @timer: timer do del
+- *
+- * This function tries to deactivate a timer. Upon successful (ret >= 0)
+- * exit the timer is not queued and the handler is not running on any CPU.
+- *
+- * It must not be called from interrupt contexts.
+- */
+-int try_to_del_timer_sync(struct timer_list *timer)
+-{
+-	tvec_base_t *base;
+-	unsigned long flags;
+-	int ret = -1;
+-
+-	base = lock_timer_base(timer, &flags);
+-
+-	if (base->running_timer == timer)
+-		goto out;
+-
+-	ret = 0;
+-	if (timer_pending(timer)) {
+-		detach_timer(timer, 1);
+-		ret = 1;
+-	}
+-out:
+-	spin_unlock_irqrestore(&base->lock, flags);
+-
+-	return ret;
+-}
+-
+-EXPORT_SYMBOL(try_to_del_timer_sync);
+-
+-/**
+- * del_timer_sync - deactivate a timer and wait for the handler to finish.
+- * @timer: the timer to be deactivated
+- *
+- * This function only differs from del_timer() on SMP: besides deactivating
+- * the timer it also makes sure the handler has finished executing on other
+- * CPUs.
+- *
+- * Synchronization rules: Callers must prevent restarting of the timer,
+- * otherwise this function is meaningless. It must not be called from
+- * interrupt contexts. The caller must not hold locks which would prevent
+- * completion of the timer's handler. The timer's handler must not call
+- * add_timer_on(). Upon exit the timer is not queued and the handler is
+- * not running on any CPU.
+- *
+- * The function returns whether it has deactivated a pending timer or not.
+- */
+-int del_timer_sync(struct timer_list *timer)
+-{
+-	for (;;) {
+-		int ret = try_to_del_timer_sync(timer);
+-		if (ret >= 0)
+-			return ret;
+-		cpu_relax();
+-	}
+-}
+-
+-EXPORT_SYMBOL(del_timer_sync);
+-#endif
+-
+-static int cascade(tvec_base_t *base, tvec_t *tv, int index)
+-{
+-	/* cascade all the timers from tv up one level */
+-	struct timer_list *timer, *tmp;
+-	struct list_head tv_list;
+-
+-	list_replace_init(tv->vec + index, &tv_list);
+-
+-	/*
+-	 * We are removing _all_ timers from the list, so we
+-	 * don't have to detach them individually.
+-	 */
+-	list_for_each_entry_safe(timer, tmp, &tv_list, entry) {
+-		BUG_ON(tbase_get_base(timer->base) != base);
+-		internal_add_timer(base, timer);
+-	}
+-
+-	return index;
+-}
+-
+-#define INDEX(N) ((base->timer_jiffies >> (TVR_BITS + (N) * TVN_BITS)) & TVN_MASK)
+-
+-/**
+- * __run_timers - run all expired timers (if any) on this CPU.
+- * @base: the timer vector to be processed.
+- *
+- * This function cascades all vectors and executes all expired timer
+- * vectors.
+- */
+-static inline void __run_timers(tvec_base_t *base)
+-{
+-	struct timer_list *timer;
+-
+-	spin_lock_irq(&base->lock);
+-	while (time_after_eq(jiffies, base->timer_jiffies)) {
+-		struct list_head work_list;
+-		struct list_head *head = &work_list;
+-		int index = base->timer_jiffies & TVR_MASK;
+-
+-		/*
+-		 * Cascade timers:
+-		 */
+-		if (!index &&
+-			(!cascade(base, &base->tv2, INDEX(0))) &&
+-				(!cascade(base, &base->tv3, INDEX(1))) &&
+-					!cascade(base, &base->tv4, INDEX(2)))
+-			cascade(base, &base->tv5, INDEX(3));
+-		++base->timer_jiffies;
+-		list_replace_init(base->tv1.vec + index, &work_list);
+-		while (!list_empty(head)) {
+-			void (*fn)(unsigned long);
+-			unsigned long data;
+-
+-			timer = list_first_entry(head, struct timer_list,entry);
+-			fn = timer->function;
+-			data = timer->data;
+-
+-			timer_stats_account_timer(timer);
+-
+-			set_running_timer(base, timer);
+-			detach_timer(timer, 1);
+-			spin_unlock_irq(&base->lock);
+-			{
+-				int preempt_count = preempt_count();
+-				fn(data);
+-				if (preempt_count != preempt_count()) {
+-					printk(KERN_WARNING "huh, entered %p "
+-					       "with preempt_count %08x, exited"
+-					       " with %08x?\n",
+-					       fn, preempt_count,
+-					       preempt_count());
+-					BUG();
+-				}
+-			}
+-			spin_lock_irq(&base->lock);
+-		}
+-	}
+-	set_running_timer(base, NULL);
+-	spin_unlock_irq(&base->lock);
+-}
+-
+-#if defined(CONFIG_NO_IDLE_HZ) || defined(CONFIG_NO_HZ)
+-/*
+- * Find out when the next timer event is due to happen. This
+- * is used on S/390 to stop all activity when a cpus is idle.
+- * This functions needs to be called disabled.
+- */
+-static unsigned long __next_timer_interrupt(tvec_base_t *base)
+-{
+-	unsigned long timer_jiffies = base->timer_jiffies;
+-	unsigned long expires = timer_jiffies + NEXT_TIMER_MAX_DELTA;
+-	int index, slot, array, found = 0;
+-	struct timer_list *nte;
+-	tvec_t *varray[4];
+-
+-	/* Look for timer events in tv1. */
+-	index = slot = timer_jiffies & TVR_MASK;
+-	do {
+-		list_for_each_entry(nte, base->tv1.vec + slot, entry) {
+-			if (tbase_get_deferrable(nte->base))
+-				continue;
+-
+-			found = 1;
+-			expires = nte->expires;
+-			/* Look at the cascade bucket(s)? */
+-			if (!index || slot < index)
+-				goto cascade;
+-			return expires;
+-		}
+-		slot = (slot + 1) & TVR_MASK;
+-	} while (slot != index);
+-
+-cascade:
+-	/* Calculate the next cascade event */
+-	if (index)
+-		timer_jiffies += TVR_SIZE - index;
+-	timer_jiffies >>= TVR_BITS;
+-
+-	/* Check tv2-tv5. */
+-	varray[0] = &base->tv2;
+-	varray[1] = &base->tv3;
+-	varray[2] = &base->tv4;
+-	varray[3] = &base->tv5;
+-
+-	for (array = 0; array < 4; array++) {
+-		tvec_t *varp = varray[array];
+-
+-		index = slot = timer_jiffies & TVN_MASK;
+-		do {
+-			list_for_each_entry(nte, varp->vec + slot, entry) {
+-				found = 1;
+-				if (time_before(nte->expires, expires))
+-					expires = nte->expires;
+-			}
+-			/*
+-			 * Do we still search for the first timer or are
+-			 * we looking up the cascade buckets ?
+-			 */
+-			if (found) {
+-				/* Look at the cascade bucket(s)? */
+-				if (!index || slot < index)
+-					break;
+-				return expires;
+-			}
+-			slot = (slot + 1) & TVN_MASK;
+-		} while (slot != index);
+-
+-		if (index)
+-			timer_jiffies += TVN_SIZE - index;
+-		timer_jiffies >>= TVN_BITS;
+-	}
+-	return expires;
+-}
+-
+-/*
+- * Check, if the next hrtimer event is before the next timer wheel
+- * event:
+- */
+-static unsigned long cmp_next_hrtimer_event(unsigned long now,
+-					    unsigned long expires)
+-{
+-	ktime_t hr_delta = hrtimer_get_next_event();
+-	struct timespec tsdelta;
+-	unsigned long delta;
+-
+-	if (hr_delta.tv64 == KTIME_MAX)
+-		return expires;
+-
+-	/*
+-	 * Expired timer available, let it expire in the next tick
+-	 */
+-	if (hr_delta.tv64 <= 0)
+-		return now + 1;
+-
+-	tsdelta = ktime_to_timespec(hr_delta);
+-	delta = timespec_to_jiffies(&tsdelta);
+-
+-	/*
+-	 * Limit the delta to the max value, which is checked in
+-	 * tick_nohz_stop_sched_tick():
+-	 */
+-	if (delta > NEXT_TIMER_MAX_DELTA)
+-		delta = NEXT_TIMER_MAX_DELTA;
+-
+-	/*
+-	 * Take rounding errors in to account and make sure, that it
+-	 * expires in the next tick. Otherwise we go into an endless
+-	 * ping pong due to tick_nohz_stop_sched_tick() retriggering
+-	 * the timer softirq
+-	 */
+-	if (delta < 1)
+-		delta = 1;
+-	now += delta;
+-	if (time_before(now, expires))
+-		return now;
+-	return expires;
+-}
+-
+-/**
+- * get_next_timer_interrupt - return the jiffy of the next pending timer
+- * @now: current time (in jiffies)
+- */
+-unsigned long get_next_timer_interrupt(unsigned long now)
+-{
+-	tvec_base_t *base = __get_cpu_var(tvec_bases);
+-	unsigned long expires;
+-
+-	spin_lock(&base->lock);
+-	expires = __next_timer_interrupt(base);
+-	spin_unlock(&base->lock);
+-
+-	if (time_before_eq(expires, now))
+-		return now;
+-
+-	return cmp_next_hrtimer_event(now, expires);
+-}
+-
+-#ifdef CONFIG_NO_IDLE_HZ
+-unsigned long next_timer_interrupt(void)
+-{
+-	return get_next_timer_interrupt(jiffies);
+-}
+-#endif
+-
+-#endif
+-
+-#ifndef CONFIG_VIRT_CPU_ACCOUNTING
+-void account_process_tick(struct task_struct *p, int user_tick)
+-{
+-	if (user_tick) {
+-		account_user_time(p, jiffies_to_cputime(1));
+-		account_user_time_scaled(p, jiffies_to_cputime(1));
+-	} else {
+-		account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1));
+-		account_system_time_scaled(p, jiffies_to_cputime(1));
+-	}
+-}
+-#endif
+-
+-/*
+- * Called from the timer interrupt handler to charge one tick to the current
+- * process.  user_tick is 1 if the tick is user time, 0 for system.
+- */
+-void update_process_times(int user_tick)
+-{
+-	struct task_struct *p = current;
+-	int cpu = smp_processor_id();
+-
+-	/* Note: this timer irq context must be accounted for as well. */
+-	account_process_tick(p, user_tick);
+-	run_local_timers();
+-	if (rcu_pending(cpu))
+-		rcu_check_callbacks(cpu, user_tick);
+-	scheduler_tick();
+-	run_posix_cpu_timers(p);
+-}
+-
+-/*
+- * Nr of active tasks - counted in fixed-point numbers
+- */
+-static unsigned long count_active_tasks(void)
+-{
+-	return nr_active() * FIXED_1;
+-}
+-
+-/*
+- * Hmm.. Changed this, as the GNU make sources (load.c) seems to
+- * imply that avenrun[] is the standard name for this kind of thing.
+- * Nothing else seems to be standardized: the fractional size etc
+- * all seem to differ on different machines.
+- *
+- * Requires xtime_lock to access.
+- */
+-unsigned long avenrun[3];
+-
+-EXPORT_SYMBOL(avenrun);
+-
+-/*
+- * calc_load - given tick count, update the avenrun load estimates.
+- * This is called while holding a write_lock on xtime_lock.
+- */
+-static inline void calc_load(unsigned long ticks)
+-{
+-	unsigned long active_tasks; /* fixed-point */
+-	static int count = LOAD_FREQ;
+-
+-	count -= ticks;
+-	if (unlikely(count < 0)) {
+-		active_tasks = count_active_tasks();
+-		do {
+-			CALC_LOAD(avenrun[0], EXP_1, active_tasks);
+-			CALC_LOAD(avenrun[1], EXP_5, active_tasks);
+-			CALC_LOAD(avenrun[2], EXP_15, active_tasks);
+-			count += LOAD_FREQ;
+-		} while (count < 0);
+-	}
+-}
+-
+-/*
+- * This function runs timers and the timer-tq in bottom half context.
+- */
+-static void run_timer_softirq(struct softirq_action *h)
+-{
+-	tvec_base_t *base = __get_cpu_var(tvec_bases);
+-
+-	hrtimer_run_queues();
+-
+-	if (time_after_eq(jiffies, base->timer_jiffies))
+-		__run_timers(base);
+-}
+-
+-/*
+- * Called by the local, per-CPU timer interrupt on SMP.
+- */
+-void run_local_timers(void)
+-{
+-	raise_softirq(TIMER_SOFTIRQ);
+-	softlockup_tick();
+-}
+-
+-/*
+- * Called by the timer interrupt. xtime_lock must already be taken
+- * by the timer IRQ!
+- */
+-static inline void update_times(unsigned long ticks)
+-{
+-	update_wall_time();
+-	calc_load(ticks);
+-}
+-
+-/*
+- * The 64-bit jiffies value is not atomic - you MUST NOT read it
+- * without sampling the sequence number in xtime_lock.
+- * jiffies is defined in the linker script...
+- */
+-
+-void do_timer(unsigned long ticks)
+-{
+-	jiffies_64 += ticks;
+-	update_times(ticks);
+-}
+-
+-#ifdef __ARCH_WANT_SYS_ALARM
+-
+-/*
+- * For backwards compatibility?  This can be done in libc so Alpha
+- * and all newer ports shouldn't need it.
+- */
+-SYSCALL_DEFINE1(alarm, unsigned int, seconds)
+-{
+-	return alarm_setitimer(seconds);
+-}
+-
+-#endif
+-
+-#ifndef __alpha__
+-
+-/*
+- * The Alpha uses getxpid, getxuid, and getxgid instead.  Maybe this
+- * should be moved into arch/i386 instead?
+- */
+-
+-/**
+- * sys_getpid - return the thread group id of the current process
+- *
+- * Note, despite the name, this returns the tgid not the pid.  The tgid and
+- * the pid are identical unless CLONE_THREAD was specified on clone() in
+- * which case the tgid is the same in all threads of the same group.
+- *
+- * This is SMP safe as current->tgid does not change.
+- */
+-SYSCALL_DEFINE0(getpid)
+-{
+-	return task_tgid_vnr(current);
+-}
+-
+-/*
+- * Accessing ->real_parent is not SMP-safe, it could
+- * change from under us. However, we can use a stale
+- * value of ->real_parent under rcu_read_lock(), see
+- * release_task()->call_rcu(delayed_put_task_struct).
+- */
+-asmlinkage long sys_getppid(void)
+-{
+-	int pid;
+-
+-	rcu_read_lock();
+-	pid = task_tgid_nr_ns(current->real_parent, current->nsproxy->pid_ns);
+-	rcu_read_unlock();
+-
+-	return pid;
+-}
+-
+-asmlinkage long sys_getuid(void)
+-{
+-	/* Only we change this so SMP safe */
+-	return current->uid;
+-}
+-
+-asmlinkage long sys_geteuid(void)
+-{
+-	/* Only we change this so SMP safe */
+-	return current->euid;
+-}
+-
+-asmlinkage long sys_getgid(void)
+-{
+-	/* Only we change this so SMP safe */
+-	return current->gid;
+-}
+-
+-asmlinkage long sys_getegid(void)
+-{
+-	/* Only we change this so SMP safe */
+-	return  current->egid;
+-}
+-
+-#endif
+-
+-static void process_timeout(unsigned long __data)
+-{
+-	wake_up_process((struct task_struct *)__data);
+-}
+-
+-/**
+- * schedule_timeout - sleep until timeout
+- * @timeout: timeout value in jiffies
+- *
+- * Make the current task sleep until @timeout jiffies have
+- * elapsed. The routine will return immediately unless
+- * the current task state has been set (see set_current_state()).
+- *
+- * You can set the task state as follows -
+- *
+- * %TASK_UNINTERRUPTIBLE - at least @timeout jiffies are guaranteed to
+- * pass before the routine returns. The routine will return 0
+- *
+- * %TASK_INTERRUPTIBLE - the routine may return early if a signal is
+- * delivered to the current task. In this case the remaining time
+- * in jiffies will be returned, or 0 if the timer expired in time
+- *
+- * The current task state is guaranteed to be TASK_RUNNING when this
+- * routine returns.
+- *
+- * Specifying a @timeout value of %MAX_SCHEDULE_TIMEOUT will schedule
+- * the CPU away without a bound on the timeout. In this case the return
+- * value will be %MAX_SCHEDULE_TIMEOUT.
+- *
+- * In all cases the return value is guaranteed to be non-negative.
+- */
+-fastcall signed long __sched schedule_timeout(signed long timeout)
+-{
+-	struct timer_list timer;
+-	unsigned long expire;
+-
+-	switch (timeout)
+-	{
+-	case MAX_SCHEDULE_TIMEOUT:
+-		/*
+-		 * These two special cases are useful to be comfortable
+-		 * in the caller. Nothing more. We could take
+-		 * MAX_SCHEDULE_TIMEOUT from one of the negative value
+-		 * but I' d like to return a valid offset (>=0) to allow
+-		 * the caller to do everything it want with the retval.
+-		 */
+-		schedule();
+-		goto out;
+-	default:
+-		/*
+-		 * Another bit of PARANOID. Note that the retval will be
+-		 * 0 since no piece of kernel is supposed to do a check
+-		 * for a negative retval of schedule_timeout() (since it
+-		 * should never happens anyway). You just have the printk()
+-		 * that will tell you if something is gone wrong and where.
+-		 */
+-		if (timeout < 0) {
+-			printk(KERN_ERR "schedule_timeout: wrong timeout "
+-				"value %lx\n", timeout);
+-			dump_stack();
+-			current->state = TASK_RUNNING;
+-			goto out;
+-		}
+-	}
+-
+-	expire = timeout + jiffies;
+-
+-	setup_timer(&timer, process_timeout, (unsigned long)current);
+-	__mod_timer(&timer, expire);
+-	schedule();
+-	del_singleshot_timer_sync(&timer);
+-
+-	timeout = expire - jiffies;
+-
+- out:
+-	return timeout < 0 ? 0 : timeout;
+-}
+-EXPORT_SYMBOL(schedule_timeout);
+-
+-/*
+- * We can use __set_current_state() here because schedule_timeout() calls
+- * schedule() unconditionally.
+- */
+-signed long __sched schedule_timeout_interruptible(signed long timeout)
+-{
+-	__set_current_state(TASK_INTERRUPTIBLE);
+-	return schedule_timeout(timeout);
+-}
+-EXPORT_SYMBOL(schedule_timeout_interruptible);
+-
+-signed long __sched schedule_timeout_uninterruptible(signed long timeout)
+-{
+-	__set_current_state(TASK_UNINTERRUPTIBLE);
+-	return schedule_timeout(timeout);
+-}
+-EXPORT_SYMBOL(schedule_timeout_uninterruptible);
+-
+-/* Thread ID - the internal kernel "pid" */
+-SYSCALL_DEFINE0(gettid)
+-{
+-	return task_pid_vnr(current);
+-}
+-
+-/**
+- * do_sysinfo - fill in sysinfo struct
+- * @info: pointer to buffer to fill
+- */
+-int do_sysinfo(struct sysinfo *info)
+-{
+-	unsigned long mem_total, sav_total;
+-	unsigned int mem_unit, bitcount;
+-	unsigned long seq;
+-
+-	memset(info, 0, sizeof(struct sysinfo));
+-
+-	do {
+-		struct timespec tp;
+-		seq = read_seqbegin(&xtime_lock);
+-
+-		/*
+-		 * This is annoying.  The below is the same thing
+-		 * posix_get_clock_monotonic() does, but it wants to
+-		 * take the lock which we want to cover the loads stuff
+-		 * too.
+-		 */
+-
+-		getnstimeofday(&tp);
+-		tp.tv_sec += wall_to_monotonic.tv_sec;
+-		tp.tv_nsec += wall_to_monotonic.tv_nsec;
+-		monotonic_to_bootbased(&tp);
+-		if (tp.tv_nsec - NSEC_PER_SEC >= 0) {
+-			tp.tv_nsec = tp.tv_nsec - NSEC_PER_SEC;
+-			tp.tv_sec++;
+-		}
+-		info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
+-
+-		info->loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT);
+-		info->loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT);
+-		info->loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT);
+-
+-		info->procs = nr_threads;
+-	} while (read_seqretry(&xtime_lock, seq));
+-
+-	si_meminfo(info);
+-	si_swapinfo(info);
+-
+-	/*
+-	 * If the sum of all the available memory (i.e. ram + swap)
+-	 * is less than can be stored in a 32 bit unsigned long then
+-	 * we can be binary compatible with 2.2.x kernels.  If not,
+-	 * well, in that case 2.2.x was broken anyways...
+-	 *
+-	 *  -Erik Andersen <andersee at debian.org>
+-	 */
+-
+-	mem_total = info->totalram + info->totalswap;
+-	if (mem_total < info->totalram || mem_total < info->totalswap)
+-		goto out;
+-	bitcount = 0;
+-	mem_unit = info->mem_unit;
+-	while (mem_unit > 1) {
+-		bitcount++;
+-		mem_unit >>= 1;
+-		sav_total = mem_total;
+-		mem_total <<= 1;
+-		if (mem_total < sav_total)
+-			goto out;
+-	}
+-
+-	/*
+-	 * If mem_total did not overflow, multiply all memory values by
+-	 * info->mem_unit and set it to 1.  This leaves things compatible
+-	 * with 2.2.x, and also retains compatibility with earlier 2.4.x
+-	 * kernels...
+-	 */
+-
+-	info->mem_unit = 1;
+-	info->totalram <<= bitcount;
+-	info->freeram <<= bitcount;
+-	info->sharedram <<= bitcount;
+-	info->bufferram <<= bitcount;
+-	info->totalswap <<= bitcount;
+-	info->freeswap <<= bitcount;
+-	info->totalhigh <<= bitcount;
+-	info->freehigh <<= bitcount;
+-
+-out:
+-	return 0;
+-}
+-
+-asmlinkage long sys_sysinfo(struct sysinfo __user *info)
+-{
+-	struct sysinfo val;
+-
+-	do_sysinfo(&val);
+-
+-	if (copy_to_user(info, &val, sizeof(struct sysinfo)))
+-		return -EFAULT;
+-
+-	return 0;
+-}
+-
+-/*
+- * lockdep: we want to track each per-CPU base as a separate lock-class,
+- * but timer-bases are kmalloc()-ed, so we need to attach separate
+- * keys to them:
+- */
+-static struct lock_class_key base_lock_keys[NR_CPUS];
+-
+-static int __cpuinit init_timers_cpu(int cpu)
+-{
+-	int j;
+-	tvec_base_t *base;
+-	static char __cpuinitdata tvec_base_done[NR_CPUS];
+-
+-	if (!tvec_base_done[cpu]) {
+-		static char boot_done;
+-
+-		if (boot_done) {
+-			/*
+-			 * The APs use this path later in boot
+-			 */
+-			base = kmalloc_node(sizeof(*base),
+-						GFP_KERNEL | __GFP_ZERO,
+-						cpu_to_node(cpu));
+-			if (!base)
+-				return -ENOMEM;
+-
+-			/* Make sure that tvec_base is 2 byte aligned */
+-			if (tbase_get_deferrable(base)) {
+-				WARN_ON(1);
+-				kfree(base);
+-				return -ENOMEM;
+-			}
+-			per_cpu(tvec_bases, cpu) = base;
+-		} else {
+-			/*
+-			 * This is for the boot CPU - we use compile-time
+-			 * static initialisation because per-cpu memory isn't
+-			 * ready yet and because the memory allocators are not
+-			 * initialised either.
+-			 */
+-			boot_done = 1;
+-			base = &boot_tvec_bases;
+-		}
+-		tvec_base_done[cpu] = 1;
+-	} else {
+-		base = per_cpu(tvec_bases, cpu);
+-	}
+-
+-	spin_lock_init(&base->lock);
+-	lockdep_set_class(&base->lock, base_lock_keys + cpu);
+-
+-	for (j = 0; j < TVN_SIZE; j++) {
+-		INIT_LIST_HEAD(base->tv5.vec + j);
+-		INIT_LIST_HEAD(base->tv4.vec + j);
+-		INIT_LIST_HEAD(base->tv3.vec + j);
+-		INIT_LIST_HEAD(base->tv2.vec + j);
+-	}
+-	for (j = 0; j < TVR_SIZE; j++)
+-		INIT_LIST_HEAD(base->tv1.vec + j);
+-
+-	base->timer_jiffies = jiffies;
+-	return 0;
+-}
+-
+-#ifdef CONFIG_HOTPLUG_CPU
+-static void migrate_timer_list(tvec_base_t *new_base, struct list_head *head)
+-{
+-	struct timer_list *timer;
+-
+-	while (!list_empty(head)) {
+-		timer = list_first_entry(head, struct timer_list, entry);
+-		detach_timer(timer, 0);
+-		timer_set_base(timer, new_base);
+-		internal_add_timer(new_base, timer);
+-	}
+-}
+-
+-static void __cpuinit migrate_timers(int cpu)
+-{
+-	tvec_base_t *old_base;
+-	tvec_base_t *new_base;
+-	int i;
+-
+-	BUG_ON(cpu_online(cpu));
+-	old_base = per_cpu(tvec_bases, cpu);
+-	new_base = get_cpu_var(tvec_bases);
+-
+-	local_irq_disable();
+-	double_spin_lock(&new_base->lock, &old_base->lock,
+-			 smp_processor_id() < cpu);
+-
+-	BUG_ON(old_base->running_timer);
+-
+-	for (i = 0; i < TVR_SIZE; i++)
+-		migrate_timer_list(new_base, old_base->tv1.vec + i);
+-	for (i = 0; i < TVN_SIZE; i++) {
+-		migrate_timer_list(new_base, old_base->tv2.vec + i);
+-		migrate_timer_list(new_base, old_base->tv3.vec + i);
+-		migrate_timer_list(new_base, old_base->tv4.vec + i);
+-		migrate_timer_list(new_base, old_base->tv5.vec + i);
+-	}
+-
+-	double_spin_unlock(&new_base->lock, &old_base->lock,
+-			   smp_processor_id() < cpu);
+-	local_irq_enable();
+-	put_cpu_var(tvec_bases);
+-}
+-#endif /* CONFIG_HOTPLUG_CPU */
+-
+-static int __cpuinit timer_cpu_notify(struct notifier_block *self,
+-				unsigned long action, void *hcpu)
+-{
+-	long cpu = (long)hcpu;
+-	switch(action) {
+-	case CPU_UP_PREPARE:
+-	case CPU_UP_PREPARE_FROZEN:
+-		if (init_timers_cpu(cpu) < 0)
+-			return NOTIFY_BAD;
+-		break;
+-#ifdef CONFIG_HOTPLUG_CPU
+-	case CPU_DEAD:
+-	case CPU_DEAD_FROZEN:
+-		migrate_timers(cpu);
+-		break;
+-#endif
+-	default:
+-		break;
+-	}
+-	return NOTIFY_OK;
+-}
+-
+-static struct notifier_block __cpuinitdata timers_nb = {
+-	.notifier_call	= timer_cpu_notify,
+-};
+-
+-
+-void __init init_timers(void)
+-{
+-	int err = timer_cpu_notify(&timers_nb, (unsigned long)CPU_UP_PREPARE,
+-				(void *)(long)smp_processor_id());
+-
+-	init_timer_stats();
+-
+-	BUG_ON(err == NOTIFY_BAD);
+-	register_cpu_notifier(&timers_nb);
+-	open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL);
+-}
+-
+-/**
+- * msleep - sleep safely even with waitqueue interruptions
+- * @msecs: Time in milliseconds to sleep for
+- */
+-void msleep(unsigned int msecs)
+-{
+-	unsigned long timeout = msecs_to_jiffies(msecs) + 1;
+-
+-	while (timeout)
+-		timeout = schedule_timeout_uninterruptible(timeout);
+-}
+-
+-EXPORT_SYMBOL(msleep);
+-
+-/**
+- * msleep_interruptible - sleep waiting for signals
+- * @msecs: Time in milliseconds to sleep for
+- */
+-unsigned long msleep_interruptible(unsigned int msecs)
+-{
+-	unsigned long timeout = msecs_to_jiffies(msecs) + 1;
+-
+-	while (timeout && !signal_pending(current))
+-		timeout = schedule_timeout_interruptible(timeout);
+-	return jiffies_to_msecs(timeout);
+-}
+-
+-EXPORT_SYMBOL(msleep_interruptible);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/acct.c linux-source-2.6.26/kernel/acct.c
---- linux-source-2.6.26.orig/kernel/acct.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/acct.c	2009-01-19 12:00:45.000000000 -0700
-@@ -255,7 +255,7 @@ static int acct_on(char *name)
+diff -urpN linux-source-2.6.24.orig/kernel/acct.c linux-source-2.6.24/kernel/acct.c
+--- linux-source-2.6.24.orig/kernel/acct.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/acct.c	2009-01-21 00:58:10.000000000 -0700
+@@ -249,7 +249,7 @@ static int acct_on(char *name)
   * should be written. If the filename is NULL, accounting will be
   * shutdown.
   */
@@ -24,10 +24,10 @@
  {
  	int error;
  
-diff -urpN linux-source-2.6.26.orig/kernel/capability.c linux-source-2.6.26/kernel/capability.c
---- linux-source-2.6.26.orig/kernel/capability.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/capability.c	2009-01-19 12:00:45.000000000 -0700
-@@ -151,7 +151,7 @@ EXPORT_SYMBOL(cap_set_effective);
+diff -urpN linux-source-2.6.24.orig/kernel/capability.c linux-source-2.6.24/kernel/capability.c
+--- linux-source-2.6.24.orig/kernel/capability.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/capability.c	2009-01-21 00:58:10.000000000 -0700
+@@ -36,7 +36,7 @@ static DEFINE_SPINLOCK(task_capability_l
   *
   * Returns 0 on success and < 0 on error.
   */
@@ -36,18 +36,18 @@
  {
  	int ret = 0;
  	pid_t pid;
-@@ -308,7 +308,7 @@ static inline int cap_set_all(kernel_cap
+@@ -165,7 +165,7 @@ static inline int cap_set_all(kernel_cap
   *
   * Returns 0 on success and < 0 on error.
   */
 -asmlinkage long sys_capset(cap_user_header_t header, const cap_user_data_t data)
 +SYSCALL_DEFINE2(capset, cap_user_header_t, header, const cap_user_data_t, data)
  {
- 	struct __user_cap_data_struct kdata[_KERNEL_CAPABILITY_U32S];
- 	unsigned i, tocopy;
-diff -urpN linux-source-2.6.26.orig/kernel/exec_domain.c linux-source-2.6.26/kernel/exec_domain.c
---- linux-source-2.6.26.orig/kernel/exec_domain.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/exec_domain.c	2009-01-19 12:00:45.000000000 -0700
+ 	kernel_cap_t inheritable, permitted, effective;
+ 	__u32 version;
+diff -urpN linux-source-2.6.24.orig/kernel/exec_domain.c linux-source-2.6.24/kernel/exec_domain.c
+--- linux-source-2.6.24.orig/kernel/exec_domain.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/exec_domain.c	2009-01-21 00:58:10.000000000 -0700
 @@ -189,8 +189,7 @@ get_exec_domain_list(char *page)
  	return (len);
  }
@@ -58,9 +58,9 @@
  {
  	u_long old = current->personality;
  
-diff -urpN linux-source-2.6.26.orig/kernel/itimer.c linux-source-2.6.26/kernel/itimer.c
---- linux-source-2.6.26.orig/kernel/itimer.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/itimer.c	2009-01-19 12:00:45.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/kernel/itimer.c linux-source-2.6.24/kernel/itimer.c
+--- linux-source-2.6.24.orig/kernel/itimer.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/itimer.c	2009-01-21 00:58:10.000000000 -0700
 @@ -109,7 +109,7 @@ int do_getitimer(int which, struct itime
  	return 0;
  }
@@ -70,10 +70,10 @@
  {
  	int error = -EFAULT;
  	struct itimerval get_buffer;
-diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
---- linux-source-2.6.26.orig/kernel/signal.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/kernel/signal.c	2009-01-19 12:00:45.000000000 -0700
-@@ -2407,8 +2407,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
+--- linux-source-2.6.24.orig/kernel/signal.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/kernel/signal.c	2009-01-21 00:58:10.000000000 -0700
+@@ -2418,8 +2418,7 @@ out:
  
  #ifdef __ARCH_WANT_SYS_SIGPENDING
  
@@ -83,7 +83,7 @@
  {
  	return do_sigpending(set, sizeof(*set));
  }
-@@ -2419,8 +2418,8 @@ sys_sigpending(old_sigset_t __user *set)
+@@ -2430,8 +2429,8 @@ sys_sigpending(old_sigset_t __user *set)
  /* Some platforms have their own version with special arguments others
     support only sys_rt_sigprocmask.  */
  
@@ -94,10 +94,10 @@
  {
  	int error;
  	old_sigset_t old_set, new_set;
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 11:59:57.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 12:00:45.000000000 -0700
-@@ -918,7 +918,7 @@ SYSCALL_DEFINE1(times, struct tms __user
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 00:57:05.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 00:58:10.000000000 -0700
+@@ -912,7 +912,7 @@ SYSCALL_DEFINE1(times, struct tms __user
   * Auch. Had to add the 'did_exec' flag to conform completely to POSIX.
   * LBT 04.03.94
   */
@@ -106,16 +106,16 @@
  {
  	struct task_struct *p;
  	struct task_struct *group_leader = current->group_leader;
-@@ -1054,7 +1054,7 @@ out:
- 	return retval;
+@@ -1045,7 +1045,7 @@ SYSCALL_DEFINE1(getsid, pid_t, pid)
+ 	}
  }
  
 -asmlinkage long sys_setsid(void)
 +SYSCALL_DEFINE0(setsid)
  {
  	struct task_struct *group_leader = current->group_leader;
- 	struct pid *sid = task_pid(group_leader);
-@@ -1293,7 +1293,7 @@ out:
+ 	pid_t session;
+@@ -1290,7 +1290,7 @@ out:
   *	without another task interfering.
   */
   

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch	Wed Jan 21 08:39:04 2009
@@ -10,11 +10,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/itimer.c linux-source-2.6.26/kernel/itimer.c
---- linux-source-2.6.26.orig/kernel/itimer.c	2009-01-19 12:00:45.000000000 -0700
-+++ linux-source-2.6.26/kernel/itimer.c	2009-01-19 12:03:27.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/kernel/itimer.c linux-source-2.6.24/kernel/itimer.c
+--- linux-source-2.6.24.orig/kernel/itimer.c	2009-01-21 00:58:10.000000000 -0700
++++ linux-source-2.6.24/kernel/itimer.c	2009-01-21 00:58:47.000000000 -0700
 @@ -273,9 +273,8 @@ unsigned int alarm_setitimer(unsigned in
  	return it_old.it_value.tv_sec;
  }
@@ -27,10 +27,10 @@
  {
  	struct itimerval set_buffer, get_buffer;
  	int error;
-diff -urpN linux-source-2.6.26.orig/kernel/posix-timers.c linux-source-2.6.26/kernel/posix-timers.c
---- linux-source-2.6.26.orig/kernel/posix-timers.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/posix-timers.c	2009-01-19 12:03:27.000000000 -0700
-@@ -466,10 +466,9 @@ static void release_posix_timer(struct k
+diff -urpN linux-source-2.6.24.orig/kernel/posix-timers.c linux-source-2.6.24/kernel/posix-timers.c
+--- linux-source-2.6.24.orig/kernel/posix-timers.c	2008-10-10 00:11:27.000000000 -0600
++++ linux-source-2.6.24/kernel/posix-timers.c	2009-01-21 00:58:47.000000000 -0700
+@@ -459,10 +459,9 @@ static void release_posix_timer(struct k
  
  /* Create a POSIX.1b interval timer. */
  
@@ -44,7 +44,7 @@
  {
  	int error = 0;
  	struct k_itimer *new_timer = NULL;
-@@ -685,8 +684,8 @@ common_timer_get(struct k_itimer *timr, 
+@@ -678,8 +677,8 @@ common_timer_get(struct k_itimer *timr, 
  }
  
  /* Get the time remaining on a POSIX.1b interval timer. */
@@ -55,7 +55,7 @@
  {
  	struct k_itimer *timr;
  	struct itimerspec cur_setting;
-@@ -715,8 +714,7 @@ sys_timer_gettime(timer_t timer_id, stru
+@@ -708,8 +707,7 @@ sys_timer_gettime(timer_t timer_id, stru
   * the call back to do_schedule_next_timer().  So all we need to do is
   * to pick up the frozen overrun.
   */
@@ -65,7 +65,7 @@
  {
  	struct k_itimer *timr;
  	int overrun;
-@@ -786,10 +784,9 @@ common_timer_set(struct k_itimer *timr, 
+@@ -779,10 +777,9 @@ common_timer_set(struct k_itimer *timr, 
  }
  
  /* Set a POSIX.1b interval timer */
@@ -79,7 +79,7 @@
  {
  	struct k_itimer *timr;
  	struct itimerspec new_spec, old_spec;
-@@ -842,8 +839,7 @@ static inline int timer_delete_hook(stru
+@@ -835,8 +832,7 @@ static inline int timer_delete_hook(stru
  }
  
  /* Delete a POSIX.1b interval timer. */
@@ -89,7 +89,7 @@
  {
  	struct k_itimer *timer;
  	unsigned long flags;
-@@ -935,8 +931,8 @@ int do_posix_clock_nonanosleep(const clo
+@@ -928,8 +924,8 @@ int do_posix_clock_nonanosleep(const clo
  }
  EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
  
@@ -100,7 +100,7 @@
  {
  	struct timespec new_tp;
  
-@@ -948,8 +944,8 @@ asmlinkage long sys_clock_settime(const 
+@@ -941,8 +937,8 @@ asmlinkage long sys_clock_settime(const 
  	return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
  }
  
@@ -111,7 +111,7 @@
  {
  	struct timespec kernel_tp;
  	int error;
-@@ -965,8 +961,8 @@ sys_clock_gettime(const clockid_t which_
+@@ -958,8 +954,8 @@ sys_clock_gettime(const clockid_t which_
  
  }
  
@@ -122,7 +122,7 @@
  {
  	struct timespec rtn_tp;
  	int error;
-@@ -995,10 +991,9 @@ static int common_nsleep(const clockid_t
+@@ -988,10 +984,9 @@ static int common_nsleep(const clockid_t
  				 which_clock);
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/sched.c linux-source-2.6.26/kernel/sched.c
---- linux-source-2.6.26.orig/kernel/sched.c	2009-01-10 05:42:12.000000000 -0700
-+++ linux-source-2.6.26/kernel/sched.c	2009-01-19 12:05:32.000000000 -0700
-@@ -4694,7 +4694,7 @@ int can_nice(const struct task_struct *p
+diff -urpN linux-source-2.6.24.orig/kernel/sched.c linux-source-2.6.24/kernel/sched.c
+--- linux-source-2.6.24.orig/kernel/sched.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/kernel/sched.c	2009-01-21 00:59:21.000000000 -0700
+@@ -4178,7 +4178,7 @@ int can_nice(const struct task_struct *p
   * sys_setpriority is a more generic, but much slower function that
   * does similar things.
   */
@@ -24,7 +24,7 @@
  {
  	long nice, retval;
  
-@@ -4959,8 +4959,8 @@ do_sched_setscheduler(pid_t pid, int pol
+@@ -4442,8 +4442,8 @@ do_sched_setscheduler(pid_t pid, int pol
   * @policy: new policy.
   * @param: structure containing the new RT priority.
   */
@@ -35,7 +35,7 @@
  {
  	/* negative values for policy are not valid */
  	if (policy < 0)
-@@ -4974,7 +4974,7 @@ sys_sched_setscheduler(pid_t pid, int po
+@@ -4457,7 +4457,7 @@ sys_sched_setscheduler(pid_t pid, int po
   * @pid: the pid in question.
   * @param: structure containing the new RT priority.
   */
@@ -44,7 +44,7 @@
  {
  	return do_sched_setscheduler(pid, -1, param);
  }
-@@ -4983,7 +4983,7 @@ asmlinkage long sys_sched_setparam(pid_t
+@@ -4466,7 +4466,7 @@ asmlinkage long sys_sched_setparam(pid_t
   * sys_sched_getscheduler - get the policy (scheduling class) of a thread
   * @pid: the pid in question.
   */
@@ -53,7 +53,7 @@
  {
  	struct task_struct *p;
  	int retval;
-@@ -5008,7 +5008,7 @@ asmlinkage long sys_sched_getscheduler(p
+@@ -4491,7 +4491,7 @@ asmlinkage long sys_sched_getscheduler(p
   * @pid: the pid in question.
   * @param: structure containing the RT priority.
   */
@@ -62,7 +62,7 @@
  {
  	struct sched_param lp;
  	struct task_struct *p;
-@@ -5116,8 +5116,8 @@ static int get_user_cpu_mask(unsigned lo
+@@ -4598,8 +4598,8 @@ static int get_user_cpu_mask(unsigned lo
   * @len: length in bytes of the bitmask pointed to by user_mask_ptr
   * @user_mask_ptr: user-space pointer to the new cpu mask
   */
@@ -73,7 +73,7 @@
  {
  	cpumask_t new_mask;
  	int retval;
-@@ -5179,8 +5179,8 @@ out_unlock:
+@@ -4661,8 +4661,8 @@ out_unlock:
   * @len: length in bytes of the bitmask pointed to by user_mask_ptr
   * @user_mask_ptr: user-space pointer to hold the current cpu mask
   */
@@ -84,7 +84,7 @@
  {
  	int ret;
  	cpumask_t mask;
-@@ -5204,7 +5204,7 @@ asmlinkage long sys_sched_getaffinity(pi
+@@ -4686,7 +4686,7 @@ asmlinkage long sys_sched_getaffinity(pi
   * This function yields the current CPU to other tasks. If there are no
   * other threads running on this CPU then this function will return.
   */
@@ -93,7 +93,7 @@
  {
  	struct rq *rq = this_rq_lock();
  
-@@ -5345,7 +5345,7 @@ long __sched io_schedule_timeout(long ti
+@@ -4831,7 +4831,7 @@ long __sched io_schedule_timeout(long ti
   * this syscall returns the maximum rt_priority that can be used
   * by a given scheduling class.
   */
@@ -102,7 +102,7 @@
  {
  	int ret = -EINVAL;
  
-@@ -5370,7 +5370,7 @@ asmlinkage long sys_sched_get_priority_m
+@@ -4856,7 +4856,7 @@ asmlinkage long sys_sched_get_priority_m
   * this syscall returns the minimum rt_priority that can be used
   * by a given scheduling class.
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/exit.c linux-source-2.6.26/kernel/exit.c
---- linux-source-2.6.26.orig/kernel/exit.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/kernel/exit.c	2009-01-19 12:07:11.000000000 -0700
-@@ -1121,7 +1121,7 @@ NORET_TYPE void complete_and_exit(struct
+diff -urpN linux-source-2.6.24.orig/kernel/exit.c linux-source-2.6.24/kernel/exit.c
+--- linux-source-2.6.24.orig/kernel/exit.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/kernel/exit.c	2009-01-21 01:00:45.000000000 -0700
+@@ -1065,7 +1065,7 @@ NORET_TYPE void complete_and_exit(struct
  
  EXPORT_SYMBOL(complete_and_exit);
  
@@ -24,7 +24,7 @@
  {
  	do_exit((error_code&0xff)<<8);
  }
-@@ -1162,7 +1162,7 @@ do_group_exit(int exit_code)
+@@ -1104,7 +1104,7 @@ do_group_exit(int exit_code)
   * wait4()-ing process will get the correct exit code - even if this
   * thread is not the thread group leader.
   */
@@ -33,21 +33,21 @@
  {
  	do_group_exit((error_code & 0xff) << 8);
  	/* NOTREACHED */
-@@ -1698,8 +1698,8 @@ asmlinkage long sys_waitid(int which, pi
+@@ -1728,8 +1728,8 @@ asmlinkage long sys_waitid(int which, pi
  	return ret;
  }
  
--asmlinkage long sys_wait4(pid_t upid, int __user *stat_addr,
+-asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr,
 -			  int options, struct rusage __user *ru)
-+SYSCALL_DEFINE4(wait4, pid_t, upid, int __user *, stat_addr,
++SYSCALL_DEFINE4(wait4, pid_t, pid, int __user *, stat_addr,
 +		int, options, struct rusage __user *, ru)
  {
- 	struct pid *pid = NULL;
- 	enum pid_type type;
-diff -urpN linux-source-2.6.26.orig/kernel/kexec.c linux-source-2.6.26/kernel/kexec.c
---- linux-source-2.6.26.orig/kernel/kexec.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/kexec.c	2009-01-19 12:07:11.000000000 -0700
-@@ -921,9 +921,8 @@ struct kimage *kexec_crash_image;
+ 	long ret;
+ 
+diff -urpN linux-source-2.6.24.orig/kernel/kexec.c linux-source-2.6.24/kernel/kexec.c
+--- linux-source-2.6.24.orig/kernel/kexec.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/kexec.c	2009-01-21 00:59:55.000000000 -0700
+@@ -922,9 +922,8 @@ struct kimage *kexec_crash_image;
   */
  static int kexec_lock;
  
@@ -59,10 +59,10 @@
  {
  	struct kimage **dest_image, *image;
  	int locked;
-diff -urpN linux-source-2.6.26.orig/kernel/sched.c linux-source-2.6.26/kernel/sched.c
---- linux-source-2.6.26.orig/kernel/sched.c	2009-01-19 12:05:32.000000000 -0700
-+++ linux-source-2.6.26/kernel/sched.c	2009-01-19 12:07:11.000000000 -0700
-@@ -5395,8 +5395,8 @@ SYSCALL_DEFINE1(sched_get_priority_min, 
+diff -urpN linux-source-2.6.24.orig/kernel/sched.c linux-source-2.6.24/kernel/sched.c
+--- linux-source-2.6.24.orig/kernel/sched.c	2009-01-21 00:59:21.000000000 -0700
++++ linux-source-2.6.24/kernel/sched.c	2009-01-21 00:59:55.000000000 -0700
+@@ -4881,8 +4881,8 @@ SYSCALL_DEFINE1(sched_get_priority_min, 
   * this syscall writes the default timeslice value of a given process
   * into the user-space timespec buffer. A value of '0' means infinity.
   */
@@ -73,10 +73,10 @@
  {
  	struct task_struct *p;
  	unsigned int time_slice;
-diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
---- linux-source-2.6.26.orig/kernel/signal.c	2009-01-19 12:00:45.000000000 -0700
-+++ linux-source-2.6.26/kernel/signal.c	2009-01-19 12:07:11.000000000 -0700
-@@ -1934,7 +1934,7 @@ EXPORT_SYMBOL(unblock_all_signals);
+diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
+--- linux-source-2.6.24.orig/kernel/signal.c	2009-01-21 00:58:10.000000000 -0700
++++ linux-source-2.6.24/kernel/signal.c	2009-01-21 00:59:55.000000000 -0700
+@@ -1947,7 +1947,7 @@ EXPORT_SYMBOL(unblock_all_signals);
   * System call entry points.
   */
  
@@ -85,10 +85,10 @@
  {
  	struct restart_block *restart = &current_thread_info()->restart_block;
  	return restart->fn(restart);
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 12:00:45.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 12:07:11.000000000 -0700
-@@ -137,7 +137,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 00:58:10.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 00:59:55.000000000 -0700
+@@ -131,7 +131,7 @@ out:
  	return error;
  }
  
@@ -97,7 +97,7 @@
  {
  	struct task_struct *g, *p;
  	struct user_struct *user;
-@@ -201,7 +201,7 @@ out:
+@@ -195,7 +195,7 @@ out:
   * has been offset by 20 (ie it returns 40..1 instead of -20..19)
   * to stay compatible.
   */
@@ -106,7 +106,7 @@
  {
  	struct task_struct *g, *p;
  	struct user_struct *user;
-@@ -367,7 +367,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
+@@ -361,7 +361,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
   *
   * reboot doesn't sync: do that yourself before calling this.
   */
@@ -116,10 +116,10 @@
  {
  	char buffer[256];
  
-diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
---- linux-source-2.6.26.orig/net/socket.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/net/socket.c	2009-01-19 12:07:11.000000000 -0700
-@@ -1758,7 +1758,7 @@ out_put:
+diff -urpN linux-source-2.6.24.orig/net/socket.c linux-source-2.6.24/net/socket.c
+--- linux-source-2.6.24.orig/net/socket.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/net/socket.c	2009-01-21 00:59:55.000000000 -0700
+@@ -1755,7 +1755,7 @@ out_put:
   *	Shutdown a socket.
   */
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch	Wed Jan 21 08:39:04 2009
@@ -10,24 +10,24 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/kernel/exit.c linux-source-2.6.26/kernel/exit.c
---- linux-source-2.6.26.orig/kernel/exit.c	2009-01-19 12:07:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/exit.c	2009-01-19 12:08:21.000000000 -0700
-@@ -1657,9 +1657,8 @@ end:
+diff -urpN linux-source-2.6.24.orig/kernel/exit.c linux-source-2.6.24/kernel/exit.c
+--- linux-source-2.6.24.orig/kernel/exit.c	2009-01-21 01:00:45.000000000 -0700
++++ linux-source-2.6.24/kernel/exit.c	2009-01-21 01:02:02.000000000 -0700
+@@ -1693,9 +1693,8 @@ end:
  	return retval;
  }
  
--asmlinkage long sys_waitid(int which, pid_t upid,
+-asmlinkage long sys_waitid(int which, pid_t pid,
 -			   struct siginfo __user *infop, int options,
 -			   struct rusage __user *ru)
-+SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *,
++SYSCALL_DEFINE5(waitid, int, which, pid_t, pid, struct siginfo __user *,
 +		infop, int, options, struct rusage __user *, ru)
  {
- 	struct pid *pid = NULL;
- 	enum pid_type type;
-@@ -1736,7 +1735,7 @@ SYSCALL_DEFINE4(wait4, pid_t, upid, int 
+ 	long ret;
+ 
+@@ -1749,7 +1748,7 @@ SYSCALL_DEFINE4(wait4, pid_t, pid, int _
   * sys_waitpid() remains for compatibility. waitpid() should be
   * implemented by calling sys_wait4() from libc.a.
   */
@@ -36,10 +36,10 @@
  {
  	return sys_wait4(pid, stat_addr, options, NULL);
  }
-diff -urpN linux-source-2.6.26.orig/kernel/fork.c linux-source-2.6.26/kernel/fork.c
---- linux-source-2.6.26.orig/kernel/fork.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/fork.c	2009-01-19 12:08:21.000000000 -0700
-@@ -838,7 +838,7 @@ static void copy_flags(unsigned long clo
+diff -urpN linux-source-2.6.24.orig/kernel/fork.c linux-source-2.6.24/kernel/fork.c
+--- linux-source-2.6.24.orig/kernel/fork.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/fork.c	2009-01-21 01:01:27.000000000 -0700
+@@ -946,7 +946,7 @@ static void copy_flags(unsigned long clo
  	clear_freeze_flag(p);
  }
  
@@ -48,10 +48,10 @@
  {
  	current->clear_child_tid = tidptr;
  
-diff -urpN linux-source-2.6.26.orig/kernel/futex.c linux-source-2.6.26/kernel/futex.c
---- linux-source-2.6.26.orig/kernel/futex.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/futex.c	2009-01-19 12:08:21.000000000 -0700
-@@ -2036,9 +2036,9 @@ long do_futex(u32 __user *uaddr, int op,
+diff -urpN linux-source-2.6.24.orig/kernel/futex.c linux-source-2.6.24/kernel/futex.c
+--- linux-source-2.6.24.orig/kernel/futex.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/kernel/futex.c	2009-01-21 01:01:27.000000000 -0700
+@@ -2092,9 +2092,9 @@ long do_futex(u32 __user *uaddr, int op,
  }
  
  
@@ -64,10 +64,10 @@
  {
  	struct timespec ts;
  	ktime_t t, *tp = NULL;
-diff -urpN linux-source-2.6.26.orig/kernel/module.c linux-source-2.6.26/kernel/module.c
---- linux-source-2.6.26.orig/kernel/module.c	2009-01-10 05:42:12.000000000 -0700
-+++ linux-source-2.6.26/kernel/module.c	2009-01-19 12:08:21.000000000 -0700
-@@ -685,8 +685,8 @@ static void wait_for_zero_refcount(struc
+diff -urpN linux-source-2.6.24.orig/kernel/module.c linux-source-2.6.24/kernel/module.c
+--- linux-source-2.6.24.orig/kernel/module.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/module.c	2009-01-21 01:01:27.000000000 -0700
+@@ -655,8 +655,8 @@ static void wait_for_zero_refcount(struc
  	mutex_lock(&module_mutex);
  }
  
@@ -78,7 +78,7 @@
  {
  	struct module *mod;
  	char name[MODULE_NAME_LEN];
-@@ -2189,10 +2189,8 @@ static struct module *load_module(void _
+@@ -2088,10 +2088,8 @@ static int __link_module(void *_mod)
  }
  
  /* This is where the real work happens */
@@ -91,10 +91,10 @@
  {
  	struct module *mod;
  	int ret = 0;
-diff -urpN linux-source-2.6.26.orig/kernel/sched.c linux-source-2.6.26/kernel/sched.c
---- linux-source-2.6.26.orig/kernel/sched.c	2009-01-19 12:07:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/sched.c	2009-01-19 12:08:21.000000000 -0700
-@@ -5395,7 +5395,7 @@ SYSCALL_DEFINE1(sched_get_priority_min, 
+diff -urpN linux-source-2.6.24.orig/kernel/sched.c linux-source-2.6.24/kernel/sched.c
+--- linux-source-2.6.24.orig/kernel/sched.c	2009-01-21 00:59:55.000000000 -0700
++++ linux-source-2.6.24/kernel/sched.c	2009-01-21 01:01:27.000000000 -0700
+@@ -4881,7 +4881,7 @@ SYSCALL_DEFINE1(sched_get_priority_min, 
   * this syscall writes the default timeslice value of a given process
   * into the user-space timespec buffer. A value of '0' means infinity.
   */
@@ -103,10 +103,10 @@
  		struct timespec __user *, interval)
  {
  	struct task_struct *p;
-diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
---- linux-source-2.6.26.orig/kernel/signal.c	2009-01-19 12:07:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/signal.c	2009-01-19 12:09:29.000000000 -0700
-@@ -1987,8 +1987,8 @@ int sigprocmask(int how, sigset_t *set, 
+diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
+--- linux-source-2.6.24.orig/kernel/signal.c	2009-01-21 00:59:55.000000000 -0700
++++ linux-source-2.6.24/kernel/signal.c	2009-01-21 01:01:27.000000000 -0700
+@@ -2000,8 +2000,8 @@ int sigprocmask(int how, sigset_t *set, 
  	return error;
  }
  
@@ -117,7 +117,7 @@
  {
  	int error = -EINVAL;
  	sigset_t old_set, new_set;
-@@ -2047,8 +2047,7 @@ out:
+@@ -2060,8 +2060,7 @@ out:
  	return error;
  }	
  
@@ -127,7 +127,7 @@
  {
  	return do_sigpending(set, sigsetsize);
  }
-@@ -2119,11 +2118,9 @@ int copy_siginfo_to_user(siginfo_t __use
+@@ -2132,11 +2131,9 @@ int copy_siginfo_to_user(siginfo_t __use
  
  #endif
  
@@ -142,7 +142,7 @@
  {
  	int ret, sig;
  	sigset_t these;
-@@ -2196,8 +2193,7 @@ sys_rt_sigtimedwait(const sigset_t __use
+@@ -2209,8 +2206,7 @@ sys_rt_sigtimedwait(const sigset_t __use
  	return ret;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch	Wed Jan 21 08:39:04 2009
@@ -10,11 +10,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/sync.c linux-source-2.6.26/fs/sync.c
---- linux-source-2.6.26.orig/fs/sync.c	2009-01-19 11:55:54.000000000 -0700
-+++ linux-source-2.6.26/fs/sync.c	2009-01-19 12:11:32.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/sync.c linux-source-2.6.24/fs/sync.c
+--- linux-source-2.6.24.orig/fs/sync.c	2009-01-21 00:50:44.000000000 -0700
++++ linux-source-2.6.24/fs/sync.c	2009-01-21 01:02:55.000000000 -0700
 @@ -36,7 +36,7 @@ static void do_sync(unsigned long wait)
  		laptop_sync_completion();
  }
@@ -39,10 +39,10 @@
  {
  	return __do_fsync(fd, 1);
  }
-diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
---- linux-source-2.6.26.orig/kernel/signal.c	2009-01-19 12:09:29.000000000 -0700
-+++ linux-source-2.6.26/kernel/signal.c	2009-01-19 12:13:12.000000000 -0700
-@@ -2252,7 +2252,7 @@ static int do_tkill(int tgid, int pid, i
+diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
+--- linux-source-2.6.24.orig/kernel/signal.c	2009-01-21 01:01:27.000000000 -0700
++++ linux-source-2.6.24/kernel/signal.c	2009-01-21 01:02:55.000000000 -0700
+@@ -2262,7 +2262,7 @@ static int do_tkill(int tgid, int pid, i
   *  exists but it's not belonging to the target process anymore. This
   *  method solves the problem of threads exiting and PIDs getting reused.
   */
@@ -51,7 +51,7 @@
  {
  	/* This is only valid for single tasks */
  	if (pid <= 0 || tgid <= 0)
-@@ -2264,8 +2264,7 @@ asmlinkage long sys_tgkill(int tgid, int
+@@ -2274,8 +2274,7 @@ asmlinkage long sys_tgkill(int tgid, int
  /*
   *  Send a signal to only one task, even if it's a CLONE_THREAD task.
   */
@@ -61,7 +61,7 @@
  {
  	/* This is only valid for single tasks */
  	if (pid <= 0)
-@@ -2274,8 +2273,8 @@ sys_tkill(int pid, int sig)
+@@ -2284,8 +2283,8 @@ sys_tkill(int pid, int sig)
  	return do_tkill(0, pid, sig);
  }
  
@@ -72,7 +72,7 @@
  {
  	siginfo_t info;
  
-@@ -2499,15 +2498,13 @@ out:
+@@ -2510,15 +2509,13 @@ out:
  /*
   * For backwards compatibility.  Functionality superseded by sigprocmask.
   */
@@ -90,7 +90,7 @@
  {
  	int old;
  
-@@ -2527,8 +2524,7 @@ sys_ssetmask(int newmask)
+@@ -2538,8 +2535,7 @@ sys_ssetmask(int newmask)
  /*
   * For backwards compatibility.  Functionality superseded by sigaction.
   */
@@ -100,7 +100,7 @@
  {
  	struct k_sigaction new_sa, old_sa;
  	int ret;
-@@ -2545,8 +2541,7 @@ sys_signal(int sig, __sighandler_t handl
+@@ -2556,8 +2552,7 @@ sys_signal(int sig, __sighandler_t handl
  
  #ifdef __ARCH_WANT_SYS_PAUSE
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/buffer.c linux-source-2.6.26/fs/buffer.c
---- linux-source-2.6.26.orig/fs/buffer.c	2009-01-10 05:42:12.000000000 -0700
-+++ linux-source-2.6.26/fs/buffer.c	2009-01-19 12:15:07.000000000 -0700
-@@ -3119,7 +3119,7 @@ void block_sync_page(struct page *page)
+diff -urpN linux-source-2.6.24.orig/fs/buffer.c linux-source-2.6.24/fs/buffer.c
+--- linux-source-2.6.24.orig/fs/buffer.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/fs/buffer.c	2009-01-21 01:03:35.000000000 -0700
+@@ -3113,7 +3113,7 @@ void block_sync_page(struct page *page)
   * Use of bdflush() is deprecated and will be removed in a future kernel.
   * The `pdflush' kernel threads fully replace bdflush daemons and this call.
   */
@@ -24,10 +24,10 @@
  {
  	static int msg_count;
  
-diff -urpN linux-source-2.6.26.orig/fs/namespace.c linux-source-2.6.26/fs/namespace.c
---- linux-source-2.6.26.orig/fs/namespace.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/namespace.c	2009-01-19 12:15:07.000000000 -0700
-@@ -1119,7 +1119,7 @@ static int do_umount(struct vfsmount *mn
+diff -urpN linux-source-2.6.24.orig/fs/namespace.c linux-source-2.6.24/fs/namespace.c
+--- linux-source-2.6.24.orig/fs/namespace.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/namespace.c	2009-01-21 01:03:35.000000000 -0700
+@@ -628,7 +628,7 @@ static int do_umount(struct vfsmount *mn
   * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
   */
  
@@ -36,7 +36,7 @@
  {
  	struct nameidata nd;
  	int retval;
-@@ -1151,7 +1151,7 @@ out:
+@@ -658,7 +658,7 @@ out:
  /*
   *	The 2.0 compatible umount. No flags.
   */
@@ -45,7 +45,7 @@
  {
  	return sys_umount(name, 0);
  }
-@@ -2045,9 +2045,8 @@ struct mnt_namespace *copy_mnt_ns(unsign
+@@ -1547,9 +1547,8 @@ struct mnt_namespace *copy_mnt_ns(unsign
  	return new_ns;
  }
  
@@ -57,10 +57,10 @@
  {
  	int retval;
  	unsigned long data_page;
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 11:55:54.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:17:22.000000000 -0700
-@@ -121,7 +121,7 @@ static int vfs_statfs64(struct dentry *d
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 00:52:46.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:03:35.000000000 -0700
+@@ -119,7 +119,7 @@ static int vfs_statfs64(struct dentry *d
  	return 0;
  }
  
@@ -69,7 +69,7 @@
  {
  	struct nameidata nd;
  	int error;
-@@ -137,8 +137,7 @@ asmlinkage long sys_statfs(const char __
+@@ -135,8 +135,7 @@ asmlinkage long sys_statfs(const char __
  	return error;
  }
  
@@ -79,7 +79,7 @@
  {
  	struct nameidata nd;
  	long error;
-@@ -156,8 +155,7 @@ asmlinkage long sys_statfs64(const char 
+@@ -154,8 +153,7 @@ asmlinkage long sys_statfs64(const char 
  	return error;
  }
  
@@ -89,7 +89,7 @@
  {
  	struct file * file;
  	struct statfs tmp;
-@@ -286,7 +284,7 @@ out:
+@@ -282,7 +280,7 @@ out:
  	return error;
  }
  
@@ -98,7 +98,7 @@
  {
  	/* on 32-bit boxen it will cut the range 2^31--2^32-1 off */
  	return do_sys_truncate(path, (long)length);
-@@ -335,7 +333,7 @@ out:
+@@ -331,7 +329,7 @@ out:
  	return error;
  }
  
@@ -107,9 +107,9 @@
  {
  	long ret = do_sys_ftruncate(fd, length, 1);
  	/* avoid REGPARM breakage on x86: */
-diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
---- linux-source-2.6.26.orig/fs/stat.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/stat.c	2009-01-19 12:15:07.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
+--- linux-source-2.6.24.orig/fs/stat.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/stat.c	2009-01-21 01:03:35.000000000 -0700
 @@ -152,7 +152,7 @@ static int cp_old_stat(struct kstat *sta
  	return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
  }

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:17:22.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:18:41.000000000 -0700
-@@ -173,7 +173,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:03:35.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:04:04.000000000 -0700
+@@ -171,7 +171,7 @@ out:
  	return error;
  }
  
@@ -24,9 +24,9 @@
  {
  	struct file * file;
  	struct statfs64 tmp;
-diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
---- linux-source-2.6.26.orig/fs/stat.c	2009-01-19 12:15:07.000000000 -0700
-+++ linux-source-2.6.26/fs/stat.c	2009-01-19 12:18:41.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
+--- linux-source-2.6.24.orig/fs/stat.c	2009-01-21 01:03:35.000000000 -0700
++++ linux-source-2.6.24/fs/stat.c	2009-01-21 01:04:04.000000000 -0700
 @@ -162,7 +162,8 @@ SYSCALL_DEFINE2(stat, char __user *, fil
  
  	return error;
@@ -74,7 +74,7 @@
  {
  	struct kstat stat;
  	int error = vfs_fstat(fd, &stat);
-@@ -365,7 +367,7 @@ static long cp_new_stat64(struct kstat *
+@@ -364,7 +366,7 @@ static long cp_new_stat64(struct kstat *
  	return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
  }
  
@@ -83,7 +83,7 @@
  {
  	struct kstat stat;
  	int error = vfs_stat(filename, &stat);
-@@ -375,7 +377,8 @@ asmlinkage long sys_stat64(char __user *
+@@ -374,7 +376,8 @@ asmlinkage long sys_stat64(char __user *
  
  	return error;
  }
@@ -93,7 +93,7 @@
  {
  	struct kstat stat;
  	int error = vfs_lstat(filename, &stat);
-@@ -385,7 +388,8 @@ asmlinkage long sys_lstat64(char __user 
+@@ -384,7 +387,8 @@ asmlinkage long sys_lstat64(char __user 
  
  	return error;
  }
@@ -103,10 +103,10 @@
  {
  	struct kstat stat;
  	int error = vfs_fstat(fd, &stat);
-diff -urpN linux-source-2.6.26.orig/fs/super.c linux-source-2.6.26/fs/super.c
---- linux-source-2.6.26.orig/fs/super.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/super.c	2009-01-19 12:18:41.000000000 -0700
-@@ -533,7 +533,7 @@ rescan:
+diff -urpN linux-source-2.6.24.orig/fs/super.c linux-source-2.6.24/fs/super.c
+--- linux-source-2.6.24.orig/fs/super.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/super.c	2009-01-21 01:04:04.000000000 -0700
+@@ -530,7 +530,7 @@ rescan:
  	return NULL;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch	Wed Jan 21 08:39:04 2009
@@ -10,107 +10,107 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/xattr.c linux-source-2.6.26/fs/xattr.c
---- linux-source-2.6.26.orig/fs/xattr.c	2009-01-19 11:14:17.000000000 -0700
-+++ linux-source-2.6.26/fs/xattr.c	2009-01-19 12:22:58.000000000 -0700
-@@ -251,9 +251,9 @@ setxattr(struct dentry *d, const char __
+diff -urpN linux-source-2.6.24.orig/fs/xattr.c linux-source-2.6.24/fs/xattr.c
+--- linux-source-2.6.24.orig/fs/xattr.c	2009-01-21 00:11:43.000000000 -0700
++++ linux-source-2.6.24/fs/xattr.c	2009-01-21 01:08:29.000000000 -0700
+@@ -225,9 +225,9 @@ setxattr(struct dentry *d, char __user *
  	return error;
  }
  
 -asmlinkage long
--sys_setxattr(const char __user *path, const char __user *name,
--	     const void __user *value, size_t size, int flags)
-+SYSCALL_DEFINE5(setxattr, const char __user *, path,
-+		const char __user *, name, const void __user *, value,
+-sys_setxattr(char __user *path, char __user *name, void __user *value,
+-	     size_t size, int flags)
++SYSCALL_DEFINE5(setxattr, char __user *, path,
++		char __user *, name, void __user *, value,
 +		size_t, size, int, flags)
  {
  	struct nameidata nd;
  	int error;
-@@ -270,9 +270,9 @@ sys_setxattr(const char __user *path, co
+@@ -240,9 +240,9 @@ sys_setxattr(char __user *path, char __u
  	return error;
  }
  
 -asmlinkage long
--sys_lsetxattr(const char __user *path, const char __user *name,
--	      const void __user *value, size_t size, int flags)
-+SYSCALL_DEFINE5(lsetxattr, const char __user *, path,
-+		const char __user *, name, const void __user *, value,
+-sys_lsetxattr(char __user *path, char __user *name, void __user *value,
+-	      size_t size, int flags)
++SYSCALL_DEFINE5(lsetxattr, char __user *, path,
++		char __user *, name, void __user *, value,
 +		size_t, size, int, flags)
  {
  	struct nameidata nd;
  	int error;
-@@ -289,9 +289,8 @@ sys_lsetxattr(const char __user *path, c
+@@ -255,9 +255,8 @@ sys_lsetxattr(char __user *path, char __
  	return error;
  }
  
 -asmlinkage long
--sys_fsetxattr(int fd, const char __user *name, const void __user *value,
+-sys_fsetxattr(int fd, char __user *name, void __user *value,
 -	      size_t size, int flags)
-+SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
-+		const void __user *,value, size_t, size, int, flags)
++SYSCALL_DEFINE5(fsetxattr, int, fd, char __user *, name,
++		void __user *,value, size_t, size, int, flags)
  {
  	struct file *f;
  	struct dentry *dentry;
-@@ -349,9 +348,8 @@ getxattr(struct dentry *d, const char __
+@@ -310,9 +309,8 @@ getxattr(struct dentry *d, char __user *
  	return error;
  }
  
 -asmlinkage long
--sys_getxattr(const char __user *path, const char __user *name,
--	     void __user *value, size_t size)
-+SYSCALL_DEFINE4(getxattr, const char __user *, path,
-+		const char __user *, name, void __user *, value, size_t, size)
+-sys_getxattr(char __user *path, char __user *name, void __user *value,
+-	     size_t size)
++SYSCALL_DEFINE4(getxattr, char __user *, path,
++		char __user *, name, void __user *, value, size_t, size)
  {
  	struct nameidata nd;
  	ssize_t error;
-@@ -364,9 +362,8 @@ sys_getxattr(const char __user *path, co
+@@ -325,9 +323,8 @@ sys_getxattr(char __user *path, char __u
  	return error;
  }
  
 -asmlinkage long
--sys_lgetxattr(const char __user *path, const char __user *name, void __user *value,
+-sys_lgetxattr(char __user *path, char __user *name, void __user *value,
 -	      size_t size)
-+SYSCALL_DEFINE4(lgetxattr, const char __user *, path,
-+		const char __user *, name, void __user *, value, size_t, size)
++SYSCALL_DEFINE4(lgetxattr, char __user *, path,
++		char __user *, name, void __user *, value, size_t, size)
  {
  	struct nameidata nd;
  	ssize_t error;
-@@ -379,8 +376,8 @@ sys_lgetxattr(const char __user *path, c
+@@ -340,8 +337,8 @@ sys_lgetxattr(char __user *path, char __
  	return error;
  }
  
 -asmlinkage long
--sys_fgetxattr(int fd, const char __user *name, void __user *value, size_t size)
-+SYSCALL_DEFINE4(fgetxattr, int, fd, const char __user *, name,
+-sys_fgetxattr(int fd, char __user *name, void __user *value, size_t size)
++SYSCALL_DEFINE4(fgetxattr, int, fd, char __user *, name,
 +		void __user *, value, size_t, size)
  {
  	struct file *f;
  	ssize_t error = -EBADF;
-@@ -424,8 +421,8 @@ listxattr(struct dentry *d, char __user 
+@@ -385,8 +382,8 @@ listxattr(struct dentry *d, char __user 
  	return error;
  }
  
 -asmlinkage long
--sys_listxattr(const char __user *path, char __user *list, size_t size)
-+SYSCALL_DEFINE3(listxattr, const char __user *, path, char __user *, list,
+-sys_listxattr(char __user *path, char __user *list, size_t size)
++SYSCALL_DEFINE3(listxattr, char __user *, path, char __user *, list,
 +		size_t, size)
  {
  	struct nameidata nd;
  	ssize_t error;
-@@ -438,8 +435,8 @@ sys_listxattr(const char __user *path, c
+@@ -399,8 +396,8 @@ sys_listxattr(char __user *path, char __
  	return error;
  }
  
 -asmlinkage long
--sys_llistxattr(const char __user *path, char __user *list, size_t size)
-+SYSCALL_DEFINE3(llistxattr, const char __user *, path, char __user *, list,
+-sys_llistxattr(char __user *path, char __user *list, size_t size)
++SYSCALL_DEFINE3(llistxattr, char __user *, path, char __user *, list,
 +		size_t, size)
  {
  	struct nameidata nd;
  	ssize_t error;
-@@ -452,8 +449,7 @@ sys_llistxattr(const char __user *path, 
+@@ -413,8 +410,7 @@ sys_llistxattr(char __user *path, char _
  	return error;
  }
  
@@ -120,14 +120,14 @@
  {
  	struct file *f;
  	ssize_t error = -EBADF;
-@@ -485,8 +481,8 @@ removexattr(struct dentry *d, const char
+@@ -446,8 +442,8 @@ removexattr(struct dentry *d, char __use
  	return vfs_removexattr(d, kname);
  }
  
 -asmlinkage long
--sys_removexattr(const char __user *path, const char __user *name)
-+SYSCALL_DEFINE2(removexattr, const char __user *, path,
-+		const char __user *, name)
+-sys_removexattr(char __user *path, char __user *name)
++SYSCALL_DEFINE2(removexattr, char __user *, path,
++		char __user *, name)
  {
  	struct nameidata nd;
  	int error;

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch	Wed Jan 21 08:39:04 2009
@@ -10,35 +10,35 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/xattr.c linux-source-2.6.26/fs/xattr.c
---- linux-source-2.6.26.orig/fs/xattr.c	2009-01-19 12:22:58.000000000 -0700
-+++ linux-source-2.6.26/fs/xattr.c	2009-01-19 12:24:41.000000000 -0700
-@@ -499,8 +499,8 @@ SYSCALL_DEFINE2(removexattr, const char 
+diff -urpN linux-source-2.6.24.orig/fs/xattr.c linux-source-2.6.24/fs/xattr.c
+--- linux-source-2.6.24.orig/fs/xattr.c	2009-01-21 01:08:29.000000000 -0700
++++ linux-source-2.6.24/fs/xattr.c	2009-01-21 01:09:53.000000000 -0700
+@@ -456,8 +456,8 @@ SYSCALL_DEFINE2(removexattr, char __user
  	return error;
  }
  
 -asmlinkage long
--sys_lremovexattr(const char __user *path, const char __user *name)
-+SYSCALL_DEFINE2(lremovexattr, const char __user *, path,
-+		const char __user *, name)
+-sys_lremovexattr(char __user *path, char __user *name)
++SYSCALL_DEFINE2(lremovexattr, char __user *, path,
++		char __user *, name)
  {
  	struct nameidata nd;
  	int error;
-@@ -517,8 +517,7 @@ sys_lremovexattr(const char __user *path
+@@ -470,8 +470,7 @@ sys_lremovexattr(char __user *path, char
  	return error;
  }
  
 -asmlinkage long
--sys_fremovexattr(int fd, const char __user *name)
-+SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
+-sys_fremovexattr(int fd, char __user *name)
++SYSCALL_DEFINE2(fremovexattr, int, fd, char __user *, name)
  {
  	struct file *f;
  	struct dentry *dentry;
-diff -urpN linux-source-2.6.26.orig/mm/fremap.c linux-source-2.6.26/mm/fremap.c
---- linux-source-2.6.26.orig/mm/fremap.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/fremap.c	2009-01-19 12:24:06.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/fremap.c linux-source-2.6.24/mm/fremap.c
+--- linux-source-2.6.24.orig/mm/fremap.c	2008-10-10 00:11:27.000000000 -0600
++++ linux-source-2.6.24/mm/fremap.c	2009-01-21 01:09:12.000000000 -0700
 @@ -117,8 +117,8 @@ static int populate_range(struct mm_stru
   * and the vma's default protection is used. Arbitrary protections
   * might be implemented in the future.
@@ -50,10 +50,10 @@
  {
  	struct mm_struct *mm = current->mm;
  	struct address_space *mapping;
-diff -urpN linux-source-2.6.26.orig/mm/mlock.c linux-source-2.6.26/mm/mlock.c
---- linux-source-2.6.26.orig/mm/mlock.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/mm/mlock.c	2009-01-19 12:24:06.000000000 -0700
-@@ -130,7 +130,7 @@ static int do_mlock(unsigned long start,
+diff -urpN linux-source-2.6.24.orig/mm/mlock.c linux-source-2.6.24/mm/mlock.c
+--- linux-source-2.6.24.orig/mm/mlock.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/mlock.c	2009-01-21 01:09:12.000000000 -0700
+@@ -132,7 +132,7 @@ static int do_mlock(unsigned long start,
  	return error;
  }
  
@@ -62,7 +62,7 @@
  {
  	unsigned long locked;
  	unsigned long lock_limit;
-@@ -156,7 +156,7 @@ asmlinkage long sys_mlock(unsigned long 
+@@ -158,7 +158,7 @@ asmlinkage long sys_mlock(unsigned long 
  	return error;
  }
  
@@ -71,10 +71,10 @@
  {
  	int ret;
  
-diff -urpN linux-source-2.6.26.orig/mm/mmap.c linux-source-2.6.26/mm/mmap.c
---- linux-source-2.6.26.orig/mm/mmap.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/mm/mmap.c	2009-01-19 12:24:06.000000000 -0700
-@@ -240,7 +240,7 @@ static struct vm_area_struct *remove_vma
+diff -urpN linux-source-2.6.24.orig/mm/mmap.c linux-source-2.6.24/mm/mmap.c
+--- linux-source-2.6.24.orig/mm/mmap.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/mm/mmap.c	2009-01-21 01:09:12.000000000 -0700
+@@ -233,7 +233,7 @@ static struct vm_area_struct *remove_vma
  	return next;
  }
  
@@ -83,7 +83,7 @@
  {
  	unsigned long rlim, retval;
  	unsigned long newbrk, oldbrk;
-@@ -1915,7 +1915,7 @@ int do_munmap(struct mm_struct *mm, unsi
+@@ -1894,7 +1894,7 @@ int do_munmap(struct mm_struct *mm, unsi
  
  EXPORT_SYMBOL(do_munmap);
  
@@ -92,10 +92,10 @@
  {
  	int ret;
  	struct mm_struct *mm = current->mm;
-diff -urpN linux-source-2.6.26.orig/mm/mprotect.c linux-source-2.6.26/mm/mprotect.c
---- linux-source-2.6.26.orig/mm/mprotect.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/mm/mprotect.c	2009-01-19 12:24:06.000000000 -0700
-@@ -218,8 +218,8 @@ fail:
+diff -urpN linux-source-2.6.24.orig/mm/mprotect.c linux-source-2.6.24/mm/mprotect.c
+--- linux-source-2.6.24.orig/mm/mprotect.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/mprotect.c	2009-01-21 01:09:12.000000000 -0700
+@@ -211,8 +211,8 @@ fail:
  	return error;
  }
  
@@ -106,9 +106,9 @@
  {
  	unsigned long vm_flags, nstart, end, tmp, reqprot;
  	struct vm_area_struct *vma, *prev;
-diff -urpN linux-source-2.6.26.orig/mm/mremap.c linux-source-2.6.26/mm/mremap.c
---- linux-source-2.6.26.orig/mm/mremap.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/mm/mremap.c	2009-01-19 12:24:06.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/mremap.c linux-source-2.6.24/mm/mremap.c
+--- linux-source-2.6.24.orig/mm/mremap.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/mm/mremap.c	2009-01-21 01:09:12.000000000 -0700
 @@ -412,9 +412,9 @@ out_nc:
  	return ret;
  }
@@ -122,9 +122,9 @@
  {
  	unsigned long ret;
  
-diff -urpN linux-source-2.6.26.orig/mm/msync.c linux-source-2.6.26/mm/msync.c
---- linux-source-2.6.26.orig/mm/msync.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/msync.c	2009-01-19 12:24:06.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/msync.c linux-source-2.6.24/mm/msync.c
+--- linux-source-2.6.24.orig/mm/msync.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/msync.c	2009-01-21 01:09:12.000000000 -0700
 @@ -28,7 +28,7 @@
   * So by _not_ starting I/O in MS_ASYNC we provide complete flexibility to
   * applications.
@@ -134,10 +134,10 @@
  {
  	unsigned long end;
  	struct mm_struct *mm = current->mm;
-diff -urpN linux-source-2.6.26.orig/mm/nommu.c linux-source-2.6.26/mm/nommu.c
---- linux-source-2.6.26.orig/mm/nommu.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/mm/nommu.c	2009-01-19 12:24:06.000000000 -0700
-@@ -334,7 +334,7 @@ EXPORT_SYMBOL(vm_insert_page);
+diff -urpN linux-source-2.6.24.orig/mm/nommu.c linux-source-2.6.24/mm/nommu.c
+--- linux-source-2.6.24.orig/mm/nommu.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/mm/nommu.c	2009-01-21 01:09:12.000000000 -0700
+@@ -295,7 +295,7 @@ EXPORT_SYMBOL(vm_insert_page);
   *  to a regular file.  in this case, the unmapping will need
   *  to invoke file system routines that need the global lock.
   */
@@ -146,7 +146,7 @@
  {
  	struct mm_struct *mm = current->mm;
  
-@@ -1149,7 +1149,7 @@ int do_munmap(struct mm_struct *mm, unsi
+@@ -1099,7 +1099,7 @@ int do_munmap(struct mm_struct *mm, unsi
  }
  EXPORT_SYMBOL(do_munmap);
  
@@ -155,7 +155,7 @@
  {
  	int ret;
  	struct mm_struct *mm = current->mm;
-@@ -1240,9 +1240,9 @@ unsigned long do_mremap(unsigned long ad
+@@ -1190,9 +1190,9 @@ unsigned long do_mremap(unsigned long ad
  }
  EXPORT_SYMBOL(do_mremap);
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
---- linux-source-2.6.26.orig/fs/namei.c	2009-01-10 05:42:11.000000000 -0700
-+++ linux-source-2.6.26/fs/namei.c	2009-01-19 12:25:45.000000000 -0700
-@@ -2138,7 +2138,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
+--- linux-source-2.6.24.orig/fs/namei.c	2008-10-10 00:11:30.000000000 -0600
++++ linux-source-2.6.24/fs/namei.c	2009-01-21 01:10:50.000000000 -0700
+@@ -2007,7 +2007,7 @@ out:
  	return error;
  }
  
@@ -24,7 +24,7 @@
  {
  	return sys_mknodat(AT_FDCWD, filename, mode, dev);
  }
-@@ -2419,7 +2419,7 @@ asmlinkage long sys_unlinkat(int dfd, co
+@@ -2273,7 +2273,7 @@ asmlinkage long sys_unlinkat(int dfd, co
  	return do_unlinkat(dfd, pathname);
  }
  
@@ -33,7 +33,7 @@
  {
  	return do_unlinkat(AT_FDCWD, pathname);
  }
-@@ -2487,7 +2487,7 @@ out_putname:
+@@ -2336,7 +2336,7 @@ out_putname:
  	return error;
  }
  
@@ -42,7 +42,7 @@
  {
  	return sys_symlinkat(oldname, AT_FDCWD, newname);
  }
-@@ -2589,7 +2589,7 @@ exit:
+@@ -2433,7 +2433,7 @@ exit:
  	return error;
  }
  
@@ -51,10 +51,10 @@
  {
  	return sys_linkat(AT_FDCWD, oldname, AT_FDCWD, newname, 0);
  }
-diff -urpN linux-source-2.6.26.orig/fs/namespace.c linux-source-2.6.26/fs/namespace.c
---- linux-source-2.6.26.orig/fs/namespace.c	2009-01-19 12:15:07.000000000 -0700
-+++ linux-source-2.6.26/fs/namespace.c	2009-01-19 12:25:45.000000000 -0700
-@@ -2171,8 +2171,8 @@ static void chroot_fs_refs(struct path *
+diff -urpN linux-source-2.6.24.orig/fs/namespace.c linux-source-2.6.24/fs/namespace.c
+--- linux-source-2.6.24.orig/fs/namespace.c	2009-01-21 01:03:35.000000000 -0700
++++ linux-source-2.6.24/fs/namespace.c	2009-01-21 01:10:50.000000000 -0700
+@@ -1682,8 +1682,8 @@ static void chroot_fs_refs(struct nameid
   *    though, so you may need to say mount --bind /nfs/my_root /nfs/my_root
   *    first.
   */
@@ -64,11 +64,11 @@
 +		const char __user *, put_old)
  {
  	struct vfsmount *tmp;
- 	struct nameidata new_nd, old_nd;
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:18:41.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:25:45.000000000 -0700
-@@ -562,7 +562,7 @@ out:
+ 	struct nameidata new_nd, old_nd, parent_nd, root_parent, user_nd;
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:04:04.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:10:50.000000000 -0700
+@@ -547,7 +547,7 @@ out:
  	return error;
  }
  
@@ -77,9 +77,9 @@
  {
  	struct nameidata nd;
  	int error;
-diff -urpN linux-source-2.6.26.orig/mm/madvise.c linux-source-2.6.26/mm/madvise.c
---- linux-source-2.6.26.orig/mm/madvise.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/madvise.c	2009-01-19 12:25:45.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/madvise.c linux-source-2.6.24/mm/madvise.c
+--- linux-source-2.6.24.orig/mm/madvise.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/madvise.c	2009-01-21 01:10:50.000000000 -0700
 @@ -281,7 +281,7 @@ madvise_vma(struct vm_area_struct *vma, 
   *  -EBADF  - map exists, but area maps something that isn't a file.
   *  -EAGAIN - a kernel resource was temporarily unavailable.
@@ -89,9 +89,9 @@
  {
  	unsigned long end, tmp;
  	struct vm_area_struct * vma, *prev;
-diff -urpN linux-source-2.6.26.orig/mm/mincore.c linux-source-2.6.26/mm/mincore.c
---- linux-source-2.6.26.orig/mm/mincore.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/mincore.c	2009-01-19 12:25:45.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/mm/mincore.c linux-source-2.6.24/mm/mincore.c
+--- linux-source-2.6.24.orig/mm/mincore.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/mincore.c	2009-01-21 01:10:50.000000000 -0700
 @@ -177,8 +177,8 @@ none_mapped:
   *		mapped
   *  -EAGAIN - A kernel resource was temporarily unavailable.
@@ -103,10 +103,10 @@
  {
  	long retval;
  	unsigned long pages;
-diff -urpN linux-source-2.6.26.orig/mm/mlock.c linux-source-2.6.26/mm/mlock.c
---- linux-source-2.6.26.orig/mm/mlock.c	2009-01-19 12:24:06.000000000 -0700
-+++ linux-source-2.6.26/mm/mlock.c	2009-01-19 12:25:45.000000000 -0700
-@@ -193,7 +193,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/mm/mlock.c linux-source-2.6.24/mm/mlock.c
+--- linux-source-2.6.24.orig/mm/mlock.c	2009-01-21 01:09:12.000000000 -0700
++++ linux-source-2.6.24/mm/mlock.c	2009-01-21 01:10:50.000000000 -0700
+@@ -195,7 +195,7 @@ out:
  	return 0;
  }
  
@@ -115,7 +115,7 @@
  {
  	unsigned long lock_limit;
  	int ret = -EINVAL;
-@@ -219,7 +219,7 @@ out:
+@@ -221,7 +221,7 @@ out:
  	return ret;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/fcntl.c linux-source-2.6.26/fs/fcntl.c
---- linux-source-2.6.26.orig/fs/fcntl.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/fcntl.c	2009-01-19 12:26:42.000000000 -0700
-@@ -126,7 +126,7 @@ static int dupfd(struct file *file, unsi
+diff -urpN linux-source-2.6.24.orig/fs/fcntl.c linux-source-2.6.24/fs/fcntl.c
+--- linux-source-2.6.24.orig/fs/fcntl.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/fcntl.c	2009-01-21 01:11:17.000000000 -0700
+@@ -137,7 +137,7 @@ static int dupfd(struct file *file, unsi
  	return fd;
  }
  
@@ -24,7 +24,7 @@
  {
  	int err = -EBADF;
  	struct file * file, *tofree;
-@@ -182,7 +182,7 @@ out_fput:
+@@ -193,7 +193,7 @@ out_fput:
  	goto out;
  }
  
@@ -33,7 +33,7 @@
  {
  	int ret = -EBADF;
  	struct file * file = fget(fildes);
-@@ -376,7 +376,7 @@ static long do_fcntl(int fd, unsigned in
+@@ -387,7 +387,7 @@ static long do_fcntl(int fd, unsigned in
  	return err;
  }
  
@@ -42,7 +42,7 @@
  {	
  	struct file *filp;
  	long err = -EBADF;
-@@ -399,7 +399,8 @@ out:
+@@ -410,7 +410,8 @@ out:
  }
  
  #if BITS_PER_LONG == 32
@@ -52,22 +52,22 @@
  {	
  	struct file * filp;
  	long err;
-diff -urpN linux-source-2.6.26.orig/fs/ioctl.c linux-source-2.6.26/fs/ioctl.c
---- linux-source-2.6.26.orig/fs/ioctl.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/ioctl.c	2009-01-19 12:26:42.000000000 -0700
-@@ -191,7 +191,7 @@ int do_vfs_ioctl(struct file *filp, unsi
+diff -urpN linux-source-2.6.24.orig/fs/ioctl.c linux-source-2.6.24/fs/ioctl.c
+--- linux-source-2.6.24.orig/fs/ioctl.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/ioctl.c	2009-01-21 01:11:17.000000000 -0700
+@@ -154,7 +154,7 @@ int vfs_ioctl(struct file *filp, unsigne
  	return error;
  }
  
 -asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
 +SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)
  {
- 	struct file *filp;
+ 	struct file * filp;
  	int error = -EBADF;
-diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
---- linux-source-2.6.26.orig/fs/namei.c	2009-01-19 12:25:45.000000000 -0700
-+++ linux-source-2.6.26/fs/namei.c	2009-01-19 12:26:42.000000000 -0700
-@@ -2841,7 +2841,7 @@ asmlinkage long sys_renameat(int olddfd,
+diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
+--- linux-source-2.6.24.orig/fs/namei.c	2009-01-21 01:10:50.000000000 -0700
++++ linux-source-2.6.24/fs/namei.c	2009-01-21 01:11:17.000000000 -0700
+@@ -2681,7 +2681,7 @@ asmlinkage long sys_renameat(int olddfd,
  	return error;
  }
  
@@ -76,10 +76,10 @@
  {
  	return sys_renameat(AT_FDCWD, oldname, AT_FDCWD, newname);
  }
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:25:45.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:26:42.000000000 -0700
-@@ -588,7 +588,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:10:50.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:11:17.000000000 -0700
+@@ -573,7 +573,7 @@ out:
  	return error;
  }
  
@@ -88,7 +88,7 @@
  {
  	struct inode * inode;
  	struct dentry * dentry;
-@@ -664,7 +664,7 @@ out:
+@@ -645,7 +645,7 @@ out:
  	return error;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/aio.c linux-source-2.6.26/fs/aio.c
---- linux-source-2.6.26.orig/fs/aio.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/aio.c	2009-01-19 12:30:49.000000000 -0700
-@@ -1260,7 +1260,7 @@ static void io_destroy(struct kioctx *io
+diff -urpN linux-source-2.6.24.orig/fs/aio.c linux-source-2.6.24/fs/aio.c
+--- linux-source-2.6.24.orig/fs/aio.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/fs/aio.c	2009-01-21 01:11:46.000000000 -0700
+@@ -1247,7 +1247,7 @@ static void io_destroy(struct kioctx *io
   *	pointer is passed for ctxp.  Will fail with -ENOSYS if not
   *	implemented.
   */
@@ -24,7 +24,7 @@
  {
  	struct kioctx *ioctx = NULL;
  	unsigned long ctx;
-@@ -1298,7 +1298,7 @@ out:
+@@ -1285,7 +1285,7 @@ out:
   *	implemented.  May fail with -EFAULT if the context pointed to
   *	is invalid.
   */
@@ -33,7 +33,7 @@
  {
  	struct kioctx *ioctx = lookup_ioctx(ctx);
  	if (likely(NULL != ioctx)) {
-@@ -1652,8 +1652,8 @@ out_put_req:
+@@ -1628,8 +1628,8 @@ out_put_req:
   *	are available to queue any iocbs.  Will return 0 if nr is 0.  Will
   *	fail with -ENOSYS if not implemented.
   */
@@ -44,7 +44,7 @@
  {
  	struct kioctx *ctx;
  	long ret = 0;
-@@ -1727,8 +1727,8 @@ static struct kiocb *lookup_kiocb(struct
+@@ -1703,8 +1703,8 @@ static struct kiocb *lookup_kiocb(struct
   *	invalid.  May fail with -EAGAIN if the iocb specified was not
   *	cancelled.  Will fail with -ENOSYS if not implemented.
   */
@@ -55,7 +55,7 @@
  {
  	int (*cancel)(struct kiocb *iocb, struct io_event *res);
  	struct kioctx *ctx;
-@@ -1789,11 +1789,11 @@ asmlinkage long sys_io_cancel(aio_contex
+@@ -1765,11 +1765,11 @@ asmlinkage long sys_io_cancel(aio_contex
   *	will be updated if not NULL and the operation blocks.  Will fail
   *	with -ENOSYS if not implemented.
   */
@@ -72,10 +72,10 @@
  {
  	struct kioctx *ioctx = lookup_ioctx(ctx_id);
  	long ret = -EINVAL;
-diff -urpN linux-source-2.6.26.orig/fs/locks.c linux-source-2.6.26/fs/locks.c
---- linux-source-2.6.26.orig/fs/locks.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/locks.c	2009-01-19 12:30:49.000000000 -0700
-@@ -1564,7 +1564,7 @@ EXPORT_SYMBOL(flock_lock_file_wait);
+diff -urpN linux-source-2.6.24.orig/fs/locks.c linux-source-2.6.24/fs/locks.c
+--- linux-source-2.6.24.orig/fs/locks.c	2008-10-10 00:11:29.000000000 -0600
++++ linux-source-2.6.24/fs/locks.c	2009-01-21 01:11:46.000000000 -0700
+@@ -1571,7 +1571,7 @@ EXPORT_SYMBOL(flock_lock_file_wait);
   *	%LOCK_MAND can be combined with %LOCK_READ or %LOCK_WRITE to allow other
   *	processes read and write access respectively.
   */
@@ -84,10 +84,10 @@
  {
  	struct file *filp;
  	struct file_lock *lock;
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:26:42.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:30:49.000000000 -0700
-@@ -1155,7 +1155,7 @@ asmlinkage long sys_openat(int dfd, cons
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:11:17.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:11:46.000000000 -0700
+@@ -1102,7 +1102,7 @@ asmlinkage long sys_openat(int dfd, cons
   * For backward compatibility?  Maybe this should be moved
   * into arch/i386 instead?
   */
@@ -96,10 +96,10 @@
  {
  	return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);
  }
-diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
---- linux-source-2.6.26.orig/fs/read_write.c	2009-01-19 11:55:54.000000000 -0700
-+++ linux-source-2.6.26/fs/read_write.c	2009-01-19 12:30:49.000000000 -0700
-@@ -809,7 +809,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
+--- linux-source-2.6.24.orig/fs/read_write.c	2009-01-21 00:50:44.000000000 -0700
++++ linux-source-2.6.24/fs/read_write.c	2009-01-21 01:11:46.000000000 -0700
+@@ -824,7 +824,7 @@ out:
  	return retval;
  }
  
@@ -108,7 +108,7 @@
  {
  	loff_t pos;
  	off_t off;
-@@ -828,7 +828,7 @@ asmlinkage long sys_sendfile(int out_fd,
+@@ -843,7 +843,7 @@ asmlinkage long sys_sendfile(int out_fd,
  	return do_sendfile(out_fd, in_fd, NULL, count, 0);
  }
  
@@ -117,10 +117,10 @@
  {
  	loff_t pos;
  	ssize_t ret;
-diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
---- linux-source-2.6.26.orig/fs/stat.c	2009-01-19 12:18:41.000000000 -0700
-+++ linux-source-2.6.26/fs/stat.c	2009-01-19 12:30:49.000000000 -0700
-@@ -320,8 +320,8 @@ asmlinkage long sys_readlinkat(int dfd, 
+diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
+--- linux-source-2.6.24.orig/fs/stat.c	2009-01-21 01:04:04.000000000 -0700
++++ linux-source-2.6.24/fs/stat.c	2009-01-21 01:11:46.000000000 -0700
+@@ -319,8 +319,8 @@ asmlinkage long sys_readlinkat(int dfd, 
  	return error;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:30:49.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:31:38.000000000 -0700
-@@ -509,7 +509,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:11:46.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:12:18.000000000 -0700
+@@ -490,7 +490,7 @@ out:
  	return res;
  }
  
@@ -24,7 +24,7 @@
  {
  	return sys_faccessat(AT_FDCWD, filename, mode);
  }
-@@ -702,7 +702,7 @@ out:
+@@ -686,7 +686,7 @@ out:
  	return error;
  }
  
@@ -33,7 +33,7 @@
  {
  	struct nameidata nd;
  	int error;
-@@ -746,7 +746,7 @@ out:
+@@ -720,7 +720,7 @@ out:
  	return error;
  }
  
@@ -42,7 +42,7 @@
  {
  	struct nameidata nd;
  	int error;
-@@ -765,8 +765,7 @@ out:
+@@ -734,8 +734,7 @@ out:
  	return error;
  }
  
@@ -52,7 +52,7 @@
  {
  	struct file * file;
  	int error = -EBADF;
-@@ -1122,7 +1121,7 @@ long do_sys_open(int dfd, const char __u
+@@ -1068,7 +1067,7 @@ long do_sys_open(int dfd, const char __u
  	return fd;
  }
  
@@ -61,7 +61,7 @@
  {
  	long ret;
  
-@@ -1191,7 +1190,7 @@ EXPORT_SYMBOL(filp_close);
+@@ -1138,7 +1137,7 @@ EXPORT_SYMBOL(filp_close);
   * releasing the fd. This ensures that one clone task can't release
   * an fd while another clone is opening it.
   */
@@ -70,7 +70,7 @@
  {
  	struct file * filp;
  	struct files_struct *files = current->files;
-@@ -1224,14 +1223,13 @@ out_unlock:
+@@ -1171,14 +1170,13 @@ out_unlock:
  	spin_unlock(&files->file_lock);
  	return -EBADF;
  }
@@ -86,9 +86,9 @@
  {
  	if (capable(CAP_SYS_TTY_CONFIG)) {
  		/* XXX: this needs locking */
-diff -urpN linux-source-2.6.26.orig/kernel/uid16.c linux-source-2.6.26/kernel/uid16.c
---- linux-source-2.6.26.orig/kernel/uid16.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/uid16.c	2009-01-19 12:31:38.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/kernel/uid16.c linux-source-2.6.24/kernel/uid16.c
+--- linux-source-2.6.24.orig/kernel/uid16.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/uid16.c	2009-01-21 01:12:18.000000000 -0700
 @@ -17,7 +17,7 @@
  
  #include <asm/uaccess.h>

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch	Wed Jan 21 08:39:04 2009
@@ -10,11 +10,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
---- linux-source-2.6.26.orig/fs/read_write.c	2009-01-19 12:30:49.000000000 -0700
-+++ linux-source-2.6.26/fs/read_write.c	2009-01-19 12:32:59.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
+--- linux-source-2.6.24.orig/fs/read_write.c	2009-01-21 01:11:46.000000000 -0700
++++ linux-source-2.6.24/fs/read_write.c	2009-01-21 01:13:03.000000000 -0700
 @@ -128,7 +128,7 @@ loff_t vfs_llseek(struct file *file, lof
  }
  EXPORT_SYMBOL(vfs_llseek);
@@ -37,10 +37,10 @@
  {
  	int retval;
  	struct file * file;
-diff -urpN linux-source-2.6.26.orig/fs/utimes.c linux-source-2.6.26/fs/utimes.c
---- linux-source-2.6.26.orig/fs/utimes.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/utimes.c	2009-01-19 12:32:59.000000000 -0700
-@@ -24,7 +24,7 @@
+diff -urpN linux-source-2.6.24.orig/fs/utimes.c linux-source-2.6.24/fs/utimes.c
+--- linux-source-2.6.24.orig/fs/utimes.c	2008-10-10 00:11:29.000000000 -0600
++++ linux-source-2.6.24/fs/utimes.c	2009-01-21 01:13:03.000000000 -0700
+@@ -22,7 +22,7 @@
   * must be owner or have write permission.
   * Else, update from *times, must be owner or super user.
   */
@@ -49,7 +49,7 @@
  {
  	struct timespec tv[2];
  
-@@ -211,7 +211,8 @@ asmlinkage long sys_futimesat(int dfd, c
+@@ -207,7 +207,8 @@ asmlinkage long sys_futimesat(int dfd, c
  	return do_utimes(dfd, filename, utimes ? tstimes : NULL, 0);
  }
  
@@ -59,9 +59,9 @@
  {
  	return sys_futimesat(AT_FDCWD, filename, utimes);
  }
-diff -urpN linux-source-2.6.26.orig/kernel/uid16.c linux-source-2.6.26/kernel/uid16.c
---- linux-source-2.6.26.orig/kernel/uid16.c	2009-01-19 12:32:45.000000000 -0700
-+++ linux-source-2.6.26/kernel/uid16.c	2009-01-19 12:32:59.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/kernel/uid16.c linux-source-2.6.24/kernel/uid16.c
+--- linux-source-2.6.24.orig/kernel/uid16.c	2009-01-21 01:12:46.000000000 -0700
++++ linux-source-2.6.24/kernel/uid16.c	2009-01-21 01:13:03.000000000 -0700
 @@ -160,7 +160,7 @@ static int groups16_from_user(struct gro
  	return 0;
  }

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/dcache.c linux-source-2.6.26/fs/dcache.c
---- linux-source-2.6.26.orig/fs/dcache.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/dcache.c	2009-01-19 12:33:56.000000000 -0700
-@@ -1956,7 +1956,7 @@ Elong:
+diff -urpN linux-source-2.6.24.orig/fs/dcache.c linux-source-2.6.24/fs/dcache.c
+--- linux-source-2.6.24.orig/fs/dcache.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/fs/dcache.c	2009-01-21 01:13:36.000000000 -0700
+@@ -1913,7 +1913,7 @@ char *dynamic_dname(struct dentry *dentr
   *		return NULL;
   *	}
   */
@@ -23,11 +23,11 @@
 +SYSCALL_DEFINE2(getcwd, char __user *, buf, unsigned long, size)
  {
  	int error;
- 	struct path pwd, root;
-diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
---- linux-source-2.6.26.orig/fs/namei.c	2009-01-19 12:26:42.000000000 -0700
-+++ linux-source-2.6.26/fs/namei.c	2009-01-19 12:33:56.000000000 -0700
-@@ -2203,7 +2203,7 @@ out_err:
+ 	struct vfsmount *pwdmnt, *rootmnt;
+diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
+--- linux-source-2.6.24.orig/fs/namei.c	2009-01-21 01:11:17.000000000 -0700
++++ linux-source-2.6.24/fs/namei.c	2009-01-21 01:13:36.000000000 -0700
+@@ -2067,7 +2067,7 @@ out_err:
  	return error;
  }
  
@@ -36,7 +36,7 @@
  {
  	return sys_mkdirat(AT_FDCWD, pathname, mode);
  }
-@@ -2315,7 +2315,7 @@ exit:
+@@ -2174,7 +2174,7 @@ exit:
  	return error;
  }
  
@@ -45,10 +45,10 @@
  {
  	return do_rmdir(AT_FDCWD, pathname);
  }
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:31:38.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:33:56.000000000 -0700
-@@ -514,7 +514,7 @@ SYSCALL_DEFINE2(access, const char __use
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:12:18.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:13:36.000000000 -0700
+@@ -495,7 +495,7 @@ SYSCALL_DEFINE2(access, const char __use
  	return sys_faccessat(AT_FDCWD, filename, mode);
  }
  
@@ -57,7 +57,7 @@
  {
  	struct nameidata nd;
  	int error;
-@@ -536,7 +536,7 @@ out:
+@@ -517,7 +517,7 @@ out:
  	return error;
  }
  
@@ -65,11 +65,11 @@
 +SYSCALL_DEFINE1(fchdir, unsigned int, fd)
  {
  	struct file *file;
- 	struct inode *inode;
-diff -urpN linux-source-2.6.26.orig/fs/quota.c linux-source-2.6.26/fs/quota.c
---- linux-source-2.6.26.orig/fs/quota.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/quota.c	2009-01-19 12:33:56.000000000 -0700
-@@ -362,7 +362,8 @@ static inline struct super_block *quotac
+ 	struct dentry *dentry;
+diff -urpN linux-source-2.6.24.orig/fs/quota.c linux-source-2.6.24/fs/quota.c
+--- linux-source-2.6.24.orig/fs/quota.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/quota.c	2009-01-21 01:13:36.000000000 -0700
+@@ -363,7 +363,8 @@ static inline struct super_block *quotac
   * calls. Maybe we need to add the process quotas etc. in the future,
   * but we probably should use rlimits for that.
   */
@@ -79,10 +79,10 @@
  {
  	uint cmds, type;
  	struct super_block *sb = NULL;
-diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
---- linux-source-2.6.26.orig/fs/read_write.c	2009-01-19 12:32:59.000000000 -0700
-+++ linux-source-2.6.26/fs/read_write.c	2009-01-19 12:33:56.000000000 -0700
-@@ -350,7 +350,7 @@ static inline void file_pos_write(struct
+diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
+--- linux-source-2.6.24.orig/fs/read_write.c	2009-01-21 01:13:03.000000000 -0700
++++ linux-source-2.6.24/fs/read_write.c	2009-01-21 01:13:36.000000000 -0700
+@@ -354,7 +354,7 @@ static inline void file_pos_write(struct
  	file->f_pos = pos;
  }
  
@@ -91,9 +91,9 @@
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -367,7 +367,8 @@ asmlinkage long sys_read(unsigned int fd
- 	return ret;
+@@ -372,7 +372,8 @@ asmlinkage long sys_read(unsigned int fd
  }
+ EXPORT_UNUSED_SYMBOL_GPL(sys_read); /* to be deleted for 2.6.25 */
  
 -asmlinkage long sys_write(unsigned int fd, const char __user * buf, size_t count)
 +SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf,
@@ -101,7 +101,7 @@
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -669,8 +670,8 @@ ssize_t vfs_writev(struct file *file, co
+@@ -676,8 +677,8 @@ ssize_t vfs_writev(struct file *file, co
  
  EXPORT_SYMBOL(vfs_writev);
  
@@ -112,7 +112,7 @@
  {
  	struct file *file;
  	ssize_t ret = -EBADF;
-@@ -690,8 +691,8 @@ sys_readv(unsigned long fd, const struct
+@@ -697,8 +698,8 @@ sys_readv(unsigned long fd, const struct
  	return ret;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/readdir.c linux-source-2.6.26/fs/readdir.c
---- linux-source-2.6.26.orig/fs/readdir.c	2009-01-19 11:17:08.000000000 -0700
-+++ linux-source-2.6.26/fs/readdir.c	2009-01-19 12:34:46.000000000 -0700
-@@ -183,7 +183,8 @@ efault:
+diff -urpN linux-source-2.6.24.orig/fs/readdir.c linux-source-2.6.24/fs/readdir.c
+--- linux-source-2.6.24.orig/fs/readdir.c	2009-01-21 00:13:05.000000000 -0700
++++ linux-source-2.6.24/fs/readdir.c	2009-01-21 01:14:06.000000000 -0700
+@@ -180,7 +180,8 @@ efault:
  	return -EFAULT;
  }
  
@@ -25,7 +25,7 @@
  {
  	struct file * file;
  	struct linux_dirent __user * lastdirent;
-@@ -267,7 +268,8 @@ efault:
+@@ -264,7 +265,8 @@ efault:
  	return -EFAULT;
  }
  
@@ -35,10 +35,10 @@
  {
  	struct file * file;
  	struct linux_dirent64 __user * lastdirent;
-diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
---- linux-source-2.6.26.orig/net/socket.c	2009-01-19 12:07:11.000000000 -0700
-+++ linux-source-2.6.26/net/socket.c	2009-01-19 12:34:46.000000000 -0700
-@@ -1338,7 +1338,7 @@ out_fd:
+diff -urpN linux-source-2.6.24.orig/net/socket.c linux-source-2.6.24/net/socket.c
+--- linux-source-2.6.24.orig/net/socket.c	2009-01-21 00:59:55.000000000 -0700
++++ linux-source-2.6.24/net/socket.c	2009-01-21 01:14:06.000000000 -0700
+@@ -1324,7 +1324,7 @@ out_fd:
   *	the protocol layer (having also checked the address is ok).
   */
  
@@ -47,7 +47,7 @@
  {
  	struct socket *sock;
  	char address[MAX_SOCK_ADDR];
-@@ -1400,8 +1400,8 @@ asmlinkage long sys_listen(int fd, int b
+@@ -1386,8 +1386,8 @@ asmlinkage long sys_listen(int fd, int b
   *	clean when we restucture accept also.
   */
  
@@ -58,7 +58,7 @@
  {
  	struct socket *sock, *newsock;
  	struct file *newfile;
-@@ -1490,8 +1490,8 @@ out_fd:
+@@ -1476,8 +1476,8 @@ out_fd:
   *	include the -EINPROGRESS status for such sockets.
   */
  
@@ -69,7 +69,7 @@
  {
  	struct socket *sock;
  	char address[MAX_SOCK_ADDR];
-@@ -1522,8 +1522,8 @@ out:
+@@ -1508,8 +1508,8 @@ out:
   *	name to user space.
   */
  
@@ -80,7 +80,7 @@
  {
  	struct socket *sock;
  	char address[MAX_SOCK_ADDR];
-@@ -1553,8 +1553,8 @@ out:
+@@ -1539,8 +1539,8 @@ out:
   *	name to user space.
   */
  
@@ -91,7 +91,7 @@
  {
  	struct socket *sock;
  	char address[MAX_SOCK_ADDR];
-@@ -1694,8 +1694,8 @@ asmlinkage long sys_recv(int fd, void __
+@@ -1691,8 +1691,8 @@ asmlinkage long sys_recv(int fd, void __
   *	to pass the user mode parameter for the protocols to sort out.
   */
  
@@ -102,7 +102,7 @@
  {
  	int err, fput_needed;
  	struct socket *sock;
-@@ -1728,8 +1728,8 @@ out_put:
+@@ -1725,8 +1725,8 @@ out_put:
   *	to pass a user mode parameter for the protocols to sort out.
   */
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
---- linux-source-2.6.26.orig/net/socket.c	2009-01-19 12:34:46.000000000 -0700
-+++ linux-source-2.6.26/net/socket.c	2009-01-19 12:42:27.000000000 -0700
-@@ -1213,7 +1213,7 @@ int sock_create_kern(int family, int typ
+diff -urpN linux-source-2.6.24.orig/net/socket.c linux-source-2.6.24/net/socket.c
+--- linux-source-2.6.24.orig/net/socket.c	2009-01-21 01:14:06.000000000 -0700
++++ linux-source-2.6.24/net/socket.c	2009-01-21 01:14:32.000000000 -0700
+@@ -1199,7 +1199,7 @@ int sock_create_kern(int family, int typ
  	return __sock_create(&init_net, family, type, protocol, res, 1);
  }
  
@@ -24,7 +24,7 @@
  {
  	int retval;
  	struct socket *sock;
-@@ -1239,8 +1239,8 @@ out_release:
+@@ -1225,8 +1225,8 @@ out_release:
   *	Create a pair of connected sockets.
   */
  
@@ -35,16 +35,16 @@
  {
  	struct socket *sock1, *sock2;
  	int fd1, fd2, err;
-@@ -1367,7 +1367,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so
-  *	ready for listening.
-  */
+@@ -1355,7 +1355,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so
+ 
+ int sysctl_somaxconn __read_mostly = SOMAXCONN;
  
 -asmlinkage long sys_listen(int fd, int backlog)
 +SYSCALL_DEFINE2(listen, int, fd, int, backlog)
  {
  	struct socket *sock;
  	int err, fput_needed;
-@@ -1585,9 +1585,9 @@ SYSCALL_DEFINE3(getpeername, int, fd, st
+@@ -1571,9 +1571,9 @@ SYSCALL_DEFINE3(getpeername, int, fd, st
   *	the protocol.
   */
  
@@ -57,7 +57,7 @@
  {
  	struct socket *sock;
  	char address[MAX_SOCK_ADDR];
-@@ -1630,7 +1630,8 @@ out:
+@@ -1621,7 +1621,8 @@ out:
   *	Send a datagram down a socket.
   */
  
@@ -67,7 +67,7 @@
  {
  	return sys_sendto(fd, buff, len, flags, NULL, 0);
  }
-@@ -1641,9 +1642,9 @@ asmlinkage long sys_send(int fd, void __
+@@ -1632,9 +1633,9 @@ asmlinkage long sys_send(int fd, void __
   *	sender address from kernel to user space.
   */
  
@@ -80,7 +80,7 @@
  {
  	struct socket *sock;
  	struct iovec iov;
-@@ -1784,7 +1785,7 @@ SYSCALL_DEFINE2(shutdown, int, fd, int, 
+@@ -1781,7 +1782,7 @@ SYSCALL_DEFINE2(shutdown, int, fd, int, 
   *	BSD sendmsg interface
   */
  
@@ -89,7 +89,7 @@
  {
  	struct compat_msghdr __user *msg_compat =
  	    (struct compat_msghdr __user *)msg;
-@@ -1886,8 +1887,8 @@ out:
+@@ -1883,8 +1884,8 @@ out:
   *	BSD recvmsg interface
   */
  
@@ -100,7 +100,7 @@
  {
  	struct compat_msghdr __user *msg_compat =
  	    (struct compat_msghdr __user *)msg;
-@@ -2004,7 +2005,7 @@ static const unsigned char nargs[18]={
+@@ -2001,7 +2002,7 @@ static const unsigned char nargs[18]={
   *  it is set by the callees.
   */
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/eventpoll.c linux-source-2.6.26/fs/eventpoll.c
---- linux-source-2.6.26.orig/fs/eventpoll.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/eventpoll.c	2009-01-19 12:46:21.000000000 -0700
-@@ -1046,7 +1046,7 @@ retry:
+diff -urpN linux-source-2.6.24.orig/fs/eventpoll.c linux-source-2.6.24/fs/eventpoll.c
+--- linux-source-2.6.24.orig/fs/eventpoll.c	2008-10-10 00:11:27.000000000 -0600
++++ linux-source-2.6.24/fs/eventpoll.c	2009-01-21 01:15:04.000000000 -0700
+@@ -1070,7 +1070,7 @@ retry:
   * RB tree. With the current implementation, the "size" parameter is ignored
   * (besides sanity checks).
   */
@@ -24,7 +24,7 @@
  {
  	int error, fd = -1;
  	struct eventpoll *ep;
-@@ -1084,8 +1084,8 @@ error_return:
+@@ -1115,8 +1115,8 @@ error_return:
   * the eventpoll file that enables the insertion/removal/change of
   * file descriptors inside the interest set.
   */
@@ -35,7 +35,7 @@
  {
  	int error;
  	struct file *file, *tfile;
-@@ -1182,8 +1182,8 @@ error_return:
+@@ -1213,8 +1213,8 @@ error_return:
   * Implement the event wait interface for the eventpoll file. It is the kernel
   * part of the user space epoll_wait(2).
   */
@@ -46,7 +46,7 @@
  {
  	int error;
  	struct file *file;
-@@ -1240,9 +1240,9 @@ error_return:
+@@ -1271,9 +1271,9 @@ error_return:
   * Implement the event wait interface for the eventpoll file. It is the kernel
   * part of the user space epoll_pwait(2).
   */
@@ -59,10 +59,10 @@
  {
  	int error;
  	sigset_t ksigmask, sigsaved;
-diff -urpN linux-source-2.6.26.orig/fs/select.c linux-source-2.6.26/fs/select.c
---- linux-source-2.6.26.orig/fs/select.c	2009-01-19 11:42:04.000000000 -0700
-+++ linux-source-2.6.26/fs/select.c	2009-01-19 12:43:21.000000000 -0700
-@@ -374,8 +374,8 @@ out_nofds:
+diff -urpN linux-source-2.6.24.orig/fs/select.c linux-source-2.6.24/fs/select.c
+--- linux-source-2.6.24.orig/fs/select.c	2009-01-21 00:41:11.000000000 -0700
++++ linux-source-2.6.24/fs/select.c	2009-01-21 01:15:04.000000000 -0700
+@@ -373,8 +373,8 @@ out_nofds:
  	return ret;
  }
  
@@ -73,7 +73,7 @@
  {
  	s64 timeout = -1;
  	struct timeval tv;
-@@ -727,8 +727,8 @@ static long do_restart_poll(struct resta
+@@ -726,8 +726,8 @@ static long do_restart_poll(struct resta
  	return ret;
  }
  
@@ -84,10 +84,10 @@
  {
  	s64 timeout_jiffies;
  	int ret;
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 12:07:11.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 12:43:21.000000000 -0700
-@@ -1357,7 +1357,7 @@ asmlinkage long sys_newuname(struct new_
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 00:59:55.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 01:15:04.000000000 -0700
+@@ -1354,7 +1354,7 @@ asmlinkage long sys_newuname(struct new_
  	return errno;
  }
  
@@ -96,7 +96,7 @@
  {
  	int errno;
  	char tmp[__NEW_UTS_LEN];
-@@ -1379,7 +1379,7 @@ asmlinkage long sys_sethostname(char __u
+@@ -1376,7 +1376,7 @@ asmlinkage long sys_sethostname(char __u
  
  #ifdef __ARCH_WANT_SYS_GETHOSTNAME
  
@@ -105,7 +105,7 @@
  {
  	int i, errno;
  
-@@ -1402,7 +1402,7 @@ asmlinkage long sys_gethostname(char __u
+@@ -1399,7 +1399,7 @@ asmlinkage long sys_gethostname(char __u
   * Only setdomainname; getdomainname can be implemented by calling
   * uname()
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/ipc/msg.c linux-source-2.6.26/ipc/msg.c
---- linux-source-2.6.26.orig/ipc/msg.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/ipc/msg.c	2009-01-19 12:47:29.000000000 -0700
-@@ -309,7 +309,7 @@ static inline int msg_security(struct ke
+diff -urpN linux-source-2.6.24.orig/ipc/msg.c linux-source-2.6.24/ipc/msg.c
+--- linux-source-2.6.24.orig/ipc/msg.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/ipc/msg.c	2009-01-21 01:15:34.000000000 -0700
+@@ -310,7 +310,7 @@ static inline int msg_security(struct ke
  	return security_msg_queue_associate(msq, msgflg);
  }
  
@@ -24,16 +24,16 @@
  {
  	struct ipc_namespace *ns;
  	struct ipc_ops msg_ops;
-@@ -466,7 +466,7 @@ out_up:
- 	return err;
+@@ -421,7 +421,7 @@ copy_msqid_from_user(struct msq_setbuf *
+ 	}
  }
  
 -asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf)
 +SYSCALL_DEFINE3(msgctl, int, msqid, int, cmd, struct msqid_ds __user *, buf)
  {
- 	struct msg_queue *msq;
- 	int err, version;
-@@ -723,8 +723,8 @@ out_free:
+ 	struct kern_ipc_perm *ipcp;
+ 	struct msq_setbuf uninitialized_var(setbuf);
+@@ -749,8 +749,8 @@ out_free:
  	return err;
  }
  
@@ -44,7 +44,7 @@
  {
  	long mtype;
  
-@@ -904,8 +904,8 @@ out_unlock:
+@@ -930,8 +930,8 @@ out_unlock:
  	return msgsz;
  }
  
@@ -55,10 +55,10 @@
  {
  	long err, mtype;
  
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 12:43:21.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 12:47:29.000000000 -0700
-@@ -1346,7 +1346,7 @@ DECLARE_RWSEM(uts_sem);
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 01:15:04.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 01:15:34.000000000 -0700
+@@ -1343,7 +1343,7 @@ DECLARE_RWSEM(uts_sem);
  
  EXPORT_SYMBOL(uts_sem);
  
@@ -67,7 +67,7 @@
  {
  	int errno = 0;
  
-@@ -1423,7 +1423,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
+@@ -1420,7 +1420,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
  	return errno;
  }
  
@@ -76,7 +76,7 @@
  {
  	if (resource >= RLIM_NLIMITS)
  		return -EINVAL;
-@@ -1442,7 +1442,8 @@ asmlinkage long sys_getrlimit(unsigned i
+@@ -1439,7 +1439,8 @@ asmlinkage long sys_getrlimit(unsigned i
   *	Back compatibility for getrlimit. Needed for some apps.
   */
   
@@ -86,7 +86,7 @@
  {
  	struct rlimit x;
  	if (resource >= RLIM_NLIMITS)
-@@ -1460,7 +1461,7 @@ asmlinkage long sys_old_getrlimit(unsign
+@@ -1457,7 +1458,7 @@ asmlinkage long sys_old_getrlimit(unsign
  
  #endif
  
@@ -95,16 +95,15 @@
  {
  	struct rlimit new_rlim, *old_rlim;
  	unsigned long it_prof_secs;
-@@ -1636,7 +1637,7 @@ int getrusage(struct task_struct *p, int
+@@ -1626,14 +1627,14 @@ int getrusage(struct task_struct *p, int
  	return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;
  }
  
 -asmlinkage long sys_getrusage(int who, struct rusage __user *ru)
 +SYSCALL_DEFINE2(getrusage, int, who, struct rusage __user *, ru)
  {
- 	if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN &&
- 	    who != RUSAGE_THREAD)
-@@ -1644,7 +1645,7 @@ asmlinkage long sys_getrusage(int who, s
+ 	if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN)
+ 		return -EINVAL;
  	return getrusage(current, who, ru);
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/ipc/mqueue.c linux-source-2.6.26/ipc/mqueue.c
---- linux-source-2.6.26.orig/ipc/mqueue.c	2009-01-19 11:12:44.000000000 -0700
-+++ linux-source-2.6.26/ipc/mqueue.c	2009-01-19 12:48:20.000000000 -0700
-@@ -658,8 +658,8 @@ static int oflag2acc[O_ACCMODE] = { MAY_
+diff -urpN linux-source-2.6.24.orig/ipc/mqueue.c linux-source-2.6.24/ipc/mqueue.c
+--- linux-source-2.6.24.orig/ipc/mqueue.c	2009-01-21 00:05:39.000000000 -0700
++++ linux-source-2.6.24/ipc/mqueue.c	2009-01-21 01:16:11.000000000 -0700
+@@ -647,8 +647,8 @@ static int oflag2acc[O_ACCMODE] = { MAY_
  	return dentry_open(dentry, mqueue_mnt, oflag);
  }
  
@@ -26,7 +26,7 @@
  {
  	struct dentry *dentry;
  	struct file *filp;
-@@ -726,7 +726,7 @@ out_putname:
+@@ -716,7 +716,7 @@ out_putname:
  	return fd;
  }
  
@@ -35,10 +35,10 @@
  {
  	int err;
  	char *name;
-diff -urpN linux-source-2.6.26.orig/ipc/sem.c linux-source-2.6.26/ipc/sem.c
---- linux-source-2.6.26.orig/ipc/sem.c	2009-01-19 11:55:54.000000000 -0700
-+++ linux-source-2.6.26/ipc/sem.c	2009-01-19 12:48:20.000000000 -0700
-@@ -309,7 +309,7 @@ static inline int sem_more_checks(struct
+diff -urpN linux-source-2.6.24.orig/ipc/sem.c linux-source-2.6.24/ipc/sem.c
+--- linux-source-2.6.24.orig/ipc/sem.c	2009-01-21 00:50:44.000000000 -0700
++++ linux-source-2.6.24/ipc/sem.c	2009-01-21 01:16:11.000000000 -0700
+@@ -329,7 +329,7 @@ static inline int sem_more_checks(struct
  	return 0;
  }
  
@@ -47,7 +47,7 @@
  {
  	struct ipc_namespace *ns;
  	struct ipc_ops sem_ops;
-@@ -1046,8 +1046,8 @@ out:
+@@ -1121,8 +1121,8 @@ out:
  	return un;
  }
  
@@ -58,7 +58,7 @@
  {
  	int error = -EINVAL;
  	struct sem_array *sma;
-@@ -1210,7 +1210,8 @@ out_free:
+@@ -1285,7 +1285,8 @@ out_free:
  	return error;
  }
  
@@ -68,10 +68,10 @@
  {
  	return sys_semtimedop(semid, tsops, nsops, NULL);
  }
-diff -urpN linux-source-2.6.26.orig/ipc/shm.c linux-source-2.6.26/ipc/shm.c
---- linux-source-2.6.26.orig/ipc/shm.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/ipc/shm.c	2009-01-19 12:48:20.000000000 -0700
-@@ -455,7 +455,7 @@ static inline int shm_more_checks(struct
+diff -urpN linux-source-2.6.24.orig/ipc/shm.c linux-source-2.6.24/ipc/shm.c
+--- linux-source-2.6.24.orig/ipc/shm.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/ipc/shm.c	2009-01-21 01:16:37.000000000 -0700
+@@ -492,7 +492,7 @@ static inline int shm_more_checks(struct
  	return 0;
  }
  
@@ -80,16 +80,16 @@
  {
  	struct ipc_namespace *ns;
  	struct ipc_ops shm_ops;
-@@ -635,7 +635,7 @@ out_up:
- 	return err;
+@@ -641,7 +641,7 @@ static void shm_get_stat(struct ipc_name
+ 	}
  }
  
--asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
+-asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf)
 +SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
  {
+ 	struct shm_setbuf setbuf;
  	struct shmid_kernel *shp;
- 	int err, version;
-@@ -955,7 +955,7 @@ out_put_dentry:
+@@ -1048,7 +1048,7 @@ out_put_dentry:
  	goto out_nattch;
  }
  
@@ -98,7 +98,7 @@
  {
  	unsigned long ret;
  	long err;
-@@ -971,7 +971,7 @@ asmlinkage long sys_shmat(int shmid, cha
+@@ -1064,7 +1064,7 @@ asmlinkage long sys_shmat(int shmid, cha
   * detach and kill segment if marked destroyed.
   * The work is done in shm_close.
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch	Wed Jan 21 08:39:04 2009
@@ -10,11 +10,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/drivers/pci/syscall.c linux-source-2.6.26/drivers/pci/syscall.c
---- linux-source-2.6.26.orig/drivers/pci/syscall.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/drivers/pci/syscall.c	2009-01-19 12:49:03.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/drivers/pci/syscall.c linux-source-2.6.24/drivers/pci/syscall.c
+--- linux-source-2.6.24.orig/drivers/pci/syscall.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/drivers/pci/syscall.c	2009-01-21 01:17:17.000000000 -0700
 @@ -14,10 +14,8 @@
  #include <asm/uaccess.h>
  #include "pci.h"
@@ -28,7 +28,7 @@
  {
  	struct pci_dev *dev;
  	u8 byte;
-@@ -86,10 +84,8 @@ error:
+@@ -89,10 +87,8 @@ error:
  	return err;
  }
  
@@ -41,10 +41,10 @@
  {
  	struct pci_dev *dev;
  	u8 byte;
-diff -urpN linux-source-2.6.26.orig/ipc/mqueue.c linux-source-2.6.26/ipc/mqueue.c
---- linux-source-2.6.26.orig/ipc/mqueue.c	2009-01-19 12:48:20.000000000 -0700
-+++ linux-source-2.6.26/ipc/mqueue.c	2009-01-19 12:49:03.000000000 -0700
-@@ -819,9 +819,9 @@ static inline void pipelined_receive(str
+diff -urpN linux-source-2.6.24.orig/ipc/mqueue.c linux-source-2.6.24/ipc/mqueue.c
+--- linux-source-2.6.24.orig/ipc/mqueue.c	2009-01-21 01:16:11.000000000 -0700
++++ linux-source-2.6.24/ipc/mqueue.c	2009-01-21 01:17:17.000000000 -0700
+@@ -806,9 +806,9 @@ static inline void pipelined_receive(str
  	sender->state = STATE_READY;
  }
  
@@ -57,7 +57,7 @@
  {
  	struct file *filp;
  	struct inode *inode;
-@@ -907,9 +907,9 @@ out:
+@@ -894,9 +894,9 @@ out:
  	return ret;
  }
  
@@ -70,7 +70,7 @@
  {
  	long timeout;
  	ssize_t ret;
-@@ -992,8 +992,8 @@ out:
+@@ -979,8 +979,8 @@ out:
   * and he isn't currently owner of notification, will be silently discarded.
   * It isn't explicitly defined in the POSIX.
   */
@@ -81,7 +81,7 @@
  {
  	int ret;
  	struct file *filp;
-@@ -1118,9 +1118,9 @@ out:
+@@ -1105,9 +1105,9 @@ out:
  	return ret;
  }
  
@@ -94,24 +94,24 @@
  {
  	int ret;
  	struct mq_attr mqstat, omqstat;
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 12:47:29.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 12:49:03.000000000 -0700
-@@ -1651,8 +1651,8 @@ SYSCALL_DEFINE1(umask, int, mask)
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 01:15:34.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 01:18:10.000000000 -0700
+@@ -1640,8 +1640,8 @@ SYSCALL_DEFINE1(umask, int, mask)
  	return mask;
  }
- 
+     
 -asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
 -			  unsigned long arg4, unsigned long arg5)
 +SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
 +		unsigned long, arg4, unsigned long, arg5)
  {
- 	long error = 0;
+ 	long error;
  
-diff -urpN linux-source-2.6.26.orig/mm/swapfile.c linux-source-2.6.26/mm/swapfile.c
---- linux-source-2.6.26.orig/mm/swapfile.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/swapfile.c	2009-01-19 12:49:03.000000000 -0700
-@@ -1203,7 +1203,7 @@ int page_queue_congested(struct page *pa
+diff -urpN linux-source-2.6.24.orig/mm/swapfile.c linux-source-2.6.24/mm/swapfile.c
+--- linux-source-2.6.24.orig/mm/swapfile.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/swapfile.c	2009-01-21 01:17:17.000000000 -0700
+@@ -1172,7 +1172,7 @@ int page_queue_congested(struct page *pa
  }
  #endif
  
@@ -120,7 +120,7 @@
  {
  	struct swap_info_struct * p = NULL;
  	unsigned short *swap_map;
-@@ -1437,7 +1437,7 @@ __initcall(procswaps_init);
+@@ -1410,7 +1410,7 @@ __initcall(procswaps_init);
   *
   * The swapon system call
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/exec.c linux-source-2.6.26/fs/exec.c
---- linux-source-2.6.26.orig/fs/exec.c	2009-01-10 05:42:12.000000000 -0700
-+++ linux-source-2.6.26/fs/exec.c	2009-01-19 12:49:49.000000000 -0700
-@@ -106,7 +106,7 @@ static inline void put_binfmt(struct lin
+diff -urpN linux-source-2.6.24.orig/fs/exec.c linux-source-2.6.24/fs/exec.c
+--- linux-source-2.6.24.orig/fs/exec.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/exec.c	2009-01-21 01:18:48.000000000 -0700
+@@ -101,7 +101,7 @@ static inline void put_binfmt(struct lin
   *
   * Also note that we take the address to load from from the file itself.
   */
@@ -24,9 +24,9 @@
  {
  	struct file * file;
  	struct nameidata nd;
-diff -urpN linux-source-2.6.26.orig/fs/filesystems.c linux-source-2.6.26/fs/filesystems.c
---- linux-source-2.6.26.orig/fs/filesystems.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/filesystems.c	2009-01-19 12:49:49.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/filesystems.c linux-source-2.6.24/fs/filesystems.c
+--- linux-source-2.6.24.orig/fs/filesystems.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/filesystems.c	2009-01-21 01:18:48.000000000 -0700
 @@ -177,7 +177,7 @@ static int fs_maxindex(void)
  /*
   * Whee.. Weird sysv syscall. 
@@ -36,9 +36,9 @@
  {
  	int retval = -EINVAL;
  
-diff -urpN linux-source-2.6.26.orig/fs/nfsctl.c linux-source-2.6.26/fs/nfsctl.c
---- linux-source-2.6.26.orig/fs/nfsctl.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/nfsctl.c	2009-01-19 12:49:49.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/nfsctl.c linux-source-2.6.24/fs/nfsctl.c
+--- linux-source-2.6.24.orig/fs/nfsctl.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/nfsctl.c	2009-01-21 01:18:48.000000000 -0700
 @@ -82,8 +82,8 @@ static struct {
  	},
  };
@@ -50,10 +50,10 @@
  {
  	struct file *file;
  	void __user *p = &arg->u;
-diff -urpN linux-source-2.6.26.orig/kernel/printk.c linux-source-2.6.26/kernel/printk.c
---- linux-source-2.6.26.orig/kernel/printk.c	2009-01-19 11:44:54.000000000 -0700
-+++ linux-source-2.6.26/kernel/printk.c	2009-01-19 12:49:49.000000000 -0700
-@@ -432,7 +432,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/kernel/printk.c linux-source-2.6.24/kernel/printk.c
+--- linux-source-2.6.24.orig/kernel/printk.c	2009-01-21 00:42:57.000000000 -0700
++++ linux-source-2.6.24/kernel/printk.c	2009-01-21 01:18:48.000000000 -0700
+@@ -421,7 +421,7 @@ out:
  	return error;
  }
  
@@ -62,22 +62,22 @@
  {
  	return do_syslog(type, buf, len);
  }
-diff -urpN linux-source-2.6.26.orig/kernel/ptrace.c linux-source-2.6.26/kernel/ptrace.c
---- linux-source-2.6.26.orig/kernel/ptrace.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/ptrace.c	2009-01-19 12:49:49.000000000 -0700
-@@ -534,7 +534,7 @@ struct task_struct *ptrace_get_task_stru
- #define arch_ptrace_attach(child)	do { } while (0)
+diff -urpN linux-source-2.6.24.orig/kernel/ptrace.c linux-source-2.6.24/kernel/ptrace.c
+--- linux-source-2.6.24.orig/kernel/ptrace.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/kernel/ptrace.c	2009-01-21 01:19:33.000000000 -0700
+@@ -459,7 +459,7 @@ struct task_struct *ptrace_get_task_stru
  #endif
  
+ #ifndef __ARCH_SYS_PTRACE
 -asmlinkage long sys_ptrace(long request, long pid, long addr, long data)
 +SYSCALL_DEFINE4(ptrace, long, request, long, pid, long, addr, long, data)
  {
  	struct task_struct *child;
  	long ret;
-diff -urpN linux-source-2.6.26.orig/kernel/sysctl.c linux-source-2.6.26/kernel/sysctl.c
---- linux-source-2.6.26.orig/kernel/sysctl.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/kernel/sysctl.c	2009-01-19 12:49:49.000000000 -0700
-@@ -1533,7 +1533,7 @@ int do_sysctl(int __user *name, int nlen
+diff -urpN linux-source-2.6.24.orig/kernel/sysctl.c linux-source-2.6.24/kernel/sysctl.c
+--- linux-source-2.6.24.orig/kernel/sysctl.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/kernel/sysctl.c	2009-01-21 01:18:48.000000000 -0700
+@@ -1354,7 +1354,7 @@ int do_sysctl(int __user *name, int nlen
  	return error;
  }
  
@@ -86,7 +86,7 @@
  {
  	struct __sysctl_args tmp;
  	int error;
-@@ -2744,7 +2744,7 @@ int sysctl_ms_jiffies(struct ctl_table *
+@@ -2564,7 +2564,7 @@ int sysctl_ms_jiffies(struct ctl_table *
  #else /* CONFIG_SYSCTL_SYSCALL */
  
  
@@ -95,10 +95,10 @@
  {
  	struct __sysctl_args tmp;
  	int error;
-diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
---- linux-source-2.6.26.orig/kernel/timer.c	2009-01-19 11:58:42.000000000 -0700
-+++ linux-source-2.6.26/kernel/timer.c	2009-01-19 12:49:49.000000000 -0700
-@@ -1353,7 +1353,7 @@ out:
+diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
+--- linux-source-2.6.24.orig/kernel/timer.c	2009-01-21 00:55:17.000000000 -0700
++++ linux-source-2.6.24/kernel/timer.c	2009-01-21 01:18:48.000000000 -0700
+@@ -1208,7 +1208,7 @@ out:
  	return 0;
  }
  
@@ -107,10 +107,10 @@
  {
  	struct sysinfo val;
  
-diff -urpN linux-source-2.6.26.orig/security/keys/keyctl.c linux-source-2.6.26/security/keys/keyctl.c
---- linux-source-2.6.26.orig/security/keys/keyctl.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/security/keys/keyctl.c	2009-01-19 12:49:49.000000000 -0700
-@@ -54,11 +54,11 @@ static int key_get_type_from_user(char *
+diff -urpN linux-source-2.6.24.orig/security/keys/keyctl.c linux-source-2.6.24/security/keys/keyctl.c
+--- linux-source-2.6.24.orig/security/keys/keyctl.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/security/keys/keyctl.c	2009-01-21 01:18:48.000000000 -0700
+@@ -52,11 +52,11 @@ static int key_get_type_from_user(char *
   * - returns the new key's serial number
   * - implements add_key()
   */
@@ -127,7 +127,7 @@
  {
  	key_ref_t keyring_ref, key_ref;
  	char type[32], *description;
-@@ -146,10 +146,10 @@ asmlinkage long sys_add_key(const char _
+@@ -132,10 +132,10 @@ asmlinkage long sys_add_key(const char _
   *   - if the _callout_info string is empty, it will be rendered as "-"
   * - implements request_key()
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/inotify_user.c linux-source-2.6.26/fs/inotify_user.c
---- linux-source-2.6.26.orig/fs/inotify_user.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/inotify_user.c	2009-01-19 12:50:36.000000000 -0700
-@@ -566,7 +566,7 @@ static const struct inotify_operations i
+diff -urpN linux-source-2.6.24.orig/fs/inotify_user.c linux-source-2.6.24/fs/inotify_user.c
+--- linux-source-2.6.24.orig/fs/inotify_user.c	2008-10-10 00:11:27.000000000 -0600
++++ linux-source-2.6.24/fs/inotify_user.c	2009-01-21 01:21:24.000000000 -0700
+@@ -540,7 +540,7 @@ static const struct inotify_operations i
  	.destroy_watch	= free_inotify_user_watch,
  };
  
@@ -24,11 +24,11 @@
  {
  	struct inotify_device *dev;
  	struct inotify_handle *ih;
-diff -urpN linux-source-2.6.26.orig/fs/ioprio.c linux-source-2.6.26/fs/ioprio.c
---- linux-source-2.6.26.orig/fs/ioprio.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/ioprio.c	2009-01-19 12:50:36.000000000 -0700
-@@ -65,7 +65,7 @@ static int set_task_ioprio(struct task_s
- 	return err;
+diff -urpN linux-source-2.6.24.orig/fs/ioprio.c linux-source-2.6.24/fs/ioprio.c
+--- linux-source-2.6.24.orig/fs/ioprio.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/ioprio.c	2009-01-21 01:21:24.000000000 -0700
+@@ -55,7 +55,7 @@ static int set_task_ioprio(struct task_s
+ 	return 0;
  }
  
 -asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
@@ -36,7 +36,7 @@
  {
  	int class = IOPRIO_PRIO_CLASS(ioprio);
  	int data = IOPRIO_PRIO_DATA(ioprio);
-@@ -181,7 +181,7 @@ int ioprio_best(unsigned short aprio, un
+@@ -171,7 +171,7 @@ int ioprio_best(unsigned short aprio, un
  		return aprio;
  }
  
@@ -45,15 +45,15 @@
  {
  	struct task_struct *g, *p;
  	struct user_struct *user;
-@@ -245,4 +245,3 @@ asmlinkage long sys_ioprio_get(int which
+@@ -235,4 +235,3 @@ asmlinkage long sys_ioprio_get(int which
  	read_unlock(&tasklist_lock);
  	return ret;
  }
 -
-diff -urpN linux-source-2.6.26.orig/mm/mempolicy.c linux-source-2.6.26/mm/mempolicy.c
---- linux-source-2.6.26.orig/mm/mempolicy.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/mempolicy.c	2009-01-19 12:50:36.000000000 -0700
-@@ -1060,10 +1060,9 @@ static int copy_nodes_to_user(unsigned l
+diff -urpN linux-source-2.6.24.orig/mm/mempolicy.c linux-source-2.6.24/mm/mempolicy.c
+--- linux-source-2.6.24.orig/mm/mempolicy.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/mm/mempolicy.c	2009-01-21 01:21:24.000000000 -0700
+@@ -904,10 +904,9 @@ static int copy_nodes_to_user(unsigned l
  	return copy_to_user(mask, nodes_addr(*nodes), copy) ? -EFAULT : 0;
  }
  
@@ -67,7 +67,7 @@
  {
  	nodemask_t nodes;
  	int err;
-@@ -1083,8 +1082,8 @@ asmlinkage long sys_mbind(unsigned long 
+@@ -923,8 +922,8 @@ asmlinkage long sys_mbind(unsigned long 
  }
  
  /* Set the process memory policy */
@@ -78,8 +78,8 @@
  {
  	int err;
  	nodemask_t nodes;
-@@ -1102,9 +1101,9 @@ asmlinkage long sys_set_mempolicy(int mo
- 	return do_set_mempolicy(mode, flags, &nodes);
+@@ -937,9 +936,9 @@ asmlinkage long sys_set_mempolicy(int mo
+ 	return do_set_mempolicy(mode, &nodes);
  }
  
 -asmlinkage long sys_migrate_pages(pid_t pid, unsigned long maxnode,
@@ -91,7 +91,7 @@
  {
  	struct mm_struct *mm;
  	struct task_struct *task;
-@@ -1172,10 +1171,9 @@ out:
+@@ -1007,10 +1006,9 @@ out:
  
  
  /* Retrieve NUMA policy */
@@ -105,10 +105,10 @@
  {
  	int err;
  	int uninitialized_var(pval);
-diff -urpN linux-source-2.6.26.orig/mm/migrate.c linux-source-2.6.26/mm/migrate.c
---- linux-source-2.6.26.orig/mm/migrate.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/mm/migrate.c	2009-01-19 12:50:36.000000000 -0700
-@@ -956,10 +956,10 @@ set_status:
+diff -urpN linux-source-2.6.24.orig/mm/migrate.c linux-source-2.6.24/mm/migrate.c
+--- linux-source-2.6.24.orig/mm/migrate.c	2009-01-21 01:20:29.000000000 -0700
++++ linux-source-2.6.24/mm/migrate.c	2009-01-21 01:21:24.000000000 -0700
+@@ -915,10 +915,10 @@ set_status:
   * Move a list of pages in the address space of the currently executing
   * process.
   */
@@ -123,10 +123,10 @@
  {
  	int err = 0;
  	int i;
-diff -urpN linux-source-2.6.26.orig/security/keys/keyctl.c linux-source-2.6.26/security/keys/keyctl.c
---- linux-source-2.6.26.orig/security/keys/keyctl.c	2009-01-19 12:49:49.000000000 -0700
-+++ linux-source-2.6.26/security/keys/keyctl.c	2009-01-19 12:50:36.000000000 -0700
-@@ -1152,8 +1152,8 @@ long keyctl_get_security(key_serial_t ke
+diff -urpN linux-source-2.6.24.orig/security/keys/keyctl.c linux-source-2.6.24/security/keys/keyctl.c
+--- linux-source-2.6.24.orig/security/keys/keyctl.c	2009-01-21 01:18:48.000000000 -0700
++++ linux-source-2.6.24/security/keys/keyctl.c	2009-01-21 01:21:24.000000000 -0700
+@@ -1059,8 +1059,8 @@ error:
  /*
   * the key control system call
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038pre1-missing-include.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038pre1-missing-include.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0038pre1-missing-include.patch	Wed Jan 21 08:39:04 2009
@@ -12,14 +12,15 @@
     Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
     Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
 
-diff --git a/mm/migrate.c b/mm/migrate.c
-index 55bd355..e7d13a7 100644
---- a/mm/migrate.c
-+++ b/mm/migrate.c
-@@ -30,6 +30,7 @@
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.24.orig/mm/migrate.c linux-source-2.6.24/mm/migrate.c
+--- linux-source-2.6.24.orig/mm/migrate.c	2008-10-10 00:11:29.000000000 -0600
++++ linux-source-2.6.24/mm/migrate.c	2009-01-21 01:20:29.000000000 -0700
+@@ -29,6 +29,7 @@
+ #include <linux/mempolicy.h>
  #include <linux/vmalloc.h>
  #include <linux/security.h>
- #include <linux/memcontrol.h>
 +#include <linux/syscalls.h>
  
  #include "internal.h"

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/inotify_user.c linux-source-2.6.26/fs/inotify_user.c
---- linux-source-2.6.26.orig/fs/inotify_user.c	2009-01-19 12:50:36.000000000 -0700
-+++ linux-source-2.6.26/fs/inotify_user.c	2009-01-19 12:55:29.000000000 -0700
-@@ -638,7 +638,8 @@ out_put_fd:
+diff -urpN linux-source-2.6.24.orig/fs/inotify_user.c linux-source-2.6.24/fs/inotify_user.c
+--- linux-source-2.6.24.orig/fs/inotify_user.c	2009-01-21 01:21:24.000000000 -0700
++++ linux-source-2.6.24/fs/inotify_user.c	2009-01-21 01:21:53.000000000 -0700
+@@ -611,7 +611,8 @@ out_put_fd:
  	return ret;
  }
  
@@ -25,7 +25,7 @@
  {
  	struct inode *inode;
  	struct inotify_device *dev;
-@@ -682,7 +683,7 @@ fput_and_out:
+@@ -655,7 +656,7 @@ fput_and_out:
  	return ret;
  }
  
@@ -34,11 +34,11 @@
  {
  	struct file *filp;
  	struct inotify_device *dev;
-diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
---- linux-source-2.6.26.orig/fs/namei.c	2009-01-19 12:33:56.000000000 -0700
-+++ linux-source-2.6.26/fs/namei.c	2009-01-19 12:54:26.000000000 -0700
-@@ -2084,8 +2084,8 @@ static int may_mknod(mode_t mode)
- 	}
+diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
+--- linux-source-2.6.24.orig/fs/namei.c	2009-01-21 01:13:36.000000000 -0700
++++ linux-source-2.6.24/fs/namei.c	2009-01-21 01:21:53.000000000 -0700
+@@ -1957,8 +1957,8 @@ int vfs_mknod(struct inode *dir, struct 
+ 	return error;
  }
  
 -asmlinkage long sys_mknodat(int dfd, const char __user *filename, int mode,
@@ -48,7 +48,7 @@
  {
  	int error = 0;
  	char * tmp;
-@@ -2165,7 +2165,7 @@ int vfs_mkdir(struct inode *dir, struct 
+@@ -2034,7 +2034,7 @@ int vfs_mkdir(struct inode *dir, struct 
  	return error;
  }
  
@@ -57,7 +57,7 @@
  {
  	int error = 0;
  	char * tmp;
-@@ -2408,7 +2408,7 @@ slashes:
+@@ -2262,7 +2262,7 @@ slashes:
  	goto exit2;
  }
  
@@ -66,7 +66,7 @@
  {
  	if ((flag & ~AT_REMOVEDIR) != 0)
  		return -EINVAL;
-@@ -2445,8 +2445,8 @@ int vfs_symlink(struct inode *dir, struc
+@@ -2299,8 +2299,8 @@ int vfs_symlink(struct inode *dir, struc
  	return error;
  }
  
@@ -77,7 +77,7 @@
  {
  	int error = 0;
  	char * from;
-@@ -2539,9 +2539,8 @@ int vfs_link(struct dentry *old_dentry, 
+@@ -2388,9 +2388,8 @@ int vfs_link(struct dentry *old_dentry, 
   * with linux 2.0, and to avoid hard-linking to directories
   * and other special files.  --ADM
   */
@@ -89,7 +89,7 @@
  {
  	struct dentry *new_dentry;
  	struct nameidata nd, old_nd;
-@@ -2821,8 +2820,8 @@ exit:
+@@ -2661,8 +2660,8 @@ exit:
  	return error;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
---- linux-source-2.6.26.orig/fs/open.c	2009-01-19 12:33:56.000000000 -0700
-+++ linux-source-2.6.26/fs/open.c	2009-01-19 12:56:31.000000000 -0700
-@@ -441,7 +441,7 @@ SYSCALL_ALIAS(sys_fallocate, SyS_falloca
+diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
+--- linux-source-2.6.24.orig/fs/open.c	2009-01-21 01:13:36.000000000 -0700
++++ linux-source-2.6.24/fs/open.c	2009-01-21 01:22:18.000000000 -0700
+@@ -437,7 +437,7 @@ SYSCALL_ALIAS(sys_fallocate, SyS_falloca
   * We do this by temporarily clearing all FS-related capabilities and
   * switching the fsuid/fsgid around to the real ones.
   */
@@ -24,7 +24,7 @@
  {
  	struct nameidata nd;
  	int old_fsuid, old_fsgid;
-@@ -627,8 +627,7 @@ out:
+@@ -610,8 +610,7 @@ out:
  	return err;
  }
  
@@ -34,7 +34,7 @@
  {
  	struct nameidata nd;
  	struct inode * inode;
-@@ -721,8 +720,8 @@ out:
+@@ -700,8 +699,8 @@ out:
  	return error;
  }
  
@@ -45,9 +45,9 @@
  {
  	struct nameidata nd;
  	int error = -EINVAL;
-@@ -1134,8 +1133,8 @@ SYSCALL_DEFINE3(open, const char __user 
- 	return ret;
+@@ -1081,8 +1080,8 @@ SYSCALL_DEFINE3(open, const char __user 
  }
+ EXPORT_UNUSED_SYMBOL_GPL(sys_open); /* To be deleted for 2.6.25 */
  
 -asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
 -			   int mode)
@@ -56,9 +56,9 @@
  {
  	long ret;
  
-diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
---- linux-source-2.6.26.orig/fs/stat.c	2009-01-19 12:30:49.000000000 -0700
-+++ linux-source-2.6.26/fs/stat.c	2009-01-19 12:57:00.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
+--- linux-source-2.6.24.orig/fs/stat.c	2009-01-21 01:11:46.000000000 -0700
++++ linux-source-2.6.24/fs/stat.c	2009-01-21 01:22:18.000000000 -0700
 @@ -260,8 +260,8 @@ SYSCALL_DEFINE2(newlstat, char __user *,
  }
  
@@ -81,7 +81,7 @@
  {
  	struct nameidata nd;
  	int error;
-@@ -400,8 +400,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long, 
+@@ -399,8 +399,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long, 
  	return error;
  }
  
@@ -92,10 +92,10 @@
  {
  	struct kstat stat;
  	int error = -EINVAL;
-diff -urpN linux-source-2.6.26.orig/fs/utimes.c linux-source-2.6.26/fs/utimes.c
---- linux-source-2.6.26.orig/fs/utimes.c	2009-01-19 12:32:59.000000000 -0700
-+++ linux-source-2.6.26/fs/utimes.c	2009-01-19 12:56:31.000000000 -0700
-@@ -167,7 +167,8 @@ out:
+diff -urpN linux-source-2.6.24.orig/fs/utimes.c linux-source-2.6.24/fs/utimes.c
+--- linux-source-2.6.24.orig/fs/utimes.c	2009-01-21 01:13:03.000000000 -0700
++++ linux-source-2.6.24/fs/utimes.c	2009-01-21 01:22:18.000000000 -0700
+@@ -155,7 +155,8 @@ out:
  	return error;
  }
  
@@ -105,7 +105,7 @@
  {
  	struct timespec tstimes[2];
  
-@@ -184,7 +185,8 @@ asmlinkage long sys_utimensat(int dfd, c
+@@ -180,7 +181,8 @@ asmlinkage long sys_utimensat(int dfd, c
  	return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags);
  }
  
@@ -115,10 +115,10 @@
  {
  	struct timeval times[2];
  	struct timespec tstimes[2];
-diff -urpN linux-source-2.6.26.orig/kernel/fork.c linux-source-2.6.26/kernel/fork.c
---- linux-source-2.6.26.orig/kernel/fork.c	2009-01-19 12:08:21.000000000 -0700
-+++ linux-source-2.6.26/kernel/fork.c	2009-01-19 12:56:31.000000000 -0700
-@@ -1550,7 +1550,7 @@ static int unshare_fd(unsigned long unsh
+diff -urpN linux-source-2.6.24.orig/kernel/fork.c linux-source-2.6.24/kernel/fork.c
+--- linux-source-2.6.24.orig/kernel/fork.c	2009-01-21 01:01:27.000000000 -0700
++++ linux-source-2.6.24/kernel/fork.c	2009-01-21 01:22:18.000000000 -0700
+@@ -1638,7 +1638,7 @@ static int unshare_semundo(unsigned long
   * constructed. Here we are modifying the current, active,
   * task_struct.
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/signalfd.c linux-source-2.6.26/fs/signalfd.c
---- linux-source-2.6.26.orig/fs/signalfd.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/signalfd.c	2009-01-19 12:58:49.000000000 -0700
-@@ -205,7 +205,8 @@ static const struct file_operations sign
+diff -urpN linux-source-2.6.24.orig/fs/signalfd.c linux-source-2.6.24/fs/signalfd.c
+--- linux-source-2.6.24.orig/fs/signalfd.c	2008-10-10 00:11:28.000000000 -0600
++++ linux-source-2.6.24/fs/signalfd.c	2009-01-21 01:22:49.000000000 -0700
+@@ -204,7 +204,8 @@ static const struct file_operations sign
  	.read		= signalfd_read,
  };
  
@@ -23,12 +23,12 @@
 +SYSCALL_DEFINE3(signalfd, int, ufd, sigset_t __user *, user_mask,
 +		size_t, sizemask)
  {
+ 	int error;
  	sigset_t sigmask;
- 	struct signalfd_ctx *ctx;
-diff -urpN linux-source-2.6.26.orig/fs/splice.c linux-source-2.6.26/fs/splice.c
---- linux-source-2.6.26.orig/fs/splice.c	2009-01-10 05:42:12.000000000 -0700
-+++ linux-source-2.6.26/fs/splice.c	2009-01-19 12:57:47.000000000 -0700
-@@ -1460,8 +1460,8 @@ static long vmsplice_to_pipe(struct file
+diff -urpN linux-source-2.6.24.orig/fs/splice.c linux-source-2.6.24/fs/splice.c
+--- linux-source-2.6.24.orig/fs/splice.c	2008-10-10 00:11:29.000000000 -0600
++++ linux-source-2.6.24/fs/splice.c	2009-01-21 01:22:49.000000000 -0700
+@@ -1478,8 +1478,8 @@ static long vmsplice_to_pipe(struct file
   * Currently we punt and implement it as a normal copy, see pipe_to_user().
   *
   */
@@ -39,7 +39,7 @@
  {
  	struct file *file;
  	long error;
-@@ -1486,9 +1486,9 @@ asmlinkage long sys_vmsplice(int fd, con
+@@ -1504,9 +1504,9 @@ asmlinkage long sys_vmsplice(int fd, con
  	return error;
  }
  
@@ -52,7 +52,7 @@
  {
  	long error;
  	struct file *in, *out;
-@@ -1710,7 +1710,7 @@ static long do_tee(struct file *in, stru
+@@ -1724,7 +1724,7 @@ static long do_tee(struct file *in, stru
  	return ret;
  }
  
@@ -61,35 +61,10 @@
  {
  	struct file *in;
  	int error, fput_in;
-diff -urpN linux-source-2.6.26.orig/fs/timerfd.c linux-source-2.6.26/fs/timerfd.c
---- linux-source-2.6.26.orig/fs/timerfd.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/timerfd.c	2009-01-19 12:57:47.000000000 -0700
-@@ -179,7 +179,7 @@ static struct file *timerfd_fget(int fd)
- 	return file;
- }
- 
--asmlinkage long sys_timerfd_create(int clockid, int flags)
-+SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags)
- {
- 	int ufd;
- 	struct timerfd_ctx *ctx;
-@@ -205,9 +205,9 @@ asmlinkage long sys_timerfd_create(int c
- 	return ufd;
- }
- 
--asmlinkage long sys_timerfd_settime(int ufd, int flags,
--				    const struct itimerspec __user *utmr,
--				    struct itimerspec __user *otmr)
-+SYSCALL_DEFINE4(timerfd_settime, int, ufd, int, flags,
-+		const struct itimerspec __user *, utmr,
-+		struct itimerspec __user *, otmr)
- {
- 	struct file *file;
- 	struct timerfd_ctx *ctx;
-diff -urpN linux-source-2.6.26.orig/kernel/futex.c linux-source-2.6.26/kernel/futex.c
---- linux-source-2.6.26.orig/kernel/futex.c	2009-01-19 12:08:21.000000000 -0700
-+++ linux-source-2.6.26/kernel/futex.c	2009-01-19 12:57:47.000000000 -0700
-@@ -1797,9 +1797,8 @@ pi_faulted:
+diff -urpN linux-source-2.6.24.orig/kernel/futex.c linux-source-2.6.24/kernel/futex.c
+--- linux-source-2.6.24.orig/kernel/futex.c	2009-01-21 01:01:27.000000000 -0700
++++ linux-source-2.6.24/kernel/futex.c	2009-01-21 01:22:49.000000000 -0700
+@@ -1854,9 +1854,8 @@ error:
   * @head: pointer to the list-head
   * @len: length of the list-head, as userspace expects
   */
@@ -101,7 +76,7 @@
  {
  	if (!futex_cmpxchg_enabled)
  		return -ENOSYS;
-@@ -1820,9 +1819,9 @@ sys_set_robust_list(struct robust_list_h
+@@ -1877,9 +1876,9 @@ sys_set_robust_list(struct robust_list_h
   * @head_ptr: pointer to a list-head pointer, the kernel fills it in
   * @len_ptr: pointer to a length field, the kernel fills in the header size
   */
@@ -114,10 +89,10 @@
  {
  	struct robust_list_head __user *head;
  	unsigned long ret;
-diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
---- linux-source-2.6.26.orig/kernel/sys.c	2009-01-19 12:49:03.000000000 -0700
-+++ linux-source-2.6.26/kernel/sys.c	2009-01-19 12:57:47.000000000 -0700
-@@ -1753,8 +1753,8 @@ SYSCALL_DEFINE5(prctl, int, option, unsi
+diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
+--- linux-source-2.6.24.orig/kernel/sys.c	2009-01-21 01:18:10.000000000 -0700
++++ linux-source-2.6.24/kernel/sys.c	2009-01-21 01:22:49.000000000 -0700
+@@ -1751,8 +1751,8 @@ SYSCALL_DEFINE5(prctl, int, option, unsi
  	return error;
  }
  

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch	Wed Jan 21 08:39:04 2009
@@ -10,24 +10,24 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/eventfd.c linux-source-2.6.26/fs/eventfd.c
---- linux-source-2.6.26.orig/fs/eventfd.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/fs/eventfd.c	2009-01-19 13:01:11.000000000 -0700
-@@ -198,7 +198,7 @@ struct file *eventfd_fget(int fd)
+diff -urpN linux-source-2.6.24.orig/fs/eventfd.c linux-source-2.6.24/fs/eventfd.c
+--- linux-source-2.6.24.orig/fs/eventfd.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/fs/eventfd.c	2009-01-21 01:25:43.000000000 -0700
+@@ -197,7 +197,7 @@ struct file *eventfd_fget(int fd)
  	return file;
  }
  
 -asmlinkage long sys_eventfd(unsigned int count)
 +SYSCALL_DEFINE1(eventfd, unsigned int, count)
  {
- 	int fd;
+ 	int error, fd;
  	struct eventfd_ctx *ctx;
-diff -urpN linux-source-2.6.26.orig/fs/readdir.c linux-source-2.6.26/fs/readdir.c
---- linux-source-2.6.26.orig/fs/readdir.c	2009-01-19 12:34:46.000000000 -0700
-+++ linux-source-2.6.26/fs/readdir.c	2009-01-19 13:00:22.000000000 -0700
-@@ -100,7 +100,8 @@ efault:
+diff -urpN linux-source-2.6.24.orig/fs/readdir.c linux-source-2.6.24/fs/readdir.c
+--- linux-source-2.6.24.orig/fs/readdir.c	2009-01-21 01:14:06.000000000 -0700
++++ linux-source-2.6.24/fs/readdir.c	2009-01-21 01:25:43.000000000 -0700
+@@ -97,7 +97,8 @@ efault:
  	return -EFAULT;
  }
  
@@ -37,10 +37,10 @@
  {
  	int error;
  	struct file * file;
-diff -urpN linux-source-2.6.26.orig/fs/select.c linux-source-2.6.26/fs/select.c
---- linux-source-2.6.26.orig/fs/select.c	2009-01-19 12:43:21.000000000 -0700
-+++ linux-source-2.6.26/fs/select.c	2009-01-19 13:00:22.000000000 -0700
-@@ -513,8 +513,9 @@ sticky:
+diff -urpN linux-source-2.6.24.orig/fs/select.c linux-source-2.6.24/fs/select.c
+--- linux-source-2.6.24.orig/fs/select.c	2009-01-21 01:15:04.000000000 -0700
++++ linux-source-2.6.24/fs/select.c	2009-01-21 01:26:21.000000000 -0700
+@@ -512,8 +512,9 @@ sticky:
   * which has a pointer to the sigset_t itself followed by a size_t containing
   * the sigset size.
   */
@@ -52,10 +52,10 @@
  {
  	size_t sigsetsize = 0;
  	sigset_t __user *up = NULL;
-@@ -761,9 +762,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __us
+@@ -760,9 +761,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __us
  }
  
- #ifdef HAVE_SET_RESTORE_SIGMASK
+ #ifdef TIF_RESTORE_SIGMASK
 -asmlinkage long sys_ppoll(struct pollfd __user *ufds, unsigned int nfds,
 -	struct timespec __user *tsp, const sigset_t __user *sigmask,
 -	size_t sigsetsize)
@@ -65,22 +65,10 @@
  {
  	sigset_t ksigmask, sigsaved;
  	struct timespec ts;
-diff -urpN linux-source-2.6.26.orig/fs/timerfd.c linux-source-2.6.26/fs/timerfd.c
---- linux-source-2.6.26.orig/fs/timerfd.c	2009-01-19 12:57:47.000000000 -0700
-+++ linux-source-2.6.26/fs/timerfd.c	2009-01-19 13:00:22.000000000 -0700
-@@ -262,7 +262,7 @@ SYSCALL_DEFINE4(timerfd_settime, int, uf
- 	return 0;
- }
- 
--asmlinkage long sys_timerfd_gettime(int ufd, struct itimerspec __user *otmr)
-+SYSCALL_DEFINE2(timerfd_gettime, int, ufd, struct itimerspec __user *, otmr)
- {
- 	struct file *file;
- 	struct timerfd_ctx *ctx;
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2009-01-19 11:53:03.000000000 -0700
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 13:00:22.000000000 -0700
-@@ -672,6 +672,13 @@ asmlinkage long sys_timerfd_gettime(int 
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2009-01-21 00:45:15.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 01:25:43.000000000 -0700
+@@ -668,6 +668,13 @@ asmlinkage long sys_timerfd(int ufd, int
  asmlinkage long sys_eventfd(unsigned int count);
  asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
  asmlinkage long sys_old_readdir(unsigned int, struct old_linux_dirent __user *, unsigned int);
@@ -94,10 +82,10 @@
  
  int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
  
-diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
---- linux-source-2.6.26.orig/kernel/signal.c	2009-01-19 12:13:12.000000000 -0700
-+++ linux-source-2.6.26/kernel/signal.c	2009-01-19 13:00:22.000000000 -0700
-@@ -2464,11 +2464,10 @@ out:
+diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
+--- linux-source-2.6.24.orig/kernel/signal.c	2009-01-21 01:02:55.000000000 -0700
++++ linux-source-2.6.24/kernel/signal.c	2009-01-21 01:25:43.000000000 -0700
+@@ -2475,11 +2475,10 @@ out:
  #endif /* __ARCH_WANT_SYS_SIGPROCMASK */
  
  #ifdef __ARCH_WANT_SYS_RT_SIGACTION
@@ -113,7 +101,7 @@
  {
  	struct k_sigaction new_sa, old_sa;
  	int ret = -EINVAL;
-@@ -2551,7 +2550,7 @@ SYSCALL_DEFINE0(pause)
+@@ -2562,7 +2561,7 @@ SYSCALL_DEFINE0(pause)
  #endif
  
  #ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
@@ -122,3 +110,17 @@
  {
  	sigset_t newset;
  
+diff -urpN linux-source-2.6.24.orig/fs/timerfd.c linux-source-2.6.24/fs/timerfd.c
+--- linux-source-2.6.24.orig/fs/timerfd.c	2009-01-21 01:25:43.000000000 -0700
++++ linux-source-2.6.24/fs/timerfd.c	2009-01-21 01:30:08.000000000 -0700
+@@ -150,8 +150,8 @@ static const struct file_operations time
+ 	.read		= timerfd_read,
+ };
+ 
+-asmlinkage long sys_timerfd(int ufd, int clockid, int flags,
+-			    const struct itimerspec __user *utmr)
++SYSCALL_DEFINE4(timerfd, int, ufd, int, clockid, int, flags,
++		const struct itimerspec __user *, utmr)
+ {
+ 	int error;
+ 	struct timerfd_ctx *ctx;

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch	Wed Jan 21 08:39:04 2009
@@ -10,12 +10,12 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/fs/pipe.c linux-source-2.6.26/fs/pipe.c
---- linux-source-2.6.26.orig/fs/pipe.c	2009-01-19 13:00:22.000000000 -0700
-+++ linux-source-2.6.26/fs/pipe.c	2009-01-19 13:05:38.000000000 -0700
-@@ -1078,7 +1078,7 @@ int do_pipe(int *fd)
+diff -urpN linux-source-2.6.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
+--- linux-source-2.6.24.orig/fs/pipe.c	2009-01-21 00:29:57.000000000 -0700
++++ linux-source-2.6.24/fs/pipe.c	2009-01-21 01:31:29.000000000 -0700
+@@ -1079,7 +1079,7 @@ int do_pipe(int *fd)
   * sys_pipe() is the normal C calling standard for creating
   * a pipe. It's not the way Unix traditionally does this, though.
   */
@@ -24,10 +24,10 @@
  {
  	int fd[2];
  	int error;
-diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
---- linux-source-2.6.26.orig/include/linux/syscalls.h	2009-01-19 13:00:22.000000000 -0700
-+++ linux-source-2.6.26/include/linux/syscalls.h	2009-01-19 13:05:11.000000000 -0700
-@@ -679,6 +679,7 @@ asmlinkage long sys_ppoll(struct pollfd 
+diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
+--- linux-source-2.6.24.orig/include/linux/syscalls.h	2009-01-21 01:25:43.000000000 -0700
++++ linux-source-2.6.24/include/linux/syscalls.h	2009-01-21 01:31:29.000000000 -0700
+@@ -675,6 +675,7 @@ asmlinkage long sys_ppoll(struct pollfd 
  			  struct timespec __user *, const sigset_t __user *,
  			  size_t);
  asmlinkage long sys_pipe2(int __user *, int);

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch
==============================================================================
--- /people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch	Wed Jan 21 08:39:04 2009
@@ -10,11 +10,11 @@
 Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
 
-Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
 
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/compat_wrapper.S linux-source-2.6.26/arch/s390/kernel/compat_wrapper.S
---- linux-source-2.6.26.orig/arch/s390/kernel/compat_wrapper.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/s390/kernel/compat_wrapper.S	2009-01-19 13:06:27.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/compat_wrapper.S linux-source-2.6.24/arch/s390/kernel/compat_wrapper.S
+--- linux-source-2.6.24.orig/arch/s390/kernel/compat_wrapper.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/s390/kernel/compat_wrapper.S	2009-01-21 01:31:52.000000000 -0700
 @@ -549,7 +549,7 @@ sys32_setdomainname_wrapper:
  	.globl	sys32_newuname_wrapper
  sys32_newuname_wrapper:
@@ -33,51 +33,19 @@
  
  	.globl	sys32_setfsuid16_wrapper
  sys32_setfsuid16_wrapper:
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/entry.h linux-source-2.6.26/arch/s390/kernel/entry.h
---- linux-source-2.6.26.orig/arch/s390/kernel/entry.h	2009-01-19 11:38:32.000000000 -0700
-+++ linux-source-2.6.26/arch/s390/kernel/entry.h	2009-01-19 13:06:27.000000000 -0700
-@@ -31,21 +31,22 @@ struct old_sigaction;
- struct sel_arg_struct;
- 
- long sys_mmap2(struct mmap_arg_struct __user  *arg);
--long old_mmap(struct mmap_arg_struct __user *arg);
-+long sys_s390_old_mmap(struct mmap_arg_struct __user *arg);
- long sys_ipc(uint call, int first, unsigned long second,
- 	     unsigned long third, void __user *ptr);
--long s390x_newuname(struct new_utsname __user *name);
--long s390x_personality(unsigned long personality);
--long s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
-+long sys_s390_newuname(struct new_utsname __user *name);
-+long sys_s390_personality(unsigned long personality);
-+long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
- 		    size_t len, int advice);
--long s390_fadvise64_64(struct fadvise64_64_args __user *args);
--long s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, u32 len_low);
-+long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
-+long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high,
-+			u32 len_low);
- long sys_fork(void);
- long sys_clone(void);
- long sys_vfork(void);
- void execve_tail(void);
- long sys_execve(void);
--int sys_sigsuspend(int history0, int history1, old_sigset_t mask);
-+long sys_sigsuspend(int history0, int history1, old_sigset_t mask);
- long sys_sigaction(int sig, const struct old_sigaction __user *act,
- 		   struct old_sigaction __user *oact);
- long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss);
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/process.c linux-source-2.6.26/arch/s390/kernel/process.c
---- linux-source-2.6.26.orig/arch/s390/kernel/process.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/s390/kernel/process.c	2009-01-19 13:06:27.000000000 -0700
-@@ -38,6 +38,7 @@
- #include <linux/utsname.h>
- #include <linux/tick.h>
- #include <linux/elfcore.h>
+diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/process.c linux-source-2.6.24/arch/s390/kernel/process.c
+--- linux-source-2.6.24.orig/arch/s390/kernel/process.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/s390/kernel/process.c	2009-01-21 01:32:50.000000000 -0700
+@@ -36,7 +36,7 @@
+ #include <linux/init.h>
+ #include <linux/module.h>
+ #include <linux/notifier.h>
+-
 +#include <linux/syscalls.h>
  #include <asm/uaccess.h>
  #include <asm/pgtable.h>
  #include <asm/system.h>
-@@ -283,13 +284,13 @@ int copy_thread(int nr, unsigned long cl
+@@ -298,13 +298,13 @@ int copy_thread(int nr, unsigned long cl
          return 0;
  }
  
@@ -93,7 +61,7 @@
  {
  	struct pt_regs *regs = task_pt_regs(current);
  	unsigned long clone_flags;
-@@ -316,7 +317,7 @@ asmlinkage long sys_clone(void)
+@@ -331,7 +331,7 @@ asmlinkage long sys_clone(void)
   * do not have enough call-clobbered registers to hold all
   * the information you need.
   */
@@ -102,7 +70,7 @@
  {
  	struct pt_regs *regs = task_pt_regs(current);
  	return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
-@@ -336,7 +337,7 @@ asmlinkage void execve_tail(void)
+@@ -351,7 +351,7 @@ asmlinkage void execve_tail(void)
  /*
   * sys_execve() executes a new program.
   */
@@ -111,9 +79,9 @@
  {
  	struct pt_regs *regs = task_pt_regs(current);
  	char *filename;
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/signal.c linux-source-2.6.26/arch/s390/kernel/signal.c
---- linux-source-2.6.26.orig/arch/s390/kernel/signal.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/s390/kernel/signal.c	2009-01-19 13:06:47.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/signal.c linux-source-2.6.24/arch/s390/kernel/signal.c
+--- linux-source-2.6.24.orig/arch/s390/kernel/signal.c	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/s390/kernel/signal.c	2009-01-21 01:31:56.000000000 -0700
 @@ -24,6 +24,7 @@
  #include <linux/tty.h>
  #include <linux/personality.h>
@@ -122,7 +90,7 @@
  #include <asm/ucontext.h>
  #include <asm/uaccess.h>
  #include <asm/lowcore.h>
-@@ -52,8 +53,7 @@ typedef struct 
+@@ -51,8 +52,7 @@ typedef struct 
  /*
   * Atomically swap in the new signal mask, and wait for a signal.
   */
@@ -132,7 +100,7 @@
  {
  	mask &= _BLOCKABLE;
  	spin_lock_irq(&current->sighand->siglock);
-@@ -69,9 +69,8 @@ sys_sigsuspend(int history0, int history
+@@ -68,9 +68,8 @@ sys_sigsuspend(int history0, int history
  	return -ERESTARTNOHAND;
  }
  
@@ -144,7 +112,7 @@
  {
  	struct k_sigaction new_ka, old_ka;
  	int ret;
-@@ -101,15 +100,13 @@ sys_sigaction(int sig, const struct old_
+@@ -100,15 +99,13 @@ sys_sigaction(int sig, const struct old_
  	return ret;
  }
  
@@ -162,7 +130,7 @@
  /* Returns non-zero on fault. */
  static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
  {
-@@ -163,7 +160,7 @@ static int restore_sigregs(struct pt_reg
+@@ -162,7 +159,7 @@ static int restore_sigregs(struct pt_reg
  	return 0;
  }
  
@@ -171,7 +139,7 @@
  {
  	struct pt_regs *regs = task_pt_regs(current);
  	sigframe __user *frame = (sigframe __user *)regs->gprs[15];
-@@ -190,7 +187,7 @@ badframe:
+@@ -189,7 +186,7 @@ badframe:
  	return 0;
  }
  
@@ -180,9 +148,9 @@
  {
  	struct pt_regs *regs = task_pt_regs(current);
  	rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15];
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/syscalls.S linux-source-2.6.26/arch/s390/kernel/syscalls.S
---- linux-source-2.6.26.orig/arch/s390/kernel/syscalls.S	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/s390/kernel/syscalls.S	2009-01-19 13:06:27.000000000 -0700
+diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/syscalls.S linux-source-2.6.24/arch/s390/kernel/syscalls.S
+--- linux-source-2.6.24.orig/arch/s390/kernel/syscalls.S	2008-01-24 15:58:37.000000000 -0700
++++ linux-source-2.6.24/arch/s390/kernel/syscalls.S	2009-01-21 01:31:56.000000000 -0700
 @@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_usel
  SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper)
  SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
@@ -236,19 +204,20 @@
 +SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper)
  SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper)	/* 315 */
  SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
- NI_SYSCALL						/* 317 old sys_timer_fd */
-diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.26/arch/s390/kernel/sys_s390.c
---- linux-source-2.6.26.orig/arch/s390/kernel/sys_s390.c	2008-07-13 15:51:29.000000000 -0600
-+++ linux-source-2.6.26/arch/s390/kernel/sys_s390.c	2009-01-19 13:06:27.000000000 -0700
-@@ -29,6 +29,7 @@
+ SYSCALL(sys_timerfd,sys_timerfd,compat_sys_timerfd_wrapper)
+diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.24/arch/s390/kernel/sys_s390.c
+--- linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c	2009-01-21 00:27:49.000000000 -0700
++++ linux-source-2.6.24/arch/s390/kernel/sys_s390.c	2009-01-21 01:33:16.000000000 -0700
+@@ -29,7 +29,7 @@
  #include <linux/personality.h>
  #include <linux/unistd.h>
  #include <linux/ipc.h>
+-
 +#include <linux/syscalls.h>
  #include <asm/uaccess.h>
- #include "entry.h"
  
-@@ -74,7 +75,7 @@ struct mmap_arg_struct {
+ /* common code for old and new mmaps */
+@@ -74,7 +74,7 @@ struct mmap_arg_struct {
  	unsigned long offset;
  };
  
@@ -257,7 +226,7 @@
  {
  	struct mmap_arg_struct a;
  	int error = -EFAULT;
-@@ -86,7 +87,7 @@ out:
+@@ -86,7 +86,7 @@ out:
  	return error;
  }
  
@@ -266,7 +235,7 @@
  {
  	struct mmap_arg_struct a;
  	long error = -EFAULT;
-@@ -127,8 +128,8 @@ asmlinkage long old_select(struct sel_ar
+@@ -127,8 +127,8 @@ asmlinkage long old_select(struct sel_ar
   *
   * This is really horribly ugly.
   */
@@ -277,7 +246,7 @@
  {
          struct ipc_kludge tmp;
  	int ret;
-@@ -194,7 +195,7 @@ asmlinkage long sys_ipc(uint call, int f
+@@ -194,7 +194,7 @@ asmlinkage long sys_ipc(uint call, int f
  }
  
  #ifdef CONFIG_64BIT
@@ -286,7 +255,7 @@
  {
  	int ret = sys_newuname(name);
  
-@@ -205,7 +206,7 @@ asmlinkage long s390x_newuname(struct ne
+@@ -205,7 +205,7 @@ asmlinkage long s390x_newuname(struct ne
  	return ret;
  }
  
@@ -295,7 +264,7 @@
  {
  	int ret;
  
-@@ -224,15 +225,13 @@ asmlinkage long s390x_personality(unsign
+@@ -224,15 +224,13 @@ asmlinkage long s390x_personality(unsign
   */
  #ifndef CONFIG_64BIT
  
@@ -313,7 +282,7 @@
  struct fadvise64_64_args {
  	int fd;
  	long long offset;
-@@ -240,8 +239,7 @@ struct fadvise64_64_args {
+@@ -240,8 +238,7 @@ struct fadvise64_64_args {
  	int advice;
  };
  
@@ -323,7 +292,7 @@
  {
  	struct fadvise64_64_args a;
  
-@@ -250,7 +248,6 @@ s390_fadvise64_64(struct fadvise64_64_ar
+@@ -250,7 +247,6 @@ s390_fadvise64_64(struct fadvise64_64_ar
  	return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice);
  }
  
@@ -331,7 +300,7 @@
  /*
   * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last
   * 64 bit argument "len" is split into the upper and lower 32 bits. The
-@@ -263,9 +260,19 @@ s390_fadvise64_64(struct fadvise64_64_ar
+@@ -263,9 +259,19 @@ s390_fadvise64_64(struct fadvise64_64_ar
   * to
   *   %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len
   */

Modified: people/dannf/2.6.24+CVE-2009-0029/debian/patches/series/6~etchnhalf.7etch1
==============================================================================
--- people/dannf/2.6.24+CVE-2009-0029/debian/patches/series/6~etchnhalf.7etch1	(original)
+++ people/dannf/2.6.24+CVE-2009-0029/debian/patches/series/6~etchnhalf.7etch1	Wed Jan 21 08:39:04 2009
@@ -4,3 +4,50 @@
 + bugfix/mips/fix-potential-dos.patch
 + bugfix/all/sctp-avoid-memory-overflow.patch
 + bugfix/all/nfs-remove-buggy-lock-if-signalled-case.patch
++ bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch
++ bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch
++ bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch
++ bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch
++ bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch
++ bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch
++ bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch
++ bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch
++ bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch
++ bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch
++ bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch
++ bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch
++ bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch
++ bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch
++ bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch
++ bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch
++ bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch
++ bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch
++ bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch
++ bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch
++ bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch
++ bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch
++ bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch
++ bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch
++ bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch
++ bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch
++ bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch
++ bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch
++ bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch
++ bugfix/all/CVE-2009-0029/0028-System-call-wrappers-part-18.patch
++ bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch
++ bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch
++ bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch
++ bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch
++ bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch
++ bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch
++ bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch
++ bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch
++ bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch
++ bugfix/all/CVE-2009-0029/0038pre1-missing-include.patch
++ bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch
++ bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch
++ bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch
++ bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch
++ bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch
++ bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch
++ bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch



More information about the Kernel-svn-changes mailing list