packages (GRSECURITY_RAW): kernel/kernel-grsec_full.patch http://www.grsecu...
arekm
arekm at pld-linux.org
Mon Sep 14 08:56:14 CEST 2009
Author: arekm Date: Mon Sep 14 06:56:14 2009 GMT
Module: packages Tag: GRSECURITY_RAW
---- Log message:
http://www.grsecurity.net/~spender/grsecurity-2.1.14-2.6.31-200909121839.patch
---- Files affected:
packages/kernel:
kernel-grsec_full.patch (1.3.2.9 -> 1.3.2.10)
---- Diffs:
================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.3.2.9 packages/kernel/kernel-grsec_full.patch:1.3.2.10
--- packages/kernel/kernel-grsec_full.patch:1.3.2.9 Fri Sep 11 09:06:35 2009
+++ packages/kernel/kernel-grsec_full.patch Mon Sep 14 08:56:05 2009
@@ -1,13 +1,47 @@
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-06 15:29:11.104382093 -0400
-@@ -246,6 +246,9 @@ static __inline__ int atomic64_add_unles
++++ 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))
@@ -247,17 +281,67 @@
if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
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-06 15:29:11.107211663 -0400
-@@ -233,6 +233,9 @@ static inline int atomic_add_unless(atom
++++ 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.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
@@ -364,17 +448,65 @@
}
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-06 15:29:11.109255148 -0400
-@@ -176,9 +176,12 @@ static inline int atomic_sub_if_positive
++++ 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)
@@ -456,17 +588,52 @@
"sp %08lx ecr %lu\n",
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-06 15:29:11.110254440 -0400
-@@ -81,6 +81,9 @@ static inline int atomic_test_mask(int m
- #define smp_mb__before_atomic_inc() barrier()
- #define smp_mb__after_atomic_inc() barrier()
-
-+#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))
++++ 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)
+
+ #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
@@ -505,32 +672,98 @@
.ioctl = gpio_ioctl,
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-06 15:29:11.112155258 -0400
-@@ -152,6 +152,10 @@ static inline int atomic_add_unless(atom
++++ 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);
+ }
+
++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);
}
- #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()
++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)
+ {
+ unsigned long flags;
diff -urNp linux-2.6.31/arch/frv/include/asm/atomic.h linux-2.6.31/arch/frv/include/asm/atomic.h
--- linux-2.6.31/arch/frv/include/asm/atomic.h 2009-08-27 20:59:04.000000000 -0400
-+++ linux-2.6.31/arch/frv/include/asm/atomic.h 2009-09-06 15:29:11.112155258 -0400
-@@ -114,6 +114,10 @@ static inline void atomic_dec(atomic_t *
- atomic_sub_return(1, v);
++++ linux-2.6.31/arch/frv/include/asm/atomic.h 2009-09-11 21:49:34.085801883 -0400
+@@ -37,7 +37,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))
+
+ #ifndef CONFIG_FRV_OUTOFLINE_ATOMIC_OPS
+ static inline int atomic_add_return(int i, atomic_t *v)
+@@ -99,16 +101,31 @@ static inline void atomic_add(int i, ato
+ atomic_add_return(i, 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))
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++ atomic_add_return(i, (atomic_t *)v);
++}
+
- #define atomic_dec_return(v) atomic_sub_return(1, (v))
- #define atomic_inc_return(v) atomic_add_return(1, (v))
+ static inline void atomic_sub(int i, atomic_t *v)
+ {
+ atomic_sub_return(i, v);
+ }
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++ atomic_sub_return(i, (atomic_t *)v);
++}
++
+ static inline void atomic_inc(atomic_t *v)
+ {
+ atomic_add_return(1, v);
+ }
+
++static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
++{
++ atomic_add_return(1, (atomic_t *)v);
++}
++
+ static inline void atomic_dec(atomic_t *v)
+ {
+ atomic_sub_return(1, v);
diff -urNp linux-2.6.31/arch/frv/include/asm/kmap_types.h linux-2.6.31/arch/frv/include/asm/kmap_types.h
--- linux-2.6.31/arch/frv/include/asm/kmap_types.h 2009-08-27 20:59:04.000000000 -0400
+++ linux-2.6.31/arch/frv/include/asm/kmap_types.h 2009-09-06 15:29:11.113186643 -0400
@@ -544,28 +777,56 @@
diff -urNp linux-2.6.31/arch/h8300/include/asm/atomic.h linux-2.6.31/arch/h8300/include/asm/atomic.h
--- linux-2.6.31/arch/h8300/include/asm/atomic.h 2009-08-27 20:59:04.000000000 -0400
-+++ linux-2.6.31/arch/h8300/include/asm/atomic.h 2009-09-06 15:29:11.113186643 -0400
-@@ -26,6 +26,7 @@ static __inline__ int atomic_add_return(
++++ linux-2.6.31/arch/h8300/include/asm/atomic.h 2009-09-11 22:59:01.477552220 -0400
+@@ -11,7 +11,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)
+
+ #include <asm/system.h>
+ #include <linux/kernel.h>
+@@ -25,7 +27,13 @@ static __inline__ int atomic_add_return(
+ return ret;
}
++static __inline__ int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
++{
++ return atomic_add_return(i, (atomic_t *)v);
++}
++
#define atomic_add(i, v) atomic_add_return(i, v)
-+#define atomic_add_unchecked(i, v) atomic_add((i), (v))
++#define atomic_add_unchecked(i, v) atomic_add_return_unchecked(i, v)
#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
static __inline__ int atomic_sub_return(int i, atomic_t *v)
-@@ -38,6 +39,7 @@ static __inline__ int atomic_sub_return(
+@@ -37,7 +45,13 @@ static __inline__ int atomic_sub_return(
+ return ret;
}
++static __inline__ int atomic_sub_return_unchecked(int i, atomic_unchecked_t *v)
++{
++ return atomic_sub_return(i, (atomic_t *)v);
++}
++
#define atomic_sub(i, v) atomic_sub_return(i, v)
-+#define atomic_subUnchecked(i, v) atomic_sub(i, v)
++#define atomic_sub_unchecked(i, v) atomic_sub_return_unchecked(i, v)
#define atomic_sub_and_test(i,v) (atomic_sub_return(i, v) == 0)
static __inline__ int atomic_inc_return(atomic_t *v)
-@@ -51,6 +53,7 @@ static __inline__ int atomic_inc_return(
+@@ -50,7 +64,13 @@ static __inline__ int atomic_inc_return(
+ return ret;
}
++static __inline__ int atomic_inc_return_unchecked(atomic_unchecked_t *v)
++{
++ return atomic_inc_return((atomic_t *)v);
++}
++
#define atomic_inc(v) atomic_inc_return(v)
-+#define atomic_inc_unchecked(v) atomic_inc(v)
++#define atomic_inc_unchecked(v) atomic_inc_return_unchecked(v)
/*
* atomic_inc_and_test - increment and test
@@ -621,16 +882,28 @@
diff -urNp linux-2.6.31/arch/ia64/include/asm/atomic.h linux-2.6.31/arch/ia64/include/asm/atomic.h
--- linux-2.6.31/arch/ia64/include/asm/atomic.h 2009-08-27 20:59:04.000000000 -0400
-+++ linux-2.6.31/arch/ia64/include/asm/atomic.h 2009-09-06 15:29:11.114322463 -0400
-@@ -201,8 +201,11 @@ atomic64_add_negative (__s64 i, atomic64
++++ linux-2.6.31/arch/ia64/include/asm/atomic.h 2009-09-11 22:02:02.446796802 -0400
+@@ -22,9 +22,11 @@
+ #define ATOMIC64_INIT(i) ((atomic64_t) { (i) })
+
+ #define atomic_read(v) ((v)->counter)
++#define atomic_read_unchecked(v) ((v)->counter)
+ #define atomic64_read(v) ((v)->counter)
+
+ #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))
+
+ static __inline__ int
+@@ -201,8 +203,11 @@ atomic64_add_negative (__s64 i, atomic64
#define atomic64_inc_and_test(v) (atomic64_add_return(1, (v)) == 0)
#define atomic_add(i,v) atomic_add_return((i), (v))
-+#define atomic_add_unchecked(i,v) atomic_add((i), (v))
++#define atomic_add_unchecked(i,v) atomic_add((i), (atomic_t *)(v))
#define atomic_sub(i,v) atomic_sub_return((i), (v))
-+#define atomic_sub_unchecked(i,v) atomic_sub((i), (v))
++#define atomic_sub_unchecked(i,v) atomic_sub((i), (atomic_t *)(v))
#define atomic_inc(v) atomic_add(1, (v))
-+#define atomic_inc_unchecked(v) atomic_inc(v)
++#define atomic_inc_unchecked(v) atomic_inc((atomic_t *)(v))
#define atomic_dec(v) atomic_sub(1, (v))
#define atomic64_add(i,v) atomic64_add_return((i), (v))
@@ -890,14 +1163,45 @@
if (insert_vm_struct(current->mm, vma)) {
diff -urNp linux-2.6.31/arch/m32r/include/asm/atomic.h linux-2.6.31/arch/m32r/include/asm/atomic.h
--- linux-2.6.31/arch/m32r/include/asm/atomic.h 2009-08-27 20:59:04.000000000 -0400
-+++ linux-2.6.31/arch/m32r/include/asm/atomic.h 2009-09-06 15:29:11.118236580 -0400
-@@ -308,6 +308,10 @@ static __inline__ void atomic_set_mask(u
++++ linux-2.6.31/arch/m32r/include/asm/atomic.h 2009-09-11 22:04:17.637685200 -0400
+@@ -29,6 +29,14 @@
+ #define atomic_read(v) ((v)->counter)
+
+ /**
++ * atomic_read_unchecked - read atomic variable
++ * @v: pointer of type atomic_unchecked_t
++ *
++ * Atomically reads the value of @v.
++ */
++#define atomic_read_unchecked(v) ((v)->counter)
++
++/**
+ * atomic_set - set atomic variable
+ * @v: pointer of type atomic_t
+ * @i: required value
+@@ -38,6 +46,15 @@
+ #define atomic_set(v,i) (((v)->counter) = (i))
+
+ /**
++ * atomic_set_unchecked - set atomic variable
++ * @v: pointer of type atomic_unchecked_t
++ * @i: required value
++ *
++ * Atomically sets the value of @v to @i.
++ */
++#define atomic_set_unchecked(v,i) (((v)->counter) = (i))
++
++/**
+ * atomic_add_return - add integer to atomic variable and return it
+ * @i: integer value to add
+ * @v: pointer of type atomic_t
+@@ -308,6 +325,10 @@ static __inline__ void atomic_set_mask(u
local_irq_restore(flags);
}
-+#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_inc((atomic_t *)(v))
++#define atomic_add_unchecked(i,v) atomic_add((i),(atomic_t *)(v))
++#define atomic_sub_unchecked(i,v) atomic_sub((i),(atomic_t *)(v))
+
/* Atomic operations are already serializing on m32r */
#define smp_mb__before_atomic_dec() barrier()
@@ -927,41 +1231,138 @@
__copy_user_zeroing(to,from,n);
diff -urNp linux-2.6.31/arch/m68k/include/asm/atomic_mm.h linux-2.6.31/arch/m68k/include/asm/atomic_mm.h
--- linux-2.6.31/arch/m68k/include/asm/atomic_mm.h 2009-08-27 20:59:04.000000000 -0400
-+++ linux-2.6.31/arch/m68k/include/asm/atomic_mm.h 2009-09-06 15:29:11.118236580 -0400
-@@ -186,6 +186,10 @@ static __inline__ int atomic_add_unless(
++++ linux-2.6.31/arch/m68k/include/asm/atomic_mm.h 2009-09-12 09:48:47.937349132 -0400
+@@ -16,23 +16,40 @@
+ #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)
- #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
+ static inline void atomic_add(int i, atomic_t *v)
+ {
+ __asm__ __volatile__("addl %1,%0" : "+m" (*v) : "id" (i));
+ }
-+#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))
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++ atomic_add(i, (atomic_t *)v);
++}
+
- /* Atomic operations are already serializing */
- #define smp_mb__before_atomic_dec() barrier()
- #define smp_mb__after_atomic_dec() barrier()
+ static inline void atomic_sub(int i, atomic_t *v)
+ {
+ __asm__ __volatile__("subl %1,%0" : "+m" (*v) : "id" (i));
+ }
+
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++ atomic_sub(i, (atomic_t *)v);
++}
++
+ static inline void atomic_inc(atomic_t *v)
+ {
+ __asm__ __volatile__("addql #1,%0" : "+m" (*v));
+ }
+
++static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
++{
++ atomic_inc((atomic_t *)v);
++}
++
+ static inline void atomic_dec(atomic_t *v)
+ {
+ __asm__ __volatile__("subql #1,%0" : "+m" (*v));
diff -urNp linux-2.6.31/arch/m68k/include/asm/atomic_no.h linux-2.6.31/arch/m68k/include/asm/atomic_no.h
--- linux-2.6.31/arch/m68k/include/asm/atomic_no.h 2009-08-27 20:59:04.000000000 -0400
-+++ linux-2.6.31/arch/m68k/include/asm/atomic_no.h 2009-09-06 15:29:11.119214787 -0400
-@@ -151,5 +151,9 @@ static __inline__ int atomic_add_unless(
- #define atomic_dec_return(v) atomic_sub_return(1,(v))
- #define atomic_inc_return(v) atomic_add_return(1,(v))
-
-+#define atomic_inc_unchecked(v) atomic_inc((v))
-+#define atomic_add_unchecked(i,v) atomic_add((i),(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.3.2.9&r2=1.3.2.10&f=u
More information about the pld-cvs-commit
mailing list