packages (LINUX_2_6_32): kernel/kernel-grsec_full.patch - http://www.grsecu...
hawk
hawk at pld-linux.org
Thu Apr 19 15:05:34 CEST 2012
Author: hawk Date: Thu Apr 19 13:05:33 2012 GMT
Module: packages Tag: LINUX_2_6_32
---- Log message:
- http://www.grsecurity.net/~spender/grsecurity-2.9-2.6.32.59-201204172134.patch
---- Files affected:
packages/kernel:
kernel-grsec_full.patch (1.29.2.10 -> 1.29.2.11)
---- Diffs:
================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.29.2.10 packages/kernel/kernel-grsec_full.patch:1.29.2.11
--- packages/kernel/kernel-grsec_full.patch:1.29.2.10 Thu Mar 8 20:50:07 2012
+++ packages/kernel/kernel-grsec_full.patch Thu Apr 19 15:05:11 2012
@@ -1,11 +1,12 @@
diff --git a/Documentation/dontdiff b/Documentation/dontdiff
-index e1efc40..47f0daf 100644
+index e1efc40..4e87324 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
-@@ -1,15 +1,19 @@
+@@ -1,15 +1,20 @@
*.a
*.aux
*.bin
++*.c.[012].*
+*.cis
*.cpio
*.csp
@@ -22,7 +23,7 @@
*.grep
*.grp
*.gz
-@@ -38,8 +42,10 @@
+@@ -38,8 +43,10 @@
*.tab.h
*.tex
*.ver
@@ -33,7 +34,7 @@
*_vga16.c
*~
*.9
-@@ -49,11 +55,16 @@
+@@ -49,11 +56,16 @@
53c700_d.h
CVS
ChangeSet
@@ -50,7 +51,7 @@
SCCS
System.map*
TAGS
-@@ -76,7 +87,11 @@ btfixupprep
+@@ -76,7 +88,11 @@ btfixupprep
build
bvmlinux
bzImage*
@@ -62,7 +63,7 @@
comp*.log
compile.h*
conf
-@@ -84,6 +99,8 @@ config
+@@ -84,6 +100,8 @@ config
config-*
config_data.h*
config_data.gz*
@@ -71,7 +72,7 @@
conmakehash
consolemap_deftbl.c*
cpustr.h
-@@ -97,19 +114,23 @@ elfconfig.h*
+@@ -97,19 +115,23 @@ elfconfig.h*
fixdep
fore200e_mkfirm
fore200e_pca_fw.c*
@@ -96,7 +97,15 @@
keywords.c
ksym.c*
ksym.h*
-@@ -127,13 +148,16 @@ machtypes.h
+@@ -117,6 +139,7 @@ kxgettext
+ lkc_defs.h
+ lex.c
+ lex.*.c
++lib1funcs.S
+ logo_*.c
+ logo_*_clut224.c
+ logo_*_mono.c
+@@ -127,13 +150,16 @@ machtypes.h
map
maui_boot.h
mconf
@@ -113,7 +122,7 @@
mktables
mktree
modpost
-@@ -149,6 +173,7 @@ patches*
+@@ -149,6 +175,7 @@ patches*
pca200e.bin
pca200e_ecd.bin2
piggy.gz
@@ -121,7 +130,7 @@
piggyback
pnmtologo
ppc_defs.h*
-@@ -157,12 +182,15 @@ qconf
+@@ -157,12 +184,15 @@ qconf
raid6altivec*.c
raid6int*.c
raid6tables.c
@@ -137,7 +146,7 @@
sm_tbl*
split-include
syscalltab.h
-@@ -171,6 +199,7 @@ tftpboot.img
+@@ -171,6 +201,7 @@ tftpboot.img
timeconst.h
times.h*
trix_boot.h
@@ -145,7 +154,7 @@
utsrelease.h*
vdso-syms.lds
vdso.lds
-@@ -186,14 +215,20 @@ version.h*
+@@ -186,14 +217,20 @@ version.h*
vmlinux
vmlinux-*
vmlinux.aout
@@ -184,8 +193,27 @@
pcbit= [HW,ISDN]
pcd. [PARIDE]
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 613da5d..4fe3eda 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -5725,6 +5725,14 @@ L: netdev at vger.kernel.org
+ S: Maintained
+ F: drivers/net/vmxnet3/
+
++VMware PVSCSI driver
++M: Alok Kataria <akataria at vmware.com>
++M: VMware PV-Drivers <pv-drivers at vmware.com>
++L: linux-scsi at vger.kernel.org
++S: Maintained
++F: drivers/scsi/vmw_pvscsi.c
++F: drivers/scsi/vmw_pvscsi.h
++
+ VOLTAGE AND CURRENT REGULATOR FRAMEWORK
+ M: Liam Girdwood <lrg at slimlogic.co.uk>
+ M: Mark Brown <broonie at opensource.wolfsonmicro.com>
diff --git a/Makefile b/Makefile
-index ed78982..bcc432e 100644
+index 3a9a721..e5a22f7 100644
--- a/Makefile
+++ b/Makefile
@@ -221,8 +221,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -220,7 +248,7 @@
include/linux/version.h headers_% \
kernelrelease kernelversion
-@@ -526,6 +527,48 @@ else
+@@ -526,6 +527,53 @@ else
KBUILD_CFLAGS += -O2
endif
@@ -246,9 +274,14 @@
+CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
+endif
+endif
-+GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS) $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS)
++COLORIZE_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/colorize_plugin.so
++ifdef CONFIG_PAX_SIZE_OVERFLOW
++SIZE_OVERFLOW_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/size_overflow_plugin.so -DSIZE_OVERFLOW_PLUGIN
++endif
++GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
++GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS) $(SIZE_OVERFLOW_PLUGIN_CFLAGS)
+GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
-+export CONSTIFY_PLUGIN STACKLEAK_PLUGIN KERNEXEC_PLUGIN CHECKER_PLUGIN
++export CONSTIFY_PLUGIN STACKLEAK_PLUGIN KERNEXEC_PLUGIN CHECKER_PLUGIN SIZE_OVERFLOW_PLUGIN
+ifeq ($(KBUILD_EXTMOD),)
+gcc-plugins:
+ $(Q)$(MAKE) $(build)=tools/gcc
@@ -269,7 +302,7 @@
include $(srctree)/arch/$(SRCARCH)/Makefile
ifneq ($(CONFIG_FRAME_WARN),0)
-@@ -647,7 +690,7 @@ export mod_strip_cmd
+@@ -647,7 +695,7 @@ export mod_strip_cmd
ifeq ($(KBUILD_EXTMOD),)
@@ -278,7 +311,7 @@
vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
$(core-y) $(core-m) $(drivers-y) $(drivers-m) \
-@@ -868,6 +911,8 @@ vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE
+@@ -868,6 +916,8 @@ vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE
# The actual objects are generated when descending,
# make sure no implicit rule kicks in
@@ -287,7 +320,7 @@
$(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
# Handle descending into subdirectories listed in $(vmlinux-dirs)
-@@ -877,7 +922,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
+@@ -877,7 +927,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
# Error messages still appears in the original language
PHONY += $(vmlinux-dirs)
@@ -296,7 +329,7 @@
$(Q)$(MAKE) $(build)=$@
# Build the kernel release string
-@@ -986,6 +1031,7 @@ prepare0: archprepare FORCE
+@@ -986,6 +1036,7 @@ prepare0: archprepare FORCE
$(Q)$(MAKE) $(build)=. missing-syscalls
# All the preparing..
@@ -304,7 +337,7 @@
prepare: prepare0
# The asm symlink changes when $(ARCH) changes.
-@@ -1127,6 +1173,8 @@ all: modules
+@@ -1127,6 +1178,8 @@ all: modules
# using awk while concatenating to the final file.
PHONY += modules
@@ -313,7 +346,7 @@
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
@$(kecho) ' Building modules, stage 2.';
-@@ -1136,7 +1184,7 @@ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
+@@ -1136,7 +1189,7 @@ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
# Target to prepare building external modules
PHONY += modules_prepare
@@ -322,7 +355,7 @@
# Target to install modules
PHONY += modules_install
-@@ -1201,7 +1249,7 @@ MRPROPER_FILES += .config .config.old include/asm .version .old_version \
+@@ -1201,7 +1254,7 @@ MRPROPER_FILES += .config .config.old include/asm .version .old_version \
include/linux/autoconf.h include/linux/version.h \
include/linux/utsrelease.h \
include/linux/bounds.h include/asm*/asm-offsets.h \
@@ -331,7 +364,7 @@
# clean - Delete most, but leave enough to build external modules
#
-@@ -1245,7 +1293,7 @@ distclean: mrproper
+@@ -1245,7 +1298,7 @@ distclean: mrproper
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
@@ -340,7 +373,7 @@
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
-type f -print | xargs rm -f
-@@ -1292,6 +1340,7 @@ help:
+@@ -1292,6 +1345,7 @@ help:
@echo ' modules_prepare - Set up for building external modules'
@echo ' tags/TAGS - Generate tags file for editors'
@echo ' cscope - Generate cscope index'
@@ -348,7 +381,7 @@
@echo ' kernelrelease - Output the release version string'
@echo ' kernelversion - Output the version stored in Makefile'
@echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'; \
-@@ -1393,6 +1442,8 @@ PHONY += $(module-dirs) modules
+@@ -1393,6 +1447,8 @@ PHONY += $(module-dirs) modules
$(module-dirs): crmodverdir $(objtree)/Module.symvers
$(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
@@ -357,7 +390,7 @@
modules: $(module-dirs)
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1448,7 +1499,7 @@ endif # KBUILD_EXTMOD
+@@ -1448,7 +1504,7 @@ endif # KBUILD_EXTMOD
quiet_cmd_tags = GEN $@
cmd_tags = $(CONFIG_SHELL) $(srctree)/scripts/tags.sh $@
@@ -366,7 +399,7 @@
$(call cmd,tags)
# Scripts to check various things for consistency
-@@ -1513,17 +1564,21 @@ else
+@@ -1513,17 +1569,21 @@ else
target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
endif
@@ -392,7 +425,7 @@
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.symtypes: %.c prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-@@ -1533,11 +1588,15 @@ endif
+@@ -1533,11 +1593,15 @@ endif
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
@@ -431,6 +464,33 @@
#define smp_mb__before_atomic_dec() smp_mb()
#define smp_mb__after_atomic_dec() smp_mb()
#define smp_mb__before_atomic_inc() smp_mb()
+diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h
+index f199e69..af005f5 100644
+--- a/arch/alpha/include/asm/cache.h
++++ b/arch/alpha/include/asm/cache.h
+@@ -4,19 +4,20 @@
+ #ifndef __ARCH_ALPHA_CACHE_H
+ #define __ARCH_ALPHA_CACHE_H
+
++#include <linux/const.h>
+
+ /* Bytes per L1 (data) cache line. */
+ #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
+-# define L1_CACHE_BYTES 64
+ # define L1_CACHE_SHIFT 6
+ #else
+ /* Both EV4 and EV5 are write-through, read-allocate,
+ direct-mapped, physical.
+ */
+-# define L1_CACHE_BYTES 32
+ # define L1_CACHE_SHIFT 5
+ #endif
+
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
++
+ #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
+ #define SMP_CACHE_BYTES L1_CACHE_BYTES
+
diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h
index 5c75c1b..c82f878 100644
--- a/arch/alpha/include/asm/elf.h
@@ -692,7 +752,7 @@
select HAVE_KRETPROBES if (HAVE_KPROBES)
select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
-index d0daeab..ff286a8 100644
+index d0daeab..99ab713 100644
--- a/arch/arm/include/asm/atomic.h
+++ b/arch/arm/include/asm/atomic.h
@@ -15,6 +15,10 @@
@@ -706,6 +766,299 @@
#define ATOMIC_INIT(i) { (i) }
#ifdef __KERNEL__
+@@ -24,8 +28,16 @@
+ * strex/ldrex monitor on some implementations. The reason we can use it for
+ * atomic_set() is the clrex or dummy strex done on every exception return.
+ */
+-#define atomic_read(v) ((v)->counter)
++#define atomic_read(v) (*(volatile int *)&(v)->counter)
++static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
++{
++ return v->counter;
++}
+ #define atomic_set(v,i) (((v)->counter) = (i))
++static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
++{
++ v->counter = i;
++}
+
+ #if __LINUX_ARM_ARCH__ >= 6
+
+@@ -40,6 +52,35 @@ static inline void atomic_add(int i, atomic_t *v)
+ int result;
+
+ __asm__ __volatile__("@ atomic_add\n"
++"1: ldrex %1, [%2]\n"
++" add %0, %1, %3\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++" bvc 3f\n"
++"2: bkpt 0xf103\n"
++"3:\n"
++#endif
++
++" strex %1, %0, [%2]\n"
++" teq %1, #0\n"
++" bne 1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++ _ASM_EXTABLE(2b, 4b)
++#endif
++
++ : "=&r" (result), "=&r" (tmp)
++ : "r" (&v->counter), "Ir" (i)
++ : "cc");
++}
++
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++ unsigned long tmp;
++ int result;
++
++ __asm__ __volatile__("@ atomic_add_unchecked\n"
+ "1: ldrex %0, [%2]\n"
+ " add %0, %0, %3\n"
+ " strex %1, %0, [%2]\n"
+@@ -58,6 +99,42 @@ static inline int atomic_add_return(int i, atomic_t *v)
+ smp_mb();
+
+ __asm__ __volatile__("@ atomic_add_return\n"
++"1: ldrex %1, [%2]\n"
++" add %0, %1, %3\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++" bvc 3f\n"
++" mov %0, %1\n"
++"2: bkpt 0xf103\n"
++"3:\n"
++#endif
++
++" strex %1, %0, [%2]\n"
++" teq %1, #0\n"
++" bne 1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++ _ASM_EXTABLE(2b, 4b)
++#endif
++
++ : "=&r" (result), "=&r" (tmp)
++ : "r" (&v->counter), "Ir" (i)
++ : "cc");
++
++ smp_mb();
++
++ return result;
++}
++
++static inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
++{
++ unsigned long tmp;
++ int result;
++
++ smp_mb();
++
++ __asm__ __volatile__("@ atomic_add_return_unchecked\n"
+ "1: ldrex %0, [%2]\n"
+ " add %0, %0, %3\n"
+ " strex %1, %0, [%2]\n"
+@@ -78,6 +155,35 @@ static inline void atomic_sub(int i, atomic_t *v)
+ int result;
+
+ __asm__ __volatile__("@ atomic_sub\n"
++"1: ldrex %1, [%2]\n"
++" sub %0, %1, %3\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++" bvc 3f\n"
++"2: bkpt 0xf103\n"
++"3:\n"
++#endif
++
++" strex %1, %0, [%2]\n"
++" teq %1, #0\n"
++" bne 1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++ _ASM_EXTABLE(2b, 4b)
++#endif
++
++ : "=&r" (result), "=&r" (tmp)
++ : "r" (&v->counter), "Ir" (i)
++ : "cc");
++}
++
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++ unsigned long tmp;
++ int result;
++
++ __asm__ __volatile__("@ atomic_sub_unchecked\n"
+ "1: ldrex %0, [%2]\n"
+ " sub %0, %0, %3\n"
+ " strex %1, %0, [%2]\n"
+@@ -96,11 +202,25 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+ smp_mb();
+
+ __asm__ __volatile__("@ atomic_sub_return\n"
+-"1: ldrex %0, [%2]\n"
+-" sub %0, %0, %3\n"
++"1: ldrex %1, [%2]\n"
++" sub %0, %1, %3\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++" bvc 3f\n"
++" mov %0, %1\n"
++"2: bkpt 0xf103\n"
++"3:\n"
++#endif
++
+ " strex %1, %0, [%2]\n"
+ " teq %1, #0\n"
+ " bne 1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++ _ASM_EXTABLE(2b, 4b)
++#endif
++
+ : "=&r" (result), "=&r" (tmp)
+ : "r" (&v->counter), "Ir" (i)
+ : "cc");
+@@ -132,6 +252,28 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
+ return oldval;
+ }
+
++static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *ptr, int old, int new)
++{
++ unsigned long oldval, res;
++
++ smp_mb();
++
++ do {
++ __asm__ __volatile__("@ atomic_cmpxchg_unchecked\n"
++ "ldrex %1, [%2]\n"
++ "mov %0, #0\n"
++ "teq %1, %3\n"
++ "strexeq %0, %4, [%2]\n"
++ : "=&r" (res), "=&r" (oldval)
++ : "r" (&ptr->counter), "Ir" (old), "r" (new)
++ : "cc");
++ } while (res);
++
++ smp_mb();
++
++ return oldval;
++}
++
+ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+ {
+ unsigned long tmp, tmp2;
+@@ -165,7 +307,9 @@ static inline int atomic_add_return(int i, atomic_t *v)
+
+ return val;
+ }
++#define atomic_add_return_unchecked(i, v) atomic_add_return(i, v)
+ #define atomic_add(i, v) (void) atomic_add_return(i, v)
++#define atomic_add_unchecked(i, v) (void) atomic_add_return_unchecked(i, v)
+
+ static inline int atomic_sub_return(int i, atomic_t *v)
+ {
+@@ -179,7 +323,9 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+
+ return val;
+ }
++#define atomic_sub_return_unchecked(i, v) atomic_sub_return(i, v)
+ #define atomic_sub(i, v) (void) atomic_sub_return(i, v)
++#define atomic_sub_unchecked(i, v) (void) atomic_sub_return_unchecked(i, v)
+
+ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+ {
+@@ -194,6 +340,7 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+
+ return ret;
+ }
++#define atomic_cmpxchg_unchecked(v, o, n) atomic_cmpxchg(v, o, n)
+
+ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+ {
+@@ -207,6 +354,10 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+ #endif /* __LINUX_ARM_ARCH__ */
+
+ #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
++static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
++{
++ return xchg(&v->counter, new);
++}
+
+ static inline int atomic_add_unless(atomic_t *v, int a, int u)
+ {
+@@ -220,11 +371,27 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
+ #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
+
+ #define atomic_inc(v) atomic_add(1, v)
++static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
++{
++ atomic_add_unchecked(1, v);
++}
+ #define atomic_dec(v) atomic_sub(1, v)
++static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
++{
++ atomic_sub_unchecked(1, v);
++}
+
+ #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
++static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
++{
++ return atomic_add_return_unchecked(1, v) == 0;
++}
+ #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
+ #define atomic_inc_return(v) (atomic_add_return(1, v))
++static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
++{
++ return atomic_add_return_unchecked(1, v);
++}
+ #define atomic_dec_return(v) (atomic_sub_return(1, v))
+ #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
+
+diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
+index 66c160b..bca1449 100644
+--- a/arch/arm/include/asm/cache.h
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/packages/kernel/kernel-grsec_full.patch?r1=1.29.2.10&r2=1.29.2.11
More information about the pld-cvs-commit
mailing list