packages (GRSECURITY_RAW): kernel/kernel-grsec_full.patch http://www.grsecu...

arekm arekm at pld-linux.org
Fri Jul 31 11:02:08 CEST 2009


Author: arekm                        Date: Fri Jul 31 09:02:08 2009 GMT
Module: packages                      Tag: GRSECURITY_RAW
---- Log message:
http://www.grsecurity.net/~spender/grsecurity-2.1.14-2.6.30.4-200907302036.patch

---- Files affected:
packages/kernel:
   kernel-grsec_full.patch (1.3.2.2 -> 1.3.2.3) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.3.2.2 packages/kernel/kernel-grsec_full.patch:1.3.2.3
--- packages/kernel/kernel-grsec_full.patch:1.3.2.2	Mon Jul 20 15:11:05 2009
+++ packages/kernel/kernel-grsec_full.patch	Fri Jul 31 11:02:00 2009
@@ -1,6 +1,6 @@
-diff -urNp linux-2.6.29.6/arch/alpha/include/asm/atomic.h linux-2.6.29.6/arch/alpha/include/asm/atomic.h
---- linux-2.6.29.6/arch/alpha/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/alpha/include/asm/atomic.h linux-2.6.30.4/arch/alpha/include/asm/atomic.h
+--- linux-2.6.30.4/arch/alpha/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/include/asm/atomic.h	2009-07-30 09:48:09.872868955 -0400
 @@ -246,6 +246,9 @@ static __inline__ int atomic64_add_unles
  #define atomic64_dec_and_test(v) (atomic64_sub_return(1, (v)) == 0)
  
@@ -11,9 +11,9 @@
  #define atomic64_inc(v) atomic64_add(1,(v))
  
  #define atomic_dec(v) atomic_sub(1,(v))
-diff -urNp linux-2.6.29.6/arch/alpha/include/asm/elf.h linux-2.6.29.6/arch/alpha/include/asm/elf.h
---- linux-2.6.29.6/arch/alpha/include/asm/elf.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/include/asm/elf.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/alpha/include/asm/elf.h linux-2.6.30.4/arch/alpha/include/asm/elf.h
+--- linux-2.6.30.4/arch/alpha/include/asm/elf.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/include/asm/elf.h	2009-07-30 09:48:09.873636524 -0400
 @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
  
  #define ELF_ET_DYN_BASE		(TASK_UNMAPPED_BASE + 0x1000000)
@@ -28,9 +28,9 @@
  /* $0 is set by ld.so to a pointer to a function which might be 
     registered using atexit.  This provides a mean for the dynamic
     linker to call DT_FINI functions for shared libraries that have
-diff -urNp linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h	2009-07-30 09:48:09.873636524 -0400
 @@ -24,7 +24,8 @@ D(9)	KM_IRQ0,
  D(10)	KM_IRQ1,
  D(11)	KM_SOFTIRQ0,
@@ -41,9 +41,9 @@
  };
  
  #undef D
-diff -urNp linux-2.6.29.6/arch/alpha/include/asm/pgtable.h linux-2.6.29.6/arch/alpha/include/asm/pgtable.h
---- linux-2.6.29.6/arch/alpha/include/asm/pgtable.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/include/asm/pgtable.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/alpha/include/asm/pgtable.h linux-2.6.30.4/arch/alpha/include/asm/pgtable.h
+--- linux-2.6.30.4/arch/alpha/include/asm/pgtable.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/include/asm/pgtable.h	2009-07-30 09:48:09.874706218 -0400
 @@ -101,6 +101,17 @@ struct vm_area_struct;
  #define PAGE_SHARED	__pgprot(_PAGE_VALID | __ACCESS_BITS)
  #define PAGE_COPY	__pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
@@ -62,9 +62,9 @@
  #define PAGE_KERNEL	__pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
  
  #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
-diff -urNp linux-2.6.29.6/arch/alpha/kernel/module.c linux-2.6.29.6/arch/alpha/kernel/module.c
---- linux-2.6.29.6/arch/alpha/kernel/module.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/kernel/module.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/alpha/kernel/module.c linux-2.6.30.4/arch/alpha/kernel/module.c
+--- linux-2.6.30.4/arch/alpha/kernel/module.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/kernel/module.c	2009-07-30 09:48:09.875723461 -0400
 @@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, 
  
  	/* The small sections were sorted to the end of the segment.
@@ -74,10 +74,10 @@
  	got = sechdrs[me->arch.gotsecindex].sh_addr;
  
  	for (i = 0; i < n; i++) {
-diff -urNp linux-2.6.29.6/arch/alpha/kernel/osf_sys.c linux-2.6.29.6/arch/alpha/kernel/osf_sys.c
---- linux-2.6.29.6/arch/alpha/kernel/osf_sys.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/kernel/osf_sys.c	2009-07-09 22:13:39.000000000 -0400
-@@ -1217,6 +1217,10 @@ arch_get_unmapped_area(struct file *filp
+diff -urNp linux-2.6.30.4/arch/alpha/kernel/osf_sys.c linux-2.6.30.4/arch/alpha/kernel/osf_sys.c
+--- linux-2.6.30.4/arch/alpha/kernel/osf_sys.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/kernel/osf_sys.c	2009-07-30 09:48:09.875723461 -0400
+@@ -1215,6 +1215,10 @@ arch_get_unmapped_area(struct file *filp
  	   merely specific addresses, but regions of memory -- perhaps
  	   this feature should be incorporated into all ports?  */
  
@@ -88,7 +88,7 @@
  	if (addr) {
  		addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
  		if (addr != (unsigned long) -ENOMEM)
-@@ -1224,8 +1228,8 @@ arch_get_unmapped_area(struct file *filp
+@@ -1222,8 +1226,8 @@ arch_get_unmapped_area(struct file *filp
  	}
  
  	/* Next, try allocating at TASK_UNMAPPED_BASE.  */
@@ -99,9 +99,9 @@
  	if (addr != (unsigned long) -ENOMEM)
  		return addr;
  
-diff -urNp linux-2.6.29.6/arch/alpha/mm/fault.c linux-2.6.29.6/arch/alpha/mm/fault.c
---- linux-2.6.29.6/arch/alpha/mm/fault.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/alpha/mm/fault.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/alpha/mm/fault.c linux-2.6.30.4/arch/alpha/mm/fault.c
+--- linux-2.6.30.4/arch/alpha/mm/fault.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/alpha/mm/fault.c	2009-07-30 09:48:09.876636955 -0400
 @@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct *
  	__reload_thread(pcb);
  }
@@ -258,23 +258,23 @@
  	} else if (!cause) {
  		/* Allow reads even for write-only mappings */
  		if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
-diff -urNp linux-2.6.29.6/arch/arm/include/asm/atomic.h linux-2.6.29.6/arch/arm/include/asm/atomic.h
---- linux-2.6.29.6/arch/arm/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/arm/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
-@@ -191,6 +191,9 @@ static inline int atomic_add_unless(atom
- #define atomic_inc(v)		(void) atomic_add_return(1, v)
- #define atomic_sub(i, v)	(void) atomic_sub_return(i, v)
- #define atomic_dec(v)		(void) atomic_sub_return(1, v)
-+#define atomic_inc_unchecked(v)		(void) atomic_inc(v)
-+#define atomic_add_unchecked(i, v)	(void) atomic_add(i, v)
-+#define atomic_sub_unchecked(i, v)	(void) atomic_sub(i, v)
+diff -urNp linux-2.6.30.4/arch/arm/include/asm/atomic.h linux-2.6.30.4/arch/arm/include/asm/atomic.h
+--- linux-2.6.30.4/arch/arm/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/arm/include/asm/atomic.h	2009-07-30 09:48:09.876636955 -0400
+@@ -235,6 +235,9 @@ static inline int atomic_add_unless(atom
+ 
+ #define atomic_inc(v)		atomic_add(1, v)
+ #define atomic_dec(v)		atomic_sub(1, v)
++#define atomic_inc_unchecked(v)		atomic_inc(v)
++#define atomic_add_unchecked(i, v)	atomic_add(i, v)
++#define atomic_sub_unchecked(i, v)	atomic_sub(i, v)
  
  #define atomic_inc_and_test(v)	(atomic_add_return(1, v) == 0)
  #define atomic_dec_and_test(v)	(atomic_sub_return(1, v) == 0)
-diff -urNp linux-2.6.29.6/arch/arm/include/asm/elf.h linux-2.6.29.6/arch/arm/include/asm/elf.h
---- linux-2.6.29.6/arch/arm/include/asm/elf.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/arm/include/asm/elf.h	2009-07-09 22:13:39.000000000 -0400
-@@ -100,7 +100,14 @@ extern int arm_elf_read_implies_exec(con
+diff -urNp linux-2.6.30.4/arch/arm/include/asm/elf.h linux-2.6.30.4/arch/arm/include/asm/elf.h
+--- linux-2.6.30.4/arch/arm/include/asm/elf.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/arm/include/asm/elf.h	2009-07-30 09:48:09.877630671 -0400
+@@ -103,7 +103,14 @@ extern int arm_elf_read_implies_exec(con
     the loader.  We need to make sure that it is out of the way of the program
     that it will "exec", and that there is sufficient room for the brk.  */
  
@@ -290,32 +290,55 @@
  
  /* When the program starts, a1 contains a pointer to a function to be 
     registered with atexit, as per the SVR4 ABI.  A value of 0 means we 
-diff -urNp linux-2.6.29.6/arch/arm/include/asm/kmap_types.h linux-2.6.29.6/arch/arm/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/arm/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/arm/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
-@@ -18,6 +18,7 @@ enum km_type {
- 	KM_IRQ1,
+diff -urNp linux-2.6.30.4/arch/arm/include/asm/kmap_types.h linux-2.6.30.4/arch/arm/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/arm/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/arm/include/asm/kmap_types.h	2009-07-30 09:48:09.878525050 -0400
+@@ -19,6 +19,7 @@ enum km_type {
  	KM_SOFTIRQ0,
  	KM_SOFTIRQ1,
+ 	KM_L2_CACHE,
 +	KM_CLEARPAGE,
  	KM_TYPE_NR
  };
  
-diff -urNp linux-2.6.29.6/arch/arm/include/asm/uaccess.h linux-2.6.29.6/arch/arm/include/asm/uaccess.h
---- linux-2.6.29.6/arch/arm/include/asm/uaccess.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/arm/include/asm/uaccess.h	2009-07-09 22:13:39.000000000 -0400
-@@ -400,7 +400,7 @@ static inline unsigned long __must_check
+diff -urNp linux-2.6.30.4/arch/arm/include/asm/uaccess.h linux-2.6.30.4/arch/arm/include/asm/uaccess.h
+--- linux-2.6.30.4/arch/arm/include/asm/uaccess.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/arm/include/asm/uaccess.h	2009-07-30 09:48:09.878525050 -0400
+@@ -398,6 +398,9 @@ extern unsigned long __must_check __strn
+ 
+ static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
  {
++	if ((long)n < 0)
++		return n;
++
  	if (access_ok(VERIFY_READ, from, n))
  		n = __copy_from_user(to, from, n);
--	else /* security hole - plug it */
-+	else if ((long)n > 0) /* security hole - plug it -- good idea! */
- 		memset(to, 0, n);
+ 	else /* security hole - plug it */
+@@ -407,6 +410,9 @@ static inline unsigned long __must_check
+ 
+ static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
+ {
++	if ((long)n < 0)
++		return n;
++
+ 	if (access_ok(VERIFY_WRITE, to, n))
+ 		n = __copy_to_user(to, from, n);
  	return n;
+diff -urNp linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c
+--- linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c	2009-07-30 09:48:09.879705308 -0400
+@@ -195,7 +195,7 @@ static int clk_debugfs_open(struct inode
+ 	return single_open(file, clk_debugfs_show, NULL);
  }
-diff -urNp linux-2.6.29.6/arch/arm/mm/mmap.c linux-2.6.29.6/arch/arm/mm/mmap.c
---- linux-2.6.29.6/arch/arm/mm/mmap.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/arm/mm/mmap.c	2009-07-09 22:13:39.000000000 -0400
+ 
+-static struct file_operations clk_debugfs_operations = {
++static const struct file_operations clk_debugfs_operations = {
+ 	.open = clk_debugfs_open,
+ 	.read = seq_read,
+ 	.llseek = seq_lseek,
+diff -urNp linux-2.6.30.4/arch/arm/mm/mmap.c linux-2.6.30.4/arch/arm/mm/mmap.c
+--- linux-2.6.30.4/arch/arm/mm/mmap.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/arm/mm/mmap.c	2009-07-30 09:48:09.881684524 -0400
 @@ -62,6 +62,10 @@ arch_get_unmapped_area(struct file *filp
  	if (len > TASK_SIZE)
  		return -ENOMEM;
@@ -352,9 +375,9 @@
  				mm->cached_hole_size = 0;
  				goto full_search;
  			}
-diff -urNp linux-2.6.29.6/arch/avr32/include/asm/atomic.h linux-2.6.29.6/arch/avr32/include/asm/atomic.h
---- linux-2.6.29.6/arch/avr32/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/avr32/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/avr32/include/asm/atomic.h linux-2.6.30.4/arch/avr32/include/asm/atomic.h
+--- linux-2.6.30.4/arch/avr32/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/avr32/include/asm/atomic.h	2009-07-30 09:48:09.881684524 -0400
 @@ -176,9 +176,12 @@ static inline int atomic_sub_if_positive
  #define atomic_cmpxchg(v, o, n)	(cmpxchg(&((v)->counter), (o), (n)))
  
@@ -368,9 +391,9 @@
  
  #define atomic_dec_return(v)	atomic_sub_return(1, v)
  #define atomic_inc_return(v)	atomic_add_return(1, v)
-diff -urNp linux-2.6.29.6/arch/avr32/include/asm/elf.h linux-2.6.29.6/arch/avr32/include/asm/elf.h
---- linux-2.6.29.6/arch/avr32/include/asm/elf.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/avr32/include/asm/elf.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/avr32/include/asm/elf.h linux-2.6.30.4/arch/avr32/include/asm/elf.h
+--- linux-2.6.30.4/arch/avr32/include/asm/elf.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/avr32/include/asm/elf.h	2009-07-30 09:48:09.881684524 -0400
 @@ -85,8 +85,14 @@ typedef struct user_fpu_struct elf_fpreg
     the loader.  We need to make sure that it is out of the way of the program
     that it will "exec", and that there is sufficient room for the brk.  */
@@ -387,9 +410,9 @@
  
  /* This yields a mask that user programs can use to figure out what
     instruction set this CPU supports.  This could be done in user space,
-diff -urNp linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h	2009-07-30 09:48:09.882650296 -0400
 @@ -22,7 +22,8 @@ D(10)	KM_IRQ0,
  D(11)	KM_IRQ1,
  D(12)	KM_SOFTIRQ0,
@@ -400,9 +423,9 @@
  };
  
  #undef D
-diff -urNp linux-2.6.29.6/arch/avr32/mm/fault.c linux-2.6.29.6/arch/avr32/mm/fault.c
---- linux-2.6.29.6/arch/avr32/mm/fault.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/avr32/mm/fault.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/avr32/mm/fault.c linux-2.6.30.4/arch/avr32/mm/fault.c
+--- linux-2.6.30.4/arch/avr32/mm/fault.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/avr32/mm/fault.c	2009-07-30 09:48:09.882650296 -0400
 @@ -41,6 +41,23 @@ static inline int notify_page_fault(stru
  
  int exception_trace = 1;
@@ -444,9 +467,9 @@
  		if (exception_trace && printk_ratelimit())
  			printk("%s%s[%d]: segfault at %08lx pc %08lx "
  			       "sp %08lx ecr %lu\n",
-diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/atomic.h linux-2.6.29.6/arch/blackfin/include/asm/atomic.h
---- linux-2.6.29.6/arch/blackfin/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/blackfin/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/blackfin/include/asm/atomic.h linux-2.6.30.4/arch/blackfin/include/asm/atomic.h
+--- linux-2.6.30.4/arch/blackfin/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/blackfin/include/asm/atomic.h	2009-07-30 09:48:09.882650296 -0400
 @@ -178,6 +178,9 @@ static inline void atomic_set_mask(unsig
  
  #endif /* !CONFIG_SMP */
@@ -457,9 +480,9 @@
  #define atomic_add_negative(a, v)	(atomic_add_return((a), (v)) < 0)
  #define atomic_dec_return(v) atomic_sub_return(1,(v))
  #define atomic_inc_return(v) atomic_add_return(1,(v))
-diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h	2009-07-30 09:48:09.883618875 -0400
 @@ -15,6 +15,7 @@ enum km_type {
  	KM_IRQ1,
  	KM_SOFTIRQ0,
@@ -468,9 +491,45 @@
  	KM_TYPE_NR
  };
  
-diff -urNp linux-2.6.29.6/arch/cris/include/asm/atomic.h linux-2.6.29.6/arch/cris/include/asm/atomic.h
---- linux-2.6.29.6/arch/cris/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/cris/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c
+--- linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c	2009-07-30 09:48:09.883618875 -0400
+@@ -292,7 +292,7 @@ static int coreb_ioctl(struct inode *ino
+ 	return retval;
+ }
+ 
+-static struct file_operations coreb_fops = {
++static const struct file_operations coreb_fops = {
+ 	.owner = THIS_MODULE,
+ 	.llseek = coreb_lseek,
+ 	.read = coreb_read,
+diff -urNp linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c
+--- linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c	2009-07-30 09:48:09.883618875 -0400
+@@ -244,7 +244,7 @@ static unsigned sync_serial_prescale_sha
+ 
+ #define NUMBER_OF_PORTS 2
+ 
+-static struct file_operations sync_serial_fops = {
++static const struct file_operations sync_serial_fops = {
+ 	.owner   = THIS_MODULE,
+ 	.write   = sync_serial_write,
+ 	.read    = sync_serial_read,
+diff -urNp linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c
+--- linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c	2009-07-30 12:06:52.081911892 -0400
+@@ -855,7 +855,7 @@ gpio_leds_ioctl(unsigned int cmd, unsign
+ 	return 0;
+ }
+ 
+-struct file_operations gpio_fops = {
++struct struct file_operations gpio_fops = {
+ 	.owner       = THIS_MODULE,
+ 	.poll        = gpio_poll,
+ 	.ioctl       = gpio_ioctl,
+diff -urNp linux-2.6.30.4/arch/cris/include/asm/atomic.h linux-2.6.30.4/arch/cris/include/asm/atomic.h
+--- linux-2.6.30.4/arch/cris/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/cris/include/asm/atomic.h	2009-07-30 09:48:09.884412595 -0400
 @@ -152,6 +152,10 @@ static inline int atomic_add_unless(atom
  }
  #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
@@ -482,9 +541,9 @@
  /* Atomic operations are already serializing */
  #define smp_mb__before_atomic_dec()    barrier()
  #define smp_mb__after_atomic_dec()     barrier()
-diff -urNp linux-2.6.29.6/arch/cris/include/asm/kmap_types.h linux-2.6.29.6/arch/cris/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/cris/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/cris/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/cris/include/asm/kmap_types.h linux-2.6.30.4/arch/cris/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/cris/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/cris/include/asm/kmap_types.h	2009-07-30 09:48:09.884412595 -0400
 @@ -19,6 +19,7 @@ enum km_type {
  	KM_IRQ1,
  	KM_SOFTIRQ0,
@@ -493,9 +552,34 @@
  	KM_TYPE_NR
  };
  
-diff -urNp linux-2.6.29.6/arch/h8300/include/asm/atomic.h linux-2.6.29.6/arch/h8300/include/asm/atomic.h
---- linux-2.6.29.6/arch/h8300/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/h8300/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/frv/include/asm/atomic.h linux-2.6.30.4/arch/frv/include/asm/atomic.h
+--- linux-2.6.30.4/arch/frv/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/frv/include/asm/atomic.h	2009-07-30 09:48:09.885412202 -0400
+@@ -114,6 +114,10 @@ static inline void atomic_dec(atomic_t *
+ 	atomic_sub_return(1, v);
+ }
+ 
++#define atomic_inc_unchecked(v)		atomic_inc(v)
++#define atomic_add_unchecked(i,v)	atomic_add((i),(v))
++#define atomic_sub_unchecked(i,v)	atomic_sub((i),(v))
++
+ #define atomic_dec_return(v)		atomic_sub_return(1, (v))
+ #define atomic_inc_return(v)		atomic_add_return(1, (v))
+ 
+diff -urNp linux-2.6.30.4/arch/frv/include/asm/kmap_types.h linux-2.6.30.4/arch/frv/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/frv/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/frv/include/asm/kmap_types.h	2009-07-30 09:48:09.885412202 -0400
+@@ -23,6 +23,7 @@ enum km_type {
+ 	KM_IRQ1,
+ 	KM_SOFTIRQ0,
+ 	KM_SOFTIRQ1,
++	KM_CLEARPAGE,
+ 	KM_TYPE_NR
+ };
+ 
+diff -urNp linux-2.6.30.4/arch/h8300/include/asm/atomic.h linux-2.6.30.4/arch/h8300/include/asm/atomic.h
+--- linux-2.6.30.4/arch/h8300/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/h8300/include/asm/atomic.h	2009-07-30 09:48:09.885412202 -0400
 @@ -26,6 +26,7 @@ static __inline__ int atomic_add_return(
  }
  
@@ -520,9 +604,9 @@
  
  /*
   * atomic_inc_and_test - increment and test
-diff -urNp linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h	2009-07-30 09:48:09.885412202 -0400
 @@ -15,6 +15,7 @@ enum km_type {
  	KM_IRQ1,
  	KM_SOFTIRQ0,
@@ -531,9 +615,9 @@
  	KM_TYPE_NR
  };
  
-diff -urNp linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c
---- linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c
+--- linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c	2009-07-30 09:48:09.886522893 -0400
 @@ -45,6 +45,13 @@ randomize_stack_top(unsigned long stack_
  
  #define elf_read_implies_exec(ex, have_pt_gnu_stack)	(!(have_pt_gnu_stack))
@@ -548,9 +632,23 @@
  /* Ugly but avoids duplication */
  #include "../../../fs/binfmt_elf.c"
  
-diff -urNp linux-2.6.29.6/arch/ia64/ia32/ia32priv.h linux-2.6.29.6/arch/ia64/ia32/ia32priv.h
---- linux-2.6.29.6/arch/ia64/ia32/ia32priv.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/ia32/ia32priv.h	2009-07-09 22:13:39.000000000 -0400
+@@ -69,11 +76,11 @@ ia32_install_gate_page (struct vm_area_s
+ }
+ 
+ 
+-static struct vm_operations_struct ia32_shared_page_vm_ops = {
++static const struct vm_operations_struct ia32_shared_page_vm_ops = {
+ 	.fault = ia32_install_shared_page
+ };
+ 
+-static struct vm_operations_struct ia32_gate_page_vm_ops = {
++static const struct vm_operations_struct ia32_gate_page_vm_ops = {
+ 	.fault = ia32_install_gate_page
+ };
+ 
+diff -urNp linux-2.6.30.4/arch/ia64/ia32/ia32priv.h linux-2.6.30.4/arch/ia64/ia32/ia32priv.h
+--- linux-2.6.30.4/arch/ia64/ia32/ia32priv.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/ia32/ia32priv.h	2009-07-30 09:48:09.886522893 -0400
 @@ -296,7 +296,14 @@ typedef struct compat_siginfo {
  #define ELF_DATA	ELFDATA2LSB
  #define ELF_ARCH	EM_386
@@ -567,9 +665,9 @@
  #define IA32_GATE_OFFSET	IA32_PAGE_OFFSET
  #define IA32_GATE_END		IA32_PAGE_OFFSET + PAGE_SIZE
  
-diff -urNp linux-2.6.29.6/arch/ia64/include/asm/atomic.h linux-2.6.29.6/arch/ia64/include/asm/atomic.h
---- linux-2.6.29.6/arch/ia64/include/asm/atomic.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/include/asm/atomic.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/include/asm/atomic.h linux-2.6.30.4/arch/ia64/include/asm/atomic.h
+--- linux-2.6.30.4/arch/ia64/include/asm/atomic.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/include/asm/atomic.h	2009-07-30 09:48:09.886522893 -0400
 @@ -201,8 +201,11 @@ atomic64_add_negative (__s64 i, atomic64
  #define atomic64_inc_and_test(v)	(atomic64_add_return(1, (v)) == 0)
  
@@ -582,9 +680,9 @@
  #define atomic_dec(v)			atomic_sub(1, (v))
  
  #define atomic64_add(i,v)		atomic64_add_return((i), (v))
-diff -urNp linux-2.6.29.6/arch/ia64/include/asm/elf.h linux-2.6.29.6/arch/ia64/include/asm/elf.h
---- linux-2.6.29.6/arch/ia64/include/asm/elf.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/include/asm/elf.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/include/asm/elf.h linux-2.6.30.4/arch/ia64/include/asm/elf.h
+--- linux-2.6.30.4/arch/ia64/include/asm/elf.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/include/asm/elf.h	2009-07-30 09:48:09.887468908 -0400
 @@ -43,6 +43,13 @@
   */
  #define ELF_ET_DYN_BASE		(TASK_UNMAPPED_BASE + 0x800000000UL)
@@ -599,9 +697,9 @@
  #define PT_IA_64_UNWIND		0x70000001
  
  /* IA-64 relocations: */
-diff -urNp linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h
---- linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h
+--- linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h	2009-07-30 09:48:09.887468908 -0400
 @@ -22,7 +22,8 @@ D(9)	KM_IRQ0,
  D(10)	KM_IRQ1,
  D(11)	KM_SOFTIRQ0,
@@ -612,9 +710,9 @@
  };
  
  #undef D
-diff -urNp linux-2.6.29.6/arch/ia64/include/asm/pgtable.h linux-2.6.29.6/arch/ia64/include/asm/pgtable.h
---- linux-2.6.29.6/arch/ia64/include/asm/pgtable.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/include/asm/pgtable.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/include/asm/pgtable.h linux-2.6.30.4/arch/ia64/include/asm/pgtable.h
+--- linux-2.6.30.4/arch/ia64/include/asm/pgtable.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/include/asm/pgtable.h	2009-07-30 09:48:09.887468908 -0400
 @@ -143,6 +143,17 @@
  #define PAGE_READONLY	__pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
  #define PAGE_COPY	__pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
@@ -633,9 +731,9 @@
  #define PAGE_GATE	__pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
  #define PAGE_KERNEL	__pgprot(__DIRTY_BITS  | _PAGE_PL_0 | _PAGE_AR_RWX)
  #define PAGE_KERNELRX	__pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
-diff -urNp linux-2.6.29.6/arch/ia64/include/asm/uaccess.h linux-2.6.29.6/arch/ia64/include/asm/uaccess.h
---- linux-2.6.29.6/arch/ia64/include/asm/uaccess.h	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/include/asm/uaccess.h	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/include/asm/uaccess.h linux-2.6.30.4/arch/ia64/include/asm/uaccess.h
+--- linux-2.6.30.4/arch/ia64/include/asm/uaccess.h	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/include/asm/uaccess.h	2009-07-30 11:10:48.660249525 -0400
 @@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _
  	const void *__cu_from = (from);							\
  	long __cu_len = (n);								\
@@ -654,9 +752,9 @@
  		__cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len);	\
  	__cu_len;									\
  })
-diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/kernel/module.c
---- linux-2.6.29.6/arch/ia64/kernel/module.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/kernel/module.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/kernel/module.c linux-2.6.30.4/arch/ia64/kernel/module.c
+--- linux-2.6.30.4/arch/ia64/kernel/module.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/kernel/module.c	2009-07-30 09:48:09.888412729 -0400
 @@ -312,8 +312,7 @@ module_alloc (unsigned long size)
  void
  module_free (struct module *mod, void *module_region)
@@ -667,7 +765,7 @@
  		unw_remove_unwind_table(mod->arch.init_unw_table);
  		mod->arch.init_unw_table = NULL;
  	}
-@@ -491,15 +490,39 @@ module_frob_arch_sections (Elf_Ehdr *ehd
+@@ -499,15 +498,39 @@ module_frob_arch_sections (Elf_Ehdr *ehd
  }
  
  static inline int
@@ -709,7 +807,7 @@
  }
  
  static inline int
-@@ -683,7 +706,14 @@ do_reloc (struct module *mod, uint8_t r_
+@@ -690,7 +713,14 @@ do_reloc (struct module *mod, uint8_t r_
  		break;
  
  	      case RV_BDREL:
@@ -725,7 +823,7 @@
  		break;
  
  	      case RV_LTV:
-@@ -817,15 +847,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs,
+@@ -824,15 +854,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs,
  		 *     addresses have been selected...
  		 */
  		uint64_t gp;
@@ -745,9 +843,9 @@
  		mod->arch.gp = gp;
  		DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
  	}
-diff -urNp linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c
---- linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c
+--- linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c	2009-07-30 09:48:09.888412729 -0400
 @@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil
  	if (REGION_NUMBER(addr) == RGN_HPAGE)
  		addr = 0;
@@ -774,9 +872,9 @@
  				goto full_search;
  			}
  			return -ENOMEM;
-diff -urNp linux-2.6.29.6/arch/ia64/mm/fault.c linux-2.6.29.6/arch/ia64/mm/fault.c
---- linux-2.6.29.6/arch/ia64/mm/fault.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/mm/fault.c	2009-07-09 22:13:39.000000000 -0400
+diff -urNp linux-2.6.30.4/arch/ia64/mm/fault.c linux-2.6.30.4/arch/ia64/mm/fault.c
+--- linux-2.6.30.4/arch/ia64/mm/fault.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/mm/fault.c	2009-07-30 09:48:09.889484146 -0400
 @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned 
  	return pte_present(pte);
  }
@@ -826,10 +924,10 @@
    survive:
  	/*
  	 * If for any reason at all we couldn't handle the fault, make
-diff -urNp linux-2.6.29.6/arch/ia64/mm/init.c linux-2.6.29.6/arch/ia64/mm/init.c
---- linux-2.6.29.6/arch/ia64/mm/init.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/ia64/mm/init.c	2009-07-09 22:13:39.000000000 -0400
-@@ -121,6 +121,19 @@ ia64_init_addr_space (void)
+diff -urNp linux-2.6.30.4/arch/ia64/mm/init.c linux-2.6.30.4/arch/ia64/mm/init.c
+--- linux-2.6.30.4/arch/ia64/mm/init.c	2009-07-24 17:47:51.000000000 -0400
++++ linux-2.6.30.4/arch/ia64/mm/init.c	2009-07-30 09:48:09.889484146 -0400
+@@ -122,6 +122,19 @@ ia64_init_addr_space (void)
  		vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
  		vma->vm_end = vma->vm_start + PAGE_SIZE;
  		vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT;
@@ -849,21 +947,59 @@
  		vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
  		down_write(&current->mm->mmap_sem);
  		if (insert_vm_struct(current->mm, vma)) {
-diff -urNp linux-2.6.29.6/arch/m32r/lib/usercopy.c linux-2.6.29.6/arch/m32r/lib/usercopy.c
---- linux-2.6.29.6/arch/m32r/lib/usercopy.c	2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/m32r/lib/usercopy.c	2009-07-09 22:13:39.000000000 -0400
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-grsec_full.patch?r1=1.3.2.2&r2=1.3.2.3&f=u



More information about the pld-cvs-commit mailing list