packages: kernel/kernel-grsec_full.patch - updated to grsecurity-2.1.14-2.6...

mguevara mguevara at pld-linux.org
Mon Sep 14 02:14:35 CEST 2009


Author: mguevara                     Date: Mon Sep 14 00:14:35 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- updated to grsecurity-2.1.14-2.6.31-200909121002.patch with fixes for 
  applying after kernel-vserver-2.3.patch

---- Files affected:
packages/kernel:
   kernel-grsec_full.patch (1.10 -> 1.11) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.10 packages/kernel/kernel-grsec_full.patch:1.11
--- packages/kernel/kernel-grsec_full.patch:1.10	Wed Aug 19 14:30:08 2009
+++ packages/kernel/kernel-grsec_full.patch	Mon Sep 14 02:14:29 2009
@@ -1,19 +1,53 @@
-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
+diff -urNp linux-2.6.31/arch/alpha/include/asm/atomic.h linux-2.6.31/arch/alpha/include/asm/atomic.h
+--- linux-2.6.31/arch/alpha/include/asm/atomic.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/alpha/include/asm/atomic.h	2009-09-11 22:49:04.785615322 -0400
+@@ -18,9 +18,11 @@
+ #define ATOMIC64_INIT(i)	( (atomic64_t) { (i) } )
+ 
+ #define atomic_read(v)		((v)->counter + 0)
++#define atomic_read_unchecked(v)	((v)->counter + 0)
+ #define atomic64_read(v)	((v)->counter + 0)
+ 
+ #define atomic_set(v,i)		((v)->counter = (i))
++#define atomic_set_unchecked(v,i)	((v)->counter = (i))
+ #define atomic64_set(v,i)	((v)->counter = (i))
+ 
+ /*
+@@ -44,6 +46,11 @@ static __inline__ void atomic_add(int i,
+ 	:"Ir" (i), "m" (v->counter));
+ }
+ 
++static __inline__ void atomic_add_unchecked(int i, atomic_unchecked_t * v)
++{
++	atomic_add(i, (atomic_t *)v);
++}
++
+ static __inline__ void atomic64_add(long i, atomic64_t * v)
+ {
+ 	unsigned long temp;
+@@ -74,6 +81,11 @@ static __inline__ void atomic_sub(int i,
+ 	:"Ir" (i), "m" (v->counter));
+ }
+ 
++static __inline__ void atomic_sub_unchecked(int i, atomic_unchecked_t * v)
++{
++	atomic_sub(i, (atomic_t *)v);
++}
++
+ static __inline__ void atomic64_sub(long i, atomic64_t * v)
+ {
+ 	unsigned long temp;
+@@ -246,6 +258,7 @@ static __inline__ int atomic64_add_unles
  #define atomic64_dec_and_test(v) (atomic64_sub_return(1, (v)) == 0)
  
  #define atomic_inc(v) atomic_add(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_unchecked(v) atomic_add_unchecked(1,(v))
  #define atomic64_inc(v) atomic64_add(1,(v))
  
  #define atomic_dec(v) atomic_sub(1,(v))
-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
+diff -urNp linux-2.6.31/arch/alpha/include/asm/elf.h linux-2.6.31/arch/alpha/include/asm/elf.h
+--- linux-2.6.31/arch/alpha/include/asm/elf.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/alpha/include/asm/elf.h	2009-09-06 15:29:11.105049911 -0400
 @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
  
  #define ELF_ET_DYN_BASE		(TASK_UNMAPPED_BASE + 0x1000000)
@@ -28,22 +62,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.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,
- D(12)	KM_SOFTIRQ1,
--D(13)	KM_TYPE_NR
-+D(13)  KM_CLEARPAGE,
-+D(14)  KM_TYPE_NR
- };
- 
- #undef D
-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
+diff -urNp linux-2.6.31/arch/alpha/include/asm/pgtable.h linux-2.6.31/arch/alpha/include/asm/pgtable.h
+--- linux-2.6.31/arch/alpha/include/asm/pgtable.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/alpha/include/asm/pgtable.h	2009-09-06 15:29:11.105049911 -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 +83,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.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
+diff -urNp linux-2.6.31/arch/alpha/kernel/module.c linux-2.6.31/arch/alpha/kernel/module.c
+--- linux-2.6.31/arch/alpha/kernel/module.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/alpha/kernel/module.c	2009-09-06 15:29:11.105049911 -0400
 @@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, 
  
  	/* The small sections were sorted to the end of the segment.
@@ -74,10 +95,10 @@
  	got = sechdrs[me->arch.gotsecindex].sh_addr;
  
  	for (i = 0; i < n; i++) {
-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
+diff -urNp linux-2.6.31/arch/alpha/kernel/osf_sys.c linux-2.6.31/arch/alpha/kernel/osf_sys.c
+--- linux-2.6.31/arch/alpha/kernel/osf_sys.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/alpha/kernel/osf_sys.c	2009-09-06 15:29:11.106230045 -0400
+@@ -1212,6 +1212,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 +109,7 @@
  	if (addr) {
  		addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
  		if (addr != (unsigned long) -ENOMEM)
-@@ -1222,8 +1226,8 @@ arch_get_unmapped_area(struct file *filp
+@@ -1219,8 +1223,8 @@ arch_get_unmapped_area(struct file *filp
  	}
  
  	/* Next, try allocating at TASK_UNMAPPED_BASE.  */
@@ -99,9 +120,9 @@
  	if (addr != (unsigned long) -ENOMEM)
  		return addr;
  
-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
+diff -urNp linux-2.6.31/arch/alpha/mm/fault.c linux-2.6.31/arch/alpha/mm/fault.c
+--- linux-2.6.31/arch/alpha/mm/fault.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/alpha/mm/fault.c	2009-09-06 15:29:11.106230045 -0400
 @@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct *
  	__reload_thread(pcb);
  }
@@ -258,22 +279,72 @@
  	} else if (!cause) {
  		/* Allow reads even for write-only mappings */
  		if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
-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
+diff -urNp linux-2.6.31/arch/arm/include/asm/atomic.h linux-2.6.31/arch/arm/include/asm/atomic.h
+--- linux-2.6.31/arch/arm/include/asm/atomic.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/arm/include/asm/atomic.h	2009-09-11 22:51:00.173407719 -0400
+@@ -20,6 +20,7 @@
+ #ifdef __KERNEL__
+ 
+ #define atomic_read(v)	((v)->counter)
++#define atomic_read_unchecked(v)	((v)->counter)
+ 
+ #if __LINUX_ARM_ARCH__ >= 6
+ 
+@@ -44,6 +45,11 @@ static inline void atomic_set(atomic_t *
+ 	: "cc");
+ }
+ 
++static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
++{
++	atomic_set((atomic_t *)v, i);
++}
++
+ static inline void atomic_add(int i, atomic_t *v)
+ {
+ 	unsigned long tmp;
+@@ -60,6 +66,11 @@ static inline void atomic_add(int i, ato
+ 	: "cc");
+ }
+ 
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++	atomic_add(i, (atomic_t *)v);
++}
++
+ static inline int atomic_add_return(int i, atomic_t *v)
+ {
+ 	unsigned long tmp;
+@@ -98,6 +109,11 @@ static inline void atomic_sub(int i, ato
+ 	: "cc");
+ }
+ 
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++	atomic_sub(i, (atomic_t *)v);
++}
++
+ static inline int atomic_sub_return(int i, atomic_t *v)
+ {
+ 	unsigned long tmp;
+@@ -164,6 +180,7 @@ static inline void atomic_clear_mask(uns
+ #endif
+ 
+ #define atomic_set(v,i)	(((v)->counter) = (i))
++#define atomic_set_unchecked(v,i)	(((v)->counter) = (i))
+ 
+ static inline int atomic_add_return(int i, atomic_t *v)
+ {
+@@ -232,6 +249,7 @@ static inline int atomic_add_unless(atom
+ #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
  
  #define atomic_inc(v)		atomic_add(1, v)
++#define atomic_inc_unchecked(v)		atomic_add_unchecked(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.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
+diff -urNp linux-2.6.31/arch/arm/include/asm/elf.h linux-2.6.31/arch/arm/include/asm/elf.h
+--- linux-2.6.31/arch/arm/include/asm/elf.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/arm/include/asm/elf.h	2009-09-06 15:29:11.107211663 -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,9 +361,9 @@
  
  /* 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.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
+diff -urNp linux-2.6.31/arch/arm/include/asm/kmap_types.h linux-2.6.31/arch/arm/include/asm/kmap_types.h
+--- linux-2.6.31/arch/arm/include/asm/kmap_types.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/arm/include/asm/kmap_types.h	2009-09-06 15:29:11.107211663 -0400
 @@ -19,6 +19,7 @@ enum km_type {
  	KM_SOFTIRQ0,
  	KM_SOFTIRQ1,
@@ -301,10 +372,10 @@
  	KM_TYPE_NR
  };
  
-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
+diff -urNp linux-2.6.31/arch/arm/include/asm/uaccess.h linux-2.6.31/arch/arm/include/asm/uaccess.h
+--- linux-2.6.31/arch/arm/include/asm/uaccess.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/arm/include/asm/uaccess.h	2009-09-06 15:29:11.108180388 -0400
+@@ -400,6 +400,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)
  {
@@ -314,7 +385,7 @@
  	if (access_ok(VERIFY_READ, from, n))
  		n = __copy_from_user(to, from, n);
  	else /* security hole - plug it */
-@@ -407,6 +410,9 @@ static inline unsigned long __must_check
+@@ -409,6 +412,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)
  {
@@ -324,9 +395,9 @@
  	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
+diff -urNp linux-2.6.31/arch/arm/mach-ns9xxx/clock.c linux-2.6.31/arch/arm/mach-ns9xxx/clock.c
+--- linux-2.6.31/arch/arm/mach-ns9xxx/clock.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/arm/mach-ns9xxx/clock.c	2009-09-06 15:29:11.108180388 -0400
 @@ -195,7 +195,7 @@ static int clk_debugfs_open(struct inode
  	return single_open(file, clk_debugfs_show, NULL);
  }
@@ -336,9 +407,9 @@
  	.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
+diff -urNp linux-2.6.31/arch/arm/mm/mmap.c linux-2.6.31/arch/arm/mm/mmap.c
+--- linux-2.6.31/arch/arm/mm/mmap.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/arm/mm/mmap.c	2009-09-06 15:29:11.108180388 -0400
 @@ -62,6 +62,10 @@ arch_get_unmapped_area(struct file *filp
  	if (len > TASK_SIZE)
  		return -ENOMEM;
@@ -375,25 +446,73 @@
  				mm->cached_hole_size = 0;
  				goto full_search;
  			}
-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
+diff -urNp linux-2.6.31/arch/avr32/include/asm/atomic.h linux-2.6.31/arch/avr32/include/asm/atomic.h
+--- linux-2.6.31/arch/avr32/include/asm/atomic.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/avr32/include/asm/atomic.h	2009-09-11 22:52:43.047793693 -0400
+@@ -20,7 +20,9 @@
+ #define ATOMIC_INIT(i)  { (i) }
+ 
+ #define atomic_read(v)		((v)->counter)
++#define atomic_read_unchecked(v)	((v)->counter)
+ #define atomic_set(v, i)	(((v)->counter) = i)
++#define atomic_set_unchecked(v, i)	(((v)->counter) = i)
+ 
+ /*
+  * atomic_sub_return - subtract the atomic variable
+@@ -48,6 +50,18 @@ static inline int atomic_sub_return(int 
+ }
+ 
+ /*
++ * atomic_sub_return_unchecked - subtract the atomic variable
++ * @i: integer value to subtract
++ * @v: pointer of type atomic_unchecked_t
++ *
++ * Atomically subtracts @i from @v. Returns the resulting value.
++ */
++static inline int atomic_sub_return_unchecked(int i, atomic_unchecked_t *v)
++{
++	return atomic_sub_return(i, (atomic_t *)v);
++}
++
++/*
+  * atomic_add_return - add integer to atomic variable
+  * @i: integer value to add
+  * @v: pointer of type atomic_t
+@@ -76,6 +90,18 @@ static inline int atomic_add_return(int 
+ }
+ 
+ /*
++ * atomic_add_return_unchecked - add integer to atomic variable
++ * @i: integer value to add
++ * @v: pointer of type atomic_unchecked_t
++ *
++ * Atomically adds @i to @v. Returns the resulting value.
++ */
++static inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
++{
++	return atomic_add_return(i, (atomic_t *)v);
++}
++
++/*
+  * atomic_sub_unless - sub unless the number is a given value
+  * @v: pointer of type atomic_t
+  * @a: the amount to add to v...
+@@ -176,9 +202,12 @@ static inline int atomic_sub_if_positive
  #define atomic_cmpxchg(v, o, n)	(cmpxchg(&((v)->counter), (o), (n)))
  
  #define atomic_sub(i, v)	(void)atomic_sub_return(i, v)
-+#define atomic_sub_unchecked(i, v)	atomic_sub((i), (v))
++#define atomic_sub_unchecked(i, v)	(void)atomic_sub_return_unchecked(i, v)
  #define atomic_add(i, v)	(void)atomic_add_return(i, v)
-+#define atomic_add_unchecked(i, v)	atomic_add((i), (v))
++#define atomic_add_unchecked(i, v)	(void)atomic_add_return_unchecked(i, v)
  #define atomic_dec(v)		atomic_sub(1, (v))
  #define atomic_inc(v)		atomic_add(1, (v))
-+#define atomic_inc_unchecked(v)	atomic_inc(v)
++#define atomic_inc_unchecked(v)	(void)atomic_add_return_unchecked(1, (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/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
+diff -urNp linux-2.6.31/arch/avr32/include/asm/elf.h linux-2.6.31/arch/avr32/include/asm/elf.h
+--- linux-2.6.31/arch/avr32/include/asm/elf.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/avr32/include/asm/elf.h	2009-09-06 15:29:11.109255148 -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.  */
@@ -410,9 +529,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.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
+diff -urNp linux-2.6.31/arch/avr32/include/asm/kmap_types.h linux-2.6.31/arch/avr32/include/asm/kmap_types.h
+--- linux-2.6.31/arch/avr32/include/asm/kmap_types.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/avr32/include/asm/kmap_types.h	2009-09-06 15:29:11.109255148 -0400
 @@ -22,7 +22,8 @@ D(10)	KM_IRQ0,
  D(11)	KM_IRQ1,
  D(12)	KM_SOFTIRQ0,
@@ -423,9 +542,9 @@
  };
  
  #undef D
-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
+diff -urNp linux-2.6.31/arch/avr32/mm/fault.c linux-2.6.31/arch/avr32/mm/fault.c
+--- linux-2.6.31/arch/avr32/mm/fault.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/avr32/mm/fault.c	2009-09-06 15:29:11.110254440 -0400
 @@ -41,6 +41,23 @@ static inline int notify_page_fault(stru
  
  int exception_trace = 1;
@@ -467,45 +586,69 @@
  		if (exception_trace && printk_ratelimit())
  			printk("%s%s[%d]: segfault at %08lx pc %08lx "
  			       "sp %08lx ecr %lu\n",
-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 */
- 
-+#define atomic_add_unchecked(i, v) atomic_add((i), (v))
-+#define atomic_sub_unchecked(i, v) atomic_sub((i), (v))
-+#define atomic_inc_unchecked(v) atomic_inc((v))
- #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.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,
- 	KM_SOFTIRQ1,
-+	KM_CLEARPAGE,
- 	KM_TYPE_NR
- };
+diff -urNp linux-2.6.31/arch/blackfin/include/asm/atomic.h linux-2.6.31/arch/blackfin/include/asm/atomic.h
+--- linux-2.6.31/arch/blackfin/include/asm/atomic.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/blackfin/include/asm/atomic.h	2009-09-11 22:53:53.058593048 -0400
+@@ -15,8 +15,10 @@
+ 
+ #define ATOMIC_INIT(i)	{ (i) }
+ #define atomic_set(v, i)	(((v)->counter) = i)
++#define atomic_set_unchecked(v, i)	(((v)->counter) = i)
  
-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;
+ #define atomic_read(v)	__raw_uncached_fetch_asm(&(v)->counter)
++#define atomic_read_unchecked(v)	__raw_uncached_fetch_asm(&(v)->counter)
+ 
+ asmlinkage int __raw_uncached_fetch_asm(const volatile int *ptr);
+ 
+@@ -35,11 +37,21 @@ static inline void atomic_add(int i, ato
+ 	__raw_atomic_update_asm(&v->counter, i);
+ }
+ 
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++	atomic_add(i, (atomic_t *)v);
++}
++
+ static inline void atomic_sub(int i, atomic_t *v)
+ {
+ 	__raw_atomic_update_asm(&v->counter, -i);
+ }
+ 
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++	atomic_sub(i, (atomic_t *)v);
++}
++
+ static inline int atomic_add_return(int i, atomic_t *v)
+ {
+ 	return __raw_atomic_update_asm(&v->counter, i);
+@@ -55,6 +67,11 @@ static inline void atomic_inc(volatile a
+ 	__raw_atomic_update_asm(&v->counter, 1);
+ }
+ 
++static inline void atomic_inc_unchecked(volatile atomic_unchecked_t *v)
++{
++	atomic_inc((atomic_t *)v);
++}
++
+ static inline void atomic_dec(volatile atomic_t *v)
+ {
+ 	__raw_atomic_update_asm(&v->counter, -1);
+diff -urNp linux-2.6.31/arch/blackfin/mach-bf561/coreb.c linux-2.6.31/arch/blackfin/mach-bf561/coreb.c
+--- linux-2.6.31/arch/blackfin/mach-bf561/coreb.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/blackfin/mach-bf561/coreb.c	2009-09-06 15:29:11.110254440 -0400
+@@ -48,7 +48,7 @@ coreb_ioctl(struct inode *inode, struct 
+ 	return ret;
  }
  
 -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
+ 	.owner   = THIS_MODULE,
+ 	.ioctl   = coreb_ioctl,
+ };
+diff -urNp linux-2.6.31/arch/cris/arch-v10/drivers/sync_serial.c linux-2.6.31/arch/cris/arch-v10/drivers/sync_serial.c
+--- linux-2.6.31/arch/cris/arch-v10/drivers/sync_serial.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/cris/arch-v10/drivers/sync_serial.c	2009-09-06 15:29:11.111389293 -0400
 @@ -244,7 +244,7 @@ static unsigned sync_serial_prescale_sha
  
  #define NUMBER_OF_PORTS 2
@@ -515,9 +658,9 @@
  	.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
+diff -urNp linux-2.6.31/arch/cris/arch-v32/drivers/mach-fs/gpio.c linux-2.6.31/arch/cris/arch-v32/drivers/mach-fs/gpio.c
+--- linux-2.6.31/arch/cris/arch-v32/drivers/mach-fs/gpio.c	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/cris/arch-v32/drivers/mach-fs/gpio.c	2009-09-06 15:29:11.112155258 -0400
 @@ -855,7 +855,7 @@ gpio_leds_ioctl(unsigned int cmd, unsign
  	return 0;
  }
@@ -527,48 +670,103 @@
  	.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
+diff -urNp linux-2.6.31/arch/cris/include/asm/atomic.h linux-2.6.31/arch/cris/include/asm/atomic.h
+--- linux-2.6.31/arch/cris/include/asm/atomic.h	2009-08-27 20:59:04.000000000 -0400
++++ linux-2.6.31/arch/cris/include/asm/atomic.h	2009-09-11 22:55:08.915710428 -0400
+@@ -16,7 +16,9 @@
+ #define ATOMIC_INIT(i)  { (i) }
+ 
+ #define atomic_read(v) ((v)->counter)
++#define atomic_read_unchecked(v) ((v)->counter)
+ #define atomic_set(v,i) (((v)->counter) = (i))
++#define atomic_set_unchecked(v,i) (((v)->counter) = (i))
+ 
+ /* These should be written in asm but we do it in C for now. */
+ 
+@@ -28,6 +30,11 @@ static inline void atomic_add(int i, vol
+ 	cris_atomic_restore(v, flags);
  }
- #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
  
-+#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))
-+
- /* Atomic operations are already serializing */
- #define smp_mb__before_atomic_dec()    barrier()
- #define smp_mb__after_atomic_dec()     barrier()
-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,
- 	KM_SOFTIRQ1,
-+	KM_CLEARPAGE,
- 	KM_TYPE_NR
- };
++static inline void atomic_add_unchecked(int i, volatile atomic_unchecked_t *v)
++{
++	atomic_add(i, (volatile atomic_t *)v);
++}
++
+ static inline void atomic_sub(int i, volatile atomic_t *v)
+ {
+ 	unsigned long flags;
+@@ -36,6 +43,11 @@ static inline void atomic_sub(int i, vol
+ 	cris_atomic_restore(v, flags);
+ }
  
-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);
++static inline void atomic_sub_unchecked(int i, volatile atomic_unchecked_t *v)
++{
++	atomic_sub(i, (volatile atomic_t *)v);
++}
++
+ static inline int atomic_add_return(int i, volatile atomic_t *v)
+ {
+ 	unsigned long flags;
+@@ -76,6 +88,11 @@ static inline void atomic_inc(volatile a
+ 	cris_atomic_restore(v, flags);
+ }
+ 
++static inline void atomic_inc_unchecked(volatile atomic_unchecked_t *v)
++{
++	atomic_inc((volatile atomic_t *)v);
++}
++
+ static inline void atomic_dec(volatile atomic_t *v)
<<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.10&r2=1.11&f=u



More information about the pld-cvs-commit mailing list