summaryrefslogtreecommitdiffstats
path: root/main/linux-grsec
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-07-25 11:50:02 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-07-25 11:50:02 +0000
commit925f13da2ed40a5b19397a90eb855f8c5f99b718 (patch)
tree3198f56f55d4f7f8f0e8fe41251ac6df5c41158b /main/linux-grsec
parent9920792db5475990cb4d28bd6941be8defffaf27 (diff)
downloadaports-925f13da2ed40a5b19397a90eb855f8c5f99b718.tar.bz2
aports-925f13da2ed40a5b19397a90eb855f8c5f99b718.tar.xz
main/linux-grsec: upgrade grsec patch from upstream
Diffstat (limited to 'main/linux-grsec')
-rw-r--r--main/linux-grsec/APKBUILD6
-rw-r--r--main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907231934.patch (renamed from main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907122214.patch)5644
2 files changed, 4898 insertions, 752 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index dc1a4785..20fa9284 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -4,7 +4,7 @@ _flavor=grsec
pkgname=linux-${_flavor}
pkgver=2.6.29.6
_kernver=2.6.29
-pkgrel=1
+pkgrel=2
pkgdesc="Linux kernel with grsecurity"
url=http://grsecurity.net
depends="mkinitfs"
@@ -13,7 +13,7 @@ _config=${config:-kernelconfig}
install="$pkgname.post-install $pkgname.post-upgrade"
source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
- grsecurity-2.1.14-2.6.29.6-200907122214.patch
+ grsecurity-2.1.14-2.6.29.6-200907231934.patch
0001-linux-2.6.28.5-ipgre-strict-binding.patch
0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch
net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch
@@ -114,7 +114,7 @@ dev() {
md5sums="64921b5ff5cdadbccfcd3820f03be7d8 linux-2.6.29.tar.bz2
0317760b52c9ac7a11de997da19a366e patch-2.6.29.6.bz2
-b08fb058667e8d5846cd4085de71eff2 grsecurity-2.1.14-2.6.29.6-200907122214.patch
+bc067ccfe86517c4e4568b76b4a50e06 grsecurity-2.1.14-2.6.29.6-200907231934.patch
7673b4521283ad41434a18ca18b16ad8 0001-linux-2.6.28.5-ipgre-strict-binding.patch
8f405c738b150c532c46eaad5390cca2 0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch
ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch
diff --git a/main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907122214.patch b/main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907231934.patch
index 5206a9e4..eb8c335b 100644
--- a/main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907122214.patch
+++ b/main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907231934.patch
@@ -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
++++ linux-2.6.29.6/arch/alpha/include/asm/atomic.h 2009-07-23 17:34:32.032153687 -0400
@@ -246,6 +246,9 @@ static __inline__ int atomic64_add_unles
#define atomic64_dec_and_test(v) (atomic64_sub_return(1, (v)) == 0)
@@ -13,7 +13,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/atomic.h linux-2.6.29.6/arch/al
#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
++++ linux-2.6.29.6/arch/alpha/include/asm/elf.h 2009-07-23 17:34:32.032809072 -0400
@@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
#define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
@@ -30,7 +30,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/elf.h linux-2.6.29.6/arch/alpha
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
++++ linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h 2009-07-23 17:34:32.032809072 -0400
@@ -24,7 +24,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -43,7 +43,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h linux-2.6.29.6/arc
#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
++++ linux-2.6.29.6/arch/alpha/include/asm/pgtable.h 2009-07-23 17:34:32.032809072 -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)
@@ -64,7 +64,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/pgtable.h linux-2.6.29.6/arch/a
#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
++++ linux-2.6.29.6/arch/alpha/kernel/module.c 2009-07-23 17:34:32.032809072 -0400
@@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs,
/* The small sections were sorted to the end of the segment.
@@ -76,7 +76,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/kernel/module.c linux-2.6.29.6/arch/alpha/k
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
++++ linux-2.6.29.6/arch/alpha/kernel/osf_sys.c 2009-07-23 17:34:32.032809072 -0400
@@ -1217,6 +1217,10 @@ arch_get_unmapped_area(struct file *filp
merely specific addresses, but regions of memory -- perhaps
this feature should be incorporated into all ports? */
@@ -101,7 +101,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/kernel/osf_sys.c linux-2.6.29.6/arch/alpha/
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
++++ linux-2.6.29.6/arch/alpha/mm/fault.c 2009-07-23 17:34:32.033902767 -0400
@@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct *
__reload_thread(pcb);
}
@@ -260,7 +260,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/mm/fault.c linux-2.6.29.6/arch/alpha/mm/fau
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
++++ linux-2.6.29.6/arch/arm/include/asm/atomic.h 2009-07-23 17:34:32.033902767 -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)
@@ -273,7 +273,7 @@ diff -urNp linux-2.6.29.6/arch/arm/include/asm/atomic.h linux-2.6.29.6/arch/arm/
#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
++++ linux-2.6.29.6/arch/arm/include/asm/elf.h 2009-07-23 17:34:32.033902767 -0400
@@ -100,7 +100,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. */
@@ -292,7 +292,7 @@ diff -urNp linux-2.6.29.6/arch/arm/include/asm/elf.h linux-2.6.29.6/arch/arm/inc
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
++++ linux-2.6.29.6/arch/arm/include/asm/kmap_types.h 2009-07-23 17:34:32.033902767 -0400
@@ -18,6 +18,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -303,7 +303,7 @@ diff -urNp linux-2.6.29.6/arch/arm/include/asm/kmap_types.h linux-2.6.29.6/arch/
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
++++ linux-2.6.29.6/arch/arm/include/asm/uaccess.h 2009-07-23 17:34:32.033902767 -0400
@@ -400,7 +400,7 @@ static inline unsigned long __must_check
{
if (access_ok(VERIFY_READ, from, n))
@@ -313,9 +313,21 @@ diff -urNp linux-2.6.29.6/arch/arm/include/asm/uaccess.h linux-2.6.29.6/arch/arm
memset(to, 0, n);
return n;
}
+diff -urNp linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c
+--- linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c 2009-07-23 18:40:27.482433806 -0400
+@@ -195,7 +195,7 @@ static int clk_debugfs_open(struct inode
+ return single_open(file, clk_debugfs_show, NULL);
+ }
+
+-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.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
++++ linux-2.6.29.6/arch/arm/mm/mmap.c 2009-07-23 17:34:32.033902767 -0400
@@ -62,6 +62,10 @@ arch_get_unmapped_area(struct file *filp
if (len > TASK_SIZE)
return -ENOMEM;
@@ -354,7 +366,7 @@ diff -urNp linux-2.6.29.6/arch/arm/mm/mmap.c linux-2.6.29.6/arch/arm/mm/mmap.c
}
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
++++ linux-2.6.29.6/arch/avr32/include/asm/atomic.h 2009-07-23 17:34:32.034839933 -0400
@@ -176,9 +176,12 @@ static inline int atomic_sub_if_positive
#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
@@ -370,7 +382,7 @@ diff -urNp linux-2.6.29.6/arch/avr32/include/asm/atomic.h linux-2.6.29.6/arch/av
#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
++++ linux-2.6.29.6/arch/avr32/include/asm/elf.h 2009-07-23 17:34:32.034839933 -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. */
@@ -389,7 +401,7 @@ diff -urNp linux-2.6.29.6/arch/avr32/include/asm/elf.h linux-2.6.29.6/arch/avr32
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
++++ linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h 2009-07-23 17:34:32.034839933 -0400
@@ -22,7 +22,8 @@ D(10) KM_IRQ0,
D(11) KM_IRQ1,
D(12) KM_SOFTIRQ0,
@@ -402,7 +414,7 @@ diff -urNp linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h linux-2.6.29.6/arc
#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
++++ linux-2.6.29.6/arch/avr32/mm/fault.c 2009-07-23 17:34:32.035832174 -0400
@@ -41,6 +41,23 @@ static inline int notify_page_fault(stru
int exception_trace = 1;
@@ -446,7 +458,7 @@ diff -urNp linux-2.6.29.6/arch/avr32/mm/fault.c linux-2.6.29.6/arch/avr32/mm/fau
"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
++++ linux-2.6.29.6/arch/blackfin/include/asm/atomic.h 2009-07-23 17:34:32.036919850 -0400
@@ -178,6 +178,9 @@ static inline void atomic_set_mask(unsig
#endif /* !CONFIG_SMP */
@@ -459,7 +471,7 @@ diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/atomic.h linux-2.6.29.6/arch
#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
++++ linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h 2009-07-23 17:34:32.036919850 -0400
@@ -15,6 +15,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -468,9 +480,45 @@ diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h linux-2.6.29.6/
KM_TYPE_NR
};
+diff -urNp linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c
+--- linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c 2009-07-23 18:40:27.483411300 -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.29.6/arch/cris/arch-v10/drivers/sync_serial.c linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c
+--- linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c 2009-07-23 18:40:27.483411300 -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.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c
+--- linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c 2009-07-23 18:40:27.484276735 -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.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
++++ linux-2.6.29.6/arch/cris/include/asm/atomic.h 2009-07-23 17:34:32.036919850 -0400
@@ -152,6 +152,10 @@ static inline int atomic_add_unless(atom
}
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
@@ -484,7 +532,7 @@ diff -urNp linux-2.6.29.6/arch/cris/include/asm/atomic.h linux-2.6.29.6/arch/cri
#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
++++ linux-2.6.29.6/arch/cris/include/asm/kmap_types.h 2009-07-23 17:34:32.036919850 -0400
@@ -19,6 +19,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -495,7 +543,7 @@ diff -urNp linux-2.6.29.6/arch/cris/include/asm/kmap_types.h linux-2.6.29.6/arch
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
++++ linux-2.6.29.6/arch/h8300/include/asm/atomic.h 2009-07-23 17:34:32.036919850 -0400
@@ -26,6 +26,7 @@ static __inline__ int atomic_add_return(
}
@@ -522,7 +570,7 @@ diff -urNp linux-2.6.29.6/arch/h8300/include/asm/atomic.h linux-2.6.29.6/arch/h8
* 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
++++ linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h 2009-07-23 17:34:32.036919850 -0400
@@ -15,6 +15,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -533,7 +581,7 @@ diff -urNp linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h linux-2.6.29.6/arc
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
++++ linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c 2009-07-23 18:40:27.465457938 -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 +596,23 @@ diff -urNp linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c linux-2.6.29.6/arch/ia64
/* Ugly but avoids duplication */
#include "../../../fs/binfmt_elf.c"
+@@ -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.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
++++ linux-2.6.29.6/arch/ia64/ia32/ia32priv.h 2009-07-23 17:34:32.037851190 -0400
@@ -296,7 +296,14 @@ typedef struct compat_siginfo {
#define ELF_DATA ELFDATA2LSB
#define ELF_ARCH EM_386
@@ -569,7 +631,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/ia32/ia32priv.h linux-2.6.29.6/arch/ia64/ia3
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
++++ linux-2.6.29.6/arch/ia64/include/asm/atomic.h 2009-07-23 17:34:32.037851190 -0400
@@ -201,8 +201,11 @@ atomic64_add_negative (__s64 i, atomic64
#define atomic64_inc_and_test(v) (atomic64_add_return(1, (v)) == 0)
@@ -584,7 +646,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/atomic.h linux-2.6.29.6/arch/ia6
#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
++++ linux-2.6.29.6/arch/ia64/include/asm/elf.h 2009-07-23 17:34:32.037851190 -0400
@@ -43,6 +43,13 @@
*/
#define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
@@ -601,7 +663,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/elf.h linux-2.6.29.6/arch/ia64/i
/* 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
++++ linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h 2009-07-23 17:34:32.037851190 -0400
@@ -22,7 +22,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -614,7 +676,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h linux-2.6.29.6/arch
#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
++++ linux-2.6.29.6/arch/ia64/include/asm/pgtable.h 2009-07-23 17:34:32.037851190 -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)
@@ -635,7 +697,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/pgtable.h linux-2.6.29.6/arch/ia
#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
++++ linux-2.6.29.6/arch/ia64/include/asm/uaccess.h 2009-07-23 17:34:32.038733548 -0400
@@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _
const void *__cu_from = (from); \
long __cu_len = (n); \
@@ -656,7 +718,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/uaccess.h linux-2.6.29.6/arch/ia
})
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
++++ linux-2.6.29.6/arch/ia64/kernel/module.c 2009-07-23 17:34:32.038733548 -0400
@@ -312,8 +312,7 @@ module_alloc (unsigned long size)
void
module_free (struct module *mod, void *module_region)
@@ -745,9 +807,21 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/ker
mod->arch.gp = gp;
DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
}
+diff -urNp linux-2.6.29.6/arch/ia64/kernel/perfmon.c linux-2.6.29.6/arch/ia64/kernel/perfmon.c
+--- linux-2.6.29.6/arch/ia64/kernel/perfmon.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/ia64/kernel/perfmon.c 2009-07-23 18:40:27.485493611 -0400
+@@ -2196,7 +2196,7 @@ pfmfs_delete_dentry(struct dentry *dentr
+ return 1;
+ }
+
+-static struct dentry_operations pfmfs_dentry_operations = {
++static const struct dentry_operations pfmfs_dentry_operations = {
+ .d_delete = pfmfs_delete_dentry,
+ };
+
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
++++ linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c 2009-07-23 17:34:32.038733548 -0400
@@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil
if (REGION_NUMBER(addr) == RGN_HPAGE)
addr = 0;
@@ -776,7 +850,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c linux-2.6.29.6/arch/ia64/k
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
++++ linux-2.6.29.6/arch/ia64/mm/fault.c 2009-07-23 17:34:32.038733548 -0400
@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned
return pte_present(pte);
}
@@ -828,7 +902,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/mm/fault.c linux-2.6.29.6/arch/ia64/mm/fault
* 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
++++ linux-2.6.29.6/arch/ia64/mm/init.c 2009-07-23 17:34:32.038733548 -0400
@@ -121,6 +121,19 @@ ia64_init_addr_space (void)
vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
vma->vm_end = vma->vm_start + PAGE_SIZE;
@@ -851,7 +925,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/mm/init.c linux-2.6.29.6/arch/ia64/mm/init.c
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
++++ linux-2.6.29.6/arch/m32r/lib/usercopy.c 2009-07-23 17:34:32.039725062 -0400
@@ -26,7 +26,7 @@ __generic_copy_from_user(void *to, const
prefetchw(to);
if (access_ok(VERIFY_READ, from, n))
@@ -863,7 +937,7 @@ diff -urNp linux-2.6.29.6/arch/m32r/lib/usercopy.c linux-2.6.29.6/arch/m32r/lib/
}
diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h
--- linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h 2009-07-09 22:20:50.000000000 -0400
++++ linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h 2009-07-23 17:34:32.039725062 -0400
@@ -186,6 +186,10 @@ static __inline__ int atomic_add_unless(
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
@@ -877,7 +951,7 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h linux-2.6.29.6/arch/
#define smp_mb__after_atomic_dec() barrier()
diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h
--- linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h 2009-07-23 17:34:32.039725062 -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))
@@ -890,7 +964,7 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h linux-2.6.29.6/arch/
#endif /* __ARCH_M68KNOMMU_ATOMIC __ */
diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h
--- linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h 2009-07-23 17:34:32.039725062 -0400
@@ -15,6 +15,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -901,7 +975,7 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h linux-2.6.29.6/a
diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h
--- linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h 2009-07-23 17:34:32.039725062 -0400
@@ -15,6 +15,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -912,7 +986,7 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h linux-2.6.29.6/a
diff -urNp linux-2.6.29.6/arch/mips/include/asm/atomic.h linux-2.6.29.6/arch/mips/include/asm/atomic.h
--- linux-2.6.29.6/arch/mips/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/include/asm/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/include/asm/atomic.h 2009-07-23 17:34:32.039725062 -0400
@@ -381,6 +381,9 @@ static __inline__ int atomic_add_unless(
* Atomically increments @v by 1.
*/
@@ -925,7 +999,7 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/atomic.h linux-2.6.29.6/arch/mip
* atomic_dec - decrement and test
diff -urNp linux-2.6.29.6/arch/mips/include/asm/elf.h linux-2.6.29.6/arch/mips/include/asm/elf.h
--- linux-2.6.29.6/arch/mips/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/include/asm/elf.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/include/asm/elf.h 2009-07-23 17:34:32.039725062 -0400
@@ -364,4 +364,11 @@ extern int dump_task_fpu(struct task_str
#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
#endif
@@ -940,7 +1014,7 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/elf.h linux-2.6.29.6/arch/mips/i
#endif /* _ASM_ELF_H */
diff -urNp linux-2.6.29.6/arch/mips/include/asm/kmap_types.h linux-2.6.29.6/arch/mips/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/mips/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/include/asm/kmap_types.h 2009-07-23 17:34:32.040769533 -0400
@@ -22,7 +22,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -953,7 +1027,7 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/kmap_types.h linux-2.6.29.6/arch
#undef D
diff -urNp linux-2.6.29.6/arch/mips/include/asm/page.h linux-2.6.29.6/arch/mips/include/asm/page.h
--- linux-2.6.29.6/arch/mips/include/asm/page.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/include/asm/page.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/include/asm/page.h 2009-07-23 17:34:32.040769533 -0400
@@ -82,7 +82,7 @@ extern void copy_user_highpage(struct pa
#ifdef CONFIG_CPU_MIPS32
typedef struct { unsigned long pte_low, pte_high; } pte_t;
@@ -965,7 +1039,7 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/page.h linux-2.6.29.6/arch/mips/
#define pte_val(x) ((x).pte)
diff -urNp linux-2.6.29.6/arch/mips/include/asm/system.h linux-2.6.29.6/arch/mips/include/asm/system.h
--- linux-2.6.29.6/arch/mips/include/asm/system.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/include/asm/system.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/include/asm/system.h 2009-07-23 17:34:32.040769533 -0400
@@ -217,6 +217,6 @@ extern void per_cpu_trap_init(void);
*/
#define __ARCH_WANT_UNLOCKED_CTXSW
@@ -976,7 +1050,7 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/system.h linux-2.6.29.6/arch/mip
#endif /* _ASM_SYSTEM_H */
diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c
--- linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c 2009-07-23 17:34:32.040769533 -0400
@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
#undef ELF_ET_DYN_BASE
#define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -993,7 +1067,7 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c linux-2.6.29.6/arch/m
#include <linux/elfcore.h>
diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c
--- linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c 2009-07-23 17:34:32.040769533 -0400
@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
#undef ELF_ET_DYN_BASE
#define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1010,7 +1084,7 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c linux-2.6.29.6/arch/m
#include <linux/elfcore.h>
diff -urNp linux-2.6.29.6/arch/mips/kernel/process.c linux-2.6.29.6/arch/mips/kernel/process.c
--- linux-2.6.29.6/arch/mips/kernel/process.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/kernel/process.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/kernel/process.c 2009-07-23 17:34:32.040769533 -0400
@@ -457,15 +457,3 @@ unsigned long get_wchan(struct task_stru
out:
return pc;
@@ -1029,7 +1103,7 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/process.c linux-2.6.29.6/arch/mips/ke
-}
diff -urNp linux-2.6.29.6/arch/mips/kernel/syscall.c linux-2.6.29.6/arch/mips/kernel/syscall.c
--- linux-2.6.29.6/arch/mips/kernel/syscall.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/kernel/syscall.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/kernel/syscall.c 2009-07-23 17:34:32.040769533 -0400
@@ -99,6 +99,11 @@ unsigned long arch_get_unmapped_area(str
do_color_align = 0;
if (filp || (flags & MAP_SHARED))
@@ -1053,7 +1127,7 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/syscall.c linux-2.6.29.6/arch/mips/ke
else
diff -urNp linux-2.6.29.6/arch/mips/mm/fault.c linux-2.6.29.6/arch/mips/mm/fault.c
--- linux-2.6.29.6/arch/mips/mm/fault.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/mips/mm/fault.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/mips/mm/fault.c 2009-07-23 17:34:32.041802959 -0400
@@ -26,6 +26,23 @@
#include <asm/ptrace.h>
#include <asm/highmem.h> /* For VMALLOC_END */
@@ -1078,9 +1152,21 @@ diff -urNp linux-2.6.29.6/arch/mips/mm/fault.c linux-2.6.29.6/arch/mips/mm/fault
/*
* This routine handles page faults. It determines the address,
* and the problem, and then passes it off to one of the appropriate
+diff -urNp linux-2.6.29.6/arch/mn10300/kernel/setup.c linux-2.6.29.6/arch/mn10300/kernel/setup.c
+--- linux-2.6.29.6/arch/mn10300/kernel/setup.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/mn10300/kernel/setup.c 2009-07-23 18:40:27.492312305 -0400
+@@ -289,7 +289,7 @@ static void c_stop(struct seq_file *m, v
+ {
+ }
+
+-struct seq_operations cpuinfo_op = {
++const struct seq_operations cpuinfo_op = {
+ .start = c_start,
+ .next = c_next,
+ .stop = c_stop,
diff -urNp linux-2.6.29.6/arch/parisc/include/asm/atomic.h linux-2.6.29.6/arch/parisc/include/asm/atomic.h
--- linux-2.6.29.6/arch/parisc/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/include/asm/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/include/asm/atomic.h 2009-07-23 17:34:32.041802959 -0400
@@ -223,8 +223,11 @@ static __inline__ int atomic_add_unless(
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
@@ -1095,7 +1181,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/atomic.h linux-2.6.29.6/arch/p
#define atomic_add_return(i,v) (__atomic_add_return( ((int)i),(v)))
diff -urNp linux-2.6.29.6/arch/parisc/include/asm/elf.h linux-2.6.29.6/arch/parisc/include/asm/elf.h
--- linux-2.6.29.6/arch/parisc/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/include/asm/elf.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/include/asm/elf.h 2009-07-23 17:34:32.041802959 -0400
@@ -333,6 +333,13 @@ struct pt_regs; /* forward declaration..
#define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
@@ -1112,7 +1198,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/elf.h linux-2.6.29.6/arch/pari
but it's not easy, and we've already done it here. */
diff -urNp linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h 2009-07-23 17:34:32.041802959 -0400
@@ -22,7 +22,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -1125,7 +1211,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h linux-2.6.29.6/ar
#undef D
diff -urNp linux-2.6.29.6/arch/parisc/include/asm/pgtable.h linux-2.6.29.6/arch/parisc/include/asm/pgtable.h
--- linux-2.6.29.6/arch/parisc/include/asm/pgtable.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/include/asm/pgtable.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/include/asm/pgtable.h 2009-07-23 17:34:32.041802959 -0400
@@ -202,6 +202,17 @@
#define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
#define PAGE_COPY PAGE_EXECREAD
@@ -1146,7 +1232,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/pgtable.h linux-2.6.29.6/arch/
#define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE)
diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc/kernel/module.c
--- linux-2.6.29.6/arch/parisc/kernel/module.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/kernel/module.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/kernel/module.c 2009-07-23 17:34:32.041802959 -0400
@@ -93,16 +93,38 @@
/* three functions to determine where in the module core
@@ -1249,7 +1335,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc
me->arch.unwind_section, table, end, gp);
diff -urNp linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c
--- linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c 2009-07-23 17:34:32.042928337 -0400
@@ -98,7 +98,7 @@ unsigned long arch_get_unmapped_area(str
if (flags & MAP_FIXED)
return addr;
@@ -1261,7 +1347,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c linux-2.6.29.6/arch/pa
addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
diff -urNp linux-2.6.29.6/arch/parisc/kernel/traps.c linux-2.6.29.6/arch/parisc/kernel/traps.c
--- linux-2.6.29.6/arch/parisc/kernel/traps.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/kernel/traps.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/kernel/traps.c 2009-07-23 17:34:32.042928337 -0400
@@ -731,9 +731,7 @@ void handle_interruption(int code, struc
down_read(&current->mm->mmap_sem);
@@ -1275,7 +1361,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/traps.c linux-2.6.29.6/arch/parisc/
diff -urNp linux-2.6.29.6/arch/parisc/mm/fault.c linux-2.6.29.6/arch/parisc/mm/fault.c
--- linux-2.6.29.6/arch/parisc/mm/fault.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/parisc/mm/fault.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/parisc/mm/fault.c 2009-07-23 17:34:32.042928337 -0400
@@ -16,6 +16,7 @@
#include <linux/sched.h>
#include <linux/interrupt.h>
@@ -1447,7 +1533,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/mm/fault.c linux-2.6.29.6/arch/parisc/mm/f
* If for any reason at all we couldn't handle the fault, make
diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/atomic.h linux-2.6.29.6/arch/powerpc/include/asm/atomic.h
--- linux-2.6.29.6/arch/powerpc/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/include/asm/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/include/asm/atomic.h 2009-07-23 17:34:32.042928337 -0400
@@ -244,6 +244,10 @@ static __inline__ int atomic_dec_if_posi
return t;
}
@@ -1461,7 +1547,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/atomic.h linux-2.6.29.6/arch/
#define smp_mb__before_atomic_inc() smp_mb()
diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/elf.h linux-2.6.29.6/arch/powerpc/include/asm/elf.h
--- linux-2.6.29.6/arch/powerpc/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/include/asm/elf.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/include/asm/elf.h 2009-07-23 17:34:32.043871989 -0400
@@ -180,6 +180,18 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E
#define ELF_ET_DYN_BASE (0x20000000)
@@ -1483,7 +1569,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/elf.h linux-2.6.29.6/arch/pow
* process or 64 bit, on either a 64 bit or 32 bit kernel.
diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h 2009-07-23 17:34:32.043871989 -0400
@@ -26,6 +26,7 @@ enum km_type {
KM_SOFTIRQ1,
KM_PPC_SYNC_PAGE,
@@ -1494,7 +1580,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h linux-2.6.29.6/a
diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page_64.h linux-2.6.29.6/arch/powerpc/include/asm/page_64.h
--- linux-2.6.29.6/arch/powerpc/include/asm/page_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/include/asm/page_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/include/asm/page_64.h 2009-07-23 17:34:32.043871989 -0400
@@ -170,15 +170,18 @@ do { \
* stack by default, so in the absense of a PT_GNU_STACK program header
* we turn execute permission off.
@@ -1518,7 +1604,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page_64.h linux-2.6.29.6/arch
diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page.h linux-2.6.29.6/arch/powerpc/include/asm/page.h
--- linux-2.6.29.6/arch/powerpc/include/asm/page.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/include/asm/page.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/include/asm/page.h 2009-07-23 17:34:32.043871989 -0400
@@ -114,8 +114,9 @@ extern phys_addr_t kernstart_addr;
* and needs to be executable. This means the whole heap ends
* up being executable.
@@ -1533,7 +1619,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page.h linux-2.6.29.6/arch/po
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h
--- linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h 2009-07-23 17:34:32.043871989 -0400
@@ -334,6 +334,9 @@ static inline unsigned long copy_from_us
{
unsigned long over;
@@ -1556,7 +1642,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h linux-2.6.29.6/arch
if ((unsigned long)to < TASK_SIZE) {
diff -urNp linux-2.6.29.6/arch/powerpc/kernel/module_32.c linux-2.6.29.6/arch/powerpc/kernel/module_32.c
--- linux-2.6.29.6/arch/powerpc/kernel/module_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/kernel/module_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/kernel/module_32.c 2009-07-23 17:34:32.043871989 -0400
@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr
me->arch.core_plt_section = i;
}
@@ -1586,9 +1672,21 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/module_32.c linux-2.6.29.6/arch/po
/* Find this entry, or if that fails, the next avail. entry */
while (entry->jump[0]) {
+diff -urNp linux-2.6.29.6/arch/powerpc/kernel/setup-common.c linux-2.6.29.6/arch/powerpc/kernel/setup-common.c
+--- linux-2.6.29.6/arch/powerpc/kernel/setup-common.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/kernel/setup-common.c 2009-07-23 18:40:27.492312305 -0400
+@@ -327,7 +327,7 @@ static void c_stop(struct seq_file *m, v
+ {
+ }
+
+-struct seq_operations cpuinfo_op = {
++const struct seq_operations cpuinfo_op = {
+ .start =c_start,
+ .next = c_next,
+ .stop = c_stop,
diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_32.c linux-2.6.29.6/arch/powerpc/kernel/signal_32.c
--- linux-2.6.29.6/arch/powerpc/kernel/signal_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/kernel/signal_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/kernel/signal_32.c 2009-07-23 17:34:32.044827554 -0400
@@ -857,7 +857,7 @@ int handle_rt_signal32(unsigned long sig
/* Save user registers on the stack */
frame = &rt_sf->uc.uc_mcontext;
@@ -1600,7 +1698,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_32.c linux-2.6.29.6/arch/po
regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp;
diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_64.c linux-2.6.29.6/arch/powerpc/kernel/signal_64.c
--- linux-2.6.29.6/arch/powerpc/kernel/signal_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/kernel/signal_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/kernel/signal_64.c 2009-07-23 17:34:32.044827554 -0400
@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct
current->thread.fpscr.val = 0;
@@ -1612,7 +1710,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_64.c linux-2.6.29.6/arch/po
err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
diff -urNp linux-2.6.29.6/arch/powerpc/kernel/vdso.c linux-2.6.29.6/arch/powerpc/kernel/vdso.c
--- linux-2.6.29.6/arch/powerpc/kernel/vdso.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/kernel/vdso.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/kernel/vdso.c 2009-07-23 17:34:32.044827554 -0400
@@ -211,7 +211,7 @@ int arch_setup_additional_pages(struct l
vdso_base = VDSO32_MBASE;
#endif
@@ -1631,9 +1729,21 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/vdso.c linux-2.6.29.6/arch/powerpc
if (IS_ERR_VALUE(vdso_base)) {
rc = vdso_base;
goto fail_mmapsem;
+diff -urNp linux-2.6.29.6/arch/powerpc/kvm/timing.c linux-2.6.29.6/arch/powerpc/kvm/timing.c
+--- linux-2.6.29.6/arch/powerpc/kvm/timing.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/kvm/timing.c 2009-07-23 18:40:27.493263868 -0400
+@@ -201,7 +201,7 @@ static int kvmppc_exit_timing_open(struc
+ return single_open(file, kvmppc_exit_timing_show, inode->i_private);
+ }
+
+-static struct file_operations kvmppc_exit_timing_fops = {
++static const struct file_operations kvmppc_exit_timing_fops = {
+ .owner = THIS_MODULE,
+ .open = kvmppc_exit_timing_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c
--- linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c 2009-07-23 17:34:32.044827554 -0400
@@ -11,6 +11,9 @@
unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
@@ -1656,7 +1766,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c linux-2.6.29.6/arch/pow
return n;
diff -urNp linux-2.6.29.6/arch/powerpc/mm/fault.c linux-2.6.29.6/arch/powerpc/mm/fault.c
--- linux-2.6.29.6/arch/powerpc/mm/fault.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/mm/fault.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/mm/fault.c 2009-07-23 18:40:27.465457938 -0400
@@ -29,6 +29,10 @@
#include <linux/module.h>
#include <linux/kprobes.h>
@@ -1694,7 +1804,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/mm/fault.c linux-2.6.29.6/arch/powerpc/mm
+ return VM_FAULT_MAJOR;
+}
+
-+static struct vm_operations_struct pax_vm_ops = {
++static const struct vm_operations_struct pax_vm_ops = {
+ .close = pax_syscall_close,
+ .fault = pax_syscall_fault
+};
@@ -2081,7 +2191,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/mm/fault.c linux-2.6.29.6/arch/powerpc/mm
}
diff -urNp linux-2.6.29.6/arch/powerpc/mm/mmap.c linux-2.6.29.6/arch/powerpc/mm/mmap.c
--- linux-2.6.29.6/arch/powerpc/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/powerpc/mm/mmap.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/mm/mmap.c 2009-07-23 17:34:32.045826057 -0400
@@ -75,10 +75,22 @@ void arch_pick_mmap_layout(struct mm_str
*/
if (mmap_is_legacy()) {
@@ -2105,9 +2215,117 @@ diff -urNp linux-2.6.29.6/arch/powerpc/mm/mmap.c linux-2.6.29.6/arch/powerpc/mm/
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
mm->unmap_area = arch_unmap_area_topdown;
}
+diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c
+--- linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c 2009-07-23 18:40:27.494291214 -0400
+@@ -147,7 +147,7 @@ static int __fops ## _open(struct inode
+ __simple_attr_check_format(__fmt, 0ull); \
+ return spufs_attr_open(inode, file, __get, __set, __fmt); \
+ } \
+-static struct file_operations __fops = { \
++static const struct file_operations __fops = { \
+ .owner = THIS_MODULE, \
+ .open = __fops ## _open, \
+ .release = spufs_attr_release, \
+@@ -309,7 +309,7 @@ static int spufs_mem_mmap_access(struct
+ return len;
+ }
+
+-static struct vm_operations_struct spufs_mem_mmap_vmops = {
++static const struct vm_operations_struct spufs_mem_mmap_vmops = {
+ .fault = spufs_mem_mmap_fault,
+ .access = spufs_mem_mmap_access,
+ };
+@@ -436,7 +436,7 @@ static int spufs_cntl_mmap_fault(struct
+ return spufs_ps_fault(vma, vmf, 0x4000, SPUFS_CNTL_MAP_SIZE);
+ }
+
+-static struct vm_operations_struct spufs_cntl_mmap_vmops = {
++static const struct vm_operations_struct spufs_cntl_mmap_vmops = {
+ .fault = spufs_cntl_mmap_fault,
+ };
+
+@@ -1141,7 +1141,7 @@ spufs_signal1_mmap_fault(struct vm_area_
+ #endif
+ }
+
+-static struct vm_operations_struct spufs_signal1_mmap_vmops = {
++static const struct vm_operations_struct spufs_signal1_mmap_vmops = {
+ .fault = spufs_signal1_mmap_fault,
+ };
+
+@@ -1277,7 +1277,7 @@ spufs_signal2_mmap_fault(struct vm_area_
+ #endif
+ }
+
+-static struct vm_operations_struct spufs_signal2_mmap_vmops = {
++static const struct vm_operations_struct spufs_signal2_mmap_vmops = {
+ .fault = spufs_signal2_mmap_fault,
+ };
+
+@@ -1395,7 +1395,7 @@ spufs_mss_mmap_fault(struct vm_area_stru
+ return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_MSS_MAP_SIZE);
+ }
+
+-static struct vm_operations_struct spufs_mss_mmap_vmops = {
++static const struct vm_operations_struct spufs_mss_mmap_vmops = {
+ .fault = spufs_mss_mmap_fault,
+ };
+
+@@ -1456,7 +1456,7 @@ spufs_psmap_mmap_fault(struct vm_area_st
+ return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_PS_MAP_SIZE);
+ }
+
+-static struct vm_operations_struct spufs_psmap_mmap_vmops = {
++static const struct vm_operations_struct spufs_psmap_mmap_vmops = {
+ .fault = spufs_psmap_mmap_fault,
+ };
+
+@@ -1515,7 +1515,7 @@ spufs_mfc_mmap_fault(struct vm_area_stru
+ return spufs_ps_fault(vma, vmf, 0x3000, SPUFS_MFC_MAP_SIZE);
+ }
+
+-static struct vm_operations_struct spufs_mfc_mmap_vmops = {
++static const struct vm_operations_struct spufs_mfc_mmap_vmops = {
+ .fault = spufs_mfc_mmap_fault,
+ };
+
+diff -urNp linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c
+--- linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c 2009-07-23 18:40:27.495305970 -0400
+@@ -71,7 +71,7 @@ static int hc_show(struct seq_file *m, v
+ return 0;
+ }
+
+-static struct seq_operations hcall_inst_seq_ops = {
++static const struct seq_operations hcall_inst_seq_ops = {
+ .start = hc_start,
+ .next = hc_next,
+ .stop = hc_stop,
+diff -urNp linux-2.6.29.6/arch/s390/hypfs/inode.c linux-2.6.29.6/arch/s390/hypfs/inode.c
+--- linux-2.6.29.6/arch/s390/hypfs/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/s390/hypfs/inode.c 2009-07-23 18:40:27.495305970 -0400
+@@ -41,7 +41,7 @@ struct hypfs_sb_info {
+
+ static const struct file_operations hypfs_file_ops;
+ static struct file_system_type hypfs_type;
+-static struct super_operations hypfs_s_ops;
++static const struct super_operations hypfs_s_ops;
+
+ /* start of list of all dentries, which have to be deleted on update */
+ static struct dentry *hypfs_last_dentry;
+@@ -476,7 +476,7 @@ static struct file_system_type hypfs_typ
+ .kill_sb = hypfs_kill_super
+ };
+
+-static struct super_operations hypfs_s_ops = {
++static const struct super_operations hypfs_s_ops = {
+ .statfs = simple_statfs,
+ .drop_inode = hypfs_drop_inode,
+ .show_options = hypfs_show_options,
diff -urNp linux-2.6.29.6/arch/s390/include/asm/atomic.h linux-2.6.29.6/arch/s390/include/asm/atomic.h
--- linux-2.6.29.6/arch/s390/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/s390/include/asm/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/s390/include/asm/atomic.h 2009-07-23 17:34:32.045826057 -0400
@@ -82,8 +82,10 @@ static __inline__ int atomic_add_return(
return __CS_LOOP(v, i, "ar");
}
@@ -2129,7 +2347,7 @@ diff -urNp linux-2.6.29.6/arch/s390/include/asm/atomic.h linux-2.6.29.6/arch/s39
#define atomic_dec_return(_v) atomic_sub_return(1, _v)
diff -urNp linux-2.6.29.6/arch/s390/include/asm/kmap_types.h linux-2.6.29.6/arch/s390/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/s390/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/s390/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/s390/include/asm/kmap_types.h 2009-07-23 17:34:32.045826057 -0400
@@ -16,6 +16,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -2140,7 +2358,7 @@ diff -urNp linux-2.6.29.6/arch/s390/include/asm/kmap_types.h linux-2.6.29.6/arch
diff -urNp linux-2.6.29.6/arch/s390/include/asm/uaccess.h linux-2.6.29.6/arch/s390/include/asm/uaccess.h
--- linux-2.6.29.6/arch/s390/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/s390/include/asm/uaccess.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/s390/include/asm/uaccess.h 2009-07-23 17:34:32.045826057 -0400
@@ -285,7 +285,7 @@ copy_from_user(void *to, const void __us
might_sleep();
if (access_ok(VERIFY_READ, from, n))
@@ -2152,7 +2370,7 @@ diff -urNp linux-2.6.29.6/arch/s390/include/asm/uaccess.h linux-2.6.29.6/arch/s3
}
diff -urNp linux-2.6.29.6/arch/s390/kernel/module.c linux-2.6.29.6/arch/s390/kernel/module.c
--- linux-2.6.29.6/arch/s390/kernel/module.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/s390/kernel/module.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/s390/kernel/module.c 2009-07-23 17:34:32.045826057 -0400
@@ -166,11 +166,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr,
/* Increase core size by size of got & plt and set start
@@ -2226,7 +2444,7 @@ diff -urNp linux-2.6.29.6/arch/s390/kernel/module.c linux-2.6.29.6/arch/s390/ker
*(unsigned int *) loc = val;
diff -urNp linux-2.6.29.6/arch/sh/include/asm/atomic.h linux-2.6.29.6/arch/sh/include/asm/atomic.h
--- linux-2.6.29.6/arch/sh/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sh/include/asm/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sh/include/asm/atomic.h 2009-07-23 17:34:32.047807130 -0400
@@ -43,6 +43,9 @@
#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
@@ -2239,7 +2457,7 @@ diff -urNp linux-2.6.29.6/arch/sh/include/asm/atomic.h linux-2.6.29.6/arch/sh/in
#ifndef CONFIG_GUSA_RB
diff -urNp linux-2.6.29.6/arch/sh/include/asm/kmap_types.h linux-2.6.29.6/arch/sh/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/sh/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sh/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sh/include/asm/kmap_types.h 2009-07-23 17:34:32.047807130 -0400
@@ -24,7 +24,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -2252,7 +2470,7 @@ diff -urNp linux-2.6.29.6/arch/sh/include/asm/kmap_types.h linux-2.6.29.6/arch/s
#undef D
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h
--- linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h 2009-07-23 17:34:32.047807130 -0400
@@ -26,8 +26,11 @@ extern void atomic_set(atomic_t *, int);
#define atomic_read(v) ((v)->counter)
@@ -2267,7 +2485,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h linux-2.6.29.6/arch
#define atomic_add_return(i, v) (__atomic_add_return( (int)(i), (v)))
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h
--- linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h 2009-07-23 17:34:32.047807130 -0400
@@ -20,8 +20,10 @@
#define atomic64_set(v, i) (((v)->counter) = i)
@@ -2289,7 +2507,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h linux-2.6.29.6/arch
#define atomic_dec(v) atomic_sub(1, v)
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_32.h linux-2.6.29.6/arch/sparc/include/asm/elf_32.h
--- linux-2.6.29.6/arch/sparc/include/asm/elf_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/elf_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/elf_32.h 2009-07-23 17:34:32.047807130 -0400
@@ -116,6 +116,13 @@ typedef struct {
#define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
@@ -2306,7 +2524,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_32.h linux-2.6.29.6/arch/sp
on Sparc. */
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_64.h linux-2.6.29.6/arch/sparc/include/asm/elf_64.h
--- linux-2.6.29.6/arch/sparc/include/asm/elf_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/elf_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/elf_64.h 2009-07-23 17:34:32.047807130 -0400
@@ -163,6 +163,12 @@ typedef struct {
#define ELF_ET_DYN_BASE 0x0000010000000000UL
#define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
@@ -2322,7 +2540,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_64.h linux-2.6.29.6/arch/sp
instruction set this cpu supports. */
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h 2009-07-23 17:34:32.048766932 -0400
@@ -19,6 +19,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -2333,7 +2551,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h linux-2.6.29.6/arc
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h
--- linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h 2009-07-23 17:34:32.048766932 -0400
@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd)
BTFIXUPDEF_INT(page_none)
BTFIXUPDEF_INT(page_copy)
@@ -2367,7 +2585,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h linux-2.6.29.6/arc
#ifdef MODULE
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h
--- linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h 2009-07-23 17:34:32.048766932 -0400
@@ -115,6 +115,13 @@
SRMMU_EXEC | SRMMU_REF)
#define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
@@ -2384,7 +2602,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.29.6/arch/
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h
--- linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h 2009-07-23 17:34:32.048766932 -0400
@@ -246,7 +246,7 @@ extern unsigned long __copy_user(void __
static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -2405,7 +2623,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h linux-2.6.29.6/arc
return n;
diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h
--- linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h 2009-07-23 17:34:32.048766932 -0400
@@ -212,7 +212,12 @@ extern unsigned long copy_from_user_fixu
static inline unsigned long __must_check
copy_from_user(void *to, const void __user *from, unsigned long size)
@@ -2436,7 +2654,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h linux-2.6.29.6/arc
ret = copy_to_user_fixup(to, from, size);
diff -urNp linux-2.6.29.6/arch/sparc/kernel/Makefile linux-2.6.29.6/arch/sparc/kernel/Makefile
--- linux-2.6.29.6/arch/sparc/kernel/Makefile 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/kernel/Makefile 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/kernel/Makefile 2009-07-23 17:34:32.049741165 -0400
@@ -3,7 +3,7 @@
#
@@ -2448,7 +2666,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/kernel/Makefile linux-2.6.29.6/arch/sparc/k
extra-y += init_task.o
diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c
--- linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c 2009-07-23 17:34:32.049741165 -0400
@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str
if (ARCH_SUN4C && len > 0x20000000)
return -ENOMEM;
@@ -2460,7 +2678,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c linux-2.6.29.6/arch/s
addr = COLOUR_ALIGN(addr);
diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c
--- linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c 2009-07-23 17:34:32.049741165 -0400
@@ -125,7 +125,7 @@ unsigned long arch_get_unmapped_area(str
/* We do not accept a shared mapping if it would violate
* cache aliasing constraints.
@@ -2541,7 +2759,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c linux-2.6.29.6/arch/s
}
diff -urNp linux-2.6.29.6/arch/sparc/Makefile linux-2.6.29.6/arch/sparc/Makefile
--- linux-2.6.29.6/arch/sparc/Makefile 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/Makefile 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/Makefile 2009-07-23 17:34:32.049741165 -0400
@@ -81,7 +81,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc
# Export what is needed by arch/sparc/boot/Makefile
export VMLINUX_INIT VMLINUX_MAIN
@@ -2553,7 +2771,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/Makefile linux-2.6.29.6/arch/sparc/Makefile
diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_32.c linux-2.6.29.6/arch/sparc/mm/fault_32.c
--- linux-2.6.29.6/arch/sparc/mm/fault_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/mm/fault_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/mm/fault_32.c 2009-07-23 18:40:27.465457938 -0400
@@ -21,6 +21,9 @@
#include <linux/interrupt.h>
#include <linux/module.h>
@@ -2590,7 +2808,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_32.c linux-2.6.29.6/arch/sparc/mm/
+ return VM_FAULT_MAJOR;
+}
+
-+static struct vm_operations_struct pax_vm_ops = {
++static const struct vm_operations_struct pax_vm_ops = {
+ .close = pax_emuplt_close,
+ .fault = pax_emuplt_fault
+};
@@ -2841,7 +3059,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_32.c linux-2.6.29.6/arch/sparc/mm/
goto bad_area;
diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_64.c linux-2.6.29.6/arch/sparc/mm/fault_64.c
--- linux-2.6.29.6/arch/sparc/mm/fault_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/mm/fault_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/mm/fault_64.c 2009-07-23 18:40:27.466429820 -0400
@@ -20,6 +20,9 @@
#include <linux/kprobes.h>
#include <linux/kdebug.h>
@@ -2879,7 +3097,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_64.c linux-2.6.29.6/arch/sparc/mm/
+ return VM_FAULT_MAJOR;
+}
+
-+static struct vm_operations_struct pax_vm_ops = {
++static const struct vm_operations_struct pax_vm_ops = {
+ .close = pax_emuplt_close,
+ .fault = pax_emuplt_fault
+};
@@ -3252,7 +3470,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_64.c linux-2.6.29.6/arch/sparc/mm/
* was no match. So in such a case we (carefully) read the
diff -urNp linux-2.6.29.6/arch/sparc/mm/init_32.c linux-2.6.29.6/arch/sparc/mm/init_32.c
--- linux-2.6.29.6/arch/sparc/mm/init_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/mm/init_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/mm/init_32.c 2009-07-23 17:34:32.050703291 -0400
@@ -316,6 +316,9 @@ extern void device_scan(void);
pgprot_t PAGE_SHARED __read_mostly;
EXPORT_SYMBOL(PAGE_SHARED);
@@ -3289,7 +3507,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/init_32.c linux-2.6.29.6/arch/sparc/mm/i
protection_map[14] = PAGE_SHARED;
diff -urNp linux-2.6.29.6/arch/sparc/mm/Makefile linux-2.6.29.6/arch/sparc/mm/Makefile
--- linux-2.6.29.6/arch/sparc/mm/Makefile 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/mm/Makefile 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/mm/Makefile 2009-07-23 17:34:32.050703291 -0400
@@ -2,7 +2,7 @@
#
@@ -3301,7 +3519,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/Makefile linux-2.6.29.6/arch/sparc/mm/Ma
obj-y += fault_$(BITS).o
diff -urNp linux-2.6.29.6/arch/sparc/mm/srmmu.c linux-2.6.29.6/arch/sparc/mm/srmmu.c
--- linux-2.6.29.6/arch/sparc/mm/srmmu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/sparc/mm/srmmu.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/sparc/mm/srmmu.c 2009-07-23 17:34:32.051762759 -0400
@@ -2148,6 +2148,13 @@ void __init ld_mmu_srmmu(void)
PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED);
BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY));
@@ -3318,7 +3536,7 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/srmmu.c linux-2.6.29.6/arch/sparc/mm/srm
diff -urNp linux-2.6.29.6/arch/um/include/asm/kmap_types.h linux-2.6.29.6/arch/um/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/um/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/um/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/um/include/asm/kmap_types.h 2009-07-23 17:34:32.051762759 -0400
@@ -23,6 +23,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -3329,7 +3547,7 @@ diff -urNp linux-2.6.29.6/arch/um/include/asm/kmap_types.h linux-2.6.29.6/arch/u
diff -urNp linux-2.6.29.6/arch/um/include/asm/page.h linux-2.6.29.6/arch/um/include/asm/page.h
--- linux-2.6.29.6/arch/um/include/asm/page.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/um/include/asm/page.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/um/include/asm/page.h 2009-07-23 17:34:32.051762759 -0400
@@ -14,6 +14,9 @@
#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
@@ -3342,7 +3560,7 @@ diff -urNp linux-2.6.29.6/arch/um/include/asm/page.h linux-2.6.29.6/arch/um/incl
struct page;
diff -urNp linux-2.6.29.6/arch/um/sys-i386/syscalls.c linux-2.6.29.6/arch/um/sys-i386/syscalls.c
--- linux-2.6.29.6/arch/um/sys-i386/syscalls.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/um/sys-i386/syscalls.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/um/sys-i386/syscalls.c 2009-07-23 17:34:32.051762759 -0400
@@ -11,6 +11,21 @@
#include "asm/uaccess.h"
#include "asm/unistd.h"
@@ -3367,7 +3585,7 @@ diff -urNp linux-2.6.29.6/arch/um/sys-i386/syscalls.c linux-2.6.29.6/arch/um/sys
* calls. Linux/i386 didn't use to be able to handle more than
diff -urNp linux-2.6.29.6/arch/x86/boot/bitops.h linux-2.6.29.6/arch/x86/boot/bitops.h
--- linux-2.6.29.6/arch/x86/boot/bitops.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/bitops.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/bitops.h 2009-07-23 17:34:32.052702854 -0400
@@ -26,7 +26,7 @@ static inline int variable_test_bit(int
u8 v;
const u32 *p = (const u32 *)addr;
@@ -3388,7 +3606,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/bitops.h linux-2.6.29.6/arch/x86/boot/bi
#endif /* BOOT_BITOPS_H */
diff -urNp linux-2.6.29.6/arch/x86/boot/boot.h linux-2.6.29.6/arch/x86/boot/boot.h
--- linux-2.6.29.6/arch/x86/boot/boot.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/boot.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/boot.h 2009-07-23 17:34:32.052702854 -0400
@@ -80,7 +80,7 @@ static inline void io_delay(void)
static inline u16 ds(void)
{
@@ -3409,7 +3627,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/boot.h linux-2.6.29.6/arch/x86/boot/boot
}
diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/head_32.S linux-2.6.29.6/arch/x86/boot/compressed/head_32.S
--- linux-2.6.29.6/arch/x86/boot/compressed/head_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/compressed/head_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/compressed/head_32.S 2009-07-23 17:34:32.052702854 -0400
@@ -70,7 +70,7 @@ startup_32:
addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebx
andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebx
@@ -3461,7 +3679,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/head_32.S linux-2.6.29.6/arch
2:
diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/misc.c linux-2.6.29.6/arch/x86/boot/compressed/misc.c
--- linux-2.6.29.6/arch/x86/boot/compressed/misc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/compressed/misc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/compressed/misc.c 2009-07-23 17:34:32.052702854 -0400
@@ -373,7 +373,7 @@ static void parse_elf(void *output)
case PT_LOAD:
#ifdef CONFIG_RELOCATABLE
@@ -3482,7 +3700,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/misc.c linux-2.6.29.6/arch/x8
#endif
diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/relocs.c linux-2.6.29.6/arch/x86/boot/compressed/relocs.c
--- linux-2.6.29.6/arch/x86/boot/compressed/relocs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/compressed/relocs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/compressed/relocs.c 2009-07-23 17:34:32.052702854 -0400
@@ -10,8 +10,11 @@
#define USE_BSD
#include <endian.h>
@@ -3595,7 +3813,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/relocs.c linux-2.6.29.6/arch/
read_symtabs(fp);
diff -urNp linux-2.6.29.6/arch/x86/boot/cpucheck.c linux-2.6.29.6/arch/x86/boot/cpucheck.c
--- linux-2.6.29.6/arch/x86/boot/cpucheck.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/cpucheck.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/cpucheck.c 2009-07-23 17:34:32.052702854 -0400
@@ -74,7 +74,7 @@ static int has_fpu(void)
u16 fcw = -1, fsw = -1;
u32 cr0;
@@ -3693,7 +3911,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/cpucheck.c linux-2.6.29.6/arch/x86/boot/
}
diff -urNp linux-2.6.29.6/arch/x86/boot/edd.c linux-2.6.29.6/arch/x86/boot/edd.c
--- linux-2.6.29.6/arch/x86/boot/edd.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/edd.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/edd.c 2009-07-23 17:34:32.053815554 -0400
@@ -81,7 +81,7 @@ static int get_edd_info(u8 devno, struct
ax = 0x4100;
bx = EDDMAGIC1;
@@ -3723,7 +3941,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/edd.c linux-2.6.29.6/arch/x86/boot/edd.c
"popw %%es"
diff -urNp linux-2.6.29.6/arch/x86/boot/main.c linux-2.6.29.6/arch/x86/boot/main.c
--- linux-2.6.29.6/arch/x86/boot/main.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/main.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/main.c 2009-07-23 17:34:32.053815554 -0400
@@ -78,7 +78,7 @@ static void query_ist(void)
if (cpu.level < 6)
return;
@@ -3735,7 +3953,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/main.c linux-2.6.29.6/arch/x86/boot/main
"=c" (boot_params.ist_info.event),
diff -urNp linux-2.6.29.6/arch/x86/boot/mca.c linux-2.6.29.6/arch/x86/boot/mca.c
--- linux-2.6.29.6/arch/x86/boot/mca.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/mca.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/mca.c 2009-07-23 17:34:32.053815554 -0400
@@ -19,7 +19,7 @@ int query_mca(void)
u8 err;
u16 es, bx, len;
@@ -3747,7 +3965,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/mca.c linux-2.6.29.6/arch/x86/boot/mca.c
"movw %%es, %1 ; "
diff -urNp linux-2.6.29.6/arch/x86/boot/memory.c linux-2.6.29.6/arch/x86/boot/memory.c
--- linux-2.6.29.6/arch/x86/boot/memory.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/memory.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/memory.c 2009-07-23 17:34:32.053815554 -0400
@@ -30,7 +30,7 @@ static int detect_memory_e820(void)
/* Important: %edx and %esi are clobbered by some BIOSes,
so they must be either used for the error output
@@ -3777,7 +3995,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/memory.c linux-2.6.29.6/arch/x86/boot/me
diff -urNp linux-2.6.29.6/arch/x86/boot/video.c linux-2.6.29.6/arch/x86/boot/video.c
--- linux-2.6.29.6/arch/x86/boot/video.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/video.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/video.c 2009-07-23 17:34:32.053815554 -0400
@@ -23,7 +23,7 @@ static void store_cursor_position(void)
ax = 0x0300;
@@ -3798,7 +4016,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/video.c linux-2.6.29.6/arch/x86/boot/vid
diff -urNp linux-2.6.29.6/arch/x86/boot/video-vesa.c linux-2.6.29.6/arch/x86/boot/video-vesa.c
--- linux-2.6.29.6/arch/x86/boot/video-vesa.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/video-vesa.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/video-vesa.c 2009-07-23 17:34:32.053815554 -0400
@@ -41,7 +41,7 @@ static int vesa_probe(void)
ax = 0x4f00;
@@ -3872,7 +4090,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/video-vesa.c linux-2.6.29.6/arch/x86/boo
: : "esi");
diff -urNp linux-2.6.29.6/arch/x86/boot/video-vga.c linux-2.6.29.6/arch/x86/boot/video-vga.c
--- linux-2.6.29.6/arch/x86/boot/video-vga.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/video-vga.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/video-vga.c 2009-07-23 17:34:32.054707168 -0400
@@ -225,7 +225,7 @@ static int vga_probe(void)
};
u8 vga_flag;
@@ -3893,7 +4111,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/video-vga.c linux-2.6.29.6/arch/x86/boot
: "ebx", "ecx", "edx", "esi", "edi");
diff -urNp linux-2.6.29.6/arch/x86/boot/voyager.c linux-2.6.29.6/arch/x86/boot/voyager.c
--- linux-2.6.29.6/arch/x86/boot/voyager.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/boot/voyager.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/boot/voyager.c 2009-07-23 17:34:32.054707168 -0400
@@ -23,7 +23,7 @@ int query_voyager(void)
data_ptr[0] = 0xff; /* Flag on config not found(?) */
@@ -3905,7 +4123,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/voyager.c linux-2.6.29.6/arch/x86/boot/v
"movw %%es, %1 ; "
diff -urNp linux-2.6.29.6/arch/x86/ia32/ia32_signal.c linux-2.6.29.6/arch/x86/ia32/ia32_signal.c
--- linux-2.6.29.6/arch/x86/ia32/ia32_signal.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/ia32/ia32_signal.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/ia32/ia32_signal.c 2009-07-23 17:34:32.054707168 -0400
@@ -387,7 +387,7 @@ static void __user *get_sigframe(struct
sp -= frame_size;
/* Align the stack pointer according to the i386 ABI,
@@ -3944,7 +4162,7 @@ diff -urNp linux-2.6.29.6/arch/x86/ia32/ia32_signal.c linux-2.6.29.6/arch/x86/ia
return 0;
diff -urNp linux-2.6.29.6/arch/x86/include/asm/alternative.h linux-2.6.29.6/arch/x86/include/asm/alternative.h
--- linux-2.6.29.6/arch/x86/include/asm/alternative.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/alternative.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/alternative.h 2009-07-23 17:34:32.054707168 -0400
@@ -96,7 +96,7 @@ const unsigned char *const *find_nop_tab
" .byte 662b-661b\n" /* sourcelen */ \
" .byte 664f-663f\n" /* replacementlen */ \
@@ -3974,7 +4192,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/alternative.h linux-2.6.29.6/arch
diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_32.h linux-2.6.29.6/arch/x86/include/asm/atomic_32.h
--- linux-2.6.29.6/arch/x86/include/asm/atomic_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/atomic_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/atomic_32.h 2009-07-23 17:34:32.054707168 -0400
@@ -39,7 +39,29 @@
*/
static inline void atomic_add(int i, atomic_t *v)
@@ -4219,7 +4437,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_32.h linux-2.6.29.6/arch/x
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_64.h linux-2.6.29.6/arch/x86/include/asm/atomic_64.h
--- linux-2.6.29.6/arch/x86/include/asm/atomic_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/atomic_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/atomic_64.h 2009-07-23 17:34:32.054707168 -0400
@@ -38,7 +38,29 @@
*/
static inline void atomic_add(int i, atomic_t *v)
@@ -4677,7 +4895,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_64.h linux-2.6.29.6/arch/x
/**
diff -urNp linux-2.6.29.6/arch/x86/include/asm/boot.h linux-2.6.29.6/arch/x86/include/asm/boot.h
--- linux-2.6.29.6/arch/x86/include/asm/boot.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/boot.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/boot.h 2009-07-23 17:34:32.055953640 -0400
@@ -11,10 +11,15 @@
#define ASK_VGA 0xfffd /* ask for it at bootup */
@@ -4697,7 +4915,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/boot.h linux-2.6.29.6/arch/x86/in
#define BOOT_STACK_SIZE 0x4000
diff -urNp linux-2.6.29.6/arch/x86/include/asm/cache.h linux-2.6.29.6/arch/x86/include/asm/cache.h
--- linux-2.6.29.6/arch/x86/include/asm/cache.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/cache.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/cache.h 2009-07-23 17:34:32.055953640 -0400
@@ -6,6 +6,7 @@
#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
@@ -4708,7 +4926,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/cache.h linux-2.6.29.6/arch/x86/i
/* vSMP Internode cacheline shift */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/checksum_32.h linux-2.6.29.6/arch/x86/include/asm/checksum_32.h
--- linux-2.6.29.6/arch/x86/include/asm/checksum_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/checksum_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/checksum_32.h 2009-07-23 17:34:32.055953640 -0400
@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene
int len, __wsum sum,
int *src_err_ptr, int *dst_err_ptr);
@@ -4744,7 +4962,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/checksum_32.h linux-2.6.29.6/arch
if (len)
diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/include/asm/desc.h
--- linux-2.6.29.6/arch/x86/include/asm/desc.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/desc.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/desc.h 2009-07-23 17:34:32.055953640 -0400
@@ -16,6 +16,7 @@ static inline void fill_ldt(struct desc_
desc->base1 = (info->base_addr & 0x00ff0000) >> 16;
desc->type = (info->read_exec_only ^ 1) << 1;
@@ -4901,7 +5119,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in
* GET_DESC_BASE reads the descriptor base of the specified segment.
diff -urNp linux-2.6.29.6/arch/x86/include/asm/e820.h linux-2.6.29.6/arch/x86/include/asm/e820.h
--- linux-2.6.29.6/arch/x86/include/asm/e820.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/e820.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/e820.h 2009-07-23 17:34:32.055953640 -0400
@@ -135,7 +135,7 @@ extern char *memory_setup(void);
#define ISA_END_ADDRESS 0x100000
#define is_ISA_range(s, e) ((s) >= ISA_START_ADDRESS && (e) < ISA_END_ADDRESS)
@@ -4913,7 +5131,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/e820.h linux-2.6.29.6/arch/x86/in
#ifdef __KERNEL__
diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/include/asm/elf.h
--- linux-2.6.29.6/arch/x86/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/elf.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/elf.h 2009-07-23 17:34:32.056803140 -0400
@@ -252,7 +252,25 @@ extern int force_personality32;
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. */
@@ -4969,7 +5187,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/inc
#endif /* _ASM_X86_ELF_H */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/futex.h linux-2.6.29.6/arch/x86/include/asm/futex.h
--- linux-2.6.29.6/arch/x86/include/asm/futex.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/futex.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/futex.h 2009-07-23 17:34:32.056803140 -0400
@@ -11,6 +11,40 @@
#include <asm/processor.h>
#include <asm/system.h>
@@ -5083,7 +5301,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/futex.h linux-2.6.29.6/arch/x86/i
diff -urNp linux-2.6.29.6/arch/x86/include/asm/i387.h linux-2.6.29.6/arch/x86/include/asm/i387.h
--- linux-2.6.29.6/arch/x86/include/asm/i387.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/i387.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/i387.h 2009-07-23 17:34:32.056803140 -0400
@@ -203,13 +203,8 @@ static inline void restore_fpu(struct ta
}
@@ -5102,7 +5320,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/i387.h linux-2.6.29.6/arch/x86/in
* These must be called with preempt disabled
diff -urNp linux-2.6.29.6/arch/x86/include/asm/io_64.h linux-2.6.29.6/arch/x86/include/asm/io_64.h
--- linux-2.6.29.6/arch/x86/include/asm/io_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/io_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/io_64.h 2009-07-23 17:34:32.056803140 -0400
@@ -158,6 +158,17 @@ static inline void *phys_to_virt(unsigne
}
#endif
@@ -5123,7 +5341,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/io_64.h linux-2.6.29.6/arch/x86/i
*/
diff -urNp linux-2.6.29.6/arch/x86/include/asm/irqflags.h linux-2.6.29.6/arch/x86/include/asm/irqflags.h
--- linux-2.6.29.6/arch/x86/include/asm/irqflags.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/irqflags.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/irqflags.h 2009-07-23 17:34:32.056803140 -0400
@@ -141,6 +141,8 @@ static inline unsigned long __raw_local_
#define INTERRUPT_RETURN iret
#define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
@@ -5135,7 +5353,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/irqflags.h linux-2.6.29.6/arch/x8
diff -urNp linux-2.6.29.6/arch/x86/include/asm/kmap_types.h linux-2.6.29.6/arch/x86/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/x86/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/kmap_types.h 2009-07-23 17:34:32.056803140 -0400
@@ -21,7 +21,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -5148,7 +5366,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/kmap_types.h linux-2.6.29.6/arch/
#undef D
diff -urNp linux-2.6.29.6/arch/x86/include/asm/kvm_host.h linux-2.6.29.6/arch/x86/include/asm/kvm_host.h
--- linux-2.6.29.6/arch/x86/include/asm/kvm_host.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/kvm_host.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/kvm_host.h 2009-07-23 17:34:32.057848214 -0400
@@ -494,7 +494,7 @@ struct kvm_x86_ops {
int (*get_mt_mask_shift)(void);
};
@@ -5160,7 +5378,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/kvm_host.h linux-2.6.29.6/arch/x8
void kvm_mmu_module_exit(void);
diff -urNp linux-2.6.29.6/arch/x86/include/asm/linkage.h linux-2.6.29.6/arch/x86/include/asm/linkage.h
--- linux-2.6.29.6/arch/x86/include/asm/linkage.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/linkage.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/linkage.h 2009-07-23 17:34:32.057848214 -0400
@@ -7,6 +7,11 @@
#ifdef CONFIG_X86_64
#define __ALIGN .p2align 4,,15
@@ -5187,7 +5405,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/linkage.h linux-2.6.29.6/arch/x86
* KPROBE_ENTRY_X86/KPROBE_END_X86
diff -urNp linux-2.6.29.6/arch/x86/include/asm/local.h linux-2.6.29.6/arch/x86/include/asm/local.h
--- linux-2.6.29.6/arch/x86/include/asm/local.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/local.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/local.h 2009-07-23 17:34:32.057848214 -0400
@@ -18,26 +18,90 @@ typedef struct {
static inline void local_inc(local_t *l)
@@ -5414,7 +5632,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/local.h linux-2.6.29.6/arch/x86/i
return i + __i;
diff -urNp linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h
--- linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h 2009-07-23 17:34:32.057848214 -0400
@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32
__asm__ __volatile__(APM_DO_ZERO_SEGS
"pushl %%edi\n\t"
@@ -5435,7 +5653,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h linux-2.6.29.6
"popl %%edi\n\t"
diff -urNp linux-2.6.29.6/arch/x86/include/asm/mman.h linux-2.6.29.6/arch/x86/include/asm/mman.h
--- linux-2.6.29.6/arch/x86/include/asm/mman.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/mman.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/mman.h 2009-07-23 17:34:32.058713430 -0400
@@ -17,4 +17,14 @@
#define MCL_CURRENT 1 /* lock all current mappings */
#define MCL_FUTURE 2 /* lock all future mappings */
@@ -5453,7 +5671,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mman.h linux-2.6.29.6/arch/x86/in
#endif /* _ASM_X86_MMAN_H */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h
--- linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h 2009-07-23 17:34:32.058713430 -0400
@@ -14,11 +14,15 @@ static inline void switch_mm(struct mm_s
struct task_struct *tsk)
{
@@ -5519,7 +5737,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/a
#endif
diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu.h linux-2.6.29.6/arch/x86/include/asm/mmu.h
--- linux-2.6.29.6/arch/x86/include/asm/mmu.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/mmu.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/mmu.h 2009-07-23 17:34:32.058713430 -0400
@@ -9,10 +9,23 @@
* we put the segment information here.
*/
@@ -5548,7 +5766,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu.h linux-2.6.29.6/arch/x86/inc
#ifdef CONFIG_SMP
diff -urNp linux-2.6.29.6/arch/x86/include/asm/module.h linux-2.6.29.6/arch/x86/include/asm/module.h
--- linux-2.6.29.6/arch/x86/include/asm/module.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/module.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/module.h 2009-07-23 17:34:32.058713430 -0400
@@ -74,7 +74,12 @@ struct mod_arch_specific {};
# else
# define MODULE_STACKSIZE ""
@@ -5565,7 +5783,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/module.h linux-2.6.29.6/arch/x86/
#endif /* _ASM_X86_MODULE_H */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_32.h linux-2.6.29.6/arch/x86/include/asm/page_32.h
--- linux-2.6.29.6/arch/x86/include/asm/page_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/page_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/page_32.h 2009-07-23 17:34:32.058713430 -0400
@@ -13,6 +13,23 @@
*/
#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
@@ -5592,7 +5810,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_32.h linux-2.6.29.6/arch/x86
#else
diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_64.h linux-2.6.29.6/arch/x86/include/asm/page_64.h
--- linux-2.6.29.6/arch/x86/include/asm/page_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/page_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/page_64.h 2009-07-23 17:34:32.058713430 -0400
@@ -49,6 +49,9 @@
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
@@ -5612,7 +5830,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_64.h linux-2.6.29.6/arch/x86
#endif /* _ASM_X86_PAGE_64_H */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/paravirt.h linux-2.6.29.6/arch/x86/include/asm/paravirt.h
--- linux-2.6.29.6/arch/x86/include/asm/paravirt.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/paravirt.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/paravirt.h 2009-07-23 17:34:32.058713430 -0400
@@ -1558,7 +1558,7 @@ static inline unsigned long __raw_local_
#define PV_RESTORE_REGS popl %edx; popl %ecx; popl %edi; popl %eax
#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
@@ -5624,7 +5842,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/paravirt.h linux-2.6.29.6/arch/x8
#define INTERRUPT_RETURN \
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pda.h linux-2.6.29.6/arch/x86/include/asm/pda.h
--- linux-2.6.29.6/arch/x86/include/asm/pda.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pda.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pda.h 2009-07-23 17:34:32.059930875 -0400
@@ -16,11 +16,9 @@ struct x8664_pda {
unsigned long oldrsp; /* 24 user rsp for system call */
int irqcount; /* 32 Irq nesting counter. Starts -1 */
@@ -5639,7 +5857,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pda.h linux-2.6.29.6/arch/x86/inc
short in_bootmem; /* pda lives in bootmem */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/percpu.h linux-2.6.29.6/arch/x86/include/asm/percpu.h
--- linux-2.6.29.6/arch/x86/include/asm/percpu.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/percpu.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/percpu.h 2009-07-23 17:34:32.059930875 -0400
@@ -93,6 +93,12 @@ DECLARE_PER_CPU(struct x8664_pda, pda);
#define __my_cpu_offset x86_read_percpu(this_cpu_off)
@@ -5655,7 +5873,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/percpu.h linux-2.6.29.6/arch/x86/
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgalloc.h linux-2.6.29.6/arch/x86/include/asm/pgalloc.h
--- linux-2.6.29.6/arch/x86/include/asm/pgalloc.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pgalloc.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pgalloc.h 2009-07-23 17:34:32.059930875 -0400
@@ -52,7 +52,7 @@ static inline void pmd_populate_kernel(s
pmd_t *pmd, pte_t *pte)
{
@@ -5667,7 +5885,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgalloc.h linux-2.6.29.6/arch/x86
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h
--- linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h 2009-07-23 17:34:32.059930875 -0400
@@ -18,7 +18,19 @@ static inline void native_set_pte(pte_t
static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -5690,7 +5908,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h linux-2.6.29.6/a
static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h
--- linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h 2009-07-23 17:34:37.457730203 -0400
@@ -25,8 +25,6 @@
struct mm_struct;
struct vm_area_struct;
@@ -5700,7 +5918,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/
static inline void pgtable_cache_init(void) { }
static inline void check_pgt_cache(void) { }
void paging_init(void);
-@@ -46,6 +44,11 @@ extern void set_pmd_pfn(unsigned long, u
+@@ -46,6 +44,12 @@ extern void set_pmd_pfn(unsigned long, u
# include <asm/pgtable-2level-defs.h>
#endif
@@ -5708,11 +5926,12 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/
+#ifdef CONFIG_X86_PAE
+extern pmd_t swapper_pm_dir[PTRS_PER_PGD][PTRS_PER_PMD];
+#endif
++extern pte_t swapper_pg_fixmap[PTRS_PER_PMD];
+
#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
#define PGDIR_MASK (~(PGDIR_SIZE - 1))
-@@ -83,7 +86,7 @@ extern void set_pmd_pfn(unsigned long, u
+@@ -83,7 +87,7 @@ extern void set_pmd_pfn(unsigned long, u
#undef TEST_ACCESS_OK
/* The boot page tables (all created as a single array) */
@@ -5721,7 +5940,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/
#define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
-@@ -166,6 +169,9 @@ do { \
+@@ -166,6 +170,9 @@ do { \
#endif /* !__ASSEMBLY__ */
@@ -5733,7 +5952,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/
* SPARSEMEM and DISCONTIGMEM
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h
--- linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h 2009-07-23 17:34:32.060764502 -0400
@@ -70,12 +70,36 @@ static inline void native_set_pte_atomic
static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -5773,7 +5992,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h linux-2.6.29.6/a
/*
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h
--- linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h 2009-07-23 17:34:32.060764502 -0400
@@ -15,9 +15,12 @@
extern pud_t level3_kernel_pgt[512];
@@ -5831,7 +6050,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h linux-2.6.29.6/arch/
#define pte_none(x) (!pte_val((x)))
diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86/include/asm/pgtable.h
--- linux-2.6.29.6/arch/x86/include/asm/pgtable.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/pgtable.h 2009-07-10 07:20:51.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/pgtable.h 2009-07-23 17:35:05.043783588 -0400
@@ -13,12 +13,11 @@
#define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
#define _PAGE_BIT_PAT 7 /* on 4KB pages */
@@ -5874,30 +6093,29 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86
#define __PAGE_KERNEL_EXEC \
(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
#define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
-@@ -95,8 +96,13 @@
+@@ -95,8 +96,8 @@
#define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC)
#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
-+#ifdef CONFIG_PAX_SECURE_VSYSCALL
+-#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
+-#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
+#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RO | _PAGE_USER)
+#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_RO | _PAGE_PCD | _PAGE_PWT | _PAGE_USER)
-+#else
- #define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
- #define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
-+#endif
#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
#define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)
#define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
-@@ -155,7 +161,7 @@
+@@ -155,8 +156,8 @@
* bits are combined, this will alow user to access the high address mapped
* VDSO in the presence of CONFIG_COMPAT_VDSO
*/
-#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
+-#define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
+#define PTE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
- #define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
++#define PDE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
#endif
-@@ -183,10 +189,17 @@ extern unsigned long empty_zero_page[PAG
+
+@@ -183,10 +184,17 @@ extern unsigned long empty_zero_page[PAG
extern spinlock_t pgd_lock;
extern struct list_head pgd_list;
@@ -5915,7 +6133,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86
static inline int pte_dirty(pte_t pte)
{
return pte_flags(pte) & _PAGE_DIRTY;
-@@ -255,9 +268,29 @@ static inline pte_t pte_wrprotect(pte_t
+@@ -255,9 +263,29 @@ static inline pte_t pte_wrprotect(pte_t
return __pte(pte_val(pte) & ~_PAGE_RW);
}
@@ -5946,7 +6164,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86
}
static inline pte_t pte_mkdirty(pte_t pte)
-@@ -300,8 +333,6 @@ static inline pte_t pte_mkspecial(pte_t
+@@ -300,8 +328,6 @@ static inline pte_t pte_mkspecial(pte_t
return __pte(pte_val(pte) | _PAGE_SPECIAL);
}
@@ -5955,7 +6173,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86
/*
* Mask out unsupported bits in a present pgprot. Non-present pgprots
* can use those bits for other purposes, so leave them be.
-@@ -601,7 +632,19 @@ static inline void ptep_set_wrprotect(st
+@@ -601,7 +627,19 @@ static inline void ptep_set_wrprotect(st
*/
static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
{
@@ -5978,7 +6196,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86
diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x86/include/asm/processor.h
--- linux-2.6.29.6/arch/x86/include/asm/processor.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/processor.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/processor.h 2009-07-23 17:34:32.060764502 -0400
@@ -275,7 +275,7 @@ struct tss_struct {
} ____cacheline_aligned;
@@ -6064,7 +6282,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x
/* Get/set a process' ability to use the timestamp counter instruction */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/ptrace.h linux-2.6.29.6/arch/x86/include/asm/ptrace.h
--- linux-2.6.29.6/arch/x86/include/asm/ptrace.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/ptrace.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/ptrace.h 2009-07-23 17:34:32.060764502 -0400
@@ -151,28 +151,29 @@ static inline unsigned long regs_return_
}
@@ -6103,7 +6321,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/ptrace.h linux-2.6.29.6/arch/x86/
diff -urNp linux-2.6.29.6/arch/x86/include/asm/reboot.h linux-2.6.29.6/arch/x86/include/asm/reboot.h
--- linux-2.6.29.6/arch/x86/include/asm/reboot.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/reboot.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/reboot.h 2009-07-23 17:34:32.060764502 -0400
@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops;
void native_machine_crash_shutdown(struct pt_regs *regs);
@@ -6115,7 +6333,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/reboot.h linux-2.6.29.6/arch/x86/
void nmi_shootdown_cpus(nmi_shootdown_cb callback);
diff -urNp linux-2.6.29.6/arch/x86/include/asm/rwsem.h linux-2.6.29.6/arch/x86/include/asm/rwsem.h
--- linux-2.6.29.6/arch/x86/include/asm/rwsem.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/rwsem.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/rwsem.h 2009-07-23 17:34:32.061944075 -0400
@@ -106,10 +106,26 @@ static inline void __down_read(struct rw
{
asm volatile("# beginning down_read\n\t"
@@ -6350,7 +6568,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/rwsem.h linux-2.6.29.6/arch/x86/i
diff -urNp linux-2.6.29.6/arch/x86/include/asm/segment.h linux-2.6.29.6/arch/x86/include/asm/segment.h
--- linux-2.6.29.6/arch/x86/include/asm/segment.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/segment.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/segment.h 2009-07-23 17:34:32.061944075 -0400
@@ -88,13 +88,19 @@
#define GDT_ENTRY_ESPFIX_SS (GDT_ENTRY_KERNEL_BASE + 14)
#define __ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8)
@@ -6383,7 +6601,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/segment.h linux-2.6.29.6/arch/x86
#else
diff -urNp linux-2.6.29.6/arch/x86/include/asm/spinlock.h linux-2.6.29.6/arch/x86/include/asm/spinlock.h
--- linux-2.6.29.6/arch/x86/include/asm/spinlock.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/spinlock.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/spinlock.h 2009-07-23 17:34:32.061944075 -0400
@@ -311,18 +311,50 @@ static inline int __raw_write_can_lock(r
static inline void __raw_read_lock(raw_rwlock_t *rw)
{
@@ -6489,7 +6707,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/spinlock.h linux-2.6.29.6/arch/x8
diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/include/asm/system.h
--- linux-2.6.29.6/arch/x86/include/asm/system.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/system.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/system.h 2009-07-23 17:34:37.457730203 -0400
@@ -95,6 +95,8 @@ do { \
".globl thread_return\n" \
"thread_return:\n\t" \
@@ -6519,7 +6737,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/
}
static inline void native_clts(void)
-@@ -295,6 +299,21 @@ static inline void native_wbinvd(void)
+@@ -295,6 +299,23 @@ static inline void native_wbinvd(void)
#define stts() write_cr0(read_cr0() | X86_CR0_TS)
@@ -6527,6 +6745,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/
+do { \
+ typecheck(unsigned long, cr0); \
+ preempt_disable(); \
++ barrier(); \
+ cr0 = read_cr0(); \
+ write_cr0(cr0 & ~X86_CR0_WP); \
+} while (0)
@@ -6535,13 +6754,14 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/
+do { \
+ typecheck(unsigned long, cr0); \
+ write_cr0(cr0); \
++ barrier(); \
+ preempt_enable_no_resched(); \
+} while (0)
+
#endif /* __KERNEL__ */
static inline void clflush(volatile void *__p)
-@@ -309,7 +328,7 @@ void enable_hlt(void);
+@@ -309,7 +330,7 @@ void enable_hlt(void);
void cpu_idle_wait(void);
@@ -6552,7 +6772,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/
void default_idle(void);
diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h
--- linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h 2009-07-23 17:34:32.062941291 -0400
@@ -62,6 +62,8 @@ __copy_to_user_inatomic(void __user *to,
return ret;
}
@@ -6635,7 +6855,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h linux-2.6.29.6/arch/
long __must_check __strncpy_from_user(char *dst,
diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h
--- linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h 2009-07-09 22:20:50.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h 2009-07-23 17:34:32.062941291 -0400
@@ -10,6 +10,8 @@
#include <linux/lockdep.h>
#include <asm/page.h>
@@ -6761,7 +6981,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/
#endif /* _ASM_X86_UACCESS_64_H */
diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86/include/asm/uaccess.h
--- linux-2.6.29.6/arch/x86/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/uaccess.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/uaccess.h 2009-07-23 17:34:32.062941291 -0400
@@ -8,8 +8,10 @@
#include <linux/thread_info.h>
#include <linux/prefetch.h>
@@ -6883,7 +7103,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86
#else
diff -urNp linux-2.6.29.6/arch/x86/include/asm/vgtod.h linux-2.6.29.6/arch/x86/include/asm/vgtod.h
--- linux-2.6.29.6/arch/x86/include/asm/vgtod.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/vgtod.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/vgtod.h 2009-07-23 17:34:32.062941291 -0400
@@ -14,6 +14,7 @@ struct vsyscall_gtod_data {
int sysctl_enabled;
struct timezone sys_tz;
@@ -6894,7 +7114,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/vgtod.h linux-2.6.29.6/arch/x86/i
cycle_t mask;
diff -urNp linux-2.6.29.6/arch/x86/include/asm/vsyscall.h linux-2.6.29.6/arch/x86/include/asm/vsyscall.h
--- linux-2.6.29.6/arch/x86/include/asm/vsyscall.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/include/asm/vsyscall.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/include/asm/vsyscall.h 2009-07-23 17:34:32.062941291 -0400
@@ -15,9 +15,10 @@ enum vsyscall_num {
#ifdef __KERNEL__
@@ -6927,7 +7147,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/vsyscall.h linux-2.6.29.6/arch/x8
#endif /* _ASM_X86_VSYSCALL_H */
diff -urNp linux-2.6.29.6/arch/x86/Kconfig linux-2.6.29.6/arch/x86/Kconfig
--- linux-2.6.29.6/arch/x86/Kconfig 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/Kconfig 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/Kconfig 2009-07-23 17:34:32.063803736 -0400
@@ -993,7 +993,7 @@ config PAGE_OFFSET
hex
default 0xB0000000 if VMSPLIT_3G_OPT
@@ -6961,7 +7181,7 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig linux-2.6.29.6/arch/x86/Kconfig
---help---
diff -urNp linux-2.6.29.6/arch/x86/Kconfig.cpu linux-2.6.29.6/arch/x86/Kconfig.cpu
--- linux-2.6.29.6/arch/x86/Kconfig.cpu 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/Kconfig.cpu 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/Kconfig.cpu 2009-07-23 17:34:32.063803736 -0400
@@ -333,7 +333,7 @@ config X86_PPRO_FENCE
config X86_F00F_BUG
@@ -6991,7 +7211,7 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig.cpu linux-2.6.29.6/arch/x86/Kconfig.c
int
diff -urNp linux-2.6.29.6/arch/x86/Kconfig.debug linux-2.6.29.6/arch/x86/Kconfig.debug
--- linux-2.6.29.6/arch/x86/Kconfig.debug 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/Kconfig.debug 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/Kconfig.debug 2009-07-23 17:34:32.063803736 -0400
@@ -107,7 +107,7 @@ config X86_PTDUMP
config DEBUG_RODATA
bool "Write protect kernel read-only data structures"
@@ -7003,7 +7223,7 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig.debug linux-2.6.29.6/arch/x86/Kconfig
in order to catch accidental (and incorrect) writes to such const
diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/boot.c linux-2.6.29.6/arch/x86/kernel/acpi/boot.c
--- linux-2.6.29.6/arch/x86/kernel/acpi/boot.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/acpi/boot.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/acpi/boot.c 2009-07-23 17:34:32.064889971 -0400
@@ -1705,7 +1705,7 @@ static struct dmi_system_id __initdata a
DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
},
@@ -7015,7 +7235,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/boot.c linux-2.6.29.6/arch/x86/ke
/*
diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S
--- linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-23 17:34:32.064889971 -0400
@@ -104,7 +104,7 @@ _start:
movl %eax, %ecx
orl %edx, %ecx
@@ -7027,7 +7247,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S linux-2.6.29.6/
diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c
--- linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c 2009-07-23 17:34:32.064889971 -0400
@@ -11,11 +11,12 @@
#include <linux/cpumask.h>
#include <asm/segment.h>
@@ -7091,7 +7311,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c linux-2.6.29.6/arch/x86/k
diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S
--- linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S 2009-07-23 17:34:32.064889971 -0400
@@ -30,13 +30,11 @@ wakeup_pmode_return:
# and restore the stack ... but you need gdt for this to work
movl saved_context_esp, %esp
@@ -7110,7 +7330,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.29.6/arch/x
jmp bogus_magic
diff -urNp linux-2.6.29.6/arch/x86/kernel/alternative.c linux-2.6.29.6/arch/x86/kernel/alternative.c
--- linux-2.6.29.6/arch/x86/kernel/alternative.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/alternative.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/alternative.c 2009-07-23 17:34:32.064889971 -0400
@@ -393,7 +393,7 @@ void apply_paravirt(struct paravirt_patc
BUG_ON(p->len > MAX_PATCH_LEN);
@@ -7200,7 +7420,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/alternative.c linux-2.6.29.6/arch/x86/
}
diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kernel/apm_32.c
--- linux-2.6.29.6/arch/x86/kernel/apm_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/apm_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/apm_32.c 2009-07-23 17:34:32.065870632 -0400
@@ -403,7 +403,7 @@ static DECLARE_WAIT_QUEUE_HEAD(apm_waitq
static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue);
static struct apm_user *user_list;
@@ -7381,7 +7601,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne
kapmd_task = kthread_create(apm, NULL, "kapmd");
diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c
--- linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c 2009-07-23 17:34:32.065870632 -0400
@@ -100,6 +100,7 @@ void foo(void)
DEFINE(PTRS_PER_PTE, PTRS_PER_PTE);
DEFINE(PTRS_PER_PMD, PTRS_PER_PMD);
@@ -7400,7 +7620,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c linux-2.6.29.6/arch/x
#ifdef CONFIG_XEN
diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c
--- linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c 2009-07-23 17:34:32.065870632 -0400
@@ -124,6 +124,7 @@ int main(void)
ENTRY(cr8);
BLANK();
@@ -7411,7 +7631,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c linux-2.6.29.6/arch/x
DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/common.c linux-2.6.29.6/arch/x86/kernel/cpu/common.c
--- linux-2.6.29.6/arch/x86/kernel/cpu/common.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/cpu/common.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/cpu/common.c 2009-07-23 17:34:32.066840916 -0400
@@ -2,7 +2,6 @@
#include <linux/kernel.h>
#include <linux/sched.h>
@@ -7529,7 +7749,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/common.c linux-2.6.29.6/arch/x86/k
if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
--- linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-23 17:34:32.066840916 -0400
@@ -581,7 +581,7 @@ static const struct dmi_system_id sw_any
DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"),
},
@@ -7541,7 +7761,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.2
diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
--- linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-23 17:34:32.066840916 -0400
@@ -225,7 +225,7 @@ static struct cpu_model models[] =
{ &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL },
{ &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL },
@@ -7553,7 +7773,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux
#undef BANIAS
diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/intel.c linux-2.6.29.6/arch/x86/kernel/cpu/intel.c
--- linux-2.6.29.6/arch/x86/kernel/cpu/intel.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/cpu/intel.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/cpu/intel.c 2009-07-23 17:34:32.068000886 -0400
@@ -94,7 +94,7 @@ static void __cpuinit trap_init_f00f_bug
* Update the IDT descriptor and reload the IDT so that
* it uses the read-only mapped virtual address.
@@ -7565,7 +7785,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/intel.c linux-2.6.29.6/arch/x86/ke
#endif
diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c
--- linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-23 17:34:32.068000886 -0400
@@ -678,6 +678,7 @@ static struct miscdevice mce_log_device
MISC_MCELOG_MINOR,
"mcelog",
@@ -7576,7 +7796,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c linux-2.6.29.6/arc
static unsigned long old_cr4 __initdata;
diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c
--- linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-23 17:34:32.068000886 -0400
@@ -23,14 +23,14 @@ static struct fixed_range_block fixed_ra
{ MTRRfix64K_00000_MSR, 1 }, /* one 64k MTRR */
{ MTRRfix16K_80000_MSR, 2 }, /* two 16k MTRRs */
@@ -7596,7 +7816,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.29.6/arch
static int __initdata mtrr_show;
diff -urNp linux-2.6.29.6/arch/x86/kernel/crash.c linux-2.6.29.6/arch/x86/kernel/crash.c
--- linux-2.6.29.6/arch/x86/kernel/crash.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/crash.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/crash.c 2009-07-23 17:34:32.068000886 -0400
@@ -43,7 +43,7 @@ static void kdump_nmi_callback(int cpu,
regs = args->regs;
@@ -7608,7 +7828,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/crash.c linux-2.6.29.6/arch/x86/kernel
}
diff -urNp linux-2.6.29.6/arch/x86/kernel/doublefault_32.c linux-2.6.29.6/arch/x86/kernel/doublefault_32.c
--- linux-2.6.29.6/arch/x86/kernel/doublefault_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/doublefault_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/doublefault_32.c 2009-07-23 17:34:32.068803825 -0400
@@ -11,7 +11,7 @@
#define DOUBLEFAULT_STACKSIZE (1024)
@@ -7642,7 +7862,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/doublefault_32.c linux-2.6.29.6/arch/x
.__cr3 = __pa_nodebug(swapper_pg_dir),
diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c
--- linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c 2009-07-23 17:34:32.068803825 -0400
@@ -107,11 +107,12 @@ void show_registers(struct pt_regs *regs
* When in-kernel, we also print out the stack and code at the
* time of the fault..
@@ -7689,7 +7909,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c linux-2.6.29.6/arch/x86
if (probe_kernel_address((unsigned short *)ip, ud2))
diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack.c linux-2.6.29.6/arch/x86/kernel/dumpstack.c
--- linux-2.6.29.6/arch/x86/kernel/dumpstack.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/dumpstack.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/dumpstack.c 2009-07-23 17:34:32.068803825 -0400
@@ -178,7 +178,7 @@ void dump_stack(void)
#endif
@@ -7710,7 +7930,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack.c linux-2.6.29.6/arch/x86/ke
if (__die(str, regs, err))
diff -urNp linux-2.6.29.6/arch/x86/kernel/e820.c linux-2.6.29.6/arch/x86/kernel/e820.c
--- linux-2.6.29.6/arch/x86/kernel/e820.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/e820.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/e820.c 2009-07-23 17:34:32.068803825 -0400
@@ -698,7 +698,10 @@ struct early_res {
};
static struct early_res early_res[MAX_EARLY_RES] __initdata = {
@@ -7725,7 +7945,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/e820.c linux-2.6.29.6/arch/x86/kernel/
static int __init find_overlapped_early(u64 start, u64 end)
diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_32.c linux-2.6.29.6/arch/x86/kernel/efi_32.c
--- linux-2.6.29.6/arch/x86/kernel/efi_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/efi_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/efi_32.c 2009-07-23 17:34:32.068803825 -0400
@@ -38,70 +38,38 @@
*/
@@ -7808,7 +8028,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_32.c linux-2.6.29.6/arch/x86/kerne
* After the lock is released, the original page table is restored.
diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S
--- linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S 2009-07-23 17:34:32.068803825 -0400
@@ -6,6 +6,7 @@
*/
@@ -7908,7 +8128,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S linux-2.6.29.6/arch/x86/
efi_rt_function_ptr:
diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/kernel/entry_32.S
--- linux-2.6.29.6/arch/x86/kernel/entry_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/entry_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/entry_32.S 2009-07-23 17:34:32.069868390 -0400
@@ -101,7 +101,7 @@
#define resume_userspace_sig resume_userspace
#endif
@@ -8200,7 +8420,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker
CFI_ADJUST_CFA_OFFSET -24
diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_64.S linux-2.6.29.6/arch/x86/kernel/entry_64.S
--- linux-2.6.29.6/arch/x86/kernel/entry_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/entry_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/entry_64.S 2009-07-23 17:34:32.069868390 -0400
@@ -1073,10 +1073,11 @@ ENTRY(\sym)
TRACE_IRQS_OFF
movq %rsp,%rdi /* pt_regs pointer */
@@ -8218,7 +8438,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_64.S linux-2.6.29.6/arch/x86/ker
END(\sym)
diff -urNp linux-2.6.29.6/arch/x86/kernel/ftrace.c linux-2.6.29.6/arch/x86/kernel/ftrace.c
--- linux-2.6.29.6/arch/x86/kernel/ftrace.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/ftrace.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/ftrace.c 2009-07-23 17:34:32.070744144 -0400
@@ -250,9 +250,9 @@ int ftrace_update_ftrace_func(ftrace_fun
unsigned char old[MCOUNT_INSN_SIZE], *new;
int ret;
@@ -8233,7 +8453,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ftrace.c linux-2.6.29.6/arch/x86/kerne
}
diff -urNp linux-2.6.29.6/arch/x86/kernel/head32.c linux-2.6.29.6/arch/x86/kernel/head32.c
--- linux-2.6.29.6/arch/x86/kernel/head32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/head32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/head32.c 2009-07-23 17:34:32.070744144 -0400
@@ -13,12 +13,13 @@
#include <asm/e820.h>
#include <asm/bios_ebda.h>
@@ -8251,7 +8471,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head32.c linux-2.6.29.6/arch/x86/kerne
/* Reserve INITRD */
diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kernel/head_32.S
--- linux-2.6.29.6/arch/x86/kernel/head_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/head_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/head_32.S 2009-07-23 17:34:37.457730203 -0400
@@ -19,6 +19,7 @@
#include <asm/asm-offsets.h>
#include <asm/setup.h>
@@ -8382,27 +8602,35 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
num_subarch_entries = (. - subarch_entries) / 4
.previous
#endif /* CONFIG_PARAVIRT */
-@@ -220,8 +280,7 @@ default_entry:
+@@ -220,8 +280,11 @@ default_entry:
movl %eax, pa(max_pfn_mapped)
/* Do early initialization of the fixmap area */
- movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,%eax
- movl %eax,pa(swapper_pg_pmd+0x1000*KPMDS-8)
++#ifdef CONFIG_COMPAT_VDSO
++ movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(swapper_pg_pmd+0x1000*KPMDS-8)
++#else
+ movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,pa(swapper_pg_pmd+0x1000*KPMDS-8)
++#endif
#else /* Not PAE */
page_pde_offset = (__PAGE_OFFSET >> 20);
-@@ -253,8 +312,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
+@@ -253,8 +316,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
movl %eax, pa(max_pfn_mapped)
/* Do early initialization of the fixmap area */
- movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,%eax
- movl %eax,pa(swapper_pg_dir+0xffc)
++#ifdef CONFIG_COMPAT_VDSO
++ movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(swapper_pg_dir+0xffc)
++#else
+ movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,pa(swapper_pg_dir+0xffc)
++#endif
#endif
jmp 3f
/*
-@@ -318,13 +376,16 @@ ENTRY(startup_32_smp)
+@@ -318,13 +384,16 @@ ENTRY(startup_32_smp)
jnc 6f
/* Setup EFER (Extended Feature Enable Register) */
@@ -8420,7 +8648,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
6:
/*
-@@ -350,9 +411,7 @@ ENTRY(startup_32_smp)
+@@ -350,9 +419,7 @@ ENTRY(startup_32_smp)
#ifdef CONFIG_SMP
cmpb $0, ready
@@ -8431,7 +8659,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
#endif /* CONFIG_SMP */
/*
-@@ -429,12 +488,12 @@ is386: movl $2,%ecx # set MP
+@@ -429,12 +496,12 @@ is386: movl $2,%ecx # set MP
ljmp $(__KERNEL_CS),$1f
1: movl $(__KERNEL_DS),%eax # reload all the segment registers
movl %eax,%ss # after changing gdt.
@@ -8447,7 +8675,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
xorl %eax,%eax # Clear GS and LDT
movl %eax,%gs
lldt %ax
-@@ -444,12 +503,6 @@ is386: movl $2,%ecx # set MP
+@@ -444,12 +511,6 @@ is386: movl $2,%ecx # set MP
#ifdef CONFIG_SMP
movb ready, %cl
movb $1, ready
@@ -8460,7 +8688,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
#endif /* CONFIG_SMP */
jmp *(initial_code)
-@@ -535,15 +588,15 @@ early_page_fault:
+@@ -535,15 +596,15 @@ early_page_fault:
jmp early_fault
early_fault:
@@ -8480,7 +8708,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
movl %cr2,%eax
pushl %eax
pushl %edx /* trapno */
-@@ -553,8 +606,8 @@ early_fault:
+@@ -553,8 +614,8 @@ early_fault:
#else
call printk
#endif
@@ -8490,7 +8718,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
hlt_loop:
hlt
jmp hlt_loop
-@@ -562,8 +615,11 @@ hlt_loop:
+@@ -562,8 +623,11 @@ hlt_loop:
/* This is the default interrupt "handler" :-) */
ALIGN
ignore_int:
@@ -8503,7 +8731,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
pushl %eax
pushl %ecx
pushl %edx
-@@ -572,9 +628,6 @@ ignore_int:
+@@ -572,9 +636,6 @@ ignore_int:
movl $(__KERNEL_DS),%eax
movl %eax,%ds
movl %eax,%es
@@ -8513,7 +8741,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
pushl 16(%esp)
pushl 24(%esp)
pushl 32(%esp)
-@@ -599,36 +652,41 @@ ignore_int:
+@@ -599,36 +660,42 @@ ignore_int:
ENTRY(initial_code)
.long i386_start_kernel
@@ -8538,7 +8766,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
ENTRY(swapper_pg_dir)
.fill 1024,4,0
#endif
- swapper_pg_fixmap:
+-swapper_pg_fixmap:
++
++ENTRY(swapper_pg_fixmap)
.fill 1024,4,0
+
+.section .empty_zero_page,"a",@progbits
@@ -8567,7 +8797,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
ENTRY(swapper_pg_dir)
.long pa(swapper_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
# if KPMDS == 3
-@@ -651,11 +709,12 @@ ENTRY(swapper_pg_dir)
+@@ -651,11 +718,12 @@ ENTRY(swapper_pg_dir)
.data
ENTRY(stack_start)
@@ -8581,7 +8811,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
early_recursion_flag:
.long 0
-@@ -691,7 +750,7 @@ fault_msg:
+@@ -691,7 +759,7 @@ fault_msg:
.word 0 # 32 bit align gdt_desc.address
boot_gdt_descr:
.word __BOOT_DS+7
@@ -8590,7 +8820,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
.word 0 # 32-bit align idt_desc.address
idt_descr:
-@@ -702,7 +761,7 @@ idt_descr:
+@@ -702,7 +770,7 @@ idt_descr:
.word 0 # 32 bit align gdt_desc.address
ENTRY(early_gdt_descr)
.word GDT_ENTRIES*8-1
@@ -8599,7 +8829,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
/*
* The boot_gdt must mirror the equivalent in setup.S and is
-@@ -711,5 +770,59 @@ ENTRY(early_gdt_descr)
+@@ -711,5 +779,59 @@ ENTRY(early_gdt_descr)
.align L1_CACHE_BYTES
ENTRY(boot_gdt)
.fill GDT_ENTRY_BOOT_CS,8,0
@@ -8663,7 +8893,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern
+ .endr
diff -urNp linux-2.6.29.6/arch/x86/kernel/head64.c linux-2.6.29.6/arch/x86/kernel/head64.c
--- linux-2.6.29.6/arch/x86/kernel/head64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/head64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/head64.c 2009-07-23 17:34:32.070744144 -0400
@@ -94,6 +94,8 @@ void __init x86_64_start_kernel(char * r
/* clear bss before set_intr_gate with early_idt_handler */
clear_bss();
@@ -8684,7 +8914,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head64.c linux-2.6.29.6/arch/x86/kerne
diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kernel/head_64.S
--- linux-2.6.29.6/arch/x86/kernel/head_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/head_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/head_64.S 2009-07-23 17:34:32.071712262 -0400
@@ -38,6 +38,10 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET
L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET)
L4_START_KERNEL = pgd_index(__START_KERNEL_map)
@@ -8920,7 +9150,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern
.align PAGE_SIZE
diff -urNp linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c
--- linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c 2009-07-23 17:34:32.071712262 -0400
@@ -10,8 +10,12 @@
EXPORT_SYMBOL(mcount);
#endif
@@ -8944,7 +9174,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c linux-2.6.29.6/arch/x8
+#endif
diff -urNp linux-2.6.29.6/arch/x86/kernel/init_task.c linux-2.6.29.6/arch/x86/kernel/init_task.c
--- linux-2.6.29.6/arch/x86/kernel/init_task.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/init_task.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/init_task.c 2009-07-23 17:34:32.071712262 -0400
@@ -40,5 +40,5 @@ EXPORT_SYMBOL(init_task);
* section. Since TSS's are completely CPU-local, we want them
* on exact cacheline boundaries, to eliminate cacheline ping-pong.
@@ -8955,7 +9185,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/init_task.c linux-2.6.29.6/arch/x86/ke
+EXPORT_SYMBOL(init_tss);
diff -urNp linux-2.6.29.6/arch/x86/kernel/ioport.c linux-2.6.29.6/arch/x86/kernel/ioport.c
--- linux-2.6.29.6/arch/x86/kernel/ioport.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/ioport.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/ioport.c 2009-07-23 17:34:32.071712262 -0400
@@ -6,6 +6,7 @@
#include <linux/sched.h>
#include <linux/kernel.h>
@@ -9002,7 +9232,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ioport.c linux-2.6.29.6/arch/x86/kerne
diff -urNp linux-2.6.29.6/arch/x86/kernel/irq_32.c linux-2.6.29.6/arch/x86/kernel/irq_32.c
--- linux-2.6.29.6/arch/x86/kernel/irq_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/irq_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/irq_32.c 2009-07-23 17:34:32.071712262 -0400
@@ -93,7 +93,7 @@ execute_on_irq_stack(int overflow, struc
return 0;
@@ -9023,7 +9253,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/irq_32.c linux-2.6.29.6/arch/x86/kerne
/*
diff -urNp linux-2.6.29.6/arch/x86/kernel/kprobes.c linux-2.6.29.6/arch/x86/kernel/kprobes.c
--- linux-2.6.29.6/arch/x86/kernel/kprobes.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/kprobes.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/kprobes.c 2009-07-23 17:34:32.072711199 -0400
@@ -166,9 +166,24 @@ static void __kprobes set_jmp_op(void *f
char op;
s32 raddr;
@@ -9130,7 +9360,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/kprobes.c linux-2.6.29.6/arch/x86/kern
switch (val) {
diff -urNp linux-2.6.29.6/arch/x86/kernel/ldt.c linux-2.6.29.6/arch/x86/kernel/ldt.c
--- linux-2.6.29.6/arch/x86/kernel/ldt.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/ldt.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/ldt.c 2009-07-23 17:34:32.072711199 -0400
@@ -66,13 +66,13 @@ static int alloc_ldt(mm_context_t *pc, i
if (reload) {
#ifdef CONFIG_SMP
@@ -9197,7 +9427,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ldt.c linux-2.6.29.6/arch/x86/kernel/l
ldt.avl = 0;
diff -urNp linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c
--- linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c 2009-07-23 17:34:32.072711199 -0400
@@ -26,7 +26,7 @@
#include <asm/system.h>
#include <asm/cacheflush.h>
@@ -9227,7 +9457,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c linux-2.6.29.6/arch
page_list[PA_CONTROL_PAGE] = __pa(control_page);
diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/kernel/module_32.c
--- linux-2.6.29.6/arch/x86/kernel/module_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/module_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/module_32.c 2009-07-23 17:34:32.072711199 -0400
@@ -23,6 +23,9 @@
#include <linux/kernel.h>
#include <linux/bug.h>
@@ -9377,7 +9607,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/ke
printk(KERN_ERR "module %s: Unknown relocation: %u\n",
diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/kernel/module_64.c
--- linux-2.6.29.6/arch/x86/kernel/module_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/module_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/module_64.c 2009-07-23 17:34:32.072711199 -0400
@@ -40,7 +40,7 @@ void module_free(struct module *mod, voi
table entries. */
}
@@ -9497,7 +9727,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/ke
goto overflow;
diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/kernel/paravirt.c
--- linux-2.6.29.6/arch/x86/kernel/paravirt.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/paravirt.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/paravirt.c 2009-07-23 17:34:32.073727851 -0400
@@ -44,7 +44,7 @@ void _paravirt_nop(void)
{
}
@@ -9579,7 +9809,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/ker
.pagetable_setup_done = native_pagetable_setup_done,
diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c
--- linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c 2009-07-23 17:34:32.073727851 -0400
@@ -13,7 +13,7 @@ default_spin_lock_flags(raw_spinlock_t *
__raw_spin_lock(lock);
}
@@ -9591,7 +9821,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.29.6/ar
.spin_is_contended = __ticket_spin_is_contended,
diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/kernel/process_32.c
--- linux-2.6.29.6/arch/x86/kernel/process_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/process_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/process_32.c 2009-07-23 17:34:32.073727851 -0400
@@ -66,8 +66,10 @@ asmlinkage void ret_from_fork(void) __as
DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task;
EXPORT_PER_CPU_SYMBOL(current_task);
@@ -9725,7 +9955,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k
+#endif
diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/kernel/process_64.c
--- linux-2.6.29.6/arch/x86/kernel/process_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/process_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/process_64.c 2009-07-23 17:34:32.073727851 -0400
@@ -91,7 +91,7 @@ static void __exit_idle(void)
void exit_idle(void)
{
@@ -9813,7 +10043,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/k
-}
diff -urNp linux-2.6.29.6/arch/x86/kernel/ptrace.c linux-2.6.29.6/arch/x86/kernel/ptrace.c
--- linux-2.6.29.6/arch/x86/kernel/ptrace.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/ptrace.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/ptrace.c 2009-07-23 17:34:32.073727851 -0400
@@ -1377,7 +1377,7 @@ void send_sigtrap(struct task_struct *ts
info.si_code = si_code;
@@ -9825,7 +10055,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ptrace.c linux-2.6.29.6/arch/x86/kerne
force_sig_info(SIGTRAP, &info, tsk);
diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kernel/reboot.c
--- linux-2.6.29.6/arch/x86/kernel/reboot.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/reboot.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/reboot.c 2009-07-23 17:34:32.073727851 -0400
@@ -32,7 +32,7 @@ void (*pm_power_off)(void);
EXPORT_SYMBOL(pm_power_off);
@@ -9904,7 +10134,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne
load_idt(&real_mode_idt);
diff -urNp linux-2.6.29.6/arch/x86/kernel/setup.c linux-2.6.29.6/arch/x86/kernel/setup.c
--- linux-2.6.29.6/arch/x86/kernel/setup.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/setup.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/setup.c 2009-07-23 17:34:32.075127987 -0400
@@ -703,8 +703,8 @@ void __init setup_arch(char **cmdline_p)
if (!boot_params.hdr.root_flags)
@@ -9931,7 +10161,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/setup.c linux-2.6.29.6/arch/x86/kernel
bss_resource.end = virt_to_phys(&__bss_stop)-1;
diff -urNp linux-2.6.29.6/arch/x86/kernel/setup_percpu.c linux-2.6.29.6/arch/x86/kernel/setup_percpu.c
--- linux-2.6.29.6/arch/x86/kernel/setup_percpu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/setup_percpu.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/setup_percpu.c 2009-07-23 17:34:32.075127987 -0400
@@ -197,7 +197,11 @@ void __init setup_per_cpu_areas(void)
cpu, node, __pa(ptr));
}
@@ -9946,7 +10176,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/setup_percpu.c linux-2.6.29.6/arch/x86
diff -urNp linux-2.6.29.6/arch/x86/kernel/signal.c linux-2.6.29.6/arch/x86/kernel/signal.c
--- linux-2.6.29.6/arch/x86/kernel/signal.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/signal.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/signal.c 2009-07-23 17:34:32.075127987 -0400
@@ -255,7 +255,7 @@ get_sigframe(struct k_sigaction *ka, str
* Align the stack pointer according to the i386 ABI,
* i.e. so that on function entry ((sp + 4) & 15) == 0.
@@ -9988,7 +10218,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/signal.c linux-2.6.29.6/arch/x86/kerne
if (current_thread_info()->status & TS_RESTORE_SIGMASK)
diff -urNp linux-2.6.29.6/arch/x86/kernel/smpboot.c linux-2.6.29.6/arch/x86/kernel/smpboot.c
--- linux-2.6.29.6/arch/x86/kernel/smpboot.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/smpboot.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/smpboot.c 2009-07-23 17:34:32.076107253 -0400
@@ -806,6 +806,11 @@ static int __cpuinit do_boot_cpu(int api
.cpu = cpu,
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
@@ -10021,7 +10251,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/smpboot.c linux-2.6.29.6/arch/x86/kern
diff -urNp linux-2.6.29.6/arch/x86/kernel/smpcommon.c linux-2.6.29.6/arch/x86/kernel/smpcommon.c
--- linux-2.6.29.6/arch/x86/kernel/smpcommon.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/smpcommon.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/smpcommon.c 2009-07-23 17:34:32.076107253 -0400
@@ -3,9 +3,10 @@
*/
#include <linux/module.h>
@@ -10063,7 +10293,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/smpcommon.c linux-2.6.29.6/arch/x86/ke
#endif
diff -urNp linux-2.6.29.6/arch/x86/kernel/step.c linux-2.6.29.6/arch/x86/kernel/step.c
--- linux-2.6.29.6/arch/x86/kernel/step.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/step.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/step.c 2009-07-23 17:34:32.076107253 -0400
@@ -23,22 +23,20 @@ unsigned long convert_ip_to_linear(struc
* and APM bios ones we just ignore here.
*/
@@ -10115,7 +10345,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/step.c linux-2.6.29.6/arch/x86/kernel/
/* 64-bit mode: REX prefix */
diff -urNp linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S
--- linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S 2009-07-23 17:34:32.076778086 -0400
@@ -1,3 +1,4 @@
+.section .rodata,"a",@progbits
ENTRY(sys_call_table)
@@ -10123,7 +10353,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S linux-2.6.29.6/arch
.long sys_exit
diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c
--- linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c 2009-07-23 17:34:32.076778086 -0400
@@ -24,6 +24,21 @@
#include <asm/syscalls.h>
@@ -10354,7 +10584,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c linux-2.6.29.6/arch/x86/
unsigned long n;
diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c
--- linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c 2009-07-23 17:34:32.076778086 -0400
@@ -47,8 +47,8 @@ out:
return error;
}
@@ -10438,7 +10668,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c linux-2.6.29.6/arch/x86/k
return addr;
diff -urNp linux-2.6.29.6/arch/x86/kernel/time_32.c linux-2.6.29.6/arch/x86/kernel/time_32.c
--- linux-2.6.29.6/arch/x86/kernel/time_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/time_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/time_32.c 2009-07-23 17:34:32.076778086 -0400
@@ -47,22 +47,32 @@ unsigned long profile_pc(struct pt_regs
unsigned long pc = instruction_pointer(regs);
@@ -10476,7 +10706,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/time_32.c linux-2.6.29.6/arch/x86/kern
EXPORT_SYMBOL(profile_pc);
diff -urNp linux-2.6.29.6/arch/x86/kernel/time_64.c linux-2.6.29.6/arch/x86/kernel/time_64.c
--- linux-2.6.29.6/arch/x86/kernel/time_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/time_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/time_64.c 2009-07-23 17:34:32.076778086 -0400
@@ -25,8 +25,6 @@
#include <asm/time.h>
#include <asm/timer.h>
@@ -10497,7 +10727,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/time_64.c linux-2.6.29.6/arch/x86/kern
#else
diff -urNp linux-2.6.29.6/arch/x86/kernel/tlb_32.c linux-2.6.29.6/arch/x86/kernel/tlb_32.c
--- linux-2.6.29.6/arch/x86/kernel/tlb_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/tlb_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/tlb_32.c 2009-07-23 17:34:32.076778086 -0400
@@ -5,7 +5,7 @@
#include <asm/tlbflush.h>
@@ -10509,7 +10739,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/tlb_32.c linux-2.6.29.6/arch/x86/kerne
#include <mach_ipi.h>
diff -urNp linux-2.6.29.6/arch/x86/kernel/tls.c linux-2.6.29.6/arch/x86/kernel/tls.c
--- linux-2.6.29.6/arch/x86/kernel/tls.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/tls.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/tls.c 2009-07-23 17:34:32.077892704 -0400
@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc
if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
return -EINVAL;
@@ -10524,7 +10754,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/tls.c linux-2.6.29.6/arch/x86/kernel/t
return 0;
diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel/traps.c
--- linux-2.6.29.6/arch/x86/kernel/traps.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/traps.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/traps.c 2009-07-23 17:34:32.077892704 -0400
@@ -71,14 +71,6 @@ asmlinkage int system_call(void);
/* Do we ignore FPU interrupts ? */
@@ -10697,7 +10927,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel
}
diff -urNp linux-2.6.29.6/arch/x86/kernel/tsc.c linux-2.6.29.6/arch/x86/kernel/tsc.c
--- linux-2.6.29.6/arch/x86/kernel/tsc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/tsc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/tsc.c 2009-07-23 17:34:32.077892704 -0400
@@ -765,7 +765,7 @@ static struct dmi_system_id __initdata b
DMI_MATCH(DMI_BOARD_NAME, "2635FA0"),
},
@@ -10709,7 +10939,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/tsc.c linux-2.6.29.6/arch/x86/kernel/t
static void __init check_system_tsc_reliable(void)
diff -urNp linux-2.6.29.6/arch/x86/kernel/vm86_32.c linux-2.6.29.6/arch/x86/kernel/vm86_32.c
--- linux-2.6.29.6/arch/x86/kernel/vm86_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/vm86_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/vm86_32.c 2009-07-23 17:34:32.078863323 -0400
@@ -148,7 +148,7 @@ struct pt_regs *save_v86_state(struct ke
do_exit(SIGSEGV);
}
@@ -10730,7 +10960,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vm86_32.c linux-2.6.29.6/arch/x86/kern
tsk->thread.sysenter_cs = 0;
diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kernel/vmi_32.c
--- linux-2.6.29.6/arch/x86/kernel/vmi_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/vmi_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/vmi_32.c 2009-07-23 17:34:32.078863323 -0400
@@ -102,18 +102,43 @@ static unsigned patch_internal(int call,
{
u64 reloc;
@@ -10836,7 +11066,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kerne
* to convert VMI_IRET to a call instead of a jump; so we have
diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S
--- linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S 2009-07-23 17:34:32.078863323 -0400
@@ -15,6 +15,20 @@
#include <asm/page.h>
#include <asm/cache.h>
@@ -11130,7 +11360,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x
*(.bss)
diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S
--- linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S 2009-07-23 17:34:37.458887026 -0400
@@ -12,12 +12,12 @@
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -11142,8 +11372,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x
text PT_LOAD FLAGS(5); /* R_E */
- data PT_LOAD FLAGS(7); /* RWE */
- user PT_LOAD FLAGS(7); /* RWE */
-+ user PT_LOAD FLAGS(5); /* R_E */
+ data PT_LOAD FLAGS(6); /* RW_ */
++ user PT_LOAD FLAGS(5); /* R_E */
data.init PT_LOAD FLAGS(7); /* RWE */
note PT_NOTE FLAGS(0); /* ___ */
}
@@ -11171,7 +11401,35 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x
. = ALIGN(PAGE_SIZE);
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
.data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
-@@ -104,10 +107,6 @@ SECTIONS
+@@ -71,9 +74,25 @@ SECTIONS
+ *(.data.read_mostly)
+ }
+
++ . = ALIGN(THREAD_SIZE); /* init_task */
++ .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
++ *(.data.init_task)
++ }:data
++
++ . = ALIGN(PAGE_SIZE);
++ .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
++ *(.data.page_aligned)
++ }
++
++ . = ALIGN(PAGE_SIZE);
++ __nosave_begin = .;
++ .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) }
++ . = ALIGN(PAGE_SIZE);
++ __nosave_end = .;
++
+ #define VSYSCALL_ADDR (-10*1024*1024)
+-#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
+-#define VSYSCALL_VIRT_ADDR ((ADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
++#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data_nosave) + SIZEOF(.data_nosave) + 4095) & ~(4095))
++#define VSYSCALL_VIRT_ADDR ((ADDR(.data_nosave) + SIZEOF(.data_nosave) + 4095) & ~(4095))
+
+ #define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR)
+ #define VLOAD(x) (ADDR(x) - VLOAD_OFFSET)
+@@ -104,10 +123,6 @@ SECTIONS
.vgetcpu_mode : AT(VLOAD(.vgetcpu_mode)) { *(.vgetcpu_mode) }
vgetcpu_mode = VVIRT(.vgetcpu_mode);
@@ -11182,29 +11440,24 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x
.vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3))
{ *(.vsyscall_3) }
-@@ -124,20 +123,28 @@ SECTIONS
- . = ALIGN(THREAD_SIZE); /* init_task */
- .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
- *(.data.init_task)
-- }:data.init
-+ }:data
-
- . = ALIGN(PAGE_SIZE);
- .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
- *(.data.page_aligned)
- }
+@@ -121,15 +136,7 @@ SECTIONS
+ #undef VVIRT_OFFSET
+ #undef VVIRT
-+ . = ALIGN(PAGE_SIZE);
-+ __nosave_begin = .;
-+ .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) }
-+ . = ALIGN(PAGE_SIZE);
-+ __nosave_end = .;
-+
+- . = ALIGN(THREAD_SIZE); /* init_task */
+- .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
+- *(.data.init_task)
+- }:data.init
+-
+- . = ALIGN(PAGE_SIZE);
+- .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
+- *(.data.page_aligned)
+- }
+ _edata = .; /* End of data section */
-+
+
/* might get freed after init */
. = ALIGN(PAGE_SIZE);
- __smp_alt_begin = .;
+@@ -137,7 +144,7 @@ SECTIONS
__smp_locks = .;
.smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
*(.smp_locks)
@@ -11233,7 +11486,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x
diff -urNp linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c
--- linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c 2009-07-23 17:34:32.080014276 -0400
@@ -79,6 +79,7 @@ void update_vsyscall(struct timespec *wa
write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
@@ -11269,7 +11522,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c linux-2.6.29.6/arch/x86/
diff -urNp linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c
--- linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c 2009-07-23 17:34:32.080014276 -0400
@@ -30,8 +30,6 @@ EXPORT_SYMBOL(__put_user_8);
EXPORT_SYMBOL(copy_user_generic);
@@ -11281,7 +11534,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.29.6/arch/x
EXPORT_SYMBOL(copy_page);
diff -urNp linux-2.6.29.6/arch/x86/kvm/svm.c linux-2.6.29.6/arch/x86/kvm/svm.c
--- linux-2.6.29.6/arch/x86/kvm/svm.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kvm/svm.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kvm/svm.c 2009-07-23 17:34:32.080014276 -0400
@@ -1525,7 +1525,19 @@ static void reload_tss(struct kvm_vcpu *
int cpu = raw_smp_processor_id();
@@ -11313,7 +11566,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/svm.c linux-2.6.29.6/arch/x86/kvm/svm.c
.hardware_setup = svm_hardware_setup,
diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c
--- linux-2.6.29.6/arch/x86/kvm/vmx.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kvm/vmx.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kvm/vmx.c 2009-07-23 17:34:32.080863524 -0400
@@ -497,9 +497,23 @@ static void reload_tss(void)
struct descriptor_table gdt;
struct desc_struct *descs;
@@ -11392,7 +11645,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c
.hardware_setup = hardware_setup,
diff -urNp linux-2.6.29.6/arch/x86/kvm/x86.c linux-2.6.29.6/arch/x86/kvm/x86.c
--- linux-2.6.29.6/arch/x86/kvm/x86.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/kvm/x86.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/kvm/x86.c 2009-07-23 17:34:32.081957601 -0400
@@ -70,44 +70,44 @@ static u64 __read_mostly efer_reserved_b
static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
struct kvm_cpuid_entry2 __user *entries);
@@ -11497,7 +11750,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/x86.c linux-2.6.29.6/arch/x86/kvm/x86.c
printk(KERN_ERR "kvm: already loaded the other module\n");
diff -urNp linux-2.6.29.6/arch/x86/lib/checksum_32.S linux-2.6.29.6/arch/x86/lib/checksum_32.S
--- linux-2.6.29.6/arch/x86/lib/checksum_32.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/checksum_32.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/checksum_32.S 2009-07-23 17:34:32.081957601 -0400
@@ -28,7 +28,8 @@
#include <linux/linkage.h>
#include <asm/dwarf2.h>
@@ -11745,7 +11998,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/checksum_32.S linux-2.6.29.6/arch/x86/lib
#undef ROUND1
diff -urNp linux-2.6.29.6/arch/x86/lib/clear_page_64.S linux-2.6.29.6/arch/x86/lib/clear_page_64.S
--- linux-2.6.29.6/arch/x86/lib/clear_page_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/clear_page_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/clear_page_64.S 2009-07-23 17:34:32.081957601 -0400
@@ -44,7 +44,7 @@ ENDPROC(clear_page)
#include <asm/cpufeature.h>
@@ -11757,7 +12010,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/clear_page_64.S linux-2.6.29.6/arch/x86/l
2:
diff -urNp linux-2.6.29.6/arch/x86/lib/copy_page_64.S linux-2.6.29.6/arch/x86/lib/copy_page_64.S
--- linux-2.6.29.6/arch/x86/lib/copy_page_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/copy_page_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/copy_page_64.S 2009-07-23 17:34:32.081957601 -0400
@@ -104,7 +104,7 @@ ENDPROC(copy_page)
#include <asm/cpufeature.h>
@@ -11769,7 +12022,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/copy_page_64.S linux-2.6.29.6/arch/x86/li
2:
diff -urNp linux-2.6.29.6/arch/x86/lib/copy_user_64.S linux-2.6.29.6/arch/x86/lib/copy_user_64.S
--- linux-2.6.29.6/arch/x86/lib/copy_user_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/copy_user_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/copy_user_64.S 2009-07-23 17:34:32.082759353 -0400
@@ -21,7 +21,7 @@
.byte 0xe9 /* 32bit jump */
.long \orig-1f /* by default jump to orig */
@@ -11822,7 +12075,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/copy_user_64.S linux-2.6.29.6/arch/x86/li
rep
diff -urNp linux-2.6.29.6/arch/x86/lib/getuser.S linux-2.6.29.6/arch/x86/lib/getuser.S
--- linux-2.6.29.6/arch/x86/lib/getuser.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/getuser.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/getuser.S 2009-07-23 17:34:32.082759353 -0400
@@ -33,6 +33,7 @@
#include <asm/asm-offsets.h>
#include <asm/thread_info.h>
@@ -11906,7 +12159,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/getuser.S linux-2.6.29.6/arch/x86/lib/get
ret
diff -urNp linux-2.6.29.6/arch/x86/lib/memcpy_64.S linux-2.6.29.6/arch/x86/lib/memcpy_64.S
--- linux-2.6.29.6/arch/x86/lib/memcpy_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/memcpy_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/memcpy_64.S 2009-07-23 17:34:32.082759353 -0400
@@ -114,7 +114,7 @@ ENDPROC(__memcpy)
/* Some CPUs run faster using the string copy instructions.
It is also a lot simpler. Use this when possible */
@@ -11918,7 +12171,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/memcpy_64.S linux-2.6.29.6/arch/x86/lib/m
2:
diff -urNp linux-2.6.29.6/arch/x86/lib/memset_64.S linux-2.6.29.6/arch/x86/lib/memset_64.S
--- linux-2.6.29.6/arch/x86/lib/memset_64.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/memset_64.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/memset_64.S 2009-07-23 17:34:32.082759353 -0400
@@ -118,7 +118,7 @@ ENDPROC(__memset)
#include <asm/cpufeature.h>
@@ -11930,7 +12183,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/memset_64.S linux-2.6.29.6/arch/x86/lib/m
2:
diff -urNp linux-2.6.29.6/arch/x86/lib/mmx_32.c linux-2.6.29.6/arch/x86/lib/mmx_32.c
--- linux-2.6.29.6/arch/x86/lib/mmx_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/mmx_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/mmx_32.c 2009-07-23 17:34:32.083767334 -0400
@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *
{
void *p;
@@ -12248,7 +12501,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/mmx_32.c linux-2.6.29.6/arch/x86/lib/mmx_
to += 64;
diff -urNp linux-2.6.29.6/arch/x86/lib/putuser.S linux-2.6.29.6/arch/x86/lib/putuser.S
--- linux-2.6.29.6/arch/x86/lib/putuser.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/putuser.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/putuser.S 2009-07-23 17:34:32.083767334 -0400
@@ -15,6 +15,7 @@
#include <asm/thread_info.h>
#include <asm/errno.h>
@@ -12354,7 +12607,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/putuser.S linux-2.6.29.6/arch/x86/lib/put
END(bad_put_user)
diff -urNp linux-2.6.29.6/arch/x86/lib/usercopy_32.c linux-2.6.29.6/arch/x86/lib/usercopy_32.c
--- linux-2.6.29.6/arch/x86/lib/usercopy_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/lib/usercopy_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/lib/usercopy_32.c 2009-07-23 17:34:32.084899980 -0400
@@ -36,31 +36,38 @@ static inline int __movsl_is_ok(unsigned
* Copy a null terminated string from userspace.
*/
@@ -13322,7 +13575,7 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/usercopy_32.c linux-2.6.29.6/arch/x86/lib
+EXPORT_SYMBOL(set_fs);
diff -urNp linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c
--- linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c 2009-07-23 17:34:32.084899980 -0400
@@ -123,7 +123,7 @@ int __init voyager_memory_detect(int reg
__u8 cmos[4];
ClickMap_t *map;
@@ -13343,7 +13596,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c linux-2.6.29.6/a
map = (ClickMap_t *) (map_addr & (~PAGE_MASK));
diff -urNp linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c
--- linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c 2009-07-23 17:34:32.084899980 -0400
@@ -511,6 +511,10 @@ static void __init do_boot_cpu(__u8 cpu)
__u32 *hijack_vector;
__u32 start_phys_address = setup_trampoline();
@@ -13385,7 +13638,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c linux-2.6.29.6/arc
if (((1 << cpu) & voyager_extended_vic_processors) == 0)
diff -urNp linux-2.6.29.6/arch/x86/Makefile linux-2.6.29.6/arch/x86/Makefile
--- linux-2.6.29.6/arch/x86/Makefile 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/Makefile 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/Makefile 2009-07-23 17:34:32.084899980 -0400
@@ -232,3 +232,12 @@ endef
CLEAN_FILES += arch/x86/boot/fdimage \
arch/x86/boot/image.iso \
@@ -13401,7 +13654,7 @@ diff -urNp linux-2.6.29.6/arch/x86/Makefile linux-2.6.29.6/arch/x86/Makefile
+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
diff -urNp linux-2.6.29.6/arch/x86/mm/extable.c linux-2.6.29.6/arch/x86/mm/extable.c
--- linux-2.6.29.6/arch/x86/mm/extable.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/extable.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/extable.c 2009-07-23 17:34:32.085744993 -0400
@@ -1,14 +1,62 @@
#include <linux/module.h>
#include <linux/spinlock.h>
@@ -13468,7 +13721,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/extable.c linux-2.6.29.6/arch/x86/mm/extab
pnp_bios_is_utter_crap = 1;
diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c
--- linux-2.6.29.6/arch/x86/mm/fault.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/fault.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/fault.c 2009-07-23 17:34:32.085744993 -0400
@@ -26,6 +26,8 @@
#include <linux/kprobes.h>
#include <linux/uaccess.h>
@@ -14013,7 +14266,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c
+#endif
diff -urNp linux-2.6.29.6/arch/x86/mm/highmem_32.c linux-2.6.29.6/arch/x86/mm/highmem_32.c
--- linux-2.6.29.6/arch/x86/mm/highmem_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/highmem_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/highmem_32.c 2009-07-23 17:34:32.085744993 -0400
@@ -74,6 +74,10 @@ void *kmap_atomic_prot(struct page *page
enum fixed_addresses idx;
unsigned long vaddr;
@@ -14103,7 +14356,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/highmem_32.c linux-2.6.29.6/arch/x86/mm/hi
return (void*) vaddr;
diff -urNp linux-2.6.29.6/arch/x86/mm/hugetlbpage.c linux-2.6.29.6/arch/x86/mm/hugetlbpage.c
--- linux-2.6.29.6/arch/x86/mm/hugetlbpage.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/hugetlbpage.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/hugetlbpage.c 2009-07-23 17:34:32.085744993 -0400
@@ -267,13 +267,18 @@ static unsigned long hugetlb_get_unmappe
struct hstate *h = hstate_file(file);
struct mm_struct *mm = current->mm;
@@ -14240,7 +14493,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/hugetlbpage.c linux-2.6.29.6/arch/x86/mm/h
}
diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_32.c
--- linux-2.6.29.6/arch/x86/mm/init_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/init_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/init_32.c 2009-07-23 17:34:32.086818444 -0400
@@ -50,6 +50,7 @@
#include <asm/setup.h>
#include <asm/cacheflush.h>
@@ -14616,7 +14869,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_
(unsigned long)(&__init_end));
diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_64.c
--- linux-2.6.29.6/arch/x86/mm/init_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/init_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/init_64.c 2009-07-23 17:34:32.086818444 -0400
@@ -175,6 +175,10 @@ set_pte_vaddr_pud(pud_t *pud_page, unsig
pmd_t *pmd;
pte_t *pte;
@@ -14736,7 +14989,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_
return "[vsyscall]";
diff -urNp linux-2.6.29.6/arch/x86/mm/iomap_32.c linux-2.6.29.6/arch/x86/mm/iomap_32.c
--- linux-2.6.29.6/arch/x86/mm/iomap_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/iomap_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/iomap_32.c 2009-07-23 17:34:32.086818444 -0400
@@ -24,7 +24,7 @@ int is_io_mapping_possible(resource_size
{
#ifndef CONFIG_X86_PAE
@@ -14748,7 +15001,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/iomap_32.c linux-2.6.29.6/arch/x86/mm/ioma
return 1;
diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/ioremap.c
--- linux-2.6.29.6/arch/x86/mm/ioremap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/ioremap.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/ioremap.c 2009-07-23 17:34:37.458887026 -0400
@@ -114,8 +114,8 @@ int page_is_ram(unsigned long pagenr)
* Second special case: Some BIOSen report the PC BIOS
* area (640->1Mb) as ram even though it is not.
@@ -14760,7 +15013,19 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem
return 0;
for (i = 0; i < e820.nr_map; i++) {
-@@ -275,6 +275,8 @@ static void __iomem *__ioremap_caller(re
+@@ -210,10 +210,7 @@ static void __iomem *__ioremap_caller(re
+ /*
+ * Don't allow anybody to remap normal RAM that we're using..
+ */
+- for (pfn = phys_addr >> PAGE_SHIFT;
+- (pfn << PAGE_SHIFT) < (last_addr & PAGE_MASK);
+- pfn++) {
+-
++ for (pfn = phys_addr >> PAGE_SHIFT; ((resource_size_t)pfn << PAGE_SHIFT) < (last_addr & PAGE_MASK); pfn++) {
+ int is_ram = page_is_ram(pfn);
+
+ if (is_ram && pfn_valid(pfn) && !PageReserved(pfn_to_page(pfn)))
+@@ -275,6 +272,8 @@ static void __iomem *__ioremap_caller(re
break;
}
@@ -14769,47 +15034,39 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem
/*
* Ok, go for it..
*/
-@@ -490,7 +492,9 @@ static int __init early_ioremap_debug_se
+@@ -490,7 +489,6 @@ static int __init early_ioremap_debug_se
early_param("early_ioremap_debug", early_ioremap_debug_setup);
static __initdata int after_paging_init;
-static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
-+#ifdef CONFIG_X86_32
-+static __read_only pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __aligned(PAGE_SIZE);
-+#endif
static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
{
-@@ -505,7 +509,11 @@ static inline pmd_t * __init early_iorem
+@@ -505,7 +503,11 @@ static inline pmd_t * __init early_iorem
static inline pte_t * __init early_ioremap_pte(unsigned long addr)
{
+- return &bm_pte[pte_index(addr)];
+#ifdef CONFIG_X86_32
- return &bm_pte[pte_index(addr)];
++ return &swapper_pg_fixmap[pte_index(addr)];
+#else
+ return &level1_fixmap_pgt[pte_index(addr)];
+#endif
}
void __init early_ioremap_init(void)
-@@ -516,8 +524,14 @@ void __init early_ioremap_init(void)
+@@ -516,8 +518,6 @@ void __init early_ioremap_init(void)
printk(KERN_INFO "early_ioremap_init()\n");
pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
-+#ifdef CONFIG_X86_32
- memset(bm_pte, 0, sizeof(bm_pte));
-+#ifdef CONFIG_COMPAT_VDSO
-+ pmd_populate(&init_mm, pmd, bm_pte);
-+#else
- pmd_populate_kernel(&init_mm, pmd, bm_pte);
-+#endif
-+#endif
+- memset(bm_pte, 0, sizeof(bm_pte));
+- pmd_populate_kernel(&init_mm, pmd, bm_pte);
/*
* The boot-ioremap range spans multiple pmds, for which
diff -urNp linux-2.6.29.6/arch/x86/mm/mmap.c linux-2.6.29.6/arch/x86/mm/mmap.c
--- linux-2.6.29.6/arch/x86/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/mmap.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/mmap.c 2009-07-23 17:34:32.087725848 -0400
@@ -36,7 +36,7 @@
* Leave an at least ~128 MB hole.
*/
@@ -14893,7 +15150,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/mmap.c linux-2.6.29.6/arch/x86/mm/mmap.c
}
diff -urNp linux-2.6.29.6/arch/x86/mm/numa_32.c linux-2.6.29.6/arch/x86/mm/numa_32.c
--- linux-2.6.29.6/arch/x86/mm/numa_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/numa_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/numa_32.c 2009-07-23 17:34:32.087725848 -0400
@@ -98,7 +98,6 @@ unsigned long node_memmap_size_bytes(int
}
#endif
@@ -14904,7 +15161,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/numa_32.c linux-2.6.29.6/arch/x86/mm/numa_
#define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE)
diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/pageattr.c
--- linux-2.6.29.6/arch/x86/mm/pageattr.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/pageattr.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/pageattr.c 2009-07-23 17:34:32.087725848 -0400
@@ -20,6 +20,7 @@
#include <asm/pgalloc.h>
#include <asm/proto.h>
@@ -14956,7 +15213,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/page
struct page *page;
diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr-test.c linux-2.6.29.6/arch/x86/mm/pageattr-test.c
--- linux-2.6.29.6/arch/x86/mm/pageattr-test.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/pageattr-test.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/pageattr-test.c 2009-07-23 17:34:32.088730317 -0400
@@ -36,7 +36,7 @@ enum {
static int pte_testbit(pte_t pte)
@@ -14968,7 +15225,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr-test.c linux-2.6.29.6/arch/x86/mm
struct split_state {
diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c
--- linux-2.6.29.6/arch/x86/mm/pat.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/pat.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/pat.c 2009-07-23 18:40:27.466429820 -0400
@@ -204,7 +204,7 @@ chk_conflict(struct memtype *new, struct
conflict:
@@ -15023,9 +15280,18 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c
cattr_name(flags),
(unsigned long long)paddr,
(unsigned long long)(paddr + size));
+@@ -870,7 +870,7 @@ static int memtype_seq_show(struct seq_f
+ return 0;
+ }
+
+-static struct seq_operations memtype_seq_ops = {
++static const struct seq_operations memtype_seq_ops = {
+ .start = memtype_seq_start,
+ .next = memtype_seq_next,
+ .stop = memtype_seq_stop,
diff -urNp linux-2.6.29.6/arch/x86/mm/pgtable_32.c linux-2.6.29.6/arch/x86/mm/pgtable_32.c
--- linux-2.6.29.6/arch/x86/mm/pgtable_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/mm/pgtable_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/mm/pgtable_32.c 2009-07-23 17:34:32.088730317 -0400
@@ -31,6 +31,10 @@ void set_pte_vaddr(unsigned long vaddr,
pmd_t *pmd;
pte_t *pte;
@@ -15060,7 +15326,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pgtable_32.c linux-2.6.29.6/arch/x86/mm/pg
* (PGE mappings get flushed as well)
diff -urNp linux-2.6.29.6/arch/x86/oprofile/backtrace.c linux-2.6.29.6/arch/x86/oprofile/backtrace.c
--- linux-2.6.29.6/arch/x86/oprofile/backtrace.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/oprofile/backtrace.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/oprofile/backtrace.c 2009-07-23 17:34:32.088730317 -0400
@@ -37,7 +37,7 @@ static void backtrace_address(void *data
unsigned int *depth = data;
@@ -15081,7 +15347,7 @@ diff -urNp linux-2.6.29.6/arch/x86/oprofile/backtrace.c linux-2.6.29.6/arch/x86/
&backtrace_ops, &depth);
diff -urNp linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c
--- linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c 2009-07-23 17:34:32.089719706 -0400
@@ -48,7 +48,7 @@ static inline void setup_num_counters(vo
#endif
}
@@ -15093,7 +15359,7 @@ diff -urNp linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c linux-2.6.29.6/arch/x8
return smp_num_siblings == 2 ? 2 : 1;
diff -urNp linux-2.6.29.6/arch/x86/pci/common.c linux-2.6.29.6/arch/x86/pci/common.c
--- linux-2.6.29.6/arch/x86/pci/common.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/pci/common.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/pci/common.c 2009-07-23 17:34:32.089719706 -0400
@@ -367,7 +367,7 @@ static struct dmi_system_id __devinitdat
DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"),
},
@@ -15105,7 +15371,7 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/common.c linux-2.6.29.6/arch/x86/pci/comm
void __init dmi_check_pciprobe(void)
diff -urNp linux-2.6.29.6/arch/x86/pci/fixup.c linux-2.6.29.6/arch/x86/pci/fixup.c
--- linux-2.6.29.6/arch/x86/pci/fixup.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/pci/fixup.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/pci/fixup.c 2009-07-23 17:34:32.089719706 -0400
@@ -364,7 +364,7 @@ static struct dmi_system_id __devinitdat
DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"),
},
@@ -15124,9 +15390,21 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/fixup.c linux-2.6.29.6/arch/x86/pci/fixup
};
static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev)
+diff -urNp linux-2.6.29.6/arch/x86/pci/i386.c linux-2.6.29.6/arch/x86/pci/i386.c
+--- linux-2.6.29.6/arch/x86/pci/i386.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/x86/pci/i386.c 2009-07-23 18:40:27.495305970 -0400
+@@ -273,7 +273,7 @@ static void pci_track_mmap_page_range(st
+ reserve_memtype(addr, addr + vma->vm_end - vma->vm_start, flags, NULL);
+ }
+
+-static struct vm_operations_struct pci_mmap_ops = {
++static const struct vm_operations_struct pci_mmap_ops = {
+ .open = pci_track_mmap_page_range,
+ .close = pci_unmap_page_range,
+ .access = generic_access_phys,
diff -urNp linux-2.6.29.6/arch/x86/pci/irq.c linux-2.6.29.6/arch/x86/pci/irq.c
--- linux-2.6.29.6/arch/x86/pci/irq.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/pci/irq.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/pci/irq.c 2009-07-23 17:34:32.089719706 -0400
@@ -543,7 +543,7 @@ static __init int intel_router_probe(str
static struct pci_device_id __initdata pirq_440gx[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) },
@@ -15147,7 +15425,7 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/irq.c linux-2.6.29.6/arch/x86/pci/irq.c
int __init pcibios_irq_init(void)
diff -urNp linux-2.6.29.6/arch/x86/pci/pcbios.c linux-2.6.29.6/arch/x86/pci/pcbios.c
--- linux-2.6.29.6/arch/x86/pci/pcbios.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/pci/pcbios.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/pci/pcbios.c 2009-07-23 17:34:32.090717052 -0400
@@ -56,50 +56,120 @@ union bios32 {
static struct {
unsigned long address;
@@ -15481,7 +15759,7 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/pcbios.c linux-2.6.29.6/arch/x86/pci/pcbi
EXPORT_SYMBOL(pcibios_set_irq_routing);
diff -urNp linux-2.6.29.6/arch/x86/power/cpu_32.c linux-2.6.29.6/arch/x86/power/cpu_32.c
--- linux-2.6.29.6/arch/x86/power/cpu_32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/power/cpu_32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/power/cpu_32.c 2009-07-23 17:34:32.090717052 -0400
@@ -67,7 +67,7 @@ static void do_fpu_end(void)
static void fix_processor_context(void)
{
@@ -15493,7 +15771,7 @@ diff -urNp linux-2.6.29.6/arch/x86/power/cpu_32.c linux-2.6.29.6/arch/x86/power/
* This just modifies memory; should not be
diff -urNp linux-2.6.29.6/arch/x86/power/cpu_64.c linux-2.6.29.6/arch/x86/power/cpu_64.c
--- linux-2.6.29.6/arch/x86/power/cpu_64.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/power/cpu_64.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/power/cpu_64.c 2009-07-23 17:34:32.090717052 -0400
@@ -143,7 +143,11 @@ void restore_processor_state(void)
static void fix_processor_context(void)
{
@@ -15526,7 +15804,7 @@ diff -urNp linux-2.6.29.6/arch/x86/power/cpu_64.c linux-2.6.29.6/arch/x86/power/
load_LDT(&current->active_mm->context); /* This does lldt */
diff -urNp linux-2.6.29.6/arch/x86/vdso/Makefile linux-2.6.29.6/arch/x86/vdso/Makefile
--- linux-2.6.29.6/arch/x86/vdso/Makefile 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/vdso/Makefile 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/vdso/Makefile 2009-07-23 17:34:32.090717052 -0400
@@ -122,7 +122,7 @@ quiet_cmd_vdso = VDSO $@
$(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \
-Wl,-T,$(filter %.lds,$^) $(filter %.o,$^)
@@ -15538,7 +15816,7 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/Makefile linux-2.6.29.6/arch/x86/vdso/Ma
# Install the unstripped copy of vdso*.so listed in $(vdso-install-y).
diff -urNp linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c
--- linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c 2009-07-23 17:34:32.091740281 -0400
@@ -26,20 +26,43 @@
#define gtod vdso_vsyscall_gtod_data
@@ -15634,7 +15912,7 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c linux-2.6.29.6/arch/x86
__attribute__((weak, alias("__vdso_gettimeofday")));
diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c
--- linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c 2009-07-23 17:34:32.091740281 -0400
@@ -226,7 +226,7 @@ static inline void map_compat_vdso(int m
void enable_sep_cpu(void)
{
@@ -15716,7 +15994,7 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c linux-2.6.29.6/arch/x86/v
}
diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso.lds.S linux-2.6.29.6/arch/x86/vdso/vdso.lds.S
--- linux-2.6.29.6/arch/x86/vdso/vdso.lds.S 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/vdso/vdso.lds.S 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/vdso/vdso.lds.S 2009-07-23 17:34:32.091740281 -0400
@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK;
#define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
#include "vextern.h"
@@ -15729,7 +16007,7 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso.lds.S linux-2.6.29.6/arch/x86/vdso/
+#undef VEXTERN
diff -urNp linux-2.6.29.6/arch/x86/vdso/vextern.h linux-2.6.29.6/arch/x86/vdso/vextern.h
--- linux-2.6.29.6/arch/x86/vdso/vextern.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/vdso/vextern.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/vdso/vextern.h 2009-07-23 17:34:32.091740281 -0400
@@ -11,6 +11,5 @@
put into vextern.h and be referenced as a pointer with vdso prefix.
The main kernel later fills in the values. */
@@ -15739,7 +16017,7 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vextern.h linux-2.6.29.6/arch/x86/vdso/v
VEXTERN(vsyscall_gtod_data)
diff -urNp linux-2.6.29.6/arch/x86/vdso/vma.c linux-2.6.29.6/arch/x86/vdso/vma.c
--- linux-2.6.29.6/arch/x86/vdso/vma.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/vdso/vma.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/vdso/vma.c 2009-07-23 17:34:37.458887026 -0400
@@ -8,6 +8,7 @@
#include <linux/sched.h>
#include <linux/init.h>
@@ -15765,7 +16043,7 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vma.c linux-2.6.29.6/arch/x86/vdso/vma.c
return 0;
oom:
-@@ -123,7 +125,7 @@ int arch_setup_additional_pages(struct l
+@@ -123,15 +125,8 @@ int arch_setup_additional_pages(struct l
if (ret)
goto up_fail;
@@ -15774,9 +16052,29 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vma.c linux-2.6.29.6/arch/x86/vdso/vma.c
up_fail:
up_write(&mm->mmap_sem);
return ret;
+ }
+-
+-static __init int vdso_setup(char *s)
+-{
+- vdso_enabled = simple_strtoul(s, NULL, 0);
+- return 0;
+-}
+-__setup("vdso=", vdso_setup);
+diff -urNp linux-2.6.29.6/arch/x86/xen/debugfs.c linux-2.6.29.6/arch/x86/xen/debugfs.c
+--- linux-2.6.29.6/arch/x86/xen/debugfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/arch/x86/xen/debugfs.c 2009-07-23 18:40:27.496274044 -0400
+@@ -100,7 +100,7 @@ static int xen_array_release(struct inod
+ return 0;
+ }
+
+-static struct file_operations u32_array_fops = {
++static const struct file_operations u32_array_fops = {
+ .owner = THIS_MODULE,
+ .open = u32_array_open,
+ .release= xen_array_release,
diff -urNp linux-2.6.29.6/arch/x86/xen/enlighten.c linux-2.6.29.6/arch/x86/xen/enlighten.c
--- linux-2.6.29.6/arch/x86/xen/enlighten.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/xen/enlighten.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/xen/enlighten.c 2009-07-23 17:34:32.092715999 -0400
@@ -319,7 +319,7 @@ static void xen_set_ldt(const void *addr
static void xen_load_gdt(const struct desc_ptr *dtr)
{
@@ -15828,7 +16126,7 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/enlighten.c linux-2.6.29.6/arch/x86/xen/e
pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
diff -urNp linux-2.6.29.6/arch/x86/xen/smp.c linux-2.6.29.6/arch/x86/xen/smp.c
--- linux-2.6.29.6/arch/x86/xen/smp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/x86/xen/smp.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/x86/xen/smp.c 2009-07-23 17:34:32.092715999 -0400
@@ -171,11 +171,6 @@ static void __init xen_smp_prepare_boot_
{
BUG_ON(smp_processor_id() != 0);
@@ -15854,7 +16152,7 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/smp.c linux-2.6.29.6/arch/x86/xen/smp.c
ctxt->user_regs.fs = __KERNEL_PERCPU;
diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/atomic.h linux-2.6.29.6/arch/xtensa/include/asm/atomic.h
--- linux-2.6.29.6/arch/xtensa/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/xtensa/include/asm/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/xtensa/include/asm/atomic.h 2009-07-23 17:34:32.092715999 -0400
@@ -165,6 +165,9 @@ static inline int atomic_sub_return(int
* Atomically increments @v by 1.
*/
@@ -15867,7 +16165,7 @@ diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/atomic.h linux-2.6.29.6/arch/x
* atomic_inc - increment atomic variable
diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h
--- linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h 2009-07-23 17:34:32.092715999 -0400
@@ -25,6 +25,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -15878,7 +16176,7 @@ diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h linux-2.6.29.6/ar
diff -urNp linux-2.6.29.6/crypto/lrw.c linux-2.6.29.6/crypto/lrw.c
--- linux-2.6.29.6/crypto/lrw.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/crypto/lrw.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/crypto/lrw.c 2009-07-23 17:34:32.092715999 -0400
@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par
struct priv *ctx = crypto_tfm_ctx(parent);
struct crypto_cipher *child = ctx->child;
@@ -15890,7 +16188,7 @@ diff -urNp linux-2.6.29.6/crypto/lrw.c linux-2.6.29.6/crypto/lrw.c
crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/dontdiff
--- linux-2.6.29.6/Documentation/dontdiff 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/Documentation/dontdiff 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/Documentation/dontdiff 2009-07-23 17:34:32.093837355 -0400
@@ -3,6 +3,7 @@
*.bin
*.cpio
@@ -15960,7 +16258,7 @@ diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/do
wakeup.lds
diff -urNp linux-2.6.29.6/drivers/acpi/blacklist.c linux-2.6.29.6/drivers/acpi/blacklist.c
--- linux-2.6.29.6/drivers/acpi/blacklist.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/acpi/blacklist.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/blacklist.c 2009-07-23 17:34:32.093837355 -0400
@@ -71,7 +71,7 @@ static struct acpi_blacklist_item acpi_b
{"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal,
"Incorrect _ADR", 1},
@@ -15970,9 +16268,21 @@ diff -urNp linux-2.6.29.6/drivers/acpi/blacklist.c linux-2.6.29.6/drivers/acpi/b
};
#if CONFIG_ACPI_BLACKLIST_YEAR
+diff -urNp linux-2.6.29.6/drivers/acpi/ec.c linux-2.6.29.6/drivers/acpi/ec.c
+--- linux-2.6.29.6/drivers/acpi/ec.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/ec.c 2009-07-23 18:40:27.516638001 -0400
+@@ -672,7 +672,7 @@ static int acpi_ec_info_open_fs(struct i
+ return single_open(file, acpi_ec_read_info, PDE(inode)->data);
+ }
+
+-static struct file_operations acpi_ec_info_ops = {
++static const struct file_operations acpi_ec_info_ops = {
+ .open = acpi_ec_info_open_fs,
+ .read = seq_read,
+ .llseek = seq_lseek,
diff -urNp linux-2.6.29.6/drivers/acpi/osl.c linux-2.6.29.6/drivers/acpi/osl.c
--- linux-2.6.29.6/drivers/acpi/osl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/acpi/osl.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/osl.c 2009-07-23 17:34:32.093837355 -0400
@@ -483,6 +483,8 @@ acpi_os_read_memory(acpi_physical_addres
void __iomem *virt_addr;
@@ -15993,7 +16303,7 @@ diff -urNp linux-2.6.29.6/drivers/acpi/osl.c linux-2.6.29.6/drivers/acpi/osl.c
case 8:
diff -urNp linux-2.6.29.6/drivers/acpi/processor_core.c linux-2.6.29.6/drivers/acpi/processor_core.c
--- linux-2.6.29.6/drivers/acpi/processor_core.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/acpi/processor_core.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/processor_core.c 2009-07-23 17:34:32.093837355 -0400
@@ -678,7 +678,7 @@ static int __cpuinit acpi_processor_star
return 0;
}
@@ -16005,7 +16315,7 @@ diff -urNp linux-2.6.29.6/drivers/acpi/processor_core.c linux-2.6.29.6/drivers/a
* Buggy BIOS check
diff -urNp linux-2.6.29.6/drivers/acpi/processor_idle.c linux-2.6.29.6/drivers/acpi/processor_idle.c
--- linux-2.6.29.6/drivers/acpi/processor_idle.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/acpi/processor_idle.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/processor_idle.c 2009-07-23 17:34:32.094936160 -0400
@@ -156,7 +156,7 @@ static struct dmi_system_id __cpuinitdat
DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"),
DMI_MATCH(DMI_BIOS_VERSION,"SHE845M0.86C.0013.D.0302131307")},
@@ -16015,9 +16325,234 @@ diff -urNp linux-2.6.29.6/drivers/acpi/processor_idle.c linux-2.6.29.6/drivers/a
};
static inline u32 ticks_elapsed(u32 t1, u32 t2)
+diff -urNp linux-2.6.29.6/drivers/acpi/processor_thermal.c linux-2.6.29.6/drivers/acpi/processor_thermal.c
+--- linux-2.6.29.6/drivers/acpi/processor_thermal.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/processor_thermal.c 2009-07-23 18:40:27.533990873 -0400
+@@ -507,7 +507,7 @@ static ssize_t acpi_processor_write_limi
+ return count;
+ }
+
+-struct file_operations acpi_processor_limit_fops = {
++const struct file_operations acpi_processor_limit_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_processor_limit_open_fs,
+ .read = seq_read,
+diff -urNp linux-2.6.29.6/drivers/acpi/processor_throttling.c linux-2.6.29.6/drivers/acpi/processor_throttling.c
+--- linux-2.6.29.6/drivers/acpi/processor_throttling.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/processor_throttling.c 2009-07-23 18:40:27.545437588 -0400
+@@ -1291,7 +1291,7 @@ static ssize_t acpi_processor_write_thro
+ return count;
+ }
+
+-struct file_operations acpi_processor_throttling_fops = {
++const struct file_operations acpi_processor_throttling_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_processor_throttling_open_fs,
+ .read = seq_read,
+diff -urNp linux-2.6.29.6/drivers/acpi/sbs.c linux-2.6.29.6/drivers/acpi/sbs.c
+--- linux-2.6.29.6/drivers/acpi/sbs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/sbs.c 2009-07-23 18:40:27.556300663 -0400
+@@ -479,9 +479,9 @@ static int
+ acpi_sbs_add_fs(struct proc_dir_entry **dir,
+ struct proc_dir_entry *parent_dir,
+ char *dir_name,
+- struct file_operations *info_fops,
+- struct file_operations *state_fops,
+- struct file_operations *alarm_fops, void *data)
++ const struct file_operations *info_fops,
++ const struct file_operations *state_fops,
++ const struct file_operations *alarm_fops, void *data)
+ {
+ if (!*dir) {
+ *dir = proc_mkdir(dir_name, parent_dir);
+@@ -677,7 +677,7 @@ static int acpi_battery_alarm_open_fs(st
+ return single_open(file, acpi_battery_read_alarm, PDE(inode)->data);
+ }
+
+-static struct file_operations acpi_battery_info_fops = {
++static const struct file_operations acpi_battery_info_fops = {
+ .open = acpi_battery_info_open_fs,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -685,7 +685,7 @@ static struct file_operations acpi_batte
+ .owner = THIS_MODULE,
+ };
+
+-static struct file_operations acpi_battery_state_fops = {
++static const struct file_operations acpi_battery_state_fops = {
+ .open = acpi_battery_state_open_fs,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -693,7 +693,7 @@ static struct file_operations acpi_batte
+ .owner = THIS_MODULE,
+ };
+
+-static struct file_operations acpi_battery_alarm_fops = {
++static const struct file_operations acpi_battery_alarm_fops = {
+ .open = acpi_battery_alarm_open_fs,
+ .read = seq_read,
+ .write = acpi_battery_write_alarm,
+@@ -725,7 +725,7 @@ static int acpi_ac_state_open_fs(struct
+ return single_open(file, acpi_ac_read_state, PDE(inode)->data);
+ }
+
+-static struct file_operations acpi_ac_state_fops = {
++static const struct file_operations acpi_ac_state_fops = {
+ .open = acpi_ac_state_open_fs,
+ .read = seq_read,
+ .llseek = seq_lseek,
+diff -urNp linux-2.6.29.6/drivers/acpi/video.c linux-2.6.29.6/drivers/acpi/video.c
+--- linux-2.6.29.6/drivers/acpi/video.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/acpi/video.c 2009-07-23 18:40:27.557273014 -0400
+@@ -189,7 +189,7 @@ struct acpi_video_device {
+
+ /* bus */
+ static int acpi_video_bus_info_open_fs(struct inode *inode, struct file *file);
+-static struct file_operations acpi_video_bus_info_fops = {
++static const struct file_operations acpi_video_bus_info_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_bus_info_open_fs,
+ .read = seq_read,
+@@ -198,7 +198,7 @@ static struct file_operations acpi_video
+ };
+
+ static int acpi_video_bus_ROM_open_fs(struct inode *inode, struct file *file);
+-static struct file_operations acpi_video_bus_ROM_fops = {
++static const struct file_operations acpi_video_bus_ROM_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_bus_ROM_open_fs,
+ .read = seq_read,
+@@ -208,7 +208,7 @@ static struct file_operations acpi_video
+
+ static int acpi_video_bus_POST_info_open_fs(struct inode *inode,
+ struct file *file);
+-static struct file_operations acpi_video_bus_POST_info_fops = {
++static const struct file_operations acpi_video_bus_POST_info_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_bus_POST_info_open_fs,
+ .read = seq_read,
+@@ -217,19 +217,29 @@ static struct file_operations acpi_video
+ };
+
+ static int acpi_video_bus_POST_open_fs(struct inode *inode, struct file *file);
+-static struct file_operations acpi_video_bus_POST_fops = {
++static ssize_t
++acpi_video_bus_write_POST(struct file *file,
++ const char __user * buffer,
++ size_t count, loff_t * data);
++static const struct file_operations acpi_video_bus_POST_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_bus_POST_open_fs,
+ .read = seq_read,
++ .write = acpi_video_bus_write_POST,
+ .llseek = seq_lseek,
+ .release = single_release,
+ };
+
+ static int acpi_video_bus_DOS_open_fs(struct inode *inode, struct file *file);
+-static struct file_operations acpi_video_bus_DOS_fops = {
++static ssize_t
++acpi_video_bus_write_DOS(struct file *file,
++ const char __user * buffer,
++ size_t count, loff_t * data);
++static const struct file_operations acpi_video_bus_DOS_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_bus_DOS_open_fs,
+ .read = seq_read,
++ .write = acpi_video_bus_write_DOS,
+ .llseek = seq_lseek,
+ .release = single_release,
+ };
+@@ -237,7 +247,7 @@ static struct file_operations acpi_video
+ /* device */
+ static int acpi_video_device_info_open_fs(struct inode *inode,
+ struct file *file);
+-static struct file_operations acpi_video_device_info_fops = {
++static const struct file_operations acpi_video_device_info_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_device_info_open_fs,
+ .read = seq_read,
+@@ -247,27 +257,37 @@ static struct file_operations acpi_video
+
+ static int acpi_video_device_state_open_fs(struct inode *inode,
+ struct file *file);
+-static struct file_operations acpi_video_device_state_fops = {
++static ssize_t
++acpi_video_device_write_state(struct file *file,
++ const char __user * buffer,
++ size_t count, loff_t * data);
++static const struct file_operations acpi_video_device_state_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_device_state_open_fs,
+ .read = seq_read,
++ .write = acpi_video_device_write_state,
+ .llseek = seq_lseek,
+ .release = single_release,
+ };
+
+ static int acpi_video_device_brightness_open_fs(struct inode *inode,
+ struct file *file);
+-static struct file_operations acpi_video_device_brightness_fops = {
++static ssize_t
++acpi_video_device_write_brightness(struct file *file,
++ const char __user * buffer,
++ size_t count, loff_t * data);
++static const struct file_operations acpi_video_device_brightness_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_device_brightness_open_fs,
+ .read = seq_read,
++ .write = acpi_video_device_write_brightness,
+ .llseek = seq_lseek,
+ .release = single_release,
+ };
+
+ static int acpi_video_device_EDID_open_fs(struct inode *inode,
+ struct file *file);
+-static struct file_operations acpi_video_device_EDID_fops = {
++static const struct file_operations acpi_video_device_EDID_fops = {
+ .owner = THIS_MODULE,
+ .open = acpi_video_device_EDID_open_fs,
+ .read = seq_read,
+@@ -1133,8 +1153,6 @@ static int acpi_video_device_add_fs(stru
+ if (!entry)
+ goto err_remove_dir;
+
+- /* 'state' [R/W] */
+- acpi_video_device_state_fops.write = acpi_video_device_write_state;
+ entry = proc_create_data("state", S_IFREG | S_IRUGO | S_IWUSR,
+ device_dir,
+ &acpi_video_device_state_fops,
+@@ -1142,9 +1160,6 @@ static int acpi_video_device_add_fs(stru
+ if (!entry)
+ goto err_remove_info;
+
+- /* 'brightness' [R/W] */
+- acpi_video_device_brightness_fops.write =
+- acpi_video_device_write_brightness;
+ entry = proc_create_data("brightness", S_IFREG | S_IRUGO | S_IWUSR,
+ device_dir,
+ &acpi_video_device_brightness_fops,
+@@ -1426,8 +1441,6 @@ static int acpi_video_bus_add_fs(struct
+ if (!entry)
+ goto err_remove_rom;
+
+- /* 'POST' [R/W] */
+- acpi_video_bus_POST_fops.write = acpi_video_bus_write_POST;
+ entry = proc_create_data("POST", S_IFREG | S_IRUGO | S_IWUSR,
+ device_dir,
+ &acpi_video_bus_POST_fops,
+@@ -1435,8 +1448,6 @@ static int acpi_video_bus_add_fs(struct
+ if (!entry)
+ goto err_remove_post_info;
+
+- /* 'DOS' [R/W] */
+- acpi_video_bus_DOS_fops.write = acpi_video_bus_write_DOS;
+ entry = proc_create_data("DOS", S_IFREG | S_IRUGO | S_IWUSR,
+ device_dir,
+ &acpi_video_bus_DOS_fops,
diff -urNp linux-2.6.29.6/drivers/ata/ahci.c linux-2.6.29.6/drivers/ata/ahci.c
--- linux-2.6.29.6/drivers/ata/ahci.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ata/ahci.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ata/ahci.c 2009-07-23 17:34:32.094936160 -0400
@@ -611,7 +611,7 @@ static const struct pci_device_id ahci_p
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },
@@ -16029,7 +16564,7 @@ diff -urNp linux-2.6.29.6/drivers/ata/ahci.c linux-2.6.29.6/drivers/ata/ahci.c
diff -urNp linux-2.6.29.6/drivers/ata/ata_piix.c linux-2.6.29.6/drivers/ata/ata_piix.c
--- linux-2.6.29.6/drivers/ata/ata_piix.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ata/ata_piix.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ata/ata_piix.c 2009-07-23 17:34:32.095849165 -0400
@@ -291,7 +291,7 @@ static const struct pci_device_id piix_p
{ 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
/* SATA Controller IDE (PCH) */
@@ -16059,7 +16594,7 @@ diff -urNp linux-2.6.29.6/drivers/ata/ata_piix.c linux-2.6.29.6/drivers/ata/ata_
"Tecra M3,",
diff -urNp linux-2.6.29.6/drivers/ata/libata-core.c linux-2.6.29.6/drivers/ata/libata-core.c
--- linux-2.6.29.6/drivers/ata/libata-core.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ata/libata-core.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ata/libata-core.c 2009-07-23 17:34:32.096707424 -0400
@@ -889,7 +889,7 @@ static const struct ata_xfer_ent {
{ ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 },
{ ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 },
@@ -16089,7 +16624,7 @@ diff -urNp linux-2.6.29.6/drivers/ata/libata-core.c linux-2.6.29.6/drivers/ata/l
static int strn_pattern_cmp(const char *patt, const char *name, int wildchar)
diff -urNp linux-2.6.29.6/drivers/atm/adummy.c linux-2.6.29.6/drivers/atm/adummy.c
--- linux-2.6.29.6/drivers/atm/adummy.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/adummy.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/adummy.c 2009-07-23 17:34:32.096707424 -0400
@@ -77,7 +77,7 @@ adummy_send(struct atm_vcc *vcc, struct
vcc->pop(vcc, skb);
else
@@ -16101,7 +16636,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/adummy.c linux-2.6.29.6/drivers/atm/adummy
}
diff -urNp linux-2.6.29.6/drivers/atm/ambassador.c linux-2.6.29.6/drivers/atm/ambassador.c
--- linux-2.6.29.6/drivers/atm/ambassador.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/ambassador.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/ambassador.c 2009-07-23 17:34:32.096707424 -0400
@@ -453,7 +453,7 @@ static void tx_complete (amb_dev * dev,
PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
@@ -16140,7 +16675,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/ambassador.c linux-2.6.29.6/drivers/atm/am
diff -urNp linux-2.6.29.6/drivers/atm/atmtcp.c linux-2.6.29.6/drivers/atm/atmtcp.c
--- linux-2.6.29.6/drivers/atm/atmtcp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/atmtcp.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/atmtcp.c 2009-07-23 17:34:32.097932924 -0400
@@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc
if (vcc->pop) vcc->pop(vcc,skb);
else dev_kfree_skb(skb);
@@ -16192,7 +16727,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/atmtcp.c linux-2.6.29.6/drivers/atm/atmtcp
else dev_kfree_skb(skb);
diff -urNp linux-2.6.29.6/drivers/atm/eni.c linux-2.6.29.6/drivers/atm/eni.c
--- linux-2.6.29.6/drivers/atm/eni.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/eni.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/eni.c 2009-07-23 17:34:32.097932924 -0400
@@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc)
DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
vcc->dev->number);
@@ -16240,7 +16775,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/eni.c linux-2.6.29.6/drivers/atm/eni.c
}
diff -urNp linux-2.6.29.6/drivers/atm/firestream.c linux-2.6.29.6/drivers/atm/firestream.c
--- linux-2.6.29.6/drivers/atm/firestream.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/firestream.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/firestream.c 2009-07-23 17:34:32.098993493 -0400
@@ -748,7 +748,7 @@ static void process_txdone_queue (struct
}
}
@@ -16276,7 +16811,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/firestream.c linux-2.6.29.6/drivers/atm/fi
printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
diff -urNp linux-2.6.29.6/drivers/atm/fore200e.c linux-2.6.29.6/drivers/atm/fore200e.c
--- linux-2.6.29.6/drivers/atm/fore200e.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/fore200e.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/fore200e.c 2009-07-23 17:34:32.099818881 -0400
@@ -931,9 +931,9 @@ fore200e_tx_irq(struct fore200e* fore200
#endif
/* check error condition */
@@ -16335,7 +16870,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/fore200e.c linux-2.6.29.6/drivers/atm/fore
DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
diff -urNp linux-2.6.29.6/drivers/atm/he.c linux-2.6.29.6/drivers/atm/he.c
--- linux-2.6.29.6/drivers/atm/he.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/he.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/he.c 2009-07-23 18:42:59.306868260 -0400
@@ -1728,7 +1728,7 @@ he_service_rbrq(struct he_dev *he_dev, i
if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
@@ -16363,6 +16898,51 @@ diff -urNp linux-2.6.29.6/drivers/atm/he.c linux-2.6.29.6/drivers/atm/he.c
return_host_buffers:
++pdus_assembled;
+@@ -2165,7 +2165,7 @@ __enqueue_tpd(struct he_dev *he_dev, str
+ tpd->vcc->pop(tpd->vcc, tpd->skb);
+ else
+ dev_kfree_skb_any(tpd->skb);
+- atomic_inc(&tpd->vcc->stats->tx_err);
++ atomic_inc_unchecked(&tpd->vcc->stats->tx_err);
+ }
+ pci_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
+ return;
+@@ -2577,7 +2577,7 @@ he_send(struct atm_vcc *vcc, struct sk_b
+ vcc->pop(vcc, skb);
+ else
+ dev_kfree_skb_any(skb);
+- atomic_inc(&vcc->stats->tx_err);
++ atomic_inc_unchecked(&vcc->stats->tx_err);
+ return -EINVAL;
+ }
+
+@@ -2588,7 +2588,7 @@ he_send(struct atm_vcc *vcc, struct sk_b
+ vcc->pop(vcc, skb);
+ else
+ dev_kfree_skb_any(skb);
+- atomic_inc(&vcc->stats->tx_err);
++ atomic_inc_unchecked(&vcc->stats->tx_err);
+ return -EINVAL;
+ }
+ #endif
+@@ -2600,7 +2600,7 @@ he_send(struct atm_vcc *vcc, struct sk_b
+ vcc->pop(vcc, skb);
+ else
+ dev_kfree_skb_any(skb);
+- atomic_inc(&vcc->stats->tx_err);
++ atomic_inc_unchecked(&vcc->stats->tx_err);
+ spin_unlock_irqrestore(&he_dev->global_lock, flags);
+ return -ENOMEM;
+ }
+@@ -2642,7 +2642,7 @@ he_send(struct atm_vcc *vcc, struct sk_b
+ vcc->pop(vcc, skb);
+ else
+ dev_kfree_skb_any(skb);
+- atomic_inc(&vcc->stats->tx_err);
++ atomic_inc_unchecked(&vcc->stats->tx_err);
+ spin_unlock_irqrestore(&he_dev->global_lock, flags);
+ return -ENOMEM;
+ }
@@ -2673,7 +2673,7 @@ he_send(struct atm_vcc *vcc, struct sk_b
__enqueue_tpd(he_dev, tpd, cid);
spin_unlock_irqrestore(&he_dev->global_lock, flags);
@@ -16374,7 +16954,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/he.c linux-2.6.29.6/drivers/atm/he.c
}
diff -urNp linux-2.6.29.6/drivers/atm/horizon.c linux-2.6.29.6/drivers/atm/horizon.c
--- linux-2.6.29.6/drivers/atm/horizon.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/horizon.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/horizon.c 2009-07-23 17:34:32.100806142 -0400
@@ -1033,7 +1033,7 @@ static void rx_schedule (hrz_dev * dev,
{
struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
@@ -16395,7 +16975,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/horizon.c linux-2.6.29.6/drivers/atm/horiz
hrz_kfree_skb (skb);
diff -urNp linux-2.6.29.6/drivers/atm/idt77252.c linux-2.6.29.6/drivers/atm/idt77252.c
--- linux-2.6.29.6/drivers/atm/idt77252.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/idt77252.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/idt77252.c 2009-07-23 17:34:32.101982733 -0400
@@ -810,7 +810,7 @@ drain_scq(struct idt77252_dev *card, str
else
dev_kfree_skb(skb);
@@ -16552,7 +17132,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/idt77252.c linux-2.6.29.6/drivers/atm/idt7
atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase.c
--- linux-2.6.29.6/drivers/atm/iphase.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/iphase.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/iphase.c 2009-07-23 17:34:32.102777929 -0400
@@ -1125,7 +1125,7 @@ static int rx_pkt(struct atm_dev *dev)
status = (u_short) (buf_desc_ptr->desc_mode);
if (status & (RX_CER | RX_PTE | RX_OFL))
@@ -16618,7 +17198,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase
writel(2, iadev->dma+IPHASE5575_TX_COUNTER);
diff -urNp linux-2.6.29.6/drivers/atm/lanai.c linux-2.6.29.6/drivers/atm/lanai.c
--- linux-2.6.29.6/drivers/atm/lanai.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/lanai.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/lanai.c 2009-07-23 17:34:32.103950524 -0400
@@ -1305,7 +1305,7 @@ static void lanai_send_one_aal5(struct l
vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
lanai_endtx(lanai, lvcc);
@@ -16675,7 +17255,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/lanai.c linux-2.6.29.6/drivers/atm/lanai.c
cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
diff -urNp linux-2.6.29.6/drivers/atm/nicstar.c linux-2.6.29.6/drivers/atm/nicstar.c
--- linux-2.6.29.6/drivers/atm/nicstar.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/nicstar.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/nicstar.c 2009-07-23 17:34:32.104830194 -0400
@@ -1723,7 +1723,7 @@ static int ns_send(struct atm_vcc *vcc,
if ((vc = (vc_map *) vcc->dev_data) == NULL)
{
@@ -16880,7 +17460,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/nicstar.c linux-2.6.29.6/drivers/atm/nicst
diff -urNp linux-2.6.29.6/drivers/atm/solos-pci.c linux-2.6.29.6/drivers/atm/solos-pci.c
--- linux-2.6.29.6/drivers/atm/solos-pci.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/solos-pci.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/solos-pci.c 2009-07-23 17:34:32.104830194 -0400
@@ -261,7 +261,7 @@ void solos_bh(unsigned long card_arg)
}
atm_charge(vcc, skb->truesize);
@@ -16913,7 +17493,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/solos-pci.c linux-2.6.29.6/drivers/atm/sol
}
diff -urNp linux-2.6.29.6/drivers/atm/suni.c linux-2.6.29.6/drivers/atm/suni.c
--- linux-2.6.29.6/drivers/atm/suni.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/suni.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/suni.c 2009-07-23 17:34:32.104830194 -0400
@@ -49,7 +49,7 @@ static DEFINE_SPINLOCK(sunis_lock);
@@ -16925,7 +17505,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/suni.c linux-2.6.29.6/drivers/atm/suni.c
diff -urNp linux-2.6.29.6/drivers/atm/uPD98402.c linux-2.6.29.6/drivers/atm/uPD98402.c
--- linux-2.6.29.6/drivers/atm/uPD98402.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/uPD98402.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/uPD98402.c 2009-07-23 17:34:32.105906562 -0400
@@ -41,7 +41,7 @@ static int fetch_stats(struct atm_dev *d
struct sonet_stats tmp;
int error = 0;
@@ -16955,7 +17535,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/uPD98402.c linux-2.6.29.6/drivers/atm/uPD9
if ((reason & uPD98402_INT_RFO) &&
diff -urNp linux-2.6.29.6/drivers/atm/zatm.c linux-2.6.29.6/drivers/atm/zatm.c
--- linux-2.6.29.6/drivers/atm/zatm.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/atm/zatm.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/atm/zatm.c 2009-07-23 17:34:32.105906562 -0400
@@ -458,7 +458,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy
}
if (!size) {
@@ -16983,9 +17563,42 @@ diff -urNp linux-2.6.29.6/drivers/atm/zatm.c linux-2.6.29.6/drivers/atm/zatm.c
wake_up(&zatm_vcc->tx_wait);
}
+diff -urNp linux-2.6.29.6/drivers/block/cciss.c linux-2.6.29.6/drivers/block/cciss.c
+--- linux-2.6.29.6/drivers/block/cciss.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/block/cciss.c 2009-07-23 18:40:27.585424777 -0400
+@@ -348,7 +348,7 @@ static void cciss_seq_stop(struct seq_fi
+ h->busy_configuring = 0;
+ }
+
+-static struct seq_operations cciss_seq_ops = {
++static const struct seq_operations cciss_seq_ops = {
+ .start = cciss_seq_start,
+ .show = cciss_seq_show,
+ .next = cciss_seq_next,
+@@ -411,7 +411,7 @@ out:
+ return err;
+ }
+
+-static struct file_operations cciss_proc_fops = {
++static const struct file_operations cciss_proc_fops = {
+ .owner = THIS_MODULE,
+ .open = cciss_seq_open,
+ .read = seq_read,
+diff -urNp linux-2.6.29.6/drivers/char/agp/alpha-agp.c linux-2.6.29.6/drivers/char/agp/alpha-agp.c
+--- linux-2.6.29.6/drivers/char/agp/alpha-agp.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/agp/alpha-agp.c 2009-07-23 18:40:27.599275730 -0400
+@@ -40,7 +40,7 @@ static struct aper_size_info_fixed alpha
+ { 0, 0, 0 }, /* filled in by alpha_core_agp_setup */
+ };
+
+-struct vm_operations_struct alpha_core_agp_vm_ops = {
++const struct vm_operations_struct alpha_core_agp_vm_ops = {
+ .fault = alpha_core_agp_vm_fault,
+ };
+
diff -urNp linux-2.6.29.6/drivers/char/agp/frontend.c linux-2.6.29.6/drivers/char/agp/frontend.c
--- linux-2.6.29.6/drivers/char/agp/frontend.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/agp/frontend.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/agp/frontend.c 2009-07-23 17:34:32.106888179 -0400
@@ -824,7 +824,7 @@ static int agpioc_reserve_wrap(struct ag
if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
return -EFAULT;
@@ -16997,7 +17610,7 @@ diff -urNp linux-2.6.29.6/drivers/char/agp/frontend.c linux-2.6.29.6/drivers/cha
client = agp_find_client_by_pid(reserve.pid);
diff -urNp linux-2.6.29.6/drivers/char/agp/intel-agp.c linux-2.6.29.6/drivers/char/agp/intel-agp.c
--- linux-2.6.29.6/drivers/char/agp/intel-agp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/agp/intel-agp.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/agp/intel-agp.c 2009-07-23 17:34:32.106888179 -0400
@@ -2369,7 +2369,7 @@ static struct pci_device_id agp_intel_pc
ID(PCI_DEVICE_ID_INTEL_Q45_HB),
ID(PCI_DEVICE_ID_INTEL_G45_HB),
@@ -17007,9 +17620,33 @@ diff -urNp linux-2.6.29.6/drivers/char/agp/intel-agp.c linux-2.6.29.6/drivers/ch
};
MODULE_DEVICE_TABLE(pci, agp_intel_pci_table);
+diff -urNp linux-2.6.29.6/drivers/char/apm-emulation.c linux-2.6.29.6/drivers/char/apm-emulation.c
+--- linux-2.6.29.6/drivers/char/apm-emulation.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/apm-emulation.c 2009-07-23 18:40:27.609518419 -0400
+@@ -393,7 +393,7 @@ static int apm_open(struct inode * inode
+ return as ? 0 : -ENOMEM;
+ }
+
+-static struct file_operations apm_bios_fops = {
++static const struct file_operations apm_bios_fops = {
+ .owner = THIS_MODULE,
+ .read = apm_read,
+ .poll = apm_poll,
+diff -urNp linux-2.6.29.6/drivers/char/bfin-otp.c linux-2.6.29.6/drivers/char/bfin-otp.c
+--- linux-2.6.29.6/drivers/char/bfin-otp.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/bfin-otp.c 2009-07-23 18:40:27.623278888 -0400
+@@ -133,7 +133,7 @@ static ssize_t bfin_otp_write(struct fil
+ # define bfin_otp_write NULL
+ #endif
+
+-static struct file_operations bfin_otp_fops = {
++static const struct file_operations bfin_otp_fops = {
+ .owner = THIS_MODULE,
+ .read = bfin_otp_read,
+ .write = bfin_otp_write,
diff -urNp linux-2.6.29.6/drivers/char/hpet.c linux-2.6.29.6/drivers/char/hpet.c
--- linux-2.6.29.6/drivers/char/hpet.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/hpet.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/hpet.c 2009-07-23 17:34:32.107872457 -0400
@@ -975,7 +975,7 @@ static struct acpi_driver hpet_acpi_driv
},
};
@@ -17021,7 +17658,7 @@ diff -urNp linux-2.6.29.6/drivers/char/hpet.c linux-2.6.29.6/drivers/char/hpet.c
{
diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c
--- linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c 2009-07-23 17:34:32.108842847 -0400
@@ -408,7 +408,7 @@ struct ipmi_smi {
struct proc_dir_entry *proc_dir;
char proc_dir_name[10];
@@ -17042,7 +17679,16 @@ diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.29.6/dri
diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c
--- linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c 2009-07-23 17:34:37.458887026 -0400
+@@ -280,7 +280,7 @@ struct smi_info {
+ unsigned char slave_addr;
+
+ /* Counters and things for the proc filesystem. */
+- atomic_t stats[SI_NUM_STATS];
++ atomic_unchecked_t stats[SI_NUM_STATS];
+
+ struct task_struct *thread;
+
@@ -288,7 +288,7 @@ struct smi_info {
};
@@ -17054,7 +17700,7 @@ diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.29.6/driver
diff -urNp linux-2.6.29.6/drivers/char/keyboard.c linux-2.6.29.6/drivers/char/keyboard.c
--- linux-2.6.29.6/drivers/char/keyboard.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/keyboard.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/keyboard.c 2009-07-23 17:34:32.110802772 -0400
@@ -635,6 +635,16 @@ static void k_spec(struct vc_data *vc, u
kbd->kbdmode == VC_MEDIUMRAW) &&
value != KVAL(K_SAK))
@@ -17083,7 +17729,7 @@ diff -urNp linux-2.6.29.6/drivers/char/keyboard.c linux-2.6.29.6/drivers/char/ke
MODULE_DEVICE_TABLE(input, kbd_ids);
diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c
--- linux-2.6.29.6/drivers/char/mem.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/mem.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/mem.c 2009-07-23 19:28:45.822497906 -0400
@@ -18,6 +18,7 @@
#include <linux/raw.h>
#include <linux/tty.h>
@@ -17115,6 +17761,15 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c
written = 0;
#ifdef __ARCH_HAS_NO_PAGE_ZERO_MAPPED
+@@ -325,7 +335,7 @@ static void mmap_mem_close(struct vm_are
+ vma->vm_page_prot);
+ }
+
+-static struct vm_operations_struct mmap_mem_ops = {
++static const struct vm_operations_struct mmap_mem_ops = {
+ .open = mmap_mem_open,
+ .close = mmap_mem_close,
+ #ifdef CONFIG_HAVE_IOREMAP_PROT
@@ -350,6 +360,11 @@ static int mmap_mem(struct file * file,
&vma->vm_page_prot))
return -EINVAL;
@@ -17186,9 +17841,33 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c
};
static struct class *mem_class;
+diff -urNp linux-2.6.29.6/drivers/char/misc.c linux-2.6.29.6/drivers/char/misc.c
+--- linux-2.6.29.6/drivers/char/misc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/misc.c 2009-07-23 18:40:27.623278888 -0400
+@@ -91,7 +91,7 @@ static int misc_seq_show(struct seq_file
+ }
+
+
+-static struct seq_operations misc_seq_ops = {
++static const struct seq_operations misc_seq_ops = {
+ .start = misc_seq_start,
+ .next = misc_seq_next,
+ .stop = misc_seq_stop,
+diff -urNp linux-2.6.29.6/drivers/char/mspec.c linux-2.6.29.6/drivers/char/mspec.c
+--- linux-2.6.29.6/drivers/char/mspec.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/mspec.c 2009-07-23 18:40:27.630131161 -0400
+@@ -239,7 +239,7 @@ mspec_fault(struct vm_area_struct *vma,
+ return VM_FAULT_NOPAGE;
+ }
+
+-static struct vm_operations_struct mspec_vm_ops = {
++static const struct vm_operations_struct mspec_vm_ops = {
+ .open = mspec_open,
+ .close = mspec_close,
+ .fault = mspec_fault,
diff -urNp linux-2.6.29.6/drivers/char/nvram.c linux-2.6.29.6/drivers/char/nvram.c
--- linux-2.6.29.6/drivers/char/nvram.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/nvram.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/nvram.c 2009-07-23 17:34:32.110802772 -0400
@@ -429,7 +429,10 @@ static const struct file_operations nvra
static struct miscdevice nvram_dev = {
NVRAM_MINOR,
@@ -17203,7 +17882,7 @@ diff -urNp linux-2.6.29.6/drivers/char/nvram.c linux-2.6.29.6/drivers/char/nvram
static int __init nvram_init(void)
diff -urNp linux-2.6.29.6/drivers/char/random.c linux-2.6.29.6/drivers/char/random.c
--- linux-2.6.29.6/drivers/char/random.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/random.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/random.c 2009-07-23 17:34:32.111778535 -0400
@@ -249,8 +249,13 @@
/*
* Configuration information
@@ -17245,9 +17924,29 @@ diff -urNp linux-2.6.29.6/drivers/char/random.c linux-2.6.29.6/drivers/char/rand
static int max_write_thresh = INPUT_POOL_WORDS * 32;
static char sysctl_bootid[16];
+diff -urNp linux-2.6.29.6/drivers/char/tpm/tpm_bios.c linux-2.6.29.6/drivers/char/tpm/tpm_bios.c
+--- linux-2.6.29.6/drivers/char/tpm/tpm_bios.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/tpm/tpm_bios.c 2009-07-23 18:40:27.636145642 -0400
+@@ -343,14 +343,14 @@ static int tpm_ascii_bios_measurements_s
+ return 0;
+ }
+
+-static struct seq_operations tpm_ascii_b_measurments_seqops = {
++static const struct seq_operations tpm_ascii_b_measurments_seqops = {
+ .start = tpm_bios_measurements_start,
+ .next = tpm_bios_measurements_next,
+ .stop = tpm_bios_measurements_stop,
+ .show = tpm_ascii_bios_measurements_show,
+ };
+
+-static struct seq_operations tpm_binary_b_measurments_seqops = {
++static const struct seq_operations tpm_binary_b_measurments_seqops = {
+ .start = tpm_bios_measurements_start,
+ .next = tpm_bios_measurements_next,
+ .stop = tpm_bios_measurements_stop,
diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/tty_ldisc.c
--- linux-2.6.29.6/drivers/char/tty_ldisc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/tty_ldisc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/tty_ldisc.c 2009-07-23 17:34:32.112769665 -0400
@@ -74,7 +74,7 @@ int tty_register_ldisc(int disc, struct
spin_lock_irqsave(&tty_ldisc_lock, flags);
tty_ldiscs[disc] = new_ldisc;
@@ -17370,7 +18069,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t
spin_unlock_irqrestore(&tty_ldisc_lock, flags);
diff -urNp linux-2.6.29.6/drivers/char/vt_ioctl.c linux-2.6.29.6/drivers/char/vt_ioctl.c
--- linux-2.6.29.6/drivers/char/vt_ioctl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/char/vt_ioctl.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/char/vt_ioctl.c 2009-07-23 17:34:32.112769665 -0400
@@ -96,6 +96,12 @@ do_kdsk_ioctl(int cmd, struct kbentry __
case KDSKBENT:
if (!perm)
@@ -17398,9 +18097,21 @@ diff -urNp linux-2.6.29.6/drivers/char/vt_ioctl.c linux-2.6.29.6/drivers/char/vt
q = func_table[i];
first_free = funcbufptr + (funcbufsize - funcbufleft);
for (j = i+1; j < MAX_NR_FUNC && !func_table[j]; j++)
+diff -urNp linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c
+--- linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c 2009-07-23 18:40:27.636398793 -0400
+@@ -559,7 +559,7 @@ static int hwicap_release(struct inode *
+ return status;
+ }
+
+-static struct file_operations hwicap_fops = {
++static const struct file_operations hwicap_fops = {
+ .owner = THIS_MODULE,
+ .write = hwicap_write,
+ .read = hwicap_read,
diff -urNp linux-2.6.29.6/drivers/edac/edac_core.h linux-2.6.29.6/drivers/edac/edac_core.h
--- linux-2.6.29.6/drivers/edac/edac_core.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/edac/edac_core.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/edac/edac_core.h 2009-07-23 17:34:32.113723476 -0400
@@ -85,11 +85,11 @@ extern int edac_debug_level;
#else /* !CONFIG_EDAC_DEBUG */
@@ -17420,7 +18131,7 @@ diff -urNp linux-2.6.29.6/drivers/edac/edac_core.h linux-2.6.29.6/drivers/edac/e
diff -urNp linux-2.6.29.6/drivers/firmware/dmi_scan.c linux-2.6.29.6/drivers/firmware/dmi_scan.c
--- linux-2.6.29.6/drivers/firmware/dmi_scan.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/firmware/dmi_scan.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/firmware/dmi_scan.c 2009-07-23 17:34:32.113723476 -0400
@@ -389,11 +389,6 @@ void __init dmi_scan_machine(void)
}
}
@@ -17433,9 +18144,21 @@ diff -urNp linux-2.6.29.6/drivers/firmware/dmi_scan.c linux-2.6.29.6/drivers/fir
p = dmi_ioremap(0xF0000, 0x10000);
if (p == NULL)
goto error;
+diff -urNp linux-2.6.29.6/drivers/gpio/gpiolib.c linux-2.6.29.6/drivers/gpio/gpiolib.c
+--- linux-2.6.29.6/drivers/gpio/gpiolib.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/gpio/gpiolib.c 2009-07-23 18:40:27.648309826 -0400
+@@ -1235,7 +1235,7 @@ static int gpiolib_open(struct inode *in
+ return single_open(file, gpiolib_show, NULL);
+ }
+
+-static struct file_operations gpiolib_operations = {
++static const struct file_operations gpiolib_operations = {
+ .open = gpiolib_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_drv.c linux-2.6.29.6/drivers/gpu/drm/drm_drv.c
--- linux-2.6.29.6/drivers/gpu/drm/drm_drv.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/gpu/drm/drm_drv.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/gpu/drm/drm_drv.c 2009-07-23 17:34:32.113723476 -0400
@@ -461,7 +461,7 @@ int drm_ioctl(struct inode *inode, struc
char *kdata = NULL;
@@ -17447,7 +18170,7 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_drv.c linux-2.6.29.6/drivers/gpu/d
DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n",
diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/drm/drm_fops.c
--- linux-2.6.29.6/drivers/gpu/drm/drm_fops.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/gpu/drm/drm_fops.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/gpu/drm/drm_fops.c 2009-07-23 17:34:32.113723476 -0400
@@ -130,9 +130,9 @@ int drm_open(struct inode *inode, struct
retcode = drm_open_helper(inode, filp, dev);
@@ -17492,7 +18215,7 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/
atomic_read(&dev->ioctl_count));
diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_lock.c linux-2.6.29.6/drivers/gpu/drm/drm_lock.c
--- linux-2.6.29.6/drivers/gpu/drm/drm_lock.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/gpu/drm/drm_lock.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/gpu/drm/drm_lock.c 2009-07-23 17:34:32.114929924 -0400
@@ -87,7 +87,7 @@ int drm_lock(struct drm_device *dev, voi
if (drm_lock_take(&master->lock, lock->context)) {
master->lock.file_priv = file_priv;
@@ -17511,9 +18234,45 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_lock.c linux-2.6.29.6/drivers/gpu/
/* kernel_context_switch isn't used by any of the x86 drm
* modules but is required by the Sparc driver.
+diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_vm.c linux-2.6.29.6/drivers/gpu/drm/drm_vm.c
+--- linux-2.6.29.6/drivers/gpu/drm/drm_vm.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/gpu/drm/drm_vm.c 2009-07-23 18:40:27.661305427 -0400
+@@ -367,28 +367,28 @@ static int drm_vm_sg_fault(struct vm_are
+ }
+
+ /** AGP virtual memory operations */
+-static struct vm_operations_struct drm_vm_ops = {
++static const struct vm_operations_struct drm_vm_ops = {
+ .fault = drm_vm_fault,
+ .open = drm_vm_open,
+ .close = drm_vm_close,
+ };
+
+ /** Shared virtual memory operations */
+-static struct vm_operations_struct drm_vm_shm_ops = {
++static const struct vm_operations_struct drm_vm_shm_ops = {
+ .fault = drm_vm_shm_fault,
+ .open = drm_vm_open,
+ .close = drm_vm_shm_close,
+ };
+
+ /** DMA virtual memory operations */
+-static struct vm_operations_struct drm_vm_dma_ops = {
++static const struct vm_operations_struct drm_vm_dma_ops = {
+ .fault = drm_vm_dma_fault,
+ .open = drm_vm_open,
+ .close = drm_vm_close,
+ };
+
+ /** Scatter-gather virtual memory operations */
+-static struct vm_operations_struct drm_vm_sg_ops = {
++static const struct vm_operations_struct drm_vm_sg_ops = {
+ .fault = drm_vm_sg_fault,
+ .open = drm_vm_open,
+ .close = drm_vm_close,
diff -urNp linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c
--- linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c 2009-07-23 17:34:32.114929924 -0400
@@ -954,8 +954,8 @@ static int i810_dma_vertex(struct drm_de
dma->buflist[vertex->idx],
vertex->discard, vertex->used);
@@ -17536,9 +18295,33 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c linux-2.6.29.6/drivers
sarea_priv->last_enqueue = dev_priv->counter - 1;
sarea_priv->last_dispatch = (int)hw_status[5];
+diff -urNp linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c
+--- linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c 2009-07-23 18:40:27.674490572 -0400
+@@ -117,7 +117,7 @@ static int i915_resume(struct drm_device
+ return ret;
+ }
+
+-static struct vm_operations_struct i915_gem_vm_ops = {
++static const struct vm_operations_struct i915_gem_vm_ops = {
+ .fault = i915_gem_fault,
+ .open = drm_gem_vm_open,
+ .close = drm_gem_vm_close,
+diff -urNp linux-2.6.29.6/drivers/hwmon/fschmd.c linux-2.6.29.6/drivers/hwmon/fschmd.c
+--- linux-2.6.29.6/drivers/hwmon/fschmd.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/fschmd.c 2009-07-23 18:40:27.674490572 -0400
+@@ -840,7 +840,7 @@ static int watchdog_ioctl(struct inode *
+ return ret;
+ }
+
+-static struct file_operations watchdog_fops = {
++static const struct file_operations watchdog_fops = {
+ .owner = THIS_MODULE,
+ .llseek = no_llseek,
+ .open = watchdog_open,
diff -urNp linux-2.6.29.6/drivers/hwmon/fscpos.c linux-2.6.29.6/drivers/hwmon/fscpos.c
--- linux-2.6.29.6/drivers/hwmon/fscpos.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/hwmon/fscpos.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/fscpos.c 2009-07-23 17:34:32.115850370 -0400
@@ -240,7 +240,6 @@ static ssize_t set_pwm(struct i2c_client
unsigned long v = simple_strtoul(buf, NULL, 10);
@@ -17549,7 +18332,7 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/fscpos.c linux-2.6.29.6/drivers/hwmon/fs
mutex_lock(&data->update_lock);
diff -urNp linux-2.6.29.6/drivers/hwmon/k8temp.c linux-2.6.29.6/drivers/hwmon/k8temp.c
--- linux-2.6.29.6/drivers/hwmon/k8temp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/hwmon/k8temp.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/k8temp.c 2009-07-23 17:34:32.115850370 -0400
@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n
static struct pci_device_id k8temp_ids[] = {
@@ -17561,7 +18344,7 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/k8temp.c linux-2.6.29.6/drivers/hwmon/k8
MODULE_DEVICE_TABLE(pci, k8temp_ids);
diff -urNp linux-2.6.29.6/drivers/hwmon/sis5595.c linux-2.6.29.6/drivers/hwmon/sis5595.c
--- linux-2.6.29.6/drivers/hwmon/sis5595.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/hwmon/sis5595.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/sis5595.c 2009-07-23 17:34:32.115850370 -0400
@@ -699,7 +699,7 @@ static struct sis5595_data *sis5595_upda
static struct pci_device_id sis5595_pci_ids[] = {
@@ -17573,7 +18356,7 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/sis5595.c linux-2.6.29.6/drivers/hwmon/s
MODULE_DEVICE_TABLE(pci, sis5595_pci_ids);
diff -urNp linux-2.6.29.6/drivers/hwmon/via686a.c linux-2.6.29.6/drivers/hwmon/via686a.c
--- linux-2.6.29.6/drivers/hwmon/via686a.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/hwmon/via686a.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/via686a.c 2009-07-23 17:34:32.116869808 -0400
@@ -769,7 +769,7 @@ static struct via686a_data *via686a_upda
static struct pci_device_id via686a_pci_ids[] = {
@@ -17585,7 +18368,7 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/via686a.c linux-2.6.29.6/drivers/hwmon/v
MODULE_DEVICE_TABLE(pci, via686a_pci_ids);
diff -urNp linux-2.6.29.6/drivers/hwmon/vt8231.c linux-2.6.29.6/drivers/hwmon/vt8231.c
--- linux-2.6.29.6/drivers/hwmon/vt8231.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/hwmon/vt8231.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/vt8231.c 2009-07-23 17:34:32.116869808 -0400
@@ -699,7 +699,7 @@ static struct platform_driver vt8231_dri
static struct pci_device_id vt8231_pci_ids[] = {
@@ -17597,7 +18380,7 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/vt8231.c linux-2.6.29.6/drivers/hwmon/vt
MODULE_DEVICE_TABLE(pci, vt8231_pci_ids);
diff -urNp linux-2.6.29.6/drivers/hwmon/w83791d.c linux-2.6.29.6/drivers/hwmon/w83791d.c
--- linux-2.6.29.6/drivers/hwmon/w83791d.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/hwmon/w83791d.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/hwmon/w83791d.c 2009-07-23 17:34:32.117858467 -0400
@@ -330,8 +330,8 @@ static int w83791d_detect(struct i2c_cli
struct i2c_board_info *info);
static int w83791d_remove(struct i2c_client *client);
@@ -17611,7 +18394,7 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/w83791d.c linux-2.6.29.6/drivers/hwmon/w
#ifdef DEBUG
diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c
--- linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c 2009-07-23 17:34:32.117858467 -0400
@@ -577,7 +577,7 @@ static struct pci_device_id i801_ids[] =
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_4) },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_5) },
@@ -17623,7 +18406,7 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c linux-2.6.29.6/drivers/i
MODULE_DEVICE_TABLE (pci, i801_ids);
diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c
--- linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c 2009-07-23 17:34:32.118755337 -0400
@@ -123,7 +123,7 @@ static struct dmi_system_id __devinitdat
.ident = "IBM",
.matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), },
@@ -17644,7 +18427,7 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c linux-2.6.29.6/drivers/
MODULE_DEVICE_TABLE (pci, piix4_ids);
diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c
--- linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c 2009-07-23 17:34:32.118755337 -0400
@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter
static struct pci_device_id sis630_ids[] __devinitdata = {
{ PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) },
@@ -17656,7 +18439,7 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c linux-2.6.29.6/drivers
MODULE_DEVICE_TABLE (pci, sis630_ids);
diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c
--- linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c 2009-07-23 17:34:32.118755337 -0400
@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter
static struct pci_device_id sis96x_ids[] = {
@@ -17666,9 +18449,21 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c linux-2.6.29.6/drivers
};
MODULE_DEVICE_TABLE (pci, sis96x_ids);
+diff -urNp linux-2.6.29.6/drivers/ieee1394/dma.c linux-2.6.29.6/drivers/ieee1394/dma.c
+--- linux-2.6.29.6/drivers/ieee1394/dma.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/dma.c 2009-07-23 18:40:27.685680148 -0400
+@@ -247,7 +247,7 @@ static int dma_region_pagefault(struct v
+ return 0;
+ }
+
+-static struct vm_operations_struct dma_region_vm_ops = {
++static const struct vm_operations_struct dma_region_vm_ops = {
+ .fault = dma_region_pagefault,
+ };
+
diff -urNp linux-2.6.29.6/drivers/ieee1394/dv1394.c linux-2.6.29.6/drivers/ieee1394/dv1394.c
--- linux-2.6.29.6/drivers/ieee1394/dv1394.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/dv1394.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/dv1394.c 2009-07-23 17:34:32.119753604 -0400
@@ -739,7 +739,7 @@ static void frame_prepare(struct video_c
based upon DIF section and sequence
*/
@@ -17689,7 +18484,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/dv1394.c linux-2.6.29.6/drivers/ieee1
MODULE_DEVICE_TABLE(ieee1394, dv1394_id_table);
diff -urNp linux-2.6.29.6/drivers/ieee1394/eth1394.c linux-2.6.29.6/drivers/ieee1394/eth1394.c
--- linux-2.6.29.6/drivers/ieee1394/eth1394.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/eth1394.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/eth1394.c 2009-07-23 17:34:32.119753604 -0400
@@ -445,7 +445,7 @@ static struct ieee1394_device_id eth1394
.specifier_id = ETHER1394_GASP_SPECIFIER_ID,
.version = ETHER1394_GASP_VERSION,
@@ -17701,7 +18496,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/eth1394.c linux-2.6.29.6/drivers/ieee
MODULE_DEVICE_TABLE(ieee1394, eth1394_id_table);
diff -urNp linux-2.6.29.6/drivers/ieee1394/hosts.c linux-2.6.29.6/drivers/ieee1394/hosts.c
--- linux-2.6.29.6/drivers/ieee1394/hosts.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/hosts.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/hosts.c 2009-07-23 17:34:32.120767858 -0400
@@ -78,6 +78,7 @@ static int dummy_isoctl(struct hpsb_iso
}
@@ -17712,7 +18507,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/hosts.c linux-2.6.29.6/drivers/ieee13
.isoctl = dummy_isoctl
diff -urNp linux-2.6.29.6/drivers/ieee1394/ohci1394.c linux-2.6.29.6/drivers/ieee1394/ohci1394.c
--- linux-2.6.29.6/drivers/ieee1394/ohci1394.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/ohci1394.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/ohci1394.c 2009-07-23 17:34:32.120767858 -0400
@@ -147,9 +147,9 @@ printk(level "%s: " fmt "\n" , OHCI1394_
printk(level "%s: fw-host%d: " fmt "\n" , OHCI1394_DRIVER_NAME, ohci->host->id , ## args)
@@ -17736,7 +18531,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/ohci1394.c linux-2.6.29.6/drivers/iee
MODULE_DEVICE_TABLE(pci, ohci1394_pci_tbl);
diff -urNp linux-2.6.29.6/drivers/ieee1394/raw1394.c linux-2.6.29.6/drivers/ieee1394/raw1394.c
--- linux-2.6.29.6/drivers/ieee1394/raw1394.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/raw1394.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/raw1394.c 2009-07-23 17:34:32.121756795 -0400
@@ -2995,7 +2995,7 @@ static struct ieee1394_device_id raw1394
.match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION,
.specifier_id = CAMERA_UNIT_SPEC_ID_ENTRY & 0xffffff,
@@ -17748,7 +18543,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/raw1394.c linux-2.6.29.6/drivers/ieee
MODULE_DEVICE_TABLE(ieee1394, raw1394_id_table);
diff -urNp linux-2.6.29.6/drivers/ieee1394/sbp2.c linux-2.6.29.6/drivers/ieee1394/sbp2.c
--- linux-2.6.29.6/drivers/ieee1394/sbp2.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/sbp2.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/sbp2.c 2009-07-23 17:34:32.122774195 -0400
@@ -290,7 +290,7 @@ static struct ieee1394_device_id sbp2_id
.match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION,
.specifier_id = SBP2_UNIT_SPEC_ID_ENTRY & 0xffffff,
@@ -17769,7 +18564,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/sbp2.c linux-2.6.29.6/drivers/ieee139
diff -urNp linux-2.6.29.6/drivers/ieee1394/video1394.c linux-2.6.29.6/drivers/ieee1394/video1394.c
--- linux-2.6.29.6/drivers/ieee1394/video1394.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/ieee1394/video1394.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/ieee1394/video1394.c 2009-07-23 17:34:32.123823981 -0400
@@ -1310,7 +1310,7 @@ static struct ieee1394_device_id video13
.specifier_id = CAMERA_UNIT_SPEC_ID_ENTRY & 0xffffff,
.version = (CAMERA_SW_VERSION_ENTRY + 2) & 0xffffff
@@ -17779,9 +18574,45 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/video1394.c linux-2.6.29.6/drivers/ie
};
MODULE_DEVICE_TABLE(ieee1394, video1394_id_table);
+diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c
+--- linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c 2009-07-23 18:40:27.691179918 -0400
+@@ -95,7 +95,7 @@ static void ehca_mm_close(struct vm_area
+ vma->vm_start, vma->vm_end, *count);
+ }
+
+-static struct vm_operations_struct vm_ops = {
++static const struct vm_operations_struct vm_ops = {
+ .open = ehca_mm_open,
+ .close = ehca_mm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c
+--- linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c 2009-07-23 18:40:27.711522279 -0400
+@@ -1151,7 +1151,7 @@ static int ipath_file_vma_fault(struct v
+ return 0;
+ }
+
+-static struct vm_operations_struct ipath_file_vm_ops = {
++static const struct vm_operations_struct ipath_file_vm_ops = {
+ .fault = ipath_file_vma_fault,
+ };
+
+diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c
+--- linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c 2009-07-23 18:40:27.724998803 -0400
+@@ -74,7 +74,7 @@ static void ipath_vma_close(struct vm_ar
+ kref_put(&ip->ref, ipath_release_mmap_info);
+ }
+
+-static struct vm_operations_struct ipath_vm_ops = {
++static const struct vm_operations_struct ipath_vm_ops = {
+ .open = ipath_vma_open,
+ .close = ipath_vma_close,
+ };
diff -urNp linux-2.6.29.6/drivers/input/keyboard/atkbd.c linux-2.6.29.6/drivers/input/keyboard/atkbd.c
--- linux-2.6.29.6/drivers/input/keyboard/atkbd.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/keyboard/atkbd.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/keyboard/atkbd.c 2009-07-23 17:34:32.123823981 -0400
@@ -1166,7 +1166,7 @@ static struct serio_device_id atkbd_seri
.id = SERIO_ANY,
.extra = SERIO_ANY,
@@ -17793,7 +18624,7 @@ diff -urNp linux-2.6.29.6/drivers/input/keyboard/atkbd.c linux-2.6.29.6/drivers/
MODULE_DEVICE_TABLE(serio, atkbd_serio_ids);
diff -urNp linux-2.6.29.6/drivers/input/mouse/lifebook.c linux-2.6.29.6/drivers/input/mouse/lifebook.c
--- linux-2.6.29.6/drivers/input/mouse/lifebook.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/mouse/lifebook.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/mouse/lifebook.c 2009-07-23 17:34:32.124774542 -0400
@@ -110,7 +110,7 @@ static const struct dmi_system_id lifebo
DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"),
},
@@ -17805,7 +18636,7 @@ diff -urNp linux-2.6.29.6/drivers/input/mouse/lifebook.c linux-2.6.29.6/drivers/
static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse)
diff -urNp linux-2.6.29.6/drivers/input/mouse/psmouse-base.c linux-2.6.29.6/drivers/input/mouse/psmouse-base.c
--- linux-2.6.29.6/drivers/input/mouse/psmouse-base.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/mouse/psmouse-base.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/mouse/psmouse-base.c 2009-07-23 17:34:32.124774542 -0400
@@ -1378,7 +1378,7 @@ static struct serio_device_id psmouse_se
.id = SERIO_ANY,
.extra = SERIO_ANY,
@@ -17817,7 +18648,7 @@ diff -urNp linux-2.6.29.6/drivers/input/mouse/psmouse-base.c linux-2.6.29.6/driv
MODULE_DEVICE_TABLE(serio, psmouse_serio_ids);
diff -urNp linux-2.6.29.6/drivers/input/mouse/synaptics.c linux-2.6.29.6/drivers/input/mouse/synaptics.c
--- linux-2.6.29.6/drivers/input/mouse/synaptics.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/mouse/synaptics.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/mouse/synaptics.c 2009-07-23 17:34:32.124774542 -0400
@@ -412,7 +412,7 @@ static void synaptics_process_packet(str
break;
case 2:
@@ -17838,7 +18669,7 @@ diff -urNp linux-2.6.29.6/drivers/input/mouse/synaptics.c linux-2.6.29.6/drivers
diff -urNp linux-2.6.29.6/drivers/input/mousedev.c linux-2.6.29.6/drivers/input/mousedev.c
--- linux-2.6.29.6/drivers/input/mousedev.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/mousedev.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/mousedev.c 2009-07-23 17:34:32.125938815 -0400
@@ -1062,7 +1062,7 @@ static struct input_handler mousedev_han
#ifdef CONFIG_INPUT_MOUSEDEV_PSAUX
@@ -17850,7 +18681,7 @@ diff -urNp linux-2.6.29.6/drivers/input/mousedev.c linux-2.6.29.6/drivers/input/
#endif
diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h
--- linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h 2009-07-23 17:34:32.125938815 -0400
@@ -151,7 +151,7 @@ static struct dmi_system_id __initdata i
DMI_MATCH(DMI_PRODUCT_VERSION, "01"),
},
@@ -17889,7 +18720,7 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/d
#endif /* CONFIG_X86 */
diff -urNp linux-2.6.29.6/drivers/input/serio/serio_raw.c linux-2.6.29.6/drivers/input/serio/serio_raw.c
--- linux-2.6.29.6/drivers/input/serio/serio_raw.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/input/serio/serio_raw.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/input/serio/serio_raw.c 2009-07-23 17:34:32.126724952 -0400
@@ -378,7 +378,7 @@ static struct serio_device_id serio_raw_
.id = SERIO_ANY,
.extra = SERIO_ANY,
@@ -17899,9 +18730,67 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/serio_raw.c linux-2.6.29.6/drivers
};
MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids);
+diff -urNp linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c
+--- linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c 2009-07-23 18:40:27.725292323 -0400
+@@ -89,14 +89,14 @@ static int contrstats_show(struct seq_fi
+ return 0;
+ }
+
+-static struct seq_operations seq_controller_ops = {
++static const struct seq_operations seq_controller_ops = {
+ .start = controller_start,
+ .next = controller_next,
+ .stop = controller_stop,
+ .show = controller_show,
+ };
+
+-static struct seq_operations seq_contrstats_ops = {
++static const struct seq_operations seq_contrstats_ops = {
+ .start = controller_start,
+ .next = controller_next,
+ .stop = controller_stop,
+@@ -194,14 +194,14 @@ applstats_show(struct seq_file *seq, voi
+ return 0;
+ }
+
+-static struct seq_operations seq_applications_ops = {
++static const struct seq_operations seq_applications_ops = {
+ .start = applications_start,
+ .next = applications_next,
+ .stop = applications_stop,
+ .show = applications_show,
+ };
+
+-static struct seq_operations seq_applstats_ops = {
++static const struct seq_operations seq_applstats_ops = {
+ .start = applications_start,
+ .next = applications_next,
+ .stop = applications_stop,
+@@ -262,7 +262,7 @@ static int capi_driver_show(struct seq_f
+ return 0;
+ }
+
+-static struct seq_operations seq_capi_driver_ops = {
++static const struct seq_operations seq_capi_driver_ops = {
+ .start = capi_driver_start,
+ .next = capi_driver_next,
+ .stop = capi_driver_stop,
+diff -urNp linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c
+--- linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c 2009-07-23 18:40:27.725292323 -0400
+@@ -260,7 +260,7 @@ mISDN_ioctl(struct inode *inode, struct
+ return ret;
+ }
+
+-static struct file_operations mISDN_fops = {
++static const struct file_operations mISDN_fops = {
+ .read = mISDN_read,
+ .poll = mISDN_poll,
+ .ioctl = mISDN_ioctl,
diff -urNp linux-2.6.29.6/drivers/lguest/core.c linux-2.6.29.6/drivers/lguest/core.c
--- linux-2.6.29.6/drivers/lguest/core.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/lguest/core.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/lguest/core.c 2009-07-23 17:34:32.126724952 -0400
@@ -80,9 +80,17 @@ static __init int map_switcher(void)
* (SWITCHER_ADDR). We might not get it in theory, but in practice
* it's worked so far. The end address needs +1 because __get_vm_area
@@ -17920,9 +18809,21 @@ diff -urNp linux-2.6.29.6/drivers/lguest/core.c linux-2.6.29.6/drivers/lguest/co
if (!switcher_vma) {
err = -ENOMEM;
printk("lguest: could not map switcher pages high\n");
+diff -urNp linux-2.6.29.6/drivers/lguest/lguest_user.c linux-2.6.29.6/drivers/lguest/lguest_user.c
+--- linux-2.6.29.6/drivers/lguest/lguest_user.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/lguest/lguest_user.c 2009-07-23 18:40:27.725292323 -0400
+@@ -329,7 +329,7 @@ static int close(struct inode *inode, st
+ * We begin our understanding with the Host kernel interface which the Launcher
+ * uses: reading and writing a character device called /dev/lguest. All the
+ * work happens in the read(), write() and close() routines: */
+-static struct file_operations lguest_fops = {
++static const struct file_operations lguest_fops = {
+ .owner = THIS_MODULE,
+ .release = close,
+ .write = write,
diff -urNp linux-2.6.29.6/drivers/md/bitmap.c linux-2.6.29.6/drivers/md/bitmap.c
--- linux-2.6.29.6/drivers/md/bitmap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/md/bitmap.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/md/bitmap.c 2009-07-23 17:34:32.126724952 -0400
@@ -57,7 +57,7 @@
# if DEBUG > 0
# define PRINTK(x...) printk(KERN_DEBUG x)
@@ -17934,7 +18835,7 @@ diff -urNp linux-2.6.29.6/drivers/md/bitmap.c linux-2.6.29.6/drivers/md/bitmap.c
diff -urNp linux-2.6.29.6/drivers/md/md.c linux-2.6.29.6/drivers/md/md.c
--- linux-2.6.29.6/drivers/md/md.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/md/md.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/md/md.c 2009-07-23 18:40:27.467400762 -0400
@@ -5637,7 +5637,7 @@ static int md_seq_show(struct seq_file *
chunk_kb ? "KB" : "B");
if (bitmap->file) {
@@ -17944,9 +18845,204 @@ diff -urNp linux-2.6.29.6/drivers/md/md.c linux-2.6.29.6/drivers/md/md.c
}
seq_printf(seq, "\n");
+@@ -5651,7 +5651,7 @@ static int md_seq_show(struct seq_file *
+ return 0;
+ }
+
+-static struct seq_operations md_seq_ops = {
++static const struct seq_operations md_seq_ops = {
+ .start = md_seq_start,
+ .next = md_seq_next,
+ .stop = md_seq_stop,
+diff -urNp linux-2.6.29.6/drivers/media/video/cafe_ccic.c linux-2.6.29.6/drivers/media/video/cafe_ccic.c
+--- linux-2.6.29.6/drivers/media/video/cafe_ccic.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/cafe_ccic.c 2009-07-23 18:40:27.758392151 -0400
+@@ -1428,7 +1428,7 @@ static void cafe_v4l_vm_close(struct vm_
+ mutex_unlock(&sbuf->cam->s_mutex);
+ }
+
+-static struct vm_operations_struct cafe_v4l_vm_ops = {
++static const struct vm_operations_struct cafe_v4l_vm_ops = {
+ .open = cafe_v4l_vm_open,
+ .close = cafe_v4l_vm_close
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c
+--- linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c 2009-07-23 18:40:27.771668760 -0400
+@@ -1494,7 +1494,7 @@ static void et61x251_vm_close(struct vm_
+ }
+
+
+-static struct vm_operations_struct et61x251_vm_ops = {
++static const struct vm_operations_struct et61x251_vm_ops = {
+ .open = et61x251_vm_open,
+ .close = et61x251_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/gspca/gspca.c linux-2.6.29.6/drivers/media/video/gspca/gspca.c
+--- linux-2.6.29.6/drivers/media/video/gspca/gspca.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/gspca/gspca.c 2009-07-23 18:40:27.778527732 -0400
+@@ -98,7 +98,7 @@ static void gspca_vm_close(struct vm_are
+ frame->v4l2_buf.flags &= ~V4L2_BUF_FLAG_MAPPED;
+ }
+
+-static struct vm_operations_struct gspca_vm_ops = {
++static const struct vm_operations_struct gspca_vm_ops = {
+ .open = gspca_vm_open,
+ .close = gspca_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/meye.c linux-2.6.29.6/drivers/media/video/meye.c
+--- linux-2.6.29.6/drivers/media/video/meye.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/meye.c 2009-07-23 18:40:27.788416673 -0400
+@@ -1628,7 +1628,7 @@ static void meye_vm_close(struct vm_area
+ meye.vma_use_count[idx]--;
+ }
+
+-static struct vm_operations_struct meye_vm_ops = {
++static const struct vm_operations_struct meye_vm_ops = {
+ .open = meye_vm_open,
+ .close = meye_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c
+--- linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c 2009-07-23 18:40:27.796800559 -0400
+@@ -2075,7 +2075,7 @@ static void sn9c102_vm_close(struct vm_a
+ }
+
+
+-static struct vm_operations_struct sn9c102_vm_ops = {
++static const struct vm_operations_struct sn9c102_vm_ops = {
+ .open = sn9c102_vm_open,
+ .close = sn9c102_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/stk-webcam.c linux-2.6.29.6/drivers/media/video/stk-webcam.c
+--- linux-2.6.29.6/drivers/media/video/stk-webcam.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/stk-webcam.c 2009-07-23 18:40:27.803525619 -0400
+@@ -789,7 +789,7 @@ static void stk_v4l_vm_close(struct vm_a
+ if (sbuf->mapcount == 0)
+ sbuf->v4lbuf.flags &= ~V4L2_BUF_FLAG_MAPPED;
+ }
+-static struct vm_operations_struct stk_v4l_vm_ops = {
++static const struct vm_operations_struct stk_v4l_vm_ops = {
+ .open = stk_v4l_vm_open,
+ .close = stk_v4l_vm_close
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c
+--- linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c 2009-07-23 18:40:27.817489179 -0400
+@@ -1030,7 +1030,7 @@ static void uvc_vm_close(struct vm_area_
+ buffer->vma_use_count--;
+ }
+
+-static struct vm_operations_struct uvc_vm_ops = {
++static const struct vm_operations_struct uvc_vm_ops = {
+ .open = uvc_vm_open,
+ .close = uvc_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c
+--- linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c 2009-07-23 18:40:27.828475979 -0400
+@@ -103,7 +103,7 @@ static void videobuf_vm_close(struct vm_
+ }
+ }
+
+-static struct vm_operations_struct videobuf_vm_ops = {
++static const struct vm_operations_struct videobuf_vm_ops = {
+ .open = videobuf_vm_open,
+ .close = videobuf_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/vino.c linux-2.6.29.6/drivers/media/video/vino.c
+--- linux-2.6.29.6/drivers/media/video/vino.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/vino.c 2009-07-23 18:40:27.838748348 -0400
+@@ -4088,7 +4088,7 @@ static void vino_vm_close(struct vm_area
+ dprintk("vino_vm_close(): count = %d\n", fb->map_count);
+ }
+
+-static struct vm_operations_struct vino_vm_ops = {
++static const struct vm_operations_struct vino_vm_ops = {
+ .open = vino_vm_open,
+ .close = vino_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c
+--- linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c 2009-07-23 18:40:27.845358958 -0400
+@@ -933,7 +933,7 @@ static void zc0301_vm_close(struct vm_ar
+ }
+
+
+-static struct vm_operations_struct zc0301_vm_ops = {
++static const struct vm_operations_struct zc0301_vm_ops = {
+ .open = zc0301_vm_open,
+ .close = zc0301_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c
+--- linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c 2009-07-23 18:40:27.858649863 -0400
+@@ -4359,7 +4359,7 @@ zoran_vm_close (struct vm_area_struct *v
+ }
+ }
+
+-static struct vm_operations_struct zoran_vm_ops = {
++static const struct vm_operations_struct zoran_vm_ops = {
+ .open = zoran_vm_open,
+ .close = zoran_vm_close,
+ };
+diff -urNp linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c
+--- linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c 2009-07-23 18:40:27.864885246 -0400
+@@ -97,7 +97,7 @@ static int ibmasmfs_get_super(struct fil
+ return get_sb_single(fst, flags, data, ibmasmfs_fill_super, mnt);
+ }
+
+-static struct super_operations ibmasmfs_s_ops = {
++static const struct super_operations ibmasmfs_s_ops = {
+ .statfs = simple_statfs,
+ .drop_inode = generic_delete_inode,
+ };
+diff -urNp linux-2.6.29.6/drivers/misc/phantom.c linux-2.6.29.6/drivers/misc/phantom.c
+--- linux-2.6.29.6/drivers/misc/phantom.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/misc/phantom.c 2009-07-23 18:40:27.874264006 -0400
+@@ -271,7 +271,7 @@ static unsigned int phantom_poll(struct
+ return mask;
+ }
+
+-static struct file_operations phantom_file_ops = {
++static const struct file_operations phantom_file_ops = {
+ .open = phantom_open,
+ .release = phantom_release,
+ .unlocked_ioctl = phantom_ioctl,
+diff -urNp linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c
+--- linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c 2009-07-23 18:40:27.879624060 -0400
+@@ -63,7 +63,7 @@ struct gru_stats_s gru_stats;
+ /* Guaranteed user available resources on each node */
+ static int max_user_cbrs, max_user_dsr_bytes;
+
+-static struct file_operations gru_fops;
++static const struct file_operations gru_fops;
+ static struct miscdevice gru_miscdev;
+
+
+@@ -464,7 +464,7 @@ static void __exit gru_exit(void)
+ gru_proc_exit();
+ }
+
+-static struct file_operations gru_fops = {
++static const struct file_operations gru_fops = {
+ .owner = THIS_MODULE,
+ .unlocked_ioctl = gru_file_unlocked_ioctl,
+ .mmap = gru_file_mmap,
+@@ -476,7 +476,7 @@ static struct miscdevice gru_miscdev = {
+ .fops = &gru_fops,
+ };
+
+-struct vm_operations_struct gru_vm_ops = {
++struct const vm_operations_struct gru_vm_ops = {
+ .close = gru_vma_close,
+ .fault = gru_fault,
+ };
diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2000.c linux-2.6.29.6/drivers/mtd/devices/doc2000.c
--- linux-2.6.29.6/drivers/mtd/devices/doc2000.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/mtd/devices/doc2000.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/mtd/devices/doc2000.c 2009-07-23 17:34:32.128864545 -0400
@@ -777,7 +777,7 @@ static int doc_write(struct mtd_info *mt
/* The ECC will not be calculated correctly if less than 512 is written */
@@ -17958,7 +19054,7 @@ diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2000.c linux-2.6.29.6/drivers/m
(long) to, (long) len);
diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2001.c linux-2.6.29.6/drivers/mtd/devices/doc2001.c
--- linux-2.6.29.6/drivers/mtd/devices/doc2001.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/mtd/devices/doc2001.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/mtd/devices/doc2001.c 2009-07-23 17:34:32.128864545 -0400
@@ -396,6 +396,8 @@ static int doc_read (struct mtd_info *mt
/* Don't allow read past end of device */
if (from >= this->totlen)
@@ -17970,7 +19066,7 @@ diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2001.c linux-2.6.29.6/drivers/m
if (from + len > ((from | 0x1ff) + 1))
diff -urNp linux-2.6.29.6/drivers/mtd/ubi/build.c linux-2.6.29.6/drivers/mtd/ubi/build.c
--- linux-2.6.29.6/drivers/mtd/ubi/build.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/mtd/ubi/build.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/mtd/ubi/build.c 2009-07-23 17:34:32.128864545 -0400
@@ -1112,7 +1112,7 @@ static int __init bytes_str_to_int(const
unsigned long result;
@@ -17980,9 +19076,57 @@ diff -urNp linux-2.6.29.6/drivers/mtd/ubi/build.c linux-2.6.29.6/drivers/mtd/ubi
printk(KERN_ERR "UBI error: incorrect bytes count: \"%s\"\n",
str);
return -EINVAL;
+diff -urNp linux-2.6.29.6/drivers/net/bonding/bond_main.c linux-2.6.29.6/drivers/net/bonding/bond_main.c
+--- linux-2.6.29.6/drivers/net/bonding/bond_main.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/bonding/bond_main.c 2009-07-23 18:40:27.880597977 -0400
+@@ -3368,7 +3368,7 @@ static int bond_info_seq_show(struct seq
+ return 0;
+ }
+
+-static struct seq_operations bond_info_seq_ops = {
++static const struct seq_operations bond_info_seq_ops = {
+ .start = bond_info_seq_start,
+ .next = bond_info_seq_next,
+ .stop = bond_info_seq_stop,
+diff -urNp linux-2.6.29.6/drivers/net/hamradio/bpqether.c linux-2.6.29.6/drivers/net/hamradio/bpqether.c
+--- linux-2.6.29.6/drivers/net/hamradio/bpqether.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/hamradio/bpqether.c 2009-07-23 18:40:27.886801730 -0400
+@@ -454,7 +454,7 @@ static int bpq_seq_show(struct seq_file
+ return 0;
+ }
+
+-static struct seq_operations bpq_seqops = {
++static const struct seq_operations bpq_seqops = {
+ .start = bpq_seq_start,
+ .next = bpq_seq_next,
+ .stop = bpq_seq_stop,
+diff -urNp linux-2.6.29.6/drivers/net/hamradio/scc.c linux-2.6.29.6/drivers/net/hamradio/scc.c
+--- linux-2.6.29.6/drivers/net/hamradio/scc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/hamradio/scc.c 2009-07-23 18:40:27.887355447 -0400
+@@ -2073,7 +2073,7 @@ static int scc_net_seq_show(struct seq_f
+ return 0;
+ }
+
+-static struct seq_operations scc_net_seq_ops = {
++static const struct seq_operations scc_net_seq_ops = {
+ .start = scc_net_seq_start,
+ .next = scc_net_seq_next,
+ .stop = scc_net_seq_stop,
+diff -urNp linux-2.6.29.6/drivers/net/hamradio/yam.c linux-2.6.29.6/drivers/net/hamradio/yam.c
+--- linux-2.6.29.6/drivers/net/hamradio/yam.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/hamradio/yam.c 2009-07-23 18:40:27.889386996 -0400
+@@ -787,7 +787,7 @@ static int yam_seq_show(struct seq_file
+ return 0;
+ }
+
+-static struct seq_operations yam_seqops = {
++static const struct seq_operations yam_seqops = {
+ .start = yam_seq_start,
+ .next = yam_seq_next,
+ .stop = yam_seq_stop,
diff -urNp linux-2.6.29.6/drivers/net/irda/vlsi_ir.c linux-2.6.29.6/drivers/net/irda/vlsi_ir.c
--- linux-2.6.29.6/drivers/net/irda/vlsi_ir.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/net/irda/vlsi_ir.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/net/irda/vlsi_ir.c 2009-07-23 17:34:32.129778413 -0400
@@ -906,13 +906,12 @@ static int vlsi_hard_start_xmit(struct s
/* no race - tx-ring already empty */
vlsi_set_baud(idev, iobase);
@@ -18001,7 +19145,7 @@ diff -urNp linux-2.6.29.6/drivers/net/irda/vlsi_ir.c linux-2.6.29.6/drivers/net/
return 0;
diff -urNp linux-2.6.29.6/drivers/net/pcnet32.c linux-2.6.29.6/drivers/net/pcnet32.c
--- linux-2.6.29.6/drivers/net/pcnet32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/net/pcnet32.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/net/pcnet32.c 2009-07-23 17:34:32.129778413 -0400
@@ -78,7 +78,7 @@ static int cards_found;
/*
* VLB I/O addresses
@@ -18011,9 +19155,42 @@ diff -urNp linux-2.6.29.6/drivers/net/pcnet32.c linux-2.6.29.6/drivers/net/pcnet
{ 0x300, 0x320, 0x340, 0x360, 0 };
static int pcnet32_debug = 0;
+diff -urNp linux-2.6.29.6/drivers/net/pppoe.c linux-2.6.29.6/drivers/net/pppoe.c
+--- linux-2.6.29.6/drivers/net/pppoe.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/pppoe.c 2009-07-23 18:40:27.897571007 -0400
+@@ -1030,7 +1030,7 @@ static void pppoe_seq_stop(struct seq_fi
+ read_unlock_bh(&pppoe_hash_lock);
+ }
+
+-static struct seq_operations pppoe_seq_ops = {
++static const struct seq_operations pppoe_seq_ops = {
+ .start = pppoe_seq_start,
+ .next = pppoe_seq_next,
+ .stop = pppoe_seq_stop,
+diff -urNp linux-2.6.29.6/drivers/net/pppol2tp.c linux-2.6.29.6/drivers/net/pppol2tp.c
+--- linux-2.6.29.6/drivers/net/pppol2tp.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/pppol2tp.c 2009-07-23 18:40:27.913336405 -0400
+@@ -2517,7 +2517,7 @@ out:
+ return 0;
+ }
+
+-static struct seq_operations pppol2tp_seq_ops = {
++static const struct seq_operations pppol2tp_seq_ops = {
+ .start = pppol2tp_seq_start,
+ .next = pppol2tp_seq_next,
+ .stop = pppol2tp_seq_stop,
+@@ -2565,7 +2565,7 @@ static int pppol2tp_proc_release(struct
+ return seq_release(inode, file);
+ }
+
+-static struct file_operations pppol2tp_proc_fops = {
++static const struct file_operations pppol2tp_proc_fops = {
+ .owner = THIS_MODULE,
+ .open = pppol2tp_proc_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/drivers/net/tg3.h linux-2.6.29.6/drivers/net/tg3.h
--- linux-2.6.29.6/drivers/net/tg3.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/net/tg3.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/net/tg3.h 2009-07-23 17:34:32.130708691 -0400
@@ -89,6 +89,7 @@
#define CHIPREV_ID_5750_A0 0x4000
#define CHIPREV_ID_5750_A1 0x4001
@@ -18022,9 +19199,45 @@ diff -urNp linux-2.6.29.6/drivers/net/tg3.h linux-2.6.29.6/drivers/net/tg3.h
#define CHIPREV_ID_5750_C2 0x4202
#define CHIPREV_ID_5752_A0_HW 0x5000
#define CHIPREV_ID_5752_A0 0x6000
+diff -urNp linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c
+--- linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c 2009-07-23 18:40:27.920274556 -0400
+@@ -165,7 +165,7 @@ static int reg_show(struct seq_file *seq
+ return 0;
+ }
+
+-static struct seq_operations register_seq_ops = {
++static const struct seq_operations register_seq_ops = {
+ .start = reg_start,
+ .next = reg_next,
+ .stop = reg_stop,
+diff -urNp linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c
+--- linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c 2009-07-23 18:40:27.933357619 -0400
+@@ -938,7 +938,7 @@ static ssize_t lbs_debugfs_write(struct
+ return (ssize_t)cnt;
+ }
+
+-static struct file_operations lbs_debug_fops = {
++static const struct file_operations lbs_debug_fops = {
+ .owner = THIS_MODULE,
+ .open = open_file_generic,
+ .write = lbs_debugfs_write,
+diff -urNp linux-2.6.29.6/drivers/net/wireless/strip.c linux-2.6.29.6/drivers/net/wireless/strip.c
+--- linux-2.6.29.6/drivers/net/wireless/strip.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/net/wireless/strip.c 2009-07-23 18:40:27.958265010 -0400
+@@ -1125,7 +1125,7 @@ static int strip_seq_show(struct seq_fil
+ }
+
+
+-static struct seq_operations strip_seq_ops = {
++static const struct seq_operations strip_seq_ops = {
+ .start = strip_seq_start,
+ .next = strip_seq_next,
+ .stop = strip_seq_stop,
diff -urNp linux-2.6.29.6/drivers/oprofile/buffer_sync.c linux-2.6.29.6/drivers/oprofile/buffer_sync.c
--- linux-2.6.29.6/drivers/oprofile/buffer_sync.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/oprofile/buffer_sync.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/oprofile/buffer_sync.c 2009-07-23 17:34:32.130708691 -0400
@@ -335,7 +335,7 @@ static void add_data(struct op_entry *en
if (cookie == NO_COOKIE)
offset = pc;
@@ -18062,7 +19275,7 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/buffer_sync.c linux-2.6.29.6/drivers/
release_mm(mm);
diff -urNp linux-2.6.29.6/drivers/oprofile/event_buffer.c linux-2.6.29.6/drivers/oprofile/event_buffer.c
--- linux-2.6.29.6/drivers/oprofile/event_buffer.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/oprofile/event_buffer.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/oprofile/event_buffer.c 2009-07-23 17:34:32.130708691 -0400
@@ -42,7 +42,7 @@ static atomic_t buffer_ready = ATOMIC_IN
void add_event_entry(unsigned long value)
{
@@ -18074,7 +19287,16 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/event_buffer.c linux-2.6.29.6/drivers
diff -urNp linux-2.6.29.6/drivers/oprofile/oprofilefs.c linux-2.6.29.6/drivers/oprofile/oprofilefs.c
--- linux-2.6.29.6/drivers/oprofile/oprofilefs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/oprofile/oprofilefs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/oprofile/oprofilefs.c 2009-07-23 18:40:27.469277997 -0400
+@@ -35,7 +35,7 @@ static struct inode *oprofilefs_get_inod
+ }
+
+
+-static struct super_operations s_ops = {
++static const struct super_operations s_ops = {
+ .statfs = simple_statfs,
+ .drop_inode = generic_delete_inode,
+ };
@@ -187,7 +187,7 @@ static const struct file_operations atom
@@ -18086,7 +19308,7 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/oprofilefs.c linux-2.6.29.6/drivers/o
&atomic_ro_fops, 0444);
diff -urNp linux-2.6.29.6/drivers/oprofile/oprofile_stats.h linux-2.6.29.6/drivers/oprofile/oprofile_stats.h
--- linux-2.6.29.6/drivers/oprofile/oprofile_stats.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/oprofile/oprofile_stats.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/oprofile/oprofile_stats.h 2009-07-23 17:34:32.131798606 -0400
@@ -13,10 +13,10 @@
#include <asm/atomic.h>
@@ -18102,9 +19324,21 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/oprofile_stats.h linux-2.6.29.6/drive
};
extern struct oprofile_stat_struct oprofile_stats;
+diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h
+--- linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h 2009-07-23 18:40:27.972087415 -0400
+@@ -449,7 +449,7 @@ extern u8 cpqhp_disk_irq;
+
+ /* inline functions */
+
+-static inline char *slot_name(struct slot *slot)
++static inline const char *slot_name(struct slot *slot)
+ {
+ return hotplug_slot_name(slot->hotplug_slot);
+ }
diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c
--- linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-23 17:34:32.131798606 -0400
@@ -425,9 +425,13 @@ static u32 store_HRT (void __iomem *rom_
void compaq_nvram_init (void __iomem *rom_start)
@@ -18121,7 +19355,7 @@ diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.29.6/driv
/* initialize our int15 lock */
diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c
--- linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c 2009-07-23 17:34:32.131798606 -0400
@@ -59,7 +59,7 @@ static struct pcie_port_service_id aer_i
.port_type = PCIE_RC_PORT,
.service_type = PCIE_PORT_SERVICE_AER,
@@ -18133,7 +19367,7 @@ diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c linux-2.6.29.6/drivers/p
static struct pci_error_handlers aer_error_handlers = {
diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c
--- linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-23 17:34:32.132779386 -0400
@@ -670,7 +670,7 @@ static void aer_isr_one_error(struct pci
struct aer_err_source *e_src)
{
@@ -18145,7 +19379,7 @@ diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c linux-2.6.29.6/driv
diff -urNp linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c
--- linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c 2009-07-23 17:34:32.132779386 -0400
@@ -260,7 +260,7 @@ static void pcie_portdrv_err_resume(stru
static const struct pci_device_id port_pci_ids[] = { {
/* handle any PCI-Express port */
@@ -18157,7 +19391,7 @@ diff -urNp linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c linux-2.6.29.6/drivers/
diff -urNp linux-2.6.29.6/drivers/pci/proc.c linux-2.6.29.6/drivers/pci/proc.c
--- linux-2.6.29.6/drivers/pci/proc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pci/proc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pci/proc.c 2009-07-23 17:34:32.132779386 -0400
@@ -480,7 +480,16 @@ static const struct file_operations proc
static int __init pci_proc_init(void)
{
@@ -18177,7 +19411,7 @@ diff -urNp linux-2.6.29.6/drivers/pci/proc.c linux-2.6.29.6/drivers/pci/proc.c
proc_initialized = 1;
diff -urNp linux-2.6.29.6/drivers/pcmcia/ti113x.h linux-2.6.29.6/drivers/pcmcia/ti113x.h
--- linux-2.6.29.6/drivers/pcmcia/ti113x.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pcmcia/ti113x.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pcmcia/ti113x.h 2009-07-23 17:34:32.132779386 -0400
@@ -903,7 +903,7 @@ static struct pci_device_id ene_tune_tbl
DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID,
ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE),
@@ -18189,7 +19423,7 @@ diff -urNp linux-2.6.29.6/drivers/pcmcia/ti113x.h linux-2.6.29.6/drivers/pcmcia/
static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus)
diff -urNp linux-2.6.29.6/drivers/pcmcia/yenta_socket.c linux-2.6.29.6/drivers/pcmcia/yenta_socket.c
--- linux-2.6.29.6/drivers/pcmcia/yenta_socket.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pcmcia/yenta_socket.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pcmcia/yenta_socket.c 2009-07-23 17:34:32.133745041 -0400
@@ -1366,7 +1366,7 @@ static struct pci_device_id yenta_table
/* match any cardbus bridge */
@@ -18201,7 +19435,7 @@ diff -urNp linux-2.6.29.6/drivers/pcmcia/yenta_socket.c linux-2.6.29.6/drivers/p
diff -urNp linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c
--- linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c 2009-07-23 17:34:32.133745041 -0400
@@ -60,7 +60,7 @@ set_base(gdt[(selname) >> 3], (u32)(addr
set_limit(gdt[(selname) >> 3], size); \
} while(0)
@@ -18296,7 +19530,7 @@ diff -urNp linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c linux-2.6.29.6/drivers
}
diff -urNp linux-2.6.29.6/drivers/pnp/quirks.c linux-2.6.29.6/drivers/pnp/quirks.c
--- linux-2.6.29.6/drivers/pnp/quirks.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pnp/quirks.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pnp/quirks.c 2009-07-23 17:34:32.133745041 -0400
@@ -327,7 +327,7 @@ static struct pnp_fixup pnp_fixups[] = {
/* PnP resources that might overlap PCI BARs */
{"PNP0c01", quirk_system_pci_resources},
@@ -18308,7 +19542,7 @@ diff -urNp linux-2.6.29.6/drivers/pnp/quirks.c linux-2.6.29.6/drivers/pnp/quirks
void pnp_fixup_device(struct pnp_dev *dev)
diff -urNp linux-2.6.29.6/drivers/pnp/resource.c linux-2.6.29.6/drivers/pnp/resource.c
--- linux-2.6.29.6/drivers/pnp/resource.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/pnp/resource.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/pnp/resource.c 2009-07-23 17:34:32.133745041 -0400
@@ -355,7 +355,7 @@ int pnp_check_irq(struct pnp_dev *dev, s
return 1;
@@ -18327,9 +19561,33 @@ diff -urNp linux-2.6.29.6/drivers/pnp/resource.c linux-2.6.29.6/drivers/pnp/reso
return 0;
/* check if the resource is reserved */
+diff -urNp linux-2.6.29.6/drivers/s390/cio/qdio_debug.c linux-2.6.29.6/drivers/s390/cio/qdio_debug.c
+--- linux-2.6.29.6/drivers/s390/cio/qdio_debug.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/s390/cio/qdio_debug.c 2009-07-23 18:40:27.977694137 -0400
+@@ -144,7 +144,7 @@ static void remove_debugfs_entry(struct
+ }
+ }
+
+-static struct file_operations debugfs_fops = {
++static const struct file_operations debugfs_fops = {
+ .owner = THIS_MODULE,
+ .open = qstat_seq_open,
+ .read = seq_read,
+diff -urNp linux-2.6.29.6/drivers/s390/cio/qdio_perf.c linux-2.6.29.6/drivers/s390/cio/qdio_perf.c
+--- linux-2.6.29.6/drivers/s390/cio/qdio_perf.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/s390/cio/qdio_perf.c 2009-07-23 18:40:27.982430466 -0400
+@@ -96,7 +96,7 @@ static int qdio_perf_seq_open(struct ino
+ return single_open(filp, qdio_perf_proc_show, NULL);
+ }
+
+-static struct file_operations qdio_perf_proc_fops = {
++static const struct file_operations qdio_perf_proc_fops = {
+ .owner = THIS_MODULE,
+ .open = qdio_perf_seq_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c
--- linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c 2009-07-23 17:34:32.134722055 -0400
@@ -84,12 +84,12 @@ struct fc_exch_mgr {
* all together if not used XXX
*/
@@ -18447,9 +19705,84 @@ diff -urNp linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c linux-2.6.29.6/drivers/sc
FC_DEBUG_EXCH("non-BLS response to sequence");
}
fc_frame_free(fp);
+diff -urNp linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c
+--- linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c 2009-07-23 18:40:27.982430466 -0400
+@@ -1132,7 +1132,7 @@ lpfc_debugfs_dumpDataDif_release(struct
+ }
+
+ #undef lpfc_debugfs_op_disc_trc
+-static struct file_operations lpfc_debugfs_op_disc_trc = {
++static const struct file_operations lpfc_debugfs_op_disc_trc = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_disc_trc_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1141,7 +1141,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_nodelist
+-static struct file_operations lpfc_debugfs_op_nodelist = {
++static const struct file_operations lpfc_debugfs_op_nodelist = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_nodelist_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1150,7 +1150,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_hbqinfo
+-static struct file_operations lpfc_debugfs_op_hbqinfo = {
++static const struct file_operations lpfc_debugfs_op_hbqinfo = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_hbqinfo_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1159,7 +1159,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_dumpHBASlim
+-static struct file_operations lpfc_debugfs_op_dumpHBASlim = {
++static const struct file_operations lpfc_debugfs_op_dumpHBASlim = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_dumpHBASlim_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1168,7 +1168,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_dumpHostSlim
+-static struct file_operations lpfc_debugfs_op_dumpHostSlim = {
++static const struct file_operations lpfc_debugfs_op_dumpHostSlim = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_dumpHostSlim_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1177,7 +1177,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_dumpData
+-static struct file_operations lpfc_debugfs_op_dumpData = {
++static const struct file_operations lpfc_debugfs_op_dumpData = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_dumpData_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1187,7 +1187,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_dumpDif
+-static struct file_operations lpfc_debugfs_op_dumpDif = {
++static const struct file_operations lpfc_debugfs_op_dumpDif = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_dumpDif_open,
+ .llseek = lpfc_debugfs_lseek,
+@@ -1197,7 +1197,7 @@ static struct file_operations lpfc_debug
+ };
+
+ #undef lpfc_debugfs_op_slow_ring_trc
+-static struct file_operations lpfc_debugfs_op_slow_ring_trc = {
++static const struct file_operations lpfc_debugfs_op_slow_ring_trc = {
+ .owner = THIS_MODULE,
+ .open = lpfc_debugfs_slow_ring_trc_open,
+ .llseek = lpfc_debugfs_lseek,
diff -urNp linux-2.6.29.6/drivers/scsi/scsi_logging.h linux-2.6.29.6/drivers/scsi/scsi_logging.h
--- linux-2.6.29.6/drivers/scsi/scsi_logging.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/scsi/scsi_logging.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/scsi/scsi_logging.h 2009-07-23 17:34:32.134722055 -0400
@@ -51,7 +51,7 @@ do { \
} while (0); \
} while (0)
@@ -18459,9 +19792,149 @@ diff -urNp linux-2.6.29.6/drivers/scsi/scsi_logging.h linux-2.6.29.6/drivers/scs
#endif /* CONFIG_SCSI_LOGGING */
/*
+diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c
+--- linux-2.6.29.6/drivers/scsi/sg.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/scsi/sg.c 2009-07-23 18:40:27.983261819 -0400
+@@ -1197,7 +1197,7 @@ sg_vma_fault(struct vm_area_struct *vma,
+ return VM_FAULT_SIGBUS;
+ }
+
+-static struct vm_operations_struct sg_mmap_vm_ops = {
++static const struct vm_operations_struct sg_mmap_vm_ops = {
+ .fault = sg_vma_fault,
+ };
+
+@@ -1329,7 +1329,7 @@ static void sg_rq_end_io(struct request
+ }
+ }
+
+-static struct file_operations sg_fops = {
++static const struct file_operations sg_fops = {
+ .owner = THIS_MODULE,
+ .read = sg_read,
+ .write = sg_write,
+@@ -2222,8 +2222,11 @@ static int sg_proc_seq_show_int(struct s
+ static int sg_proc_single_open_adio(struct inode *inode, struct file *file);
+ static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer,
+ size_t count, loff_t *off);
+-static struct file_operations adio_fops = {
+- /* .owner, .read and .llseek added in sg_proc_init() */
++
++static const struct file_operations adio_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_single_open_adio,
+ .write = sg_proc_write_adio,
+ .release = single_release,
+@@ -2232,7 +2235,10 @@ static struct file_operations adio_fops
+ static int sg_proc_single_open_dressz(struct inode *inode, struct file *file);
+ static ssize_t sg_proc_write_dressz(struct file *filp,
+ const char __user *buffer, size_t count, loff_t *off);
+-static struct file_operations dressz_fops = {
++static const struct file_operations dressz_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_single_open_dressz,
+ .write = sg_proc_write_dressz,
+ .release = single_release,
+@@ -2240,14 +2246,20 @@ static struct file_operations dressz_fop
+
+ static int sg_proc_seq_show_version(struct seq_file *s, void *v);
+ static int sg_proc_single_open_version(struct inode *inode, struct file *file);
+-static struct file_operations version_fops = {
++static const struct file_operations version_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_single_open_version,
+ .release = single_release,
+ };
+
+ static int sg_proc_seq_show_devhdr(struct seq_file *s, void *v);
+ static int sg_proc_single_open_devhdr(struct inode *inode, struct file *file);
+-static struct file_operations devhdr_fops = {
++static const struct file_operations devhdr_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_single_open_devhdr,
+ .release = single_release,
+ };
+@@ -2257,11 +2269,14 @@ static int sg_proc_open_dev(struct inode
+ static void * dev_seq_start(struct seq_file *s, loff_t *pos);
+ static void * dev_seq_next(struct seq_file *s, void *v, loff_t *pos);
+ static void dev_seq_stop(struct seq_file *s, void *v);
+-static struct file_operations dev_fops = {
++static const struct file_operations dev_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_open_dev,
+ .release = seq_release,
+ };
+-static struct seq_operations dev_seq_ops = {
++static const struct seq_operations dev_seq_ops = {
+ .start = dev_seq_start,
+ .next = dev_seq_next,
+ .stop = dev_seq_stop,
+@@ -2270,11 +2285,14 @@ static struct seq_operations dev_seq_ops
+
+ static int sg_proc_seq_show_devstrs(struct seq_file *s, void *v);
+ static int sg_proc_open_devstrs(struct inode *inode, struct file *file);
+-static struct file_operations devstrs_fops = {
++static const struct file_operations devstrs_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_open_devstrs,
+ .release = seq_release,
+ };
+-static struct seq_operations devstrs_seq_ops = {
++static const struct seq_operations devstrs_seq_ops = {
+ .start = dev_seq_start,
+ .next = dev_seq_next,
+ .stop = dev_seq_stop,
+@@ -2283,11 +2301,14 @@ static struct seq_operations devstrs_seq
+
+ static int sg_proc_seq_show_debug(struct seq_file *s, void *v);
+ static int sg_proc_open_debug(struct inode *inode, struct file *file);
+-static struct file_operations debug_fops = {
++static const struct file_operations debug_fops = {
++ .owner = THIS_MODULE,
++ .read = seq_read,
++ .llseek = seq_lseek,
+ .open = sg_proc_open_debug,
+ .release = seq_release,
+ };
+-static struct seq_operations debug_seq_ops = {
++static const struct seq_operations debug_seq_ops = {
+ .start = dev_seq_start,
+ .next = dev_seq_next,
+ .stop = dev_seq_stop,
+@@ -2297,7 +2318,7 @@ static struct seq_operations debug_seq_o
+
+ struct sg_proc_leaf {
+ const char * name;
+- struct file_operations * fops;
++ const struct file_operations * fops;
+ };
+
+ static struct sg_proc_leaf sg_proc_leaf_arr[] = {
+@@ -2323,9 +2344,6 @@ sg_proc_init(void)
+ for (k = 0; k < num_leaves; ++k) {
+ leaf = &sg_proc_leaf_arr[k];
+ mask = leaf->fops->write ? S_IRUGO | S_IWUSR : S_IRUGO;
+- leaf->fops->owner = THIS_MODULE;
+- leaf->fops->read = seq_read;
+- leaf->fops->llseek = seq_lseek;
+ proc_create(leaf->name, mask, sg_proc_sgp, leaf->fops);
+ }
+ return 0;
diff -urNp linux-2.6.29.6/drivers/serial/8250_pci.c linux-2.6.29.6/drivers/serial/8250_pci.c
--- linux-2.6.29.6/drivers/serial/8250_pci.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/serial/8250_pci.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/serial/8250_pci.c 2009-07-23 17:34:32.135751373 -0400
@@ -3162,7 +3162,7 @@ static struct pci_device_id serial_pci_t
PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_COMMUNICATION_MULTISERIAL << 8,
@@ -18471,9 +19944,298 @@ diff -urNp linux-2.6.29.6/drivers/serial/8250_pci.c linux-2.6.29.6/drivers/seria
};
static struct pci_driver serial_pci_driver = {
+diff -urNp linux-2.6.29.6/drivers/spi/spidev.c linux-2.6.29.6/drivers/spi/spidev.c
+--- linux-2.6.29.6/drivers/spi/spidev.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/spi/spidev.c 2009-07-23 18:40:27.984271636 -0400
+@@ -532,7 +532,7 @@ static int spidev_release(struct inode *
+ return status;
+ }
+
+-static struct file_operations spidev_fops = {
++static const struct file_operations spidev_fops = {
+ .owner = THIS_MODULE,
+ /* REVISIT switch to aio primitives, so that userspace
+ * gets more complete API coverage. It'll simplify things
+diff -urNp linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c
+--- linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c 2009-07-23 18:40:27.989802153 -0400
+@@ -1085,7 +1085,7 @@ static ssize_t sg_write(struct file *fil
+ /*
+ * character device file operations
+ */
+-static struct file_operations sg_fops = {
++static const struct file_operations sg_fops = {
+ .owner = THIS_MODULE,
+ .open = sg_open,
+ .release = sg_close,
+diff -urNp linux-2.6.29.6/drivers/staging/android/binder.c linux-2.6.29.6/drivers/staging/android/binder.c
+--- linux-2.6.29.6/drivers/staging/android/binder.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/android/binder.c 2009-07-23 18:40:28.031683554 -0400
+@@ -2660,7 +2660,7 @@ static void binder_vma_close(struct vm_a
+ proc->vma = NULL;
+ }
+
+-static struct vm_operations_struct binder_vm_ops = {
++static const struct vm_operations_struct binder_vm_ops = {
+ .open = binder_vma_open,
+ .close = binder_vma_close,
+ };
+@@ -3464,7 +3464,7 @@ static int binder_read_proc_transaction_
+ return len < count ? len : count;
+ }
+
+-static struct file_operations binder_fops = {
++static const struct file_operations binder_fops = {
+ .owner = THIS_MODULE,
+ .poll = binder_poll,
+ .unlocked_ioctl = binder_ioctl,
+diff -urNp linux-2.6.29.6/drivers/staging/android/logger.c linux-2.6.29.6/drivers/staging/android/logger.c
+--- linux-2.6.29.6/drivers/staging/android/logger.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/android/logger.c 2009-07-23 18:40:28.043741799 -0400
+@@ -519,7 +519,7 @@ static long logger_ioctl(struct file *fi
+ return ret;
+ }
+
+-static struct file_operations logger_fops = {
++static const struct file_operations logger_fops = {
+ .owner = THIS_MODULE,
+ .read = logger_read,
+ .aio_write = logger_aio_write,
+diff -urNp linux-2.6.29.6/drivers/staging/android/ram_console.c linux-2.6.29.6/drivers/staging/android/ram_console.c
+--- linux-2.6.29.6/drivers/staging/android/ram_console.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/android/ram_console.c 2009-07-23 18:40:28.044366592 -0400
+@@ -365,7 +365,7 @@ static ssize_t ram_console_read_old(stru
+ return count;
+ }
+
+-static struct file_operations ram_console_file_ops = {
++static const struct file_operations ram_console_file_ops = {
+ .owner = THIS_MODULE,
+ .read = ram_console_read_old,
+ };
+diff -urNp linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c
+--- linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c 2009-07-23 18:40:28.047286541 -0400
+@@ -1385,7 +1385,7 @@ void comedi_unmap(struct vm_area_struct
+ mutex_unlock(&dev->mutex);
+ }
+
+-static struct vm_operations_struct comedi_vm_ops = {
++static const struct vm_operations_struct comedi_vm_ops = {
+ .close = comedi_unmap,
+ };
+
+diff -urNp linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c
+--- linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c 2009-07-23 18:40:28.056426086 -0400
+@@ -231,7 +231,7 @@ EXPORT_NO_SYMBOLS;
+ module_init(EplLinInit);
+ module_exit(EplLinExit);
+
+-static struct file_operations EplLinFileOps_g = {
++static const struct file_operations EplLinFileOps_g = {
+ .owner = THIS_MODULE,
+ .open = EplLinOpen,
+ .release = EplLinRelease,
+diff -urNp linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c
+--- linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c 2009-07-23 18:40:28.061800902 -0400
+@@ -1717,7 +1717,7 @@ static int go7007_vm_fault(struct vm_are
+ return 0;
+ }
+
+-static struct vm_operations_struct go7007_vm_ops = {
++static const struct vm_operations_struct go7007_vm_ops = {
+ .open = go7007_vm_open,
+ .close = go7007_vm_close,
+ .fault = go7007_vm_fault,
+diff -urNp linux-2.6.29.6/drivers/staging/me4000/me4000.c linux-2.6.29.6/drivers/staging/me4000/me4000.c
+--- linux-2.6.29.6/drivers/staging/me4000/me4000.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/me4000/me4000.c 2009-07-23 18:40:28.080446994 -0400
+@@ -309,7 +309,7 @@ static struct pci_driver me4000_driver =
+ .probe = me4000_probe
+ };
+
+-static struct file_operations me4000_ao_fops_sing = {
++static const struct file_operations me4000_ao_fops_sing = {
+ .owner = THIS_MODULE,
+ .write = me4000_ao_write_sing,
+ .ioctl = me4000_ao_ioctl_sing,
+@@ -317,7 +317,7 @@ static struct file_operations me4000_ao_
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_ao_fops_wrap = {
++static const struct file_operations me4000_ao_fops_wrap = {
+ .owner = THIS_MODULE,
+ .write = me4000_ao_write_wrap,
+ .ioctl = me4000_ao_ioctl_wrap,
+@@ -325,7 +325,7 @@ static struct file_operations me4000_ao_
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_ao_fops_cont = {
++static const struct file_operations me4000_ao_fops_cont = {
+ .owner = THIS_MODULE,
+ .write = me4000_ao_write_cont,
+ .poll = me4000_ao_poll_cont,
+@@ -335,14 +335,14 @@ static struct file_operations me4000_ao_
+ .fsync = me4000_ao_fsync_cont,
+ };
+
+-static struct file_operations me4000_ai_fops_sing = {
++static const struct file_operations me4000_ai_fops_sing = {
+ .owner = THIS_MODULE,
+ .ioctl = me4000_ai_ioctl_sing,
+ .open = me4000_open,
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_ai_fops_cont_sw = {
++static const struct file_operations me4000_ai_fops_cont_sw = {
+ .owner = THIS_MODULE,
+ .read = me4000_ai_read,
+ .poll = me4000_ai_poll,
+@@ -352,7 +352,7 @@ static struct file_operations me4000_ai_
+ .fasync = me4000_ai_fasync,
+ };
+
+-static struct file_operations me4000_ai_fops_cont_et = {
++static const struct file_operations me4000_ai_fops_cont_et = {
+ .owner = THIS_MODULE,
+ .read = me4000_ai_read,
+ .poll = me4000_ai_poll,
+@@ -361,7 +361,7 @@ static struct file_operations me4000_ai_
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_ai_fops_cont_et_value = {
++static const struct file_operations me4000_ai_fops_cont_et_value = {
+ .owner = THIS_MODULE,
+ .read = me4000_ai_read,
+ .poll = me4000_ai_poll,
+@@ -370,7 +370,7 @@ static struct file_operations me4000_ai_
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_ai_fops_cont_et_chanlist = {
++static const struct file_operations me4000_ai_fops_cont_et_chanlist = {
+ .owner = THIS_MODULE,
+ .read = me4000_ai_read,
+ .poll = me4000_ai_poll,
+@@ -379,21 +379,21 @@ static struct file_operations me4000_ai_
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_dio_fops = {
++static const struct file_operations me4000_dio_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = me4000_dio_ioctl,
+ .open = me4000_open,
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_cnt_fops = {
++static const struct file_operations me4000_cnt_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = me4000_cnt_ioctl,
+ .open = me4000_open,
+ .release = me4000_release,
+ };
+
+-static struct file_operations me4000_ext_int_fops = {
++static const struct file_operations me4000_ext_int_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = me4000_ext_int_ioctl,
+ .open = me4000_open,
+@@ -401,13 +401,13 @@ static struct file_operations me4000_ext
+ .fasync = me4000_ext_int_fasync,
+ };
+
+-static struct file_operations *me4000_ao_fops_array[] = {
++static const struct file_operations *me4000_ao_fops_array[] = {
+ &me4000_ao_fops_sing, // single operations
+ &me4000_ao_fops_wrap, // wraparound operations
+ &me4000_ao_fops_cont, // continous operations
+ };
+
+-static struct file_operations *me4000_ai_fops_array[] = {
++static const struct file_operations *me4000_ai_fops_array[] = {
+ &me4000_ai_fops_sing, // single operations
+ &me4000_ai_fops_cont_sw, // continuous operations with software start
+ &me4000_ai_fops_cont_et, // continous operations with external trigger
+diff -urNp linux-2.6.29.6/drivers/staging/meilhaus/memain.c linux-2.6.29.6/drivers/staging/meilhaus/memain.c
+--- linux-2.6.29.6/drivers/staging/meilhaus/memain.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/meilhaus/memain.c 2009-07-23 18:40:28.086506170 -0400
+@@ -107,7 +107,7 @@ static struct cdev *cdevp;
+ /* File operations provided by the module
+ */
+
+-static struct file_operations me_file_operations = {
++static const struct file_operations me_file_operations = {
+ .owner = THIS_MODULE,
+ .ioctl = me_ioctl,
+ .open = me_open,
+diff -urNp linux-2.6.29.6/drivers/staging/panel/panel.c linux-2.6.29.6/drivers/staging/panel/panel.c
+--- linux-2.6.29.6/drivers/staging/panel/panel.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/panel/panel.c 2009-07-23 18:40:28.087439625 -0400
+@@ -1263,7 +1263,7 @@ static int lcd_release(struct inode *ino
+ return 0;
+ }
+
+-static struct file_operations lcd_fops = {
++static const struct file_operations lcd_fops = {
+ .write = lcd_write,
+ .open = lcd_open,
+ .release = lcd_release,
+@@ -1519,7 +1519,7 @@ static int keypad_release(struct inode *
+ return 0;
+ }
+
+-static struct file_operations keypad_fops = {
++static const struct file_operations keypad_fops = {
+ .read = keypad_read, /* read */
+ .open = keypad_open, /* open */
+ .release = keypad_release, /* close */
+diff -urNp linux-2.6.29.6/drivers/staging/poch/poch.c linux-2.6.29.6/drivers/staging/poch/poch.c
+--- linux-2.6.29.6/drivers/staging/poch/poch.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/poch/poch.c 2009-07-23 18:40:28.100950832 -0400
+@@ -1056,7 +1056,7 @@ static int poch_ioctl(struct inode *inod
+ return 0;
+ }
+
+-static struct file_operations poch_fops = {
++static const struct file_operations poch_fops = {
+ .owner = THIS_MODULE,
+ .open = poch_open,
+ .release = poch_release,
+diff -urNp linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c
+--- linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c 2009-07-23 18:40:28.104254239 -0400
+@@ -708,7 +708,7 @@ static int MapUserBuffer(struct ioctl_st
+ return 0;
+ }
+
+-static struct file_operations piusb_fops = {
++static const struct file_operations piusb_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = piusb_ioctl,
+ .open = piusb_open,
+diff -urNp linux-2.6.29.6/drivers/uio/uio.c linux-2.6.29.6/drivers/uio/uio.c
+--- linux-2.6.29.6/drivers/uio/uio.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/uio/uio.c 2009-07-23 18:40:28.106388317 -0400
+@@ -636,7 +636,7 @@ static int uio_vma_fault(struct vm_area_
+ return 0;
+ }
+
+-static struct vm_operations_struct uio_vm_ops = {
++static const struct vm_operations_struct uio_vm_ops = {
+ .open = uio_vma_open,
+ .close = uio_vma_close,
+ .fault = uio_vma_fault,
diff -urNp linux-2.6.29.6/drivers/usb/atm/usbatm.c linux-2.6.29.6/drivers/usb/atm/usbatm.c
--- linux-2.6.29.6/drivers/usb/atm/usbatm.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/atm/usbatm.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/atm/usbatm.c 2009-07-23 17:34:32.135751373 -0400
@@ -333,7 +333,7 @@ static void usbatm_extract_one_cell(stru
if (printk_ratelimit())
atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
@@ -18538,7 +20300,7 @@ diff -urNp linux-2.6.29.6/drivers/usb/atm/usbatm.c linux-2.6.29.6/drivers/usb/at
}
diff -urNp linux-2.6.29.6/drivers/usb/class/cdc-acm.c linux-2.6.29.6/drivers/usb/class/cdc-acm.c
--- linux-2.6.29.6/drivers/usb/class/cdc-acm.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/class/cdc-acm.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/class/cdc-acm.c 2009-07-23 17:34:32.135751373 -0400
@@ -1397,7 +1397,7 @@ static struct usb_device_id acm_ids[] =
USB_CDC_ACM_PROTO_AT_CDMA) },
@@ -18550,7 +20312,7 @@ diff -urNp linux-2.6.29.6/drivers/usb/class/cdc-acm.c linux-2.6.29.6/drivers/usb
MODULE_DEVICE_TABLE (usb, acm_ids);
diff -urNp linux-2.6.29.6/drivers/usb/class/usblp.c linux-2.6.29.6/drivers/usb/class/usblp.c
--- linux-2.6.29.6/drivers/usb/class/usblp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/class/usblp.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/class/usblp.c 2009-07-23 17:34:32.136781202 -0400
@@ -228,7 +228,7 @@ static const struct quirk_printer_struct
{ 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */
{ 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */
@@ -18569,9 +20331,21 @@ diff -urNp linux-2.6.29.6/drivers/usb/class/usblp.c linux-2.6.29.6/drivers/usb/c
};
MODULE_DEVICE_TABLE (usb, usblp_ids);
+diff -urNp linux-2.6.29.6/drivers/usb/class/usbtmc.c linux-2.6.29.6/drivers/usb/class/usbtmc.c
+--- linux-2.6.29.6/drivers/usb/class/usbtmc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/class/usbtmc.c 2009-07-23 18:40:28.107490981 -0400
+@@ -954,7 +954,7 @@ static long usbtmc_ioctl(struct file *fi
+ return retval;
+ }
+
+-static struct file_operations fops = {
++static const struct file_operations fops = {
+ .owner = THIS_MODULE,
+ .read = usbtmc_read,
+ .write = usbtmc_write,
diff -urNp linux-2.6.29.6/drivers/usb/core/hub.c linux-2.6.29.6/drivers/usb/core/hub.c
--- linux-2.6.29.6/drivers/usb/core/hub.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/core/hub.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/core/hub.c 2009-07-23 17:34:32.136781202 -0400
@@ -3193,7 +3193,7 @@ static struct usb_device_id hub_id_table
.bDeviceClass = USB_CLASS_HUB},
{ .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS,
@@ -18581,9 +20355,30 @@ diff -urNp linux-2.6.29.6/drivers/usb/core/hub.c linux-2.6.29.6/drivers/usb/core
};
MODULE_DEVICE_TABLE (usb, hub_id_table);
+diff -urNp linux-2.6.29.6/drivers/usb/core/inode.c linux-2.6.29.6/drivers/usb/core/inode.c
+--- linux-2.6.29.6/drivers/usb/core/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/core/inode.c 2009-07-23 18:40:28.126687499 -0400
+@@ -47,7 +47,7 @@
+ #define USBFS_DEFAULT_BUSMODE (S_IXUGO | S_IRUGO)
+ #define USBFS_DEFAULT_LISTMODE S_IRUGO
+
+-static struct super_operations usbfs_ops;
++static const struct super_operations usbfs_ops;
+ static const struct file_operations default_file_operations;
+ static struct vfsmount *usbfs_mount;
+ static int usbfs_mount_count; /* = 0 */
+@@ -444,7 +444,7 @@ static const struct file_operations defa
+ .llseek = default_file_lseek,
+ };
+
+-static struct super_operations usbfs_ops = {
++static const struct super_operations usbfs_ops = {
+ .statfs = simple_statfs,
+ .drop_inode = generic_delete_inode,
+ .remount_fs = remount,
diff -urNp linux-2.6.29.6/drivers/usb/core/message.c linux-2.6.29.6/drivers/usb/core/message.c
--- linux-2.6.29.6/drivers/usb/core/message.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/core/message.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/core/message.c 2009-07-23 17:34:32.137720292 -0400
@@ -866,7 +866,8 @@ char *usb_cache_string(struct usb_device
if (buf) {
len = usb_string(udev, index, buf, 256);
@@ -18594,9 +20389,33 @@ diff -urNp linux-2.6.29.6/drivers/usb/core/message.c linux-2.6.29.6/drivers/usb/
if (!smallbuf)
return buf;
memcpy(smallbuf, buf, len);
+diff -urNp linux-2.6.29.6/drivers/usb/gadget/inode.c linux-2.6.29.6/drivers/usb/gadget/inode.c
+--- linux-2.6.29.6/drivers/usb/gadget/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/gadget/inode.c 2009-07-23 18:40:28.126687499 -0400
+@@ -2035,7 +2035,7 @@ gadgetfs_create_file (struct super_block
+ return inode;
+ }
+
+-static struct super_operations gadget_fs_operations = {
++static const struct super_operations gadget_fs_operations = {
+ .statfs = simple_statfs,
+ .drop_inode = generic_delete_inode,
+ };
+diff -urNp linux-2.6.29.6/drivers/usb/gadget/printer.c linux-2.6.29.6/drivers/usb/gadget/printer.c
+--- linux-2.6.29.6/drivers/usb/gadget/printer.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/gadget/printer.c 2009-07-23 18:40:28.127445994 -0400
+@@ -875,7 +875,7 @@ printer_ioctl(struct file *fd, unsigned
+ }
+
+ /* used after endpoint configuration */
+-static struct file_operations printer_io_operations = {
++static const struct file_operations printer_io_operations = {
+ .owner = THIS_MODULE,
+ .open = printer_open,
+ .read = printer_read,
diff -urNp linux-2.6.29.6/drivers/usb/host/ehci-pci.c linux-2.6.29.6/drivers/usb/host/ehci-pci.c
--- linux-2.6.29.6/drivers/usb/host/ehci-pci.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/host/ehci-pci.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/host/ehci-pci.c 2009-07-23 17:34:32.137720292 -0400
@@ -418,7 +418,7 @@ static const struct pci_device_id pci_id
PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0),
.driver_data = (unsigned long) &ehci_pci_hc_driver,
@@ -18608,7 +20427,7 @@ diff -urNp linux-2.6.29.6/drivers/usb/host/ehci-pci.c linux-2.6.29.6/drivers/usb
diff -urNp linux-2.6.29.6/drivers/usb/host/uhci-hcd.c linux-2.6.29.6/drivers/usb/host/uhci-hcd.c
--- linux-2.6.29.6/drivers/usb/host/uhci-hcd.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/host/uhci-hcd.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/host/uhci-hcd.c 2009-07-23 17:34:32.138862216 -0400
@@ -927,7 +927,7 @@ static const struct pci_device_id uhci_p
/* handle any USB UHCI controller */
PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0),
@@ -18618,9 +20437,51 @@ diff -urNp linux-2.6.29.6/drivers/usb/host/uhci-hcd.c linux-2.6.29.6/drivers/usb
};
MODULE_DEVICE_TABLE(pci, uhci_pci_ids);
+diff -urNp linux-2.6.29.6/drivers/usb/host/whci/debug.c linux-2.6.29.6/drivers/usb/host/whci/debug.c
+--- linux-2.6.29.6/drivers/usb/host/whci/debug.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/host/whci/debug.c 2009-07-23 18:40:28.128284960 -0400
+@@ -134,7 +134,7 @@ static int pzl_open(struct inode *inode,
+ return single_open(file, pzl_print, inode->i_private);
+ }
+
+-static struct file_operations di_fops = {
++static const struct file_operations di_fops = {
+ .open = di_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -142,7 +142,7 @@ static struct file_operations di_fops =
+ .owner = THIS_MODULE,
+ };
+
+-static struct file_operations asl_fops = {
++static const struct file_operations asl_fops = {
+ .open = asl_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -150,7 +150,7 @@ static struct file_operations asl_fops =
+ .owner = THIS_MODULE,
+ };
+
+-static struct file_operations pzl_fops = {
++static const struct file_operations pzl_fops = {
+ .open = pzl_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+diff -urNp linux-2.6.29.6/drivers/usb/mon/mon_bin.c linux-2.6.29.6/drivers/usb/mon/mon_bin.c
+--- linux-2.6.29.6/drivers/usb/mon/mon_bin.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/mon/mon_bin.c 2009-07-23 18:40:28.128284960 -0400
+@@ -1094,7 +1094,7 @@ static int mon_bin_vma_fault(struct vm_a
+ return 0;
+ }
+
+-static struct vm_operations_struct mon_bin_vm_ops = {
++static const struct vm_operations_struct mon_bin_vm_ops = {
+ .open = mon_bin_vma_open,
+ .close = mon_bin_vma_close,
+ .fault = mon_bin_vma_fault,
diff -urNp linux-2.6.29.6/drivers/usb/storage/debug.h linux-2.6.29.6/drivers/usb/storage/debug.h
--- linux-2.6.29.6/drivers/usb/storage/debug.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/storage/debug.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/storage/debug.h 2009-07-23 17:34:32.138862216 -0400
@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char
#define US_DEBUGPX(x...) printk( x )
#define US_DEBUG(x) x
@@ -18636,7 +20497,7 @@ diff -urNp linux-2.6.29.6/drivers/usb/storage/debug.h linux-2.6.29.6/drivers/usb
#endif
diff -urNp linux-2.6.29.6/drivers/usb/storage/usb.c linux-2.6.29.6/drivers/usb/storage/usb.c
--- linux-2.6.29.6/drivers/usb/storage/usb.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/usb/storage/usb.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/usb/storage/usb.c 2009-07-23 17:34:32.138862216 -0400
@@ -141,7 +141,7 @@ static struct usb_device_id storage_usb_
#undef COMPLIANT_DEV
#undef USUAL_DEV
@@ -18655,9 +20516,39 @@ diff -urNp linux-2.6.29.6/drivers/usb/storage/usb.c linux-2.6.29.6/drivers/usb/s
};
+diff -urNp linux-2.6.29.6/drivers/uwb/uwb-debug.c linux-2.6.29.6/drivers/uwb/uwb-debug.c
+--- linux-2.6.29.6/drivers/uwb/uwb-debug.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/uwb/uwb-debug.c 2009-07-23 18:40:28.137381953 -0400
+@@ -205,7 +205,7 @@ static ssize_t command_write(struct file
+ return ret < 0 ? ret : len;
+ }
+
+-static struct file_operations command_fops = {
++static const struct file_operations command_fops = {
+ .open = command_open,
+ .write = command_write,
+ .read = NULL,
+@@ -255,7 +255,7 @@ static int reservations_open(struct inod
+ return single_open(file, reservations_print, inode->i_private);
+ }
+
+-static struct file_operations reservations_fops = {
++static const struct file_operations reservations_fops = {
+ .open = reservations_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -283,7 +283,7 @@ static int drp_avail_open(struct inode *
+ return single_open(file, drp_avail_print, inode->i_private);
+ }
+
+-static struct file_operations drp_avail_fops = {
++static const struct file_operations drp_avail_fops = {
+ .open = drp_avail_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
diff -urNp linux-2.6.29.6/drivers/uwb/wlp/messages.c linux-2.6.29.6/drivers/uwb/wlp/messages.c
--- linux-2.6.29.6/drivers/uwb/wlp/messages.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/uwb/wlp/messages.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/uwb/wlp/messages.c 2009-07-23 17:34:32.139921746 -0400
@@ -903,7 +903,7 @@ int wlp_parse_f0(struct wlp *wlp, struct
size_t len = skb->len;
size_t used;
@@ -18667,9 +20558,21 @@ diff -urNp linux-2.6.29.6/drivers/uwb/wlp/messages.c linux-2.6.29.6/drivers/uwb/
enum wlp_assc_error assc_err;
char enonce_buf[WLP_WSS_NONCE_STRSIZE];
char rnonce_buf[WLP_WSS_NONCE_STRSIZE];
+diff -urNp linux-2.6.29.6/drivers/video/fb_defio.c linux-2.6.29.6/drivers/video/fb_defio.c
+--- linux-2.6.29.6/drivers/video/fb_defio.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/video/fb_defio.c 2009-07-23 18:40:28.143844676 -0400
+@@ -125,7 +125,7 @@ page_already_added:
+ return 0;
+ }
+
+-static struct vm_operations_struct fb_deferred_io_vm_ops = {
++static const struct vm_operations_struct fb_deferred_io_vm_ops = {
+ .fault = fb_deferred_io_fault,
+ .page_mkwrite = fb_deferred_io_mkwrite,
+ };
diff -urNp linux-2.6.29.6/drivers/video/fbmem.c linux-2.6.29.6/drivers/video/fbmem.c
--- linux-2.6.29.6/drivers/video/fbmem.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/fbmem.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/fbmem.c 2009-07-23 17:34:32.140710667 -0400
@@ -393,7 +393,7 @@ static void fb_do_show_logo(struct fb_in
image->dx += image->width + 8;
}
@@ -18699,7 +20602,7 @@ diff -urNp linux-2.6.29.6/drivers/video/fbmem.c linux-2.6.29.6/drivers/video/fbm
request_module("fb%d", con2fb.framebuffer);
diff -urNp linux-2.6.29.6/drivers/video/fbmon.c linux-2.6.29.6/drivers/video/fbmon.c
--- linux-2.6.29.6/drivers/video/fbmon.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/fbmon.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/fbmon.c 2009-07-23 17:34:32.140710667 -0400
@@ -45,7 +45,7 @@
#ifdef DEBUG
#define DPRINTK(fmt, args...) printk(fmt,## args)
@@ -18711,7 +20614,7 @@ diff -urNp linux-2.6.29.6/drivers/video/fbmon.c linux-2.6.29.6/drivers/video/fbm
#define FBMON_FIX_HEADER 1
diff -urNp linux-2.6.29.6/drivers/video/i810/i810_accel.c linux-2.6.29.6/drivers/video/i810/i810_accel.c
--- linux-2.6.29.6/drivers/video/i810/i810_accel.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/i810/i810_accel.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/i810/i810_accel.c 2009-07-23 17:34:32.140710667 -0400
@@ -73,6 +73,7 @@ static inline int wait_for_space(struct
}
}
@@ -18722,7 +20625,7 @@ diff -urNp linux-2.6.29.6/drivers/video/i810/i810_accel.c linux-2.6.29.6/drivers
info->pixmap.scan_align = 1;
diff -urNp linux-2.6.29.6/drivers/video/i810/i810_main.c linux-2.6.29.6/drivers/video/i810/i810_main.c
--- linux-2.6.29.6/drivers/video/i810/i810_main.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/i810/i810_main.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/i810/i810_main.c 2009-07-23 17:34:32.141886076 -0400
@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC,
@@ -18734,7 +20637,7 @@ diff -urNp linux-2.6.29.6/drivers/video/i810/i810_main.c linux-2.6.29.6/drivers/
static struct pci_driver i810fb_driver = {
diff -urNp linux-2.6.29.6/drivers/video/modedb.c linux-2.6.29.6/drivers/video/modedb.c
--- linux-2.6.29.6/drivers/video/modedb.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/modedb.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/modedb.c 2009-07-23 17:34:32.141886076 -0400
@@ -38,232 +38,232 @@ static const struct fb_videomode modedb[
{
/* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -19025,9 +20928,21 @@ diff -urNp linux-2.6.29.6/drivers/video/modedb.c linux-2.6.29.6/drivers/video/mo
},
};
+diff -urNp linux-2.6.29.6/drivers/video/omap/dispc.c linux-2.6.29.6/drivers/video/omap/dispc.c
+--- linux-2.6.29.6/drivers/video/omap/dispc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/video/omap/dispc.c 2009-07-23 18:40:28.146299850 -0400
+@@ -1011,7 +1011,7 @@ static void mmap_user_close(struct vm_ar
+ atomic_dec(&dispc.map_count[plane]);
+ }
+
+-static struct vm_operations_struct mmap_user_ops = {
++static const struct vm_operations_struct mmap_user_ops = {
+ .open = mmap_user_open,
+ .close = mmap_user_close,
+ };
diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/uvesafb.c
--- linux-2.6.29.6/drivers/video/uvesafb.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/uvesafb.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/uvesafb.c 2009-07-23 17:34:32.142789474 -0400
@@ -18,6 +18,7 @@
#include <linux/fb.h>
#include <linux/io.h>
@@ -19107,7 +21022,7 @@ diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/u
framebuffer_release(info);
diff -urNp linux-2.6.29.6/drivers/video/vesafb.c linux-2.6.29.6/drivers/video/vesafb.c
--- linux-2.6.29.6/drivers/video/vesafb.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/drivers/video/vesafb.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/drivers/video/vesafb.c 2009-07-23 17:34:32.142789474 -0400
@@ -9,6 +9,7 @@
*/
@@ -19215,9 +21130,65 @@ diff -urNp linux-2.6.29.6/drivers/video/vesafb.c linux-2.6.29.6/drivers/video/ve
if (info->screen_base)
iounmap(info->screen_base);
framebuffer_release(info);
+diff -urNp linux-2.6.29.6/drivers/watchdog/hpwdt.c linux-2.6.29.6/drivers/watchdog/hpwdt.c
+--- linux-2.6.29.6/drivers/watchdog/hpwdt.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/watchdog/hpwdt.c 2009-07-23 18:40:28.157294684 -0400
+@@ -605,7 +605,7 @@ static long hpwdt_ioctl(struct file *fil
+ /*
+ * Kernel interfaces
+ */
+-static struct file_operations hpwdt_fops = {
++static const struct file_operations hpwdt_fops = {
+ .owner = THIS_MODULE,
+ .llseek = no_llseek,
+ .write = hpwdt_write,
+diff -urNp linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c
+--- linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c 2009-07-23 18:40:28.159486351 -0400
+@@ -227,7 +227,7 @@ static long rc32434_wdt_ioctl(struct fil
+ return 0;
+ }
+
+-static struct file_operations rc32434_wdt_fops = {
++static const struct file_operations rc32434_wdt_fops = {
+ .owner = THIS_MODULE,
+ .llseek = no_llseek,
+ .write = rc32434_wdt_write,
+diff -urNp linux-2.6.29.6/fs/9p/v9fs_vfs.h linux-2.6.29.6/fs/9p/v9fs_vfs.h
+--- linux-2.6.29.6/fs/9p/v9fs_vfs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/9p/v9fs_vfs.h 2009-07-23 18:40:28.173305021 -0400
+@@ -41,8 +41,8 @@ extern struct file_system_type v9fs_fs_t
+ extern const struct address_space_operations v9fs_addr_operations;
+ extern const struct file_operations v9fs_file_operations;
+ extern const struct file_operations v9fs_dir_operations;
+-extern struct dentry_operations v9fs_dentry_operations;
+-extern struct dentry_operations v9fs_cached_dentry_operations;
++extern const struct dentry_operations v9fs_dentry_operations;
++extern const struct dentry_operations v9fs_cached_dentry_operations;
+
+ struct inode *v9fs_get_inode(struct super_block *sb, int mode);
+ ino_t v9fs_qid2ino(struct p9_qid *qid);
+diff -urNp linux-2.6.29.6/fs/9p/vfs_dentry.c linux-2.6.29.6/fs/9p/vfs_dentry.c
+--- linux-2.6.29.6/fs/9p/vfs_dentry.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/9p/vfs_dentry.c 2009-07-23 18:40:28.185251831 -0400
+@@ -104,12 +104,12 @@ void v9fs_dentry_release(struct dentry *
+ }
+ }
+
+-struct dentry_operations v9fs_cached_dentry_operations = {
++const struct dentry_operations v9fs_cached_dentry_operations = {
+ .d_delete = v9fs_cached_dentry_delete,
+ .d_release = v9fs_dentry_release,
+ };
+
+-struct dentry_operations v9fs_dentry_operations = {
++const struct dentry_operations v9fs_dentry_operations = {
+ .d_delete = v9fs_dentry_delete,
+ .d_release = v9fs_dentry_release,
+ };
diff -urNp linux-2.6.29.6/fs/9p/vfs_inode.c linux-2.6.29.6/fs/9p/vfs_inode.c
--- linux-2.6.29.6/fs/9p/vfs_inode.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/9p/vfs_inode.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/9p/vfs_inode.c 2009-07-23 17:34:32.142789474 -0400
@@ -1021,7 +1021,7 @@ static void *v9fs_vfs_follow_link(struct
static void
v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -19227,9 +21198,116 @@ diff -urNp linux-2.6.29.6/fs/9p/vfs_inode.c linux-2.6.29.6/fs/9p/vfs_inode.c
P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
IS_ERR(s) ? "<error>" : s);
+diff -urNp linux-2.6.29.6/fs/adfs/adfs.h linux-2.6.29.6/fs/adfs/adfs.h
+--- linux-2.6.29.6/fs/adfs/adfs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/adfs/adfs.h 2009-07-23 18:40:28.197959261 -0400
+@@ -86,7 +86,7 @@ void __adfs_error(struct super_block *sb
+ /* dir_*.c */
+ extern const struct inode_operations adfs_dir_inode_operations;
+ extern const struct file_operations adfs_dir_operations;
+-extern struct dentry_operations adfs_dentry_operations;
++extern const struct dentry_operations adfs_dentry_operations;
+ extern struct adfs_dir_ops adfs_f_dir_ops;
+ extern struct adfs_dir_ops adfs_fplus_dir_ops;
+
+diff -urNp linux-2.6.29.6/fs/adfs/dir.c linux-2.6.29.6/fs/adfs/dir.c
+--- linux-2.6.29.6/fs/adfs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/adfs/dir.c 2009-07-23 18:40:28.198372454 -0400
+@@ -263,7 +263,7 @@ adfs_compare(struct dentry *parent, stru
+ return 0;
+ }
+
+-struct dentry_operations adfs_dentry_operations = {
++const struct dentry_operations adfs_dentry_operations = {
+ .d_hash = adfs_hash,
+ .d_compare = adfs_compare,
+ };
+diff -urNp linux-2.6.29.6/fs/affs/affs.h linux-2.6.29.6/fs/affs/affs.h
+--- linux-2.6.29.6/fs/affs/affs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/affs/affs.h 2009-07-23 18:40:28.203573277 -0400
+@@ -199,8 +199,8 @@ extern const struct address_space_operat
+ extern const struct address_space_operations affs_aops;
+ extern const struct address_space_operations affs_aops_ofs;
+
+-extern struct dentry_operations affs_dentry_operations;
+-extern struct dentry_operations affs_dentry_operations_intl;
++extern const struct dentry_operations affs_dentry_operations;
++extern const struct dentry_operations affs_dentry_operations_intl;
+
+ static inline void
+ affs_set_blocksize(struct super_block *sb, int size)
+diff -urNp linux-2.6.29.6/fs/affs/namei.c linux-2.6.29.6/fs/affs/namei.c
+--- linux-2.6.29.6/fs/affs/namei.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/affs/namei.c 2009-07-23 18:40:28.222351680 -0400
+@@ -19,12 +19,12 @@ static int affs_intl_toupper(int ch);
+ static int affs_intl_hash_dentry(struct dentry *, struct qstr *);
+ static int affs_intl_compare_dentry(struct dentry *, struct qstr *, struct qstr *);
+
+-struct dentry_operations affs_dentry_operations = {
++const struct dentry_operations affs_dentry_operations = {
+ .d_hash = affs_hash_dentry,
+ .d_compare = affs_compare_dentry,
+ };
+
+-static struct dentry_operations affs_intl_dentry_operations = {
++static const struct dentry_operations affs_intl_dentry_operations = {
+ .d_hash = affs_intl_hash_dentry,
+ .d_compare = affs_intl_compare_dentry,
+ };
+diff -urNp linux-2.6.29.6/fs/afs/dir.c linux-2.6.29.6/fs/afs/dir.c
+--- linux-2.6.29.6/fs/afs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/afs/dir.c 2009-07-23 18:40:28.235494421 -0400
+@@ -62,7 +62,7 @@ const struct inode_operations afs_dir_in
+ .setattr = afs_setattr,
+ };
+
+-static struct dentry_operations afs_fs_dentry_operations = {
++static const struct dentry_operations afs_fs_dentry_operations = {
+ .d_revalidate = afs_d_revalidate,
+ .d_delete = afs_d_delete,
+ .d_release = afs_d_release,
+diff -urNp linux-2.6.29.6/fs/afs/proc.c linux-2.6.29.6/fs/afs/proc.c
+--- linux-2.6.29.6/fs/afs/proc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/afs/proc.c 2009-07-23 18:40:28.235494421 -0400
+@@ -28,7 +28,7 @@ static int afs_proc_cells_show(struct se
+ static ssize_t afs_proc_cells_write(struct file *file, const char __user *buf,
+ size_t size, loff_t *_pos);
+
+-static struct seq_operations afs_proc_cells_ops = {
++static const struct seq_operations afs_proc_cells_ops = {
+ .start = afs_proc_cells_start,
+ .next = afs_proc_cells_next,
+ .stop = afs_proc_cells_stop,
+@@ -70,7 +70,7 @@ static void *afs_proc_cell_volumes_next(
+ static void afs_proc_cell_volumes_stop(struct seq_file *p, void *v);
+ static int afs_proc_cell_volumes_show(struct seq_file *m, void *v);
+
+-static struct seq_operations afs_proc_cell_volumes_ops = {
++static const struct seq_operations afs_proc_cell_volumes_ops = {
+ .start = afs_proc_cell_volumes_start,
+ .next = afs_proc_cell_volumes_next,
+ .stop = afs_proc_cell_volumes_stop,
+@@ -95,7 +95,7 @@ static void *afs_proc_cell_vlservers_nex
+ static void afs_proc_cell_vlservers_stop(struct seq_file *p, void *v);
+ static int afs_proc_cell_vlservers_show(struct seq_file *m, void *v);
+
+-static struct seq_operations afs_proc_cell_vlservers_ops = {
++static const struct seq_operations afs_proc_cell_vlservers_ops = {
+ .start = afs_proc_cell_vlservers_start,
+ .next = afs_proc_cell_vlservers_next,
+ .stop = afs_proc_cell_vlservers_stop,
+@@ -119,7 +119,7 @@ static void *afs_proc_cell_servers_next(
+ static void afs_proc_cell_servers_stop(struct seq_file *p, void *v);
+ static int afs_proc_cell_servers_show(struct seq_file *m, void *v);
+
+-static struct seq_operations afs_proc_cell_servers_ops = {
++static const struct seq_operations afs_proc_cell_servers_ops = {
+ .start = afs_proc_cell_servers_start,
+ .next = afs_proc_cell_servers_next,
+ .stop = afs_proc_cell_servers_stop,
diff -urNp linux-2.6.29.6/fs/aio.c linux-2.6.29.6/fs/aio.c
--- linux-2.6.29.6/fs/aio.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/aio.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/aio.c 2009-07-23 17:34:32.143911823 -0400
@@ -114,7 +114,7 @@ static int aio_setup_ring(struct kioctx
size += sizeof(struct io_event) * nr_events;
nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
@@ -19239,9 +21317,30 @@ diff -urNp linux-2.6.29.6/fs/aio.c linux-2.6.29.6/fs/aio.c
return -EINVAL;
nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
+diff -urNp linux-2.6.29.6/fs/anon_inodes.c linux-2.6.29.6/fs/anon_inodes.c
+--- linux-2.6.29.6/fs/anon_inodes.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/anon_inodes.c 2009-07-23 18:40:28.246761754 -0400
+@@ -48,7 +48,7 @@ static struct file_system_type anon_inod
+ .get_sb = anon_inodefs_get_sb,
+ .kill_sb = kill_anon_super,
+ };
+-static struct dentry_operations anon_inodefs_dentry_operations = {
++static const struct dentry_operations anon_inodefs_dentry_operations = {
+ .d_delete = anon_inodefs_delete_dentry,
+ };
+
diff -urNp linux-2.6.29.6/fs/autofs/root.c linux-2.6.29.6/fs/autofs/root.c
--- linux-2.6.29.6/fs/autofs/root.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/autofs/root.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/autofs/root.c 2009-07-23 18:40:27.469277997 -0400
+@@ -192,7 +192,7 @@ static int autofs_revalidate(struct dent
+ return 1;
+ }
+
+-static struct dentry_operations autofs_dentry_operations = {
++static const struct dentry_operations autofs_dentry_operations = {
+ .d_revalidate = autofs_revalidate,
+ };
+
@@ -299,7 +299,8 @@ static int autofs_root_symlink(struct in
set_bit(n,sbi->symlink_bitmap);
sl = &sbi->symlink[n];
@@ -19252,9 +21351,40 @@ diff -urNp linux-2.6.29.6/fs/autofs/root.c linux-2.6.29.6/fs/autofs/root.c
if (!sl->data) {
clear_bit(n,sbi->symlink_bitmap);
unlock_kernel();
+diff -urNp linux-2.6.29.6/fs/autofs4/inode.c linux-2.6.29.6/fs/autofs4/inode.c
+--- linux-2.6.29.6/fs/autofs4/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/autofs4/inode.c 2009-07-23 18:40:28.247289762 -0400
+@@ -310,7 +310,7 @@ static struct autofs_info *autofs4_mkroo
+ return ino;
+ }
+
+-static struct dentry_operations autofs4_sb_dentry_operations = {
++static const struct dentry_operations autofs4_sb_dentry_operations = {
+ .d_release = autofs4_dentry_release,
+ };
+
+diff -urNp linux-2.6.29.6/fs/autofs4/root.c linux-2.6.29.6/fs/autofs4/root.c
+--- linux-2.6.29.6/fs/autofs4/root.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/autofs4/root.c 2009-07-23 18:40:28.260399846 -0400
+@@ -349,13 +349,13 @@ void autofs4_dentry_release(struct dentr
+ }
+
+ /* For dentries of directories in the root dir */
+-static struct dentry_operations autofs4_root_dentry_operations = {
++static const struct dentry_operations autofs4_root_dentry_operations = {
+ .d_revalidate = autofs4_revalidate,
+ .d_release = autofs4_dentry_release,
+ };
+
+ /* For other dentries */
+-static struct dentry_operations autofs4_dentry_operations = {
++static const struct dentry_operations autofs4_dentry_operations = {
+ .d_revalidate = autofs4_revalidate,
+ .d_release = autofs4_dentry_release,
+ };
diff -urNp linux-2.6.29.6/fs/autofs4/symlink.c linux-2.6.29.6/fs/autofs4/symlink.c
--- linux-2.6.29.6/fs/autofs4/symlink.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/autofs4/symlink.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/autofs4/symlink.c 2009-07-23 17:34:32.143911823 -0400
@@ -15,7 +15,7 @@
static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd)
{
@@ -19266,7 +21396,7 @@ diff -urNp linux-2.6.29.6/fs/autofs4/symlink.c linux-2.6.29.6/fs/autofs4/symlink
diff -urNp linux-2.6.29.6/fs/befs/linuxvfs.c linux-2.6.29.6/fs/befs/linuxvfs.c
--- linux-2.6.29.6/fs/befs/linuxvfs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/befs/linuxvfs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/befs/linuxvfs.c 2009-07-23 17:34:32.144798896 -0400
@@ -493,7 +493,7 @@ static void befs_put_link(struct dentry
{
befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
@@ -19278,7 +21408,7 @@ diff -urNp linux-2.6.29.6/fs/befs/linuxvfs.c linux-2.6.29.6/fs/befs/linuxvfs.c
}
diff -urNp linux-2.6.29.6/fs/binfmt_aout.c linux-2.6.29.6/fs/binfmt_aout.c
--- linux-2.6.29.6/fs/binfmt_aout.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/binfmt_aout.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/binfmt_aout.c 2009-07-23 17:34:32.144798896 -0400
@@ -16,6 +16,7 @@
#include <linux/string.h>
#include <linux/fs.h>
@@ -19348,7 +21478,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_aout.c linux-2.6.29.6/fs/binfmt_aout.c
up_write(&current->mm->mmap_sem);
diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c
--- linux-2.6.29.6/fs/binfmt_elf.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/binfmt_elf.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/binfmt_elf.c 2009-07-23 17:34:32.146933187 -0400
@@ -42,6 +42,10 @@
#include <asm/param.h>
#include <asm/page.h>
@@ -19983,7 +22113,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c
return register_binfmt(&elf_format);
diff -urNp linux-2.6.29.6/fs/binfmt_flat.c linux-2.6.29.6/fs/binfmt_flat.c
--- linux-2.6.29.6/fs/binfmt_flat.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/binfmt_flat.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/binfmt_flat.c 2009-07-23 17:34:32.148887586 -0400
@@ -554,7 +554,9 @@ static int load_flat_file(struct linux_b
realdatastart = (unsigned long) -ENOMEM;
printk("Unable to allocate RAM for process data, errno %d\n",
@@ -20018,7 +22148,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_flat.c linux-2.6.29.6/fs/binfmt_flat.c
}
diff -urNp linux-2.6.29.6/fs/binfmt_misc.c linux-2.6.29.6/fs/binfmt_misc.c
--- linux-2.6.29.6/fs/binfmt_misc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/binfmt_misc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/binfmt_misc.c 2009-07-23 17:34:32.148887586 -0400
@@ -693,7 +693,7 @@ static int bm_fill_super(struct super_bl
static struct tree_descr bm_files[] = {
[2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO},
@@ -20030,7 +22160,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_misc.c linux-2.6.29.6/fs/binfmt_misc.c
if (!err)
diff -urNp linux-2.6.29.6/fs/bio.c linux-2.6.29.6/fs/bio.c
--- linux-2.6.29.6/fs/bio.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/bio.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/bio.c 2009-07-23 17:34:32.148887586 -0400
@@ -710,7 +710,7 @@ static int __bio_copy_iov(struct bio *bi
while (bv_len && iov_idx < iov_count) {
@@ -20040,9 +22170,168 @@ diff -urNp linux-2.6.29.6/fs/bio.c linux-2.6.29.6/fs/bio.c
bytes = min_t(unsigned int,
iov[iov_idx].iov_len - iov_off, bv_len);
+diff -urNp linux-2.6.29.6/fs/btrfs/ctree.h linux-2.6.29.6/fs/btrfs/ctree.h
+--- linux-2.6.29.6/fs/btrfs/ctree.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/btrfs/ctree.h 2009-07-23 18:40:28.276499409 -0400
+@@ -2099,7 +2099,7 @@ int btrfs_sync_file(struct file *file, s
+ int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end,
+ int skip_pinned);
+ int btrfs_check_file(struct btrfs_root *root, struct inode *inode);
+-extern struct file_operations btrfs_file_operations;
++extern const struct file_operations btrfs_file_operations;
+ int btrfs_drop_extents(struct btrfs_trans_handle *trans,
+ struct btrfs_root *root, struct inode *inode,
+ u64 start, u64 end, u64 inline_limit, u64 *hint_block);
+diff -urNp linux-2.6.29.6/fs/btrfs/disk-io.c linux-2.6.29.6/fs/btrfs/disk-io.c
+--- linux-2.6.29.6/fs/btrfs/disk-io.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/btrfs/disk-io.c 2009-07-23 18:40:28.282751578 -0400
+@@ -768,7 +768,7 @@ static int btree_writepage(struct page *
+ }
+ #endif
+
+-static struct address_space_operations btree_aops = {
++static const struct address_space_operations btree_aops = {
+ .readpage = btree_readpage,
+ .writepage = btree_writepage,
+ .writepages = btree_writepages,
+diff -urNp linux-2.6.29.6/fs/btrfs/file.c linux-2.6.29.6/fs/btrfs/file.c
+--- linux-2.6.29.6/fs/btrfs/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/btrfs/file.c 2009-07-23 18:40:28.305635485 -0400
+@@ -1268,7 +1268,7 @@ out:
+ return ret > 0 ? EIO : ret;
+ }
+
+-static struct vm_operations_struct btrfs_file_vm_ops = {
++static const struct vm_operations_struct btrfs_file_vm_ops = {
+ .fault = filemap_fault,
+ .page_mkwrite = btrfs_page_mkwrite,
+ };
+@@ -1280,7 +1280,7 @@ static int btrfs_file_mmap(struct file *
+ return 0;
+ }
+
+-struct file_operations btrfs_file_operations = {
++const struct file_operations btrfs_file_operations = {
+ .llseek = generic_file_llseek,
+ .read = do_sync_read,
+ .aio_read = generic_file_aio_read,
+diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c
+--- linux-2.6.29.6/fs/btrfs/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/btrfs/inode.c 2009-07-23 18:40:28.316264775 -0400
+@@ -57,14 +57,14 @@ struct btrfs_iget_args {
+ struct btrfs_root *root;
+ };
+
+-static struct inode_operations btrfs_dir_inode_operations;
+-static struct inode_operations btrfs_symlink_inode_operations;
+-static struct inode_operations btrfs_dir_ro_inode_operations;
+-static struct inode_operations btrfs_special_inode_operations;
+-static struct inode_operations btrfs_file_inode_operations;
+-static struct address_space_operations btrfs_aops;
+-static struct address_space_operations btrfs_symlink_aops;
+-static struct file_operations btrfs_dir_file_operations;
++static const struct inode_operations btrfs_dir_inode_operations;
++static const struct inode_operations btrfs_symlink_inode_operations;
++static const struct inode_operations btrfs_dir_ro_inode_operations;
++static const struct inode_operations btrfs_special_inode_operations;
++static const struct inode_operations btrfs_file_inode_operations;
++static const struct address_space_operations btrfs_aops;
++static const struct address_space_operations btrfs_symlink_aops;
++static const struct file_operations btrfs_dir_file_operations;
+ static struct extent_io_ops btrfs_extent_io_ops;
+
+ static struct kmem_cache *btrfs_inode_cachep;
+@@ -4955,7 +4955,7 @@ static int btrfs_permission(struct inode
+ return generic_permission(inode, mask, btrfs_check_acl);
+ }
+
+-static struct inode_operations btrfs_dir_inode_operations = {
++static const struct inode_operations btrfs_dir_inode_operations = {
+ .getattr = btrfs_getattr,
+ .lookup = btrfs_lookup,
+ .create = btrfs_create,
+@@ -4973,11 +4973,11 @@ static struct inode_operations btrfs_dir
+ .removexattr = btrfs_removexattr,
+ .permission = btrfs_permission,
+ };
+-static struct inode_operations btrfs_dir_ro_inode_operations = {
++static const struct inode_operations btrfs_dir_ro_inode_operations = {
+ .lookup = btrfs_lookup,
+ .permission = btrfs_permission,
+ };
+-static struct file_operations btrfs_dir_file_operations = {
++static const struct file_operations btrfs_dir_file_operations = {
+ .llseek = generic_file_llseek,
+ .read = generic_read_dir,
+ .readdir = btrfs_real_readdir,
+@@ -5013,7 +5013,7 @@ static struct extent_io_ops btrfs_extent
+ *
+ * For now we're avoiding this by dropping bmap.
+ */
+-static struct address_space_operations btrfs_aops = {
++static const struct address_space_operations btrfs_aops = {
+ .readpage = btrfs_readpage,
+ .writepage = btrfs_writepage,
+ .writepages = btrfs_writepages,
+@@ -5025,14 +5025,14 @@ static struct address_space_operations b
+ .set_page_dirty = btrfs_set_page_dirty,
+ };
+
+-static struct address_space_operations btrfs_symlink_aops = {
++static const struct address_space_operations btrfs_symlink_aops = {
+ .readpage = btrfs_readpage,
+ .writepage = btrfs_writepage,
+ .invalidatepage = btrfs_invalidatepage,
+ .releasepage = btrfs_releasepage,
+ };
+
+-static struct inode_operations btrfs_file_inode_operations = {
++static const struct inode_operations btrfs_file_inode_operations = {
+ .truncate = btrfs_truncate,
+ .getattr = btrfs_getattr,
+ .setattr = btrfs_setattr,
+@@ -5044,7 +5044,7 @@ static struct inode_operations btrfs_fil
+ .fallocate = btrfs_fallocate,
+ .fiemap = btrfs_fiemap,
+ };
+-static struct inode_operations btrfs_special_inode_operations = {
++static const struct inode_operations btrfs_special_inode_operations = {
+ .getattr = btrfs_getattr,
+ .setattr = btrfs_setattr,
+ .permission = btrfs_permission,
+@@ -5053,7 +5053,7 @@ static struct inode_operations btrfs_spe
+ .listxattr = btrfs_listxattr,
+ .removexattr = btrfs_removexattr,
+ };
+-static struct inode_operations btrfs_symlink_inode_operations = {
++static const struct inode_operations btrfs_symlink_inode_operations = {
+ .readlink = generic_readlink,
+ .follow_link = page_follow_link_light,
+ .put_link = page_put_link,
+diff -urNp linux-2.6.29.6/fs/btrfs/super.c linux-2.6.29.6/fs/btrfs/super.c
+--- linux-2.6.29.6/fs/btrfs/super.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/btrfs/super.c 2009-07-23 18:40:28.317383091 -0400
+@@ -52,7 +52,7 @@
+ #include "compression.h"
+
+
+-static struct super_operations btrfs_super_ops;
++static const struct super_operations btrfs_super_ops;
+
+ static void btrfs_put_super(struct super_block *sb)
+ {
+@@ -625,7 +625,7 @@ static int btrfs_unfreeze(struct super_b
+ return 0;
+ }
+
+-static struct super_operations btrfs_super_ops = {
++static const struct super_operations btrfs_super_ops = {
+ .delete_inode = btrfs_delete_inode,
+ .put_super = btrfs_put_super,
+ .write_super = btrfs_write_super,
diff -urNp linux-2.6.29.6/fs/buffer.c linux-2.6.29.6/fs/buffer.c
--- linux-2.6.29.6/fs/buffer.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/buffer.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/buffer.c 2009-07-23 17:34:32.149864089 -0400
@@ -25,6 +25,7 @@
#include <linux/percpu.h>
#include <linux/slab.h>
@@ -20059,9 +22348,44 @@ diff -urNp linux-2.6.29.6/fs/buffer.c linux-2.6.29.6/fs/buffer.c
if (limit != RLIM_INFINITY && size > (loff_t)limit) {
send_sig(SIGXFSZ, current, 0);
goto out;
+diff -urNp linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c
+--- linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c 2009-07-23 18:40:28.330897960 -0400
+@@ -387,7 +387,7 @@ out_err:
+ goto out;
+ }
+
+-struct inode_operations cifs_dfs_referral_inode_operations = {
++const struct inode_operations cifs_dfs_referral_inode_operations = {
+ .follow_link = cifs_dfs_follow_mountpoint,
+ };
+
+diff -urNp linux-2.6.29.6/fs/cifs/cifsfs.h linux-2.6.29.6/fs/cifs/cifsfs.h
+--- linux-2.6.29.6/fs/cifs/cifsfs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/cifs/cifsfs.h 2009-07-23 18:40:28.331788628 -0400
+@@ -54,7 +54,7 @@ extern int cifs_setattr(struct dentry *,
+
+ extern const struct inode_operations cifs_file_inode_ops;
+ extern const struct inode_operations cifs_symlink_inode_ops;
+-extern struct inode_operations cifs_dfs_referral_inode_operations;
++extern const struct inode_operations cifs_dfs_referral_inode_operations;
+
+
+ /* Functions related to files and directories */
+@@ -78,8 +78,8 @@ extern int cifs_dir_open(struct inode *i
+ extern int cifs_readdir(struct file *file, void *direntry, filldir_t filldir);
+
+ /* Functions related to dir entries */
+-extern struct dentry_operations cifs_dentry_ops;
+-extern struct dentry_operations cifs_ci_dentry_ops;
++extern const struct dentry_operations cifs_dentry_ops;
++extern const struct dentry_operations cifs_ci_dentry_ops;
+
+ /* Functions related to symlinks */
+ extern void *cifs_follow_link(struct dentry *direntry, struct nameidata *nd);
diff -urNp linux-2.6.29.6/fs/cifs/cifs_uniupr.h linux-2.6.29.6/fs/cifs/cifs_uniupr.h
--- linux-2.6.29.6/fs/cifs/cifs_uniupr.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/cifs/cifs_uniupr.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/cifs/cifs_uniupr.h 2009-07-23 17:34:32.150758980 -0400
@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa
{0x0490, 0x04cc, UniCaseRangeU0490},
{0x1e00, 0x1ffc, UniCaseRangeU1e00},
@@ -20071,9 +22395,30 @@ diff -urNp linux-2.6.29.6/fs/cifs/cifs_uniupr.h linux-2.6.29.6/fs/cifs/cifs_uniu
};
#endif
+diff -urNp linux-2.6.29.6/fs/cifs/dir.c linux-2.6.29.6/fs/cifs/dir.c
+--- linux-2.6.29.6/fs/cifs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/cifs/dir.c 2009-07-23 18:40:28.331788628 -0400
+@@ -699,7 +699,7 @@ cifs_d_revalidate(struct dentry *direntr
+ return rc;
+ } */
+
+-struct dentry_operations cifs_dentry_ops = {
++const struct dentry_operations cifs_dentry_ops = {
+ .d_revalidate = cifs_d_revalidate,
+ /* d_delete: cifs_d_delete, */ /* not needed except for debugging */
+ };
+@@ -737,7 +737,7 @@ static int cifs_ci_compare(struct dentry
+ return 1;
+ }
+
+-struct dentry_operations cifs_ci_dentry_ops = {
++const struct dentry_operations cifs_ci_dentry_ops = {
+ .d_revalidate = cifs_d_revalidate,
+ .d_hash = cifs_ci_hash,
+ .d_compare = cifs_ci_compare,
diff -urNp linux-2.6.29.6/fs/cifs/link.c linux-2.6.29.6/fs/cifs/link.c
--- linux-2.6.29.6/fs/cifs/link.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/cifs/link.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/cifs/link.c 2009-07-23 17:34:32.150758980 -0400
@@ -318,7 +318,7 @@ cifs_readlink(struct dentry *direntry, c
void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
@@ -20085,7 +22430,7 @@ diff -urNp linux-2.6.29.6/fs/cifs/link.c linux-2.6.29.6/fs/cifs/link.c
}
diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c
--- linux-2.6.29.6/fs/compat.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/compat.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/compat.c 2009-07-23 17:34:32.150758980 -0400
@@ -1338,14 +1338,12 @@ static int compat_copy_strings(int argc,
if (!kmapped_page || kpos != (pos & PAGE_MASK)) {
struct page *page;
@@ -20187,7 +22532,7 @@ diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c
mmput(bprm->mm);
diff -urNp linux-2.6.29.6/fs/compat_ioctl.c linux-2.6.29.6/fs/compat_ioctl.c
--- linux-2.6.29.6/fs/compat_ioctl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/compat_ioctl.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/compat_ioctl.c 2009-07-23 17:34:32.151817730 -0400
@@ -1832,15 +1832,15 @@ struct ioctl_trans {
};
@@ -20207,9 +22552,21 @@ diff -urNp linux-2.6.29.6/fs/compat_ioctl.c linux-2.6.29.6/fs/compat_ioctl.c
/* ioctl should not be warned about even if it's not implemented.
Valid reasons to use this:
+diff -urNp linux-2.6.29.6/fs/configfs/dir.c linux-2.6.29.6/fs/configfs/dir.c
+--- linux-2.6.29.6/fs/configfs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/configfs/dir.c 2009-07-23 18:40:28.343404417 -0400
+@@ -72,7 +72,7 @@ static int configfs_d_delete(struct dent
+ return 1;
+ }
+
+-static struct dentry_operations configfs_dentry_ops = {
++static const struct dentry_operations configfs_dentry_ops = {
+ .d_iput = configfs_d_iput,
+ /* simple_delete_dentry() isn't exported */
+ .d_delete = configfs_d_delete,
diff -urNp linux-2.6.29.6/fs/debugfs/inode.c linux-2.6.29.6/fs/debugfs/inode.c
--- linux-2.6.29.6/fs/debugfs/inode.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/debugfs/inode.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/debugfs/inode.c 2009-07-23 17:34:32.151817730 -0400
@@ -117,7 +117,7 @@ static inline int debugfs_positive(struc
static int debug_fill_super(struct super_block *sb, void *data, int silent)
@@ -20219,9 +22576,88 @@ diff -urNp linux-2.6.29.6/fs/debugfs/inode.c linux-2.6.29.6/fs/debugfs/inode.c
return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
}
+diff -urNp linux-2.6.29.6/fs/dlm/debug_fs.c linux-2.6.29.6/fs/dlm/debug_fs.c
+--- linux-2.6.29.6/fs/dlm/debug_fs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/dlm/debug_fs.c 2009-07-23 18:40:28.344280728 -0400
+@@ -386,9 +386,9 @@ static int table_seq_show(struct seq_fil
+ return rv;
+ }
+
+-static struct seq_operations format1_seq_ops;
+-static struct seq_operations format2_seq_ops;
+-static struct seq_operations format3_seq_ops;
++static const struct seq_operations format1_seq_ops;
++static const struct seq_operations format2_seq_ops;
++static const struct seq_operations format3_seq_ops;
+
+ static void *table_seq_start(struct seq_file *seq, loff_t *pos)
+ {
+@@ -534,21 +534,21 @@ static void table_seq_stop(struct seq_fi
+ }
+ }
+
+-static struct seq_operations format1_seq_ops = {
++static const struct seq_operations format1_seq_ops = {
+ .start = table_seq_start,
+ .next = table_seq_next,
+ .stop = table_seq_stop,
+ .show = table_seq_show,
+ };
+
+-static struct seq_operations format2_seq_ops = {
++static const struct seq_operations format2_seq_ops = {
+ .start = table_seq_start,
+ .next = table_seq_next,
+ .stop = table_seq_stop,
+ .show = table_seq_show,
+ };
+
+-static struct seq_operations format3_seq_ops = {
++static const struct seq_operations format3_seq_ops = {
+ .start = table_seq_start,
+ .next = table_seq_next,
+ .stop = table_seq_stop,
+diff -urNp linux-2.6.29.6/fs/ecryptfs/dentry.c linux-2.6.29.6/fs/ecryptfs/dentry.c
+--- linux-2.6.29.6/fs/ecryptfs/dentry.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ecryptfs/dentry.c 2009-07-23 18:40:28.358643960 -0400
+@@ -89,7 +89,7 @@ static void ecryptfs_d_release(struct de
+ return;
+ }
+
+-struct dentry_operations ecryptfs_dops = {
++const struct dentry_operations ecryptfs_dops = {
+ .d_revalidate = ecryptfs_d_revalidate,
+ .d_release = ecryptfs_d_release,
+ };
+diff -urNp linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h
+--- linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h 2009-07-23 18:40:28.368274094 -0400
+@@ -580,8 +580,8 @@ extern const struct inode_operations ecr
+ extern const struct inode_operations ecryptfs_dir_iops;
+ extern const struct inode_operations ecryptfs_symlink_iops;
+ extern const struct super_operations ecryptfs_sops;
+-extern struct dentry_operations ecryptfs_dops;
+-extern struct address_space_operations ecryptfs_aops;
++extern const struct dentry_operations ecryptfs_dops;
++extern const struct address_space_operations ecryptfs_aops;
+ extern int ecryptfs_verbosity;
+ extern unsigned int ecryptfs_message_buf_len;
+ extern signed long ecryptfs_message_wait_timeout;
+diff -urNp linux-2.6.29.6/fs/ecryptfs/mmap.c linux-2.6.29.6/fs/ecryptfs/mmap.c
+--- linux-2.6.29.6/fs/ecryptfs/mmap.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ecryptfs/mmap.c 2009-07-23 18:40:28.369285541 -0400
+@@ -534,7 +534,7 @@ static sector_t ecryptfs_bmap(struct add
+ return rc;
+ }
+
+-struct address_space_operations ecryptfs_aops = {
++const struct address_space_operations ecryptfs_aops = {
+ .writepage = ecryptfs_writepage,
+ .readpage = ecryptfs_readpage,
+ .write_begin = ecryptfs_write_begin,
diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c
--- linux-2.6.29.6/fs/exec.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/exec.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/exec.c 2009-07-23 17:34:32.152780047 -0400
@@ -52,12 +52,24 @@
#include <linux/tracehook.h>
#include <linux/kmod.h>
@@ -20639,7 +23075,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c
* uses lock_kernel()
diff -urNp linux-2.6.29.6/fs/ext2/balloc.c linux-2.6.29.6/fs/ext2/balloc.c
--- linux-2.6.29.6/fs/ext2/balloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ext2/balloc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ext2/balloc.c 2009-07-23 17:34:32.152780047 -0400
@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e
free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -20651,7 +23087,7 @@ diff -urNp linux-2.6.29.6/fs/ext2/balloc.c linux-2.6.29.6/fs/ext2/balloc.c
return 0;
diff -urNp linux-2.6.29.6/fs/ext3/balloc.c linux-2.6.29.6/fs/ext3/balloc.c
--- linux-2.6.29.6/fs/ext3/balloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ext3/balloc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ext3/balloc.c 2009-07-23 17:34:32.153715921 -0400
@@ -1421,7 +1421,7 @@ static int ext3_has_free_blocks(struct e
free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -20663,7 +23099,7 @@ diff -urNp linux-2.6.29.6/fs/ext3/balloc.c linux-2.6.29.6/fs/ext3/balloc.c
return 0;
diff -urNp linux-2.6.29.6/fs/ext3/namei.c linux-2.6.29.6/fs/ext3/namei.c
--- linux-2.6.29.6/fs/ext3/namei.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ext3/namei.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ext3/namei.c 2009-07-23 17:34:32.153715921 -0400
@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split
char *data1 = (*bh)->b_data, *data2;
unsigned split, move, size;
@@ -20675,7 +23111,7 @@ diff -urNp linux-2.6.29.6/fs/ext3/namei.c linux-2.6.29.6/fs/ext3/namei.c
if (!(bh2)) {
diff -urNp linux-2.6.29.6/fs/ext3/xattr.c linux-2.6.29.6/fs/ext3/xattr.c
--- linux-2.6.29.6/fs/ext3/xattr.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ext3/xattr.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ext3/xattr.c 2009-07-23 17:34:32.154747281 -0400
@@ -89,8 +89,8 @@
printk("\n"); \
} while (0)
@@ -20689,7 +23125,7 @@ diff -urNp linux-2.6.29.6/fs/ext3/xattr.c linux-2.6.29.6/fs/ext3/xattr.c
static void ext3_xattr_cache_insert(struct buffer_head *);
diff -urNp linux-2.6.29.6/fs/ext4/balloc.c linux-2.6.29.6/fs/ext4/balloc.c
--- linux-2.6.29.6/fs/ext4/balloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ext4/balloc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ext4/balloc.c 2009-07-23 17:34:32.154747281 -0400
@@ -577,7 +577,7 @@ int ext4_has_free_blocks(struct ext4_sb_
/* Hm, nope. Are (enough) root reserved blocks available? */
if (sbi->s_resuid == current_fsuid() ||
@@ -20699,9 +23135,60 @@ diff -urNp linux-2.6.29.6/fs/ext4/balloc.c linux-2.6.29.6/fs/ext4/balloc.c
if (free_blocks >= (nblocks + dirty_blocks))
return 1;
}
+diff -urNp linux-2.6.29.6/fs/ext4/file.c linux-2.6.29.6/fs/ext4/file.c
+--- linux-2.6.29.6/fs/ext4/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ext4/file.c 2009-07-23 18:40:28.377699187 -0400
+@@ -128,7 +128,7 @@ force_commit:
+ return ret;
+ }
+
+-static struct vm_operations_struct ext4_file_vm_ops = {
++static const struct vm_operations_struct ext4_file_vm_ops = {
+ .fault = filemap_fault,
+ .page_mkwrite = ext4_page_mkwrite,
+ };
+diff -urNp linux-2.6.29.6/fs/ext4/mballoc.c linux-2.6.29.6/fs/ext4/mballoc.c
+--- linux-2.6.29.6/fs/ext4/mballoc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ext4/mballoc.c 2009-07-23 18:40:28.389509253 -0400
+@@ -2215,7 +2215,7 @@ static void ext4_mb_seq_history_stop(str
+ {
+ }
+
+-static struct seq_operations ext4_mb_seq_history_ops = {
++static const struct seq_operations ext4_mb_seq_history_ops = {
+ .start = ext4_mb_seq_history_start,
+ .next = ext4_mb_seq_history_next,
+ .stop = ext4_mb_seq_history_stop,
+@@ -2297,7 +2297,7 @@ static ssize_t ext4_mb_seq_history_write
+ return count;
+ }
+
+-static struct file_operations ext4_mb_seq_history_fops = {
++static const struct file_operations ext4_mb_seq_history_fops = {
+ .owner = THIS_MODULE,
+ .open = ext4_mb_seq_history_open,
+ .read = seq_read,
+@@ -2379,7 +2379,7 @@ static void ext4_mb_seq_groups_stop(stru
+ {
+ }
+
+-static struct seq_operations ext4_mb_seq_groups_ops = {
++static const struct seq_operations ext4_mb_seq_groups_ops = {
+ .start = ext4_mb_seq_groups_start,
+ .next = ext4_mb_seq_groups_next,
+ .stop = ext4_mb_seq_groups_stop,
+@@ -2400,7 +2400,7 @@ static int ext4_mb_seq_groups_open(struc
+
+ }
+
+-static struct file_operations ext4_mb_seq_groups_fops = {
++static const struct file_operations ext4_mb_seq_groups_fops = {
+ .owner = THIS_MODULE,
+ .open = ext4_mb_seq_groups_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/fs/ext4/namei.c linux-2.6.29.6/fs/ext4/namei.c
--- linux-2.6.29.6/fs/ext4/namei.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ext4/namei.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ext4/namei.c 2009-07-23 17:34:32.154747281 -0400
@@ -1177,7 +1177,7 @@ static struct ext4_dir_entry_2 *do_split
char *data1 = (*bh)->b_data, *data2;
unsigned split, move, size;
@@ -20711,9 +23198,40 @@ diff -urNp linux-2.6.29.6/fs/ext4/namei.c linux-2.6.29.6/fs/ext4/namei.c
bh2 = ext4_append (handle, dir, &newblock, &err);
if (!(bh2)) {
+diff -urNp linux-2.6.29.6/fs/fat/namei_msdos.c linux-2.6.29.6/fs/fat/namei_msdos.c
+--- linux-2.6.29.6/fs/fat/namei_msdos.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/fat/namei_msdos.c 2009-07-23 18:40:28.403484970 -0400
+@@ -188,7 +188,7 @@ old_compare:
+ goto out;
+ }
+
+-static struct dentry_operations msdos_dentry_operations = {
++static const struct dentry_operations msdos_dentry_operations = {
+ .d_hash = msdos_hash,
+ .d_compare = msdos_cmp,
+ };
+diff -urNp linux-2.6.29.6/fs/fat/namei_vfat.c linux-2.6.29.6/fs/fat/namei_vfat.c
+--- linux-2.6.29.6/fs/fat/namei_vfat.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/fat/namei_vfat.c 2009-07-23 18:40:28.405445251 -0400
+@@ -166,13 +166,13 @@ static int vfat_cmp(struct dentry *dentr
+ return 1;
+ }
+
+-static struct dentry_operations vfat_ci_dentry_ops = {
++static const struct dentry_operations vfat_ci_dentry_ops = {
+ .d_revalidate = vfat_revalidate_ci,
+ .d_hash = vfat_hashi,
+ .d_compare = vfat_cmpi,
+ };
+
+-static struct dentry_operations vfat_dentry_ops = {
++static const struct dentry_operations vfat_dentry_ops = {
+ .d_revalidate = vfat_revalidate,
+ .d_hash = vfat_hash,
+ .d_compare = vfat_cmp,
diff -urNp linux-2.6.29.6/fs/fcntl.c linux-2.6.29.6/fs/fcntl.c
--- linux-2.6.29.6/fs/fcntl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/fcntl.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/fcntl.c 2009-07-23 17:34:32.155702568 -0400
@@ -269,6 +269,7 @@ static long do_fcntl(int fd, unsigned in
switch (cmd) {
case F_DUPFD:
@@ -20734,7 +23252,7 @@ diff -urNp linux-2.6.29.6/fs/fcntl.c linux-2.6.29.6/fs/fcntl.c
}
diff -urNp linux-2.6.29.6/fs/file.c linux-2.6.29.6/fs/file.c
--- linux-2.6.29.6/fs/file.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/file.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/file.c 2009-07-23 17:34:32.155702568 -0400
@@ -13,6 +13,7 @@
#include <linux/slab.h>
#include <linux/vmalloc.h>
@@ -20754,7 +23272,7 @@ diff -urNp linux-2.6.29.6/fs/file.c linux-2.6.29.6/fs/file.c
diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c
--- linux-2.6.29.6/fs/fs_struct.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/fs_struct.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/fs_struct.c 2009-07-23 17:34:32.155702568 -0400
@@ -88,7 +88,7 @@ void exit_fs(struct task_struct *tsk)
task_lock(tsk);
write_lock(&fs->lock);
@@ -20808,7 +23326,7 @@ diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c
task_unlock(current);
diff -urNp linux-2.6.29.6/fs/fuse/control.c linux-2.6.29.6/fs/fuse/control.c
--- linux-2.6.29.6/fs/fuse/control.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/fuse/control.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/fuse/control.c 2009-07-23 17:34:32.155702568 -0400
@@ -161,7 +161,7 @@ void fuse_ctl_remove_conn(struct fuse_co
static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent)
@@ -20820,7 +23338,16 @@ diff -urNp linux-2.6.29.6/fs/fuse/control.c linux-2.6.29.6/fs/fuse/control.c
diff -urNp linux-2.6.29.6/fs/fuse/dir.c linux-2.6.29.6/fs/fuse/dir.c
--- linux-2.6.29.6/fs/fuse/dir.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/fuse/dir.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/fuse/dir.c 2009-07-23 18:40:27.470335769 -0400
+@@ -224,7 +224,7 @@ static int invalid_nodeid(u64 nodeid)
+ return !nodeid || nodeid == FUSE_ROOT_ID;
+ }
+
+-struct dentry_operations fuse_dentry_operations = {
++const struct dentry_operations fuse_dentry_operations = {
+ .d_revalidate = fuse_dentry_revalidate,
+ };
+
@@ -1081,7 +1081,7 @@ static char *read_link(struct dentry *de
return link;
}
@@ -20830,9 +23357,69 @@ diff -urNp linux-2.6.29.6/fs/fuse/dir.c linux-2.6.29.6/fs/fuse/dir.c
{
if (!IS_ERR(link))
free_page((unsigned long) link);
+diff -urNp linux-2.6.29.6/fs/fuse/file.c linux-2.6.29.6/fs/fuse/file.c
+--- linux-2.6.29.6/fs/fuse/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/fuse/file.c 2009-07-23 18:40:28.411550599 -0400
+@@ -1247,7 +1247,7 @@ static int fuse_page_mkwrite(struct vm_a
+ return 0;
+ }
+
+-static struct vm_operations_struct fuse_file_vm_ops = {
++static const struct vm_operations_struct fuse_file_vm_ops = {
+ .close = fuse_vma_close,
+ .fault = filemap_fault,
+ .page_mkwrite = fuse_page_mkwrite,
+diff -urNp linux-2.6.29.6/fs/fuse/fuse_i.h linux-2.6.29.6/fs/fuse/fuse_i.h
+--- linux-2.6.29.6/fs/fuse/fuse_i.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/fuse/fuse_i.h 2009-07-23 18:40:28.412448044 -0400
+@@ -493,7 +493,7 @@ static inline u64 get_node_id(struct ino
+ /** Device operations */
+ extern const struct file_operations fuse_dev_operations;
+
+-extern struct dentry_operations fuse_dentry_operations;
++extern const struct dentry_operations fuse_dentry_operations;
+
+ /**
+ * Get a filled in inode
+diff -urNp linux-2.6.29.6/fs/gfs2/ops_dentry.c linux-2.6.29.6/fs/gfs2/ops_dentry.c
+--- linux-2.6.29.6/fs/gfs2/ops_dentry.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/gfs2/ops_dentry.c 2009-07-23 18:40:28.417529345 -0400
+@@ -108,7 +108,7 @@ static int gfs2_dhash(struct dentry *den
+ return 0;
+ }
+
+-struct dentry_operations gfs2_dops = {
++const struct dentry_operations gfs2_dops = {
+ .d_revalidate = gfs2_drevalidate,
+ .d_hash = gfs2_dhash,
+ };
+diff -urNp linux-2.6.29.6/fs/gfs2/ops_file.c linux-2.6.29.6/fs/gfs2/ops_file.c
+--- linux-2.6.29.6/fs/gfs2/ops_file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/gfs2/ops_file.c 2009-07-23 18:40:28.423342085 -0400
+@@ -417,7 +417,7 @@ out:
+ return ret;
+ }
+
+-static struct vm_operations_struct gfs2_vm_ops = {
++static const struct vm_operations_struct gfs2_vm_ops = {
+ .fault = filemap_fault,
+ .page_mkwrite = gfs2_page_mkwrite,
+ };
+diff -urNp linux-2.6.29.6/fs/gfs2/super.h linux-2.6.29.6/fs/gfs2/super.h
+--- linux-2.6.29.6/fs/gfs2/super.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/gfs2/super.h 2009-07-23 18:40:28.431261400 -0400
+@@ -47,7 +47,7 @@ extern struct file_system_type gfs2_fs_t
+ extern struct file_system_type gfs2meta_fs_type;
+ extern const struct export_operations gfs2_export_ops;
+ extern const struct super_operations gfs2_super_ops;
+-extern struct dentry_operations gfs2_dops;
++extern const struct dentry_operations gfs2_dops;
+
+ #endif /* __SUPER_DOT_H__ */
+
diff -urNp linux-2.6.29.6/fs/hfs/inode.c linux-2.6.29.6/fs/hfs/inode.c
--- linux-2.6.29.6/fs/hfs/inode.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/hfs/inode.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/hfs/inode.c 2009-07-23 17:34:32.156720374 -0400
@@ -419,7 +419,7 @@ int hfs_write_inode(struct inode *inode,
if (S_ISDIR(main_inode->i_mode)) {
@@ -20851,9 +23438,30 @@ diff -urNp linux-2.6.29.6/fs/hfs/inode.c linux-2.6.29.6/fs/hfs/inode.c
hfs_bnode_read(fd.bnode, &rec, fd.entryoffset,
sizeof(struct hfs_cat_file));
if (rec.type != HFS_CDR_FIL ||
+diff -urNp linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h
+--- linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h 2009-07-23 18:40:28.441324863 -0400
+@@ -327,7 +327,7 @@ void hfsplus_file_truncate(struct inode
+ /* inode.c */
+ extern const struct address_space_operations hfsplus_aops;
+ extern const struct address_space_operations hfsplus_btree_aops;
+-extern struct dentry_operations hfsplus_dentry_operations;
++extern const struct dentry_operations hfsplus_dentry_operations;
+
+ void hfsplus_inode_read_fork(struct inode *, struct hfsplus_fork_raw *);
+ void hfsplus_inode_write_fork(struct inode *, struct hfsplus_fork_raw *);
diff -urNp linux-2.6.29.6/fs/hfsplus/inode.c linux-2.6.29.6/fs/hfsplus/inode.c
--- linux-2.6.29.6/fs/hfsplus/inode.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/hfsplus/inode.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/hfsplus/inode.c 2009-07-23 18:40:27.470335769 -0400
+@@ -137,7 +137,7 @@ const struct address_space_operations hf
+ .writepages = hfsplus_writepages,
+ };
+
+-struct dentry_operations hfsplus_dentry_operations = {
++const struct dentry_operations hfsplus_dentry_operations = {
+ .d_hash = hfsplus_hash_dentry,
+ .d_compare = hfsplus_compare_dentry,
+ };
@@ -406,7 +406,7 @@ int hfsplus_cat_read_inode(struct inode
struct hfsplus_cat_folder *folder = &entry.folder;
@@ -20890,9 +23498,84 @@ diff -urNp linux-2.6.29.6/fs/hfsplus/inode.c linux-2.6.29.6/fs/hfsplus/inode.c
hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
sizeof(struct hfsplus_cat_file));
hfsplus_inode_write_fork(inode, &file->data_fork);
+diff -urNp linux-2.6.29.6/fs/hostfs/hostfs_kern.c linux-2.6.29.6/fs/hostfs/hostfs_kern.c
+--- linux-2.6.29.6/fs/hostfs/hostfs_kern.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/hostfs/hostfs_kern.c 2009-07-23 18:40:28.461464563 -0400
+@@ -36,7 +36,7 @@ int hostfs_d_delete(struct dentry *dentr
+ return 1;
+ }
+
+-struct dentry_operations hostfs_dentry_ops = {
++const struct dentry_operations hostfs_dentry_ops = {
+ .d_delete = hostfs_d_delete,
+ };
+
+diff -urNp linux-2.6.29.6/fs/hpfs/dentry.c linux-2.6.29.6/fs/hpfs/dentry.c
+--- linux-2.6.29.6/fs/hpfs/dentry.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/hpfs/dentry.c 2009-07-23 18:40:28.465659763 -0400
+@@ -49,7 +49,7 @@ static int hpfs_compare_dentry(struct de
+ return 0;
+ }
+
+-static struct dentry_operations hpfs_dentry_operations = {
++static const struct dentry_operations hpfs_dentry_operations = {
+ .d_hash = hpfs_hash_dentry,
+ .d_compare = hpfs_compare_dentry,
+ };
+diff -urNp linux-2.6.29.6/fs/isofs/inode.c linux-2.6.29.6/fs/isofs/inode.c
+--- linux-2.6.29.6/fs/isofs/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/isofs/inode.c 2009-07-23 18:40:28.473700311 -0400
+@@ -114,7 +114,7 @@ static const struct super_operations iso
+ };
+
+
+-static struct dentry_operations isofs_dentry_ops[] = {
++static const struct dentry_operations isofs_dentry_ops[] = {
+ {
+ .d_hash = isofs_hash,
+ .d_compare = isofs_dentry_cmp,
+diff -urNp linux-2.6.29.6/fs/jbd2/journal.c linux-2.6.29.6/fs/jbd2/journal.c
+--- linux-2.6.29.6/fs/jbd2/journal.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/jbd2/journal.c 2009-07-23 18:40:28.491739581 -0400
+@@ -762,7 +762,7 @@ static void jbd2_seq_history_stop(struct
+ {
+ }
+
+-static struct seq_operations jbd2_seq_history_ops = {
++static const struct seq_operations jbd2_seq_history_ops = {
+ .start = jbd2_seq_history_start,
+ .next = jbd2_seq_history_next,
+ .stop = jbd2_seq_history_stop,
+@@ -812,7 +812,7 @@ static int jbd2_seq_history_release(stru
+ return seq_release(inode, file);
+ }
+
+-static struct file_operations jbd2_seq_history_fops = {
++static const struct file_operations jbd2_seq_history_fops = {
+ .owner = THIS_MODULE,
+ .open = jbd2_seq_history_open,
+ .read = seq_read,
+@@ -866,7 +866,7 @@ static void jbd2_seq_info_stop(struct se
+ {
+ }
+
+-static struct seq_operations jbd2_seq_info_ops = {
++static const struct seq_operations jbd2_seq_info_ops = {
+ .start = jbd2_seq_info_start,
+ .next = jbd2_seq_info_next,
+ .stop = jbd2_seq_info_stop,
+@@ -914,7 +914,7 @@ static int jbd2_seq_info_release(struct
+ return seq_release(inode, file);
+ }
+
+-static struct file_operations jbd2_seq_info_fops = {
++static const struct file_operations jbd2_seq_info_fops = {
+ .owner = THIS_MODULE,
+ .open = jbd2_seq_info_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/fs/jffs2/debug.h linux-2.6.29.6/fs/jffs2/debug.h
--- linux-2.6.29.6/fs/jffs2/debug.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/jffs2/debug.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/jffs2/debug.h 2009-07-23 17:34:32.156720374 -0400
@@ -52,13 +52,13 @@
#if CONFIG_JFFS2_FS_DEBUG > 0
#define D1(x) x
@@ -20996,7 +23679,7 @@ diff -urNp linux-2.6.29.6/fs/jffs2/debug.h linux-2.6.29.6/fs/jffs2/debug.h
/* "Sanity" checks */
diff -urNp linux-2.6.29.6/fs/jffs2/erase.c linux-2.6.29.6/fs/jffs2/erase.c
--- linux-2.6.29.6/fs/jffs2/erase.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/jffs2/erase.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/jffs2/erase.c 2009-07-23 17:34:32.157742760 -0400
@@ -432,7 +432,8 @@ static void jffs2_mark_erased_block(stru
struct jffs2_unknown_node marker = {
.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -21009,7 +23692,7 @@ diff -urNp linux-2.6.29.6/fs/jffs2/erase.c linux-2.6.29.6/fs/jffs2/erase.c
jffs2_prealloc_raw_node_refs(c, jeb, 1);
diff -urNp linux-2.6.29.6/fs/jffs2/summary.h linux-2.6.29.6/fs/jffs2/summary.h
--- linux-2.6.29.6/fs/jffs2/summary.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/jffs2/summary.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/jffs2/summary.h 2009-07-23 17:34:32.157742760 -0400
@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_
#define jffs2_sum_active() (0)
@@ -21040,7 +23723,7 @@ diff -urNp linux-2.6.29.6/fs/jffs2/summary.h linux-2.6.29.6/fs/jffs2/summary.h
#endif /* CONFIG_JFFS2_SUMMARY */
diff -urNp linux-2.6.29.6/fs/jffs2/wbuf.c linux-2.6.29.6/fs/jffs2/wbuf.c
--- linux-2.6.29.6/fs/jffs2/wbuf.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/jffs2/wbuf.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/jffs2/wbuf.c 2009-07-23 17:34:32.157742760 -0400
@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o
{
.magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -21053,7 +23736,7 @@ diff -urNp linux-2.6.29.6/fs/jffs2/wbuf.c linux-2.6.29.6/fs/jffs2/wbuf.c
/*
diff -urNp linux-2.6.29.6/fs/locks.c linux-2.6.29.6/fs/locks.c
--- linux-2.6.29.6/fs/locks.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/locks.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/locks.c 2009-07-23 17:34:32.158731356 -0400
@@ -2006,16 +2006,16 @@ void locks_remove_flock(struct file *fil
return;
@@ -21077,7 +23760,7 @@ diff -urNp linux-2.6.29.6/fs/locks.c linux-2.6.29.6/fs/locks.c
lock_kernel();
diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c
--- linux-2.6.29.6/fs/namei.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/namei.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/namei.c 2009-07-23 17:34:32.158731356 -0400
@@ -622,7 +622,7 @@ static __always_inline int __do_follow_l
cookie = dentry->d_inode->i_op->follow_link(dentry, nd);
error = PTR_ERR(cookie);
@@ -21397,7 +24080,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c
exit5:
diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c
--- linux-2.6.29.6/fs/namespace.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/namespace.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/namespace.c 2009-07-23 17:34:32.159721739 -0400
@@ -1096,6 +1096,8 @@ static int do_umount(struct vfsmount *mn
lock_kernel();
retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
@@ -21449,9 +24132,84 @@ diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c
lock_kernel();
retval = do_mount((char *)dev_page, dir_page, (char *)type_page,
flags, (void *)data_page);
+diff -urNp linux-2.6.29.6/fs/nfs/client.c linux-2.6.29.6/fs/nfs/client.c
+--- linux-2.6.29.6/fs/nfs/client.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/nfs/client.c 2009-07-23 18:40:28.513673349 -0400
+@@ -1409,7 +1409,7 @@ static void *nfs_server_list_next(struct
+ static void nfs_server_list_stop(struct seq_file *p, void *v);
+ static int nfs_server_list_show(struct seq_file *m, void *v);
+
+-static struct seq_operations nfs_server_list_ops = {
++static const struct seq_operations nfs_server_list_ops = {
+ .start = nfs_server_list_start,
+ .next = nfs_server_list_next,
+ .stop = nfs_server_list_stop,
+@@ -1430,7 +1430,7 @@ static void *nfs_volume_list_next(struct
+ static void nfs_volume_list_stop(struct seq_file *p, void *v);
+ static int nfs_volume_list_show(struct seq_file *m, void *v);
+
+-static struct seq_operations nfs_volume_list_ops = {
++static const struct seq_operations nfs_volume_list_ops = {
+ .start = nfs_volume_list_start,
+ .next = nfs_volume_list_next,
+ .stop = nfs_volume_list_stop,
+diff -urNp linux-2.6.29.6/fs/nfs/dir.c linux-2.6.29.6/fs/nfs/dir.c
+--- linux-2.6.29.6/fs/nfs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/nfs/dir.c 2009-07-23 18:40:28.514291879 -0400
+@@ -899,7 +899,7 @@ static void nfs_dentry_iput(struct dentr
+ iput(inode);
+ }
+
+-struct dentry_operations nfs_dentry_operations = {
++const struct dentry_operations nfs_dentry_operations = {
+ .d_revalidate = nfs_lookup_revalidate,
+ .d_delete = nfs_dentry_delete,
+ .d_iput = nfs_dentry_iput,
+@@ -967,7 +967,7 @@ out:
+ #ifdef CONFIG_NFS_V4
+ static int nfs_open_revalidate(struct dentry *, struct nameidata *);
+
+-struct dentry_operations nfs4_dentry_operations = {
++const struct dentry_operations nfs4_dentry_operations = {
+ .d_revalidate = nfs_open_revalidate,
+ .d_delete = nfs_dentry_delete,
+ .d_iput = nfs_dentry_iput,
+diff -urNp linux-2.6.29.6/fs/nfs/file.c linux-2.6.29.6/fs/nfs/file.c
+--- linux-2.6.29.6/fs/nfs/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/nfs/file.c 2009-07-23 18:40:28.515401169 -0400
+@@ -56,7 +56,7 @@ static int nfs_lock(struct file *filp, i
+ static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl);
+ static int nfs_setlease(struct file *file, long arg, struct file_lock **fl);
+
+-static struct vm_operations_struct nfs_file_vm_ops;
++static const struct vm_operations_struct nfs_file_vm_ops;
+
+ const struct file_operations nfs_file_operations = {
+ .llseek = nfs_file_llseek,
+@@ -487,7 +487,7 @@ out_unlock:
+ return VM_FAULT_SIGBUS;
+ }
+
+-static struct vm_operations_struct nfs_file_vm_ops = {
++static const struct vm_operations_struct nfs_file_vm_ops = {
+ .fault = filemap_fault,
+ .page_mkwrite = nfs_vm_page_mkwrite,
+ };
+diff -urNp linux-2.6.29.6/fs/nfs/nfs4_fs.h linux-2.6.29.6/fs/nfs/nfs4_fs.h
+--- linux-2.6.29.6/fs/nfs/nfs4_fs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/nfs/nfs4_fs.h 2009-07-23 18:40:28.516258510 -0400
+@@ -179,7 +179,7 @@ struct nfs4_state_recovery_ops {
+ int (*recover_lock)(struct nfs4_state *, struct file_lock *);
+ };
+
+-extern struct dentry_operations nfs4_dentry_operations;
++extern const struct dentry_operations nfs4_dentry_operations;
+ extern const struct inode_operations nfs4_dir_inode_operations;
+
+ /* inode.c */
diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c
--- linux-2.6.29.6/fs/nfs/nfs4proc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/nfs/nfs4proc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/nfs/nfs4proc.c 2009-07-23 17:34:32.161096484 -0400
@@ -763,7 +763,7 @@ static int _nfs4_do_open_reclaim(struct
static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state)
{
@@ -21724,7 +24482,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c
err = nfs4_set_lock_state(state, fl);
diff -urNp linux-2.6.29.6/fs/nfsd/export.c linux-2.6.29.6/fs/nfsd/export.c
--- linux-2.6.29.6/fs/nfsd/export.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/nfsd/export.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/nfsd/export.c 2009-07-23 18:40:27.471265103 -0400
@@ -472,7 +472,7 @@ static int secinfo_parse(char **mesg, ch
* probably discover the problem when someone fails to
* authenticate.
@@ -21734,9 +24492,18 @@ diff -urNp linux-2.6.29.6/fs/nfsd/export.c linux-2.6.29.6/fs/nfsd/export.c
return -EINVAL;
err = get_int(mesg, &f->flags);
if (err)
+@@ -1524,7 +1524,7 @@ static int e_show(struct seq_file *m, vo
+ return svc_export_show(m, &svc_export_cache, cp);
+ }
+
+-struct seq_operations nfs_exports_op = {
++const struct seq_operations nfs_exports_op = {
+ .start = e_start,
+ .next = e_next,
+ .stop = e_stop,
diff -urNp linux-2.6.29.6/fs/nls/nls_base.c linux-2.6.29.6/fs/nls/nls_base.c
--- linux-2.6.29.6/fs/nls/nls_base.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/nls/nls_base.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/nls/nls_base.c 2009-07-23 17:34:32.161096484 -0400
@@ -40,7 +40,7 @@ static const struct utf8_table utf8_tabl
{0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */},
{0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */},
@@ -21748,7 +24515,7 @@ diff -urNp linux-2.6.29.6/fs/nls/nls_base.c linux-2.6.29.6/fs/nls/nls_base.c
int
diff -urNp linux-2.6.29.6/fs/ntfs/file.c linux-2.6.29.6/fs/ntfs/file.c
--- linux-2.6.29.6/fs/ntfs/file.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ntfs/file.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ntfs/file.c 2009-07-23 17:34:32.162058358 -0400
@@ -2291,6 +2291,6 @@ const struct inode_operations ntfs_file_
#endif /* NTFS_RW */
};
@@ -21758,9 +24525,120 @@ diff -urNp linux-2.6.29.6/fs/ntfs/file.c linux-2.6.29.6/fs/ntfs/file.c
-const struct inode_operations ntfs_empty_inode_ops = {};
+const struct inode_operations ntfs_empty_inode_ops;
+diff -urNp linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c
+--- linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c 2009-07-23 18:40:28.530706067 -0400
+@@ -163,7 +163,7 @@ static void nst_seq_stop(struct seq_file
+ {
+ }
+
+-static struct seq_operations nst_seq_ops = {
++static const struct seq_operations nst_seq_ops = {
+ .start = nst_seq_start,
+ .next = nst_seq_next,
+ .stop = nst_seq_stop,
+@@ -207,7 +207,7 @@ static int nst_fop_release(struct inode
+ return seq_release_private(inode, file);
+ }
+
+-static struct file_operations nst_seq_fops = {
++static const struct file_operations nst_seq_fops = {
+ .open = nst_fop_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -344,7 +344,7 @@ static void sc_seq_stop(struct seq_file
+ {
+ }
+
+-static struct seq_operations sc_seq_ops = {
++static const struct seq_operations sc_seq_ops = {
+ .start = sc_seq_start,
+ .next = sc_seq_next,
+ .stop = sc_seq_stop,
+@@ -388,7 +388,7 @@ static int sc_fop_release(struct inode *
+ return seq_release_private(inode, file);
+ }
+
+-static struct file_operations sc_seq_fops = {
++static const struct file_operations sc_seq_fops = {
+ .open = sc_fop_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+diff -urNp linux-2.6.29.6/fs/ocfs2/dcache.c linux-2.6.29.6/fs/ocfs2/dcache.c
+--- linux-2.6.29.6/fs/ocfs2/dcache.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/dcache.c 2009-07-23 18:40:28.532382020 -0400
+@@ -455,7 +455,7 @@ out_move:
+ d_move(dentry, target);
+ }
+
+-struct dentry_operations ocfs2_dentry_ops = {
++const struct dentry_operations ocfs2_dentry_ops = {
+ .d_revalidate = ocfs2_dentry_revalidate,
+ .d_iput = ocfs2_dentry_iput,
+ };
+diff -urNp linux-2.6.29.6/fs/ocfs2/dcache.h linux-2.6.29.6/fs/ocfs2/dcache.h
+--- linux-2.6.29.6/fs/ocfs2/dcache.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/dcache.h 2009-07-23 18:40:28.544320633 -0400
+@@ -26,7 +26,7 @@
+ #ifndef OCFS2_DCACHE_H
+ #define OCFS2_DCACHE_H
+
+-extern struct dentry_operations ocfs2_dentry_ops;
++extern const struct dentry_operations ocfs2_dentry_ops;
+
+ struct ocfs2_dentry_lock {
+ /* Use count of dentry lock */
+diff -urNp linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c
+--- linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c 2009-07-23 18:40:28.549511769 -0400
+@@ -489,7 +489,7 @@ bail:
+ return -ENOMEM;
+ }
+
+-static struct file_operations debug_purgelist_fops = {
++static const struct file_operations debug_purgelist_fops = {
+ .open = debug_purgelist_open,
+ .release = debug_buffer_release,
+ .read = debug_buffer_read,
+@@ -539,7 +539,7 @@ bail:
+ return -ENOMEM;
+ }
+
+-static struct file_operations debug_mle_fops = {
++static const struct file_operations debug_mle_fops = {
+ .open = debug_mle_open,
+ .release = debug_buffer_release,
+ .read = debug_buffer_read,
+@@ -683,7 +683,7 @@ static int lockres_seq_show(struct seq_f
+ return 0;
+ }
+
+-static struct seq_operations debug_lockres_ops = {
++static const struct seq_operations debug_lockres_ops = {
+ .start = lockres_seq_start,
+ .stop = lockres_seq_stop,
+ .next = lockres_seq_next,
+@@ -742,7 +742,7 @@ static int debug_lockres_release(struct
+ return seq_release_private(inode, file);
+ }
+
+-static struct file_operations debug_lockres_fops = {
++static const struct file_operations debug_lockres_fops = {
+ .open = debug_lockres_open,
+ .release = debug_lockres_release,
+ .read = seq_read,
+@@ -903,7 +903,7 @@ bail:
+ return -ENOMEM;
+ }
+
+-static struct file_operations debug_state_fops = {
++static const struct file_operations debug_state_fops = {
+ .open = debug_state_open,
+ .release = debug_buffer_release,
+ .read = debug_buffer_read,
diff -urNp linux-2.6.29.6/fs/ocfs2/localalloc.c linux-2.6.29.6/fs/ocfs2/localalloc.c
--- linux-2.6.29.6/fs/ocfs2/localalloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ocfs2/localalloc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/localalloc.c 2009-07-23 17:34:32.162793620 -0400
@@ -1272,7 +1272,7 @@ static int ocfs2_local_alloc_slide_windo
goto bail;
}
@@ -21770,9 +24648,21 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/localalloc.c linux-2.6.29.6/fs/ocfs2/localall
status = 0;
bail:
+diff -urNp linux-2.6.29.6/fs/ocfs2/mmap.c linux-2.6.29.6/fs/ocfs2/mmap.c
+--- linux-2.6.29.6/fs/ocfs2/mmap.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/mmap.c 2009-07-23 18:40:28.550266995 -0400
+@@ -202,7 +202,7 @@ out:
+ return ret;
+ }
+
+-static struct vm_operations_struct ocfs2_file_vm_ops = {
++static const struct vm_operations_struct ocfs2_file_vm_ops = {
+ .fault = ocfs2_fault,
+ .page_mkwrite = ocfs2_page_mkwrite,
+ };
diff -urNp linux-2.6.29.6/fs/ocfs2/ocfs2.h linux-2.6.29.6/fs/ocfs2/ocfs2.h
--- linux-2.6.29.6/fs/ocfs2/ocfs2.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ocfs2/ocfs2.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/ocfs2.h 2009-07-23 17:34:32.162793620 -0400
@@ -168,11 +168,11 @@ enum ocfs2_vol_state
struct ocfs2_alloc_stats
@@ -21792,7 +24682,7 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/ocfs2.h linux-2.6.29.6/fs/ocfs2/ocfs2.h
enum ocfs2_local_alloc_state
diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c
--- linux-2.6.29.6/fs/ocfs2/suballoc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ocfs2/suballoc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ocfs2/suballoc.c 2009-07-23 17:34:32.162793620 -0400
@@ -602,7 +602,7 @@ static int ocfs2_reserve_suballoc_bits(s
mlog_errno(status);
goto bail;
@@ -21838,9 +24728,93 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c
}
}
if (status < 0) {
+diff -urNp linux-2.6.29.6/fs/omfs/dir.c linux-2.6.29.6/fs/omfs/dir.c
+--- linux-2.6.29.6/fs/omfs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/omfs/dir.c 2009-07-23 18:40:28.558460904 -0400
+@@ -489,7 +489,7 @@ out:
+ return ret;
+ }
+
+-struct inode_operations omfs_dir_inops = {
++const struct inode_operations omfs_dir_inops = {
+ .lookup = omfs_lookup,
+ .mkdir = omfs_mkdir,
+ .rename = omfs_rename,
+@@ -498,7 +498,7 @@ struct inode_operations omfs_dir_inops =
+ .rmdir = omfs_rmdir,
+ };
+
+-struct file_operations omfs_dir_operations = {
++const struct file_operations omfs_dir_operations = {
+ .read = generic_read_dir,
+ .readdir = omfs_readdir,
+ .llseek = generic_file_llseek,
+diff -urNp linux-2.6.29.6/fs/omfs/file.c linux-2.6.29.6/fs/omfs/file.c
+--- linux-2.6.29.6/fs/omfs/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/omfs/file.c 2009-07-23 18:40:28.558460904 -0400
+@@ -337,7 +337,7 @@ static sector_t omfs_bmap(struct address
+ return generic_block_bmap(mapping, block, omfs_get_block);
+ }
+
+-struct file_operations omfs_file_operations = {
++const struct file_operations omfs_file_operations = {
+ .llseek = generic_file_llseek,
+ .read = do_sync_read,
+ .write = do_sync_write,
+@@ -348,11 +348,11 @@ struct file_operations omfs_file_operati
+ .splice_read = generic_file_splice_read,
+ };
+
+-struct inode_operations omfs_file_inops = {
++const struct inode_operations omfs_file_inops = {
+ .truncate = omfs_truncate
+ };
+
+-struct address_space_operations omfs_aops = {
++const struct address_space_operations omfs_aops = {
+ .readpage = omfs_readpage,
+ .readpages = omfs_readpages,
+ .writepage = omfs_writepage,
+diff -urNp linux-2.6.29.6/fs/omfs/inode.c linux-2.6.29.6/fs/omfs/inode.c
+--- linux-2.6.29.6/fs/omfs/inode.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/omfs/inode.c 2009-07-23 18:40:28.559411985 -0400
+@@ -273,7 +273,7 @@ static int omfs_statfs(struct dentry *de
+ return 0;
+ }
+
+-static struct super_operations omfs_sops = {
++static const struct super_operations omfs_sops = {
+ .write_inode = omfs_write_inode,
+ .delete_inode = omfs_delete_inode,
+ .put_super = omfs_put_super,
+diff -urNp linux-2.6.29.6/fs/omfs/omfs.h linux-2.6.29.6/fs/omfs/omfs.h
+--- linux-2.6.29.6/fs/omfs/omfs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/omfs/omfs.h 2009-07-23 18:40:28.560275663 -0400
+@@ -44,16 +44,16 @@ extern int omfs_allocate_range(struct su
+ extern int omfs_clear_range(struct super_block *sb, u64 block, int count);
+
+ /* dir.c */
+-extern struct file_operations omfs_dir_operations;
+-extern struct inode_operations omfs_dir_inops;
++extern const struct file_operations omfs_dir_operations;
++extern const struct inode_operations omfs_dir_inops;
+ extern int omfs_make_empty(struct inode *inode, struct super_block *sb);
+ extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header,
+ u64 fsblock);
+
+ /* file.c */
+-extern struct file_operations omfs_file_operations;
+-extern struct inode_operations omfs_file_inops;
+-extern struct address_space_operations omfs_aops;
++extern const struct file_operations omfs_file_operations;
++extern const struct inode_operations omfs_file_inops;
++extern const struct address_space_operations omfs_aops;
+ extern void omfs_make_empty_table(struct buffer_head *bh, int offset);
+ extern int omfs_shrink_inode(struct inode *inode);
+
diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c
--- linux-2.6.29.6/fs/open.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/open.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/open.c 2009-07-23 17:34:32.164099579 -0400
@@ -205,6 +205,9 @@ int do_truncate(struct dentry *dentry, l
if (length < 0)
return -EINVAL;
@@ -22016,7 +24990,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c
fput(file);
diff -urNp linux-2.6.29.6/fs/pipe.c linux-2.6.29.6/fs/pipe.c
--- linux-2.6.29.6/fs/pipe.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/pipe.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/pipe.c 2009-07-23 18:40:28.560275663 -0400
@@ -848,7 +848,7 @@ void free_pipe_info(struct inode *inode)
inode->i_pipe = NULL;
}
@@ -22026,9 +25000,18 @@ diff -urNp linux-2.6.29.6/fs/pipe.c linux-2.6.29.6/fs/pipe.c
static int pipefs_delete_dentry(struct dentry *dentry)
{
/*
+@@ -870,7 +870,7 @@ static char *pipefs_dname(struct dentry
+ dentry->d_inode->i_ino);
+ }
+
+-static struct dentry_operations pipefs_dentry_operations = {
++static const struct dentry_operations pipefs_dentry_operations = {
+ .d_delete = pipefs_delete_dentry,
+ .d_dname = pipefs_dname,
+ };
diff -urNp linux-2.6.29.6/fs/proc/array.c linux-2.6.29.6/fs/proc/array.c
--- linux-2.6.29.6/fs/proc/array.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/array.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/array.c 2009-07-23 17:34:32.164990172 -0400
@@ -321,6 +321,21 @@ static inline void task_context_switch_c
p->nivcsw);
}
@@ -22121,7 +25104,7 @@ diff -urNp linux-2.6.29.6/fs/proc/array.c linux-2.6.29.6/fs/proc/array.c
+#endif
diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c
--- linux-2.6.29.6/fs/proc/base.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/base.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/base.c 2009-07-23 17:34:32.165782392 -0400
@@ -212,6 +212,9 @@ static int check_mem_permission(struct t
if (task == current)
return 0;
@@ -22448,7 +25431,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c
#ifdef CONFIG_SCHEDSTATS
diff -urNp linux-2.6.29.6/fs/proc/cmdline.c linux-2.6.29.6/fs/proc/cmdline.c
--- linux-2.6.29.6/fs/proc/cmdline.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/cmdline.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/cmdline.c 2009-07-23 17:34:32.166858420 -0400
@@ -23,7 +23,11 @@ static const struct file_operations cmdl
static int __init proc_cmdline_init(void)
@@ -22463,7 +25446,7 @@ diff -urNp linux-2.6.29.6/fs/proc/cmdline.c linux-2.6.29.6/fs/proc/cmdline.c
module_init(proc_cmdline_init);
diff -urNp linux-2.6.29.6/fs/proc/devices.c linux-2.6.29.6/fs/proc/devices.c
--- linux-2.6.29.6/fs/proc/devices.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/devices.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/devices.c 2009-07-23 17:34:32.166858420 -0400
@@ -64,7 +64,11 @@ static const struct file_operations proc
static int __init proc_devices_init(void)
@@ -22478,7 +25461,7 @@ diff -urNp linux-2.6.29.6/fs/proc/devices.c linux-2.6.29.6/fs/proc/devices.c
module_init(proc_devices_init);
diff -urNp linux-2.6.29.6/fs/proc/inode.c linux-2.6.29.6/fs/proc/inode.c
--- linux-2.6.29.6/fs/proc/inode.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/inode.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/inode.c 2009-07-23 17:34:32.166858420 -0400
@@ -463,7 +463,11 @@ struct inode *proc_get_inode(struct supe
if (de->mode) {
inode->i_mode = de->mode;
@@ -22493,7 +25476,7 @@ diff -urNp linux-2.6.29.6/fs/proc/inode.c linux-2.6.29.6/fs/proc/inode.c
inode->i_size = de->size;
diff -urNp linux-2.6.29.6/fs/proc/internal.h linux-2.6.29.6/fs/proc/internal.h
--- linux-2.6.29.6/fs/proc/internal.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/internal.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/internal.h 2009-07-23 17:34:32.166858420 -0400
@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi
struct pid *pid, struct task_struct *task);
extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
@@ -22506,7 +25489,7 @@ diff -urNp linux-2.6.29.6/fs/proc/internal.h linux-2.6.29.6/fs/proc/internal.h
extern const struct file_operations proc_maps_operations;
diff -urNp linux-2.6.29.6/fs/proc/Kconfig linux-2.6.29.6/fs/proc/Kconfig
--- linux-2.6.29.6/fs/proc/Kconfig 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/Kconfig 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/Kconfig 2009-07-23 17:34:32.166858420 -0400
@@ -30,12 +30,12 @@ config PROC_FS
config PROC_KCORE
@@ -22536,7 +25519,7 @@ diff -urNp linux-2.6.29.6/fs/proc/Kconfig linux-2.6.29.6/fs/proc/Kconfig
Various /proc files exist to monitor process memory utilization:
diff -urNp linux-2.6.29.6/fs/proc/kcore.c linux-2.6.29.6/fs/proc/kcore.c
--- linux-2.6.29.6/fs/proc/kcore.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/kcore.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/kcore.c 2009-07-23 17:34:32.167803575 -0400
@@ -404,10 +404,12 @@ read_kcore(struct file *file, char __use
static int __init proc_kcore_init(void)
@@ -22552,7 +25535,7 @@ diff -urNp linux-2.6.29.6/fs/proc/kcore.c linux-2.6.29.6/fs/proc/kcore.c
module_init(proc_kcore_init);
diff -urNp linux-2.6.29.6/fs/proc/nommu.c linux-2.6.29.6/fs/proc/nommu.c
--- linux-2.6.29.6/fs/proc/nommu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/nommu.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/nommu.c 2009-07-23 18:40:27.471265103 -0400
@@ -67,7 +67,7 @@ static int nommu_region_show(struct seq_
if (len < 1)
len = 1;
@@ -22562,9 +25545,18 @@ diff -urNp linux-2.6.29.6/fs/proc/nommu.c linux-2.6.29.6/fs/proc/nommu.c
}
seq_putc(m, '\n');
+@@ -109,7 +109,7 @@ static void *nommu_region_list_next(stru
+ return rb_next((struct rb_node *) v);
+ }
+
+-static struct seq_operations proc_nommu_region_list_seqop = {
++static const struct seq_operations proc_nommu_region_list_seqop = {
+ .start = nommu_region_list_start,
+ .next = nommu_region_list_next,
+ .stop = nommu_region_list_stop,
diff -urNp linux-2.6.29.6/fs/proc/proc_net.c linux-2.6.29.6/fs/proc/proc_net.c
--- linux-2.6.29.6/fs/proc/proc_net.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/proc_net.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/proc_net.c 2009-07-23 17:34:32.167803575 -0400
@@ -104,6 +104,17 @@ static struct net *get_proc_task_net(str
struct task_struct *task;
struct nsproxy *ns;
@@ -22585,16 +25577,18 @@ diff -urNp linux-2.6.29.6/fs/proc/proc_net.c linux-2.6.29.6/fs/proc/proc_net.c
task = pid_task(proc_pid(dir), PIDTYPE_PID);
diff -urNp linux-2.6.29.6/fs/proc/proc_sysctl.c linux-2.6.29.6/fs/proc/proc_sysctl.c
--- linux-2.6.29.6/fs/proc/proc_sysctl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/proc_sysctl.c 2009-07-09 22:13:39.000000000 -0400
-@@ -7,6 +7,8 @@
++++ linux-2.6.29.6/fs/proc/proc_sysctl.c 2009-07-23 19:28:12.262381898 -0400
+@@ -7,7 +7,9 @@
#include <linux/security.h>
#include "internal.h"
+-static struct dentry_operations proc_sys_dentry_operations;
+extern __u32 gr_handle_sysctl(const struct ctl_table *table, const int op);
+
- static struct dentry_operations proc_sys_dentry_operations;
++static const struct dentry_operations proc_sys_dentry_operations;
static const struct file_operations proc_sys_file_operations;
static const struct inode_operations proc_sys_inode_operations;
+ static const struct file_operations proc_sys_dir_file_operations;
@@ -109,6 +111,9 @@ static struct dentry *proc_sys_lookup(st
if (!p)
goto out;
@@ -22625,9 +25619,18 @@ diff -urNp linux-2.6.29.6/fs/proc/proc_sysctl.c linux-2.6.29.6/fs/proc/proc_sysc
generic_fillattr(inode, stat);
if (table)
stat->mode = (stat->mode & S_IFMT) | table->mode;
+@@ -396,7 +407,7 @@ static int proc_sys_compare(struct dentr
+ return !sysctl_is_seen(PROC_I(dentry->d_inode)->sysctl);
+ }
+
+-static struct dentry_operations proc_sys_dentry_operations = {
++static const struct dentry_operations proc_sys_dentry_operations = {
+ .d_revalidate = proc_sys_revalidate,
+ .d_delete = proc_sys_delete,
+ .d_compare = proc_sys_compare,
diff -urNp linux-2.6.29.6/fs/proc/root.c linux-2.6.29.6/fs/proc/root.c
--- linux-2.6.29.6/fs/proc/root.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/root.c 2009-07-09 23:42:59.000000000 -0400
++++ linux-2.6.29.6/fs/proc/root.c 2009-07-23 17:34:32.167803575 -0400
@@ -101,6 +101,11 @@ static struct file_system_type proc_fs_t
.kill_sb = proc_kill_sb,
};
@@ -22664,7 +25667,7 @@ diff -urNp linux-2.6.29.6/fs/proc/root.c linux-2.6.29.6/fs/proc/root.c
static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c
--- linux-2.6.29.6/fs/proc/task_mmu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/task_mmu.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/task_mmu.c 2009-07-23 17:34:32.168754984 -0400
@@ -46,15 +46,26 @@ void task_mem(struct seq_file *m, struct
"VmStk:\t%8lu kB\n"
"VmExe:\t%8lu kB\n"
@@ -22787,7 +25790,7 @@ diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c
mss.shared_clean >> 10,
diff -urNp linux-2.6.29.6/fs/proc/task_nommu.c linux-2.6.29.6/fs/proc/task_nommu.c
--- linux-2.6.29.6/fs/proc/task_nommu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/proc/task_nommu.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/proc/task_nommu.c 2009-07-23 17:34:32.168754984 -0400
@@ -49,7 +49,7 @@ void task_mem(struct seq_file *m, struct
else
bytes += kobjsize(mm);
@@ -22808,7 +25811,7 @@ diff -urNp linux-2.6.29.6/fs/proc/task_nommu.c linux-2.6.29.6/fs/proc/task_nommu
seq_putc(m, '\n');
diff -urNp linux-2.6.29.6/fs/readdir.c linux-2.6.29.6/fs/readdir.c
--- linux-2.6.29.6/fs/readdir.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/readdir.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/readdir.c 2009-07-23 17:34:32.168754984 -0400
@@ -16,6 +16,7 @@
#include <linux/security.h>
#include <linux/syscalls.h>
@@ -22900,7 +25903,7 @@ diff -urNp linux-2.6.29.6/fs/readdir.c linux-2.6.29.6/fs/readdir.c
diff -urNp linux-2.6.29.6/fs/reiserfs/do_balan.c linux-2.6.29.6/fs/reiserfs/do_balan.c
--- linux-2.6.29.6/fs/reiserfs/do_balan.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/reiserfs/do_balan.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/reiserfs/do_balan.c 2009-07-23 17:34:32.169708808 -0400
@@ -2114,7 +2114,7 @@ void do_balance(struct tree_balance *tb,
return;
}
@@ -22910,9 +25913,21 @@ diff -urNp linux-2.6.29.6/fs/reiserfs/do_balan.c linux-2.6.29.6/fs/reiserfs/do_b
do_balance_starts(tb);
/* balance leaf returns 0 except if combining L R and S into
+diff -urNp linux-2.6.29.6/fs/reiserfs/xattr.c linux-2.6.29.6/fs/reiserfs/xattr.c
+--- linux-2.6.29.6/fs/reiserfs/xattr.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/reiserfs/xattr.c 2009-07-23 18:40:28.566682353 -0400
+@@ -1136,7 +1136,7 @@ xattr_lookup_poison(struct dentry *dentr
+ return 1;
+ }
+
+-static struct dentry_operations xattr_lookup_poison_ops = {
++static const struct dentry_operations xattr_lookup_poison_ops = {
+ .d_compare = xattr_lookup_poison,
+ };
+
diff -urNp linux-2.6.29.6/fs/select.c linux-2.6.29.6/fs/select.c
--- linux-2.6.29.6/fs/select.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/select.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/select.c 2009-07-23 17:34:32.169708808 -0400
@@ -19,6 +19,7 @@
#include <linux/module.h>
#include <linux/slab.h>
@@ -22931,7 +25946,7 @@ diff -urNp linux-2.6.29.6/fs/select.c linux-2.6.29.6/fs/select.c
diff -urNp linux-2.6.29.6/fs/seq_file.c linux-2.6.29.6/fs/seq_file.c
--- linux-2.6.29.6/fs/seq_file.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/seq_file.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/seq_file.c 2009-07-23 17:34:32.169708808 -0400
@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m,
return 0;
}
@@ -22974,7 +25989,7 @@ diff -urNp linux-2.6.29.6/fs/seq_file.c linux-2.6.29.6/fs/seq_file.c
m->count = 0;
diff -urNp linux-2.6.29.6/fs/smbfs/symlink.c linux-2.6.29.6/fs/smbfs/symlink.c
--- linux-2.6.29.6/fs/smbfs/symlink.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/smbfs/symlink.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/smbfs/symlink.c 2009-07-23 17:34:32.169708808 -0400
@@ -55,7 +55,7 @@ static void *smb_follow_link(struct dent
static void smb_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -22984,9 +25999,42 @@ diff -urNp linux-2.6.29.6/fs/smbfs/symlink.c linux-2.6.29.6/fs/smbfs/symlink.c
if (!IS_ERR(s))
__putname(s);
}
+diff -urNp linux-2.6.29.6/fs/squashfs/super.c linux-2.6.29.6/fs/squashfs/super.c
+--- linux-2.6.29.6/fs/squashfs/super.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/squashfs/super.c 2009-07-23 18:40:28.577043173 -0400
+@@ -43,7 +43,7 @@
+ #include "squashfs.h"
+
+ static struct file_system_type squashfs_fs_type;
+-static struct super_operations squashfs_super_ops;
++static const struct super_operations squashfs_super_ops;
+
+ static int supported_squashfs_filesystem(short major, short minor, short comp)
+ {
+@@ -426,7 +426,7 @@ static struct file_system_type squashfs_
+ .fs_flags = FS_REQUIRES_DEV
+ };
+
+-static struct super_operations squashfs_super_ops = {
++static const struct super_operations squashfs_super_ops = {
+ .alloc_inode = squashfs_alloc_inode,
+ .destroy_inode = squashfs_destroy_inode,
+ .statfs = squashfs_statfs,
+diff -urNp linux-2.6.29.6/fs/sysfs/dir.c linux-2.6.29.6/fs/sysfs/dir.c
+--- linux-2.6.29.6/fs/sysfs/dir.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/sysfs/dir.c 2009-07-23 18:40:28.589290669 -0400
+@@ -302,7 +302,7 @@ static void sysfs_d_iput(struct dentry *
+ iput(inode);
+ }
+
+-static struct dentry_operations sysfs_dentry_ops = {
++static const struct dentry_operations sysfs_dentry_ops = {
+ .d_iput = sysfs_d_iput,
+ };
+
diff -urNp linux-2.6.29.6/fs/sysfs/symlink.c linux-2.6.29.6/fs/sysfs/symlink.c
--- linux-2.6.29.6/fs/sysfs/symlink.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/sysfs/symlink.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/sysfs/symlink.c 2009-07-23 17:34:32.169708808 -0400
@@ -200,7 +200,7 @@ static void *sysfs_follow_link(struct de
static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -22996,9 +26044,45 @@ diff -urNp linux-2.6.29.6/fs/sysfs/symlink.c linux-2.6.29.6/fs/sysfs/symlink.c
if (!IS_ERR(page))
free_page((unsigned long)page);
}
+diff -urNp linux-2.6.29.6/fs/sysv/namei.c linux-2.6.29.6/fs/sysv/namei.c
+--- linux-2.6.29.6/fs/sysv/namei.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/sysv/namei.c 2009-07-23 18:40:28.589290669 -0400
+@@ -38,7 +38,7 @@ static int sysv_hash(struct dentry *dent
+ return 0;
+ }
+
+-struct dentry_operations sysv_dentry_operations = {
++const struct dentry_operations sysv_dentry_operations = {
+ .d_hash = sysv_hash,
+ };
+
+diff -urNp linux-2.6.29.6/fs/sysv/sysv.h linux-2.6.29.6/fs/sysv/sysv.h
+--- linux-2.6.29.6/fs/sysv/sysv.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/sysv/sysv.h 2009-07-23 18:40:28.590278279 -0400
+@@ -170,7 +170,7 @@ extern const struct file_operations sysv
+ extern const struct file_operations sysv_dir_operations;
+ extern const struct address_space_operations sysv_aops;
+ extern const struct super_operations sysv_sops;
+-extern struct dentry_operations sysv_dentry_operations;
++extern const struct dentry_operations sysv_dentry_operations;
+
+
+ enum {
+diff -urNp linux-2.6.29.6/fs/ubifs/file.c linux-2.6.29.6/fs/ubifs/file.c
+--- linux-2.6.29.6/fs/ubifs/file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/ubifs/file.c 2009-07-23 18:40:28.610477859 -0400
+@@ -1526,7 +1526,7 @@ out_unlock:
+ return err;
+ }
+
+-static struct vm_operations_struct ubifs_file_vm_ops = {
++static const struct vm_operations_struct ubifs_file_vm_ops = {
+ .fault = filemap_fault,
+ .page_mkwrite = ubifs_vm_page_mkwrite,
+ };
diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c
--- linux-2.6.29.6/fs/udf/balloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/udf/balloc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/udf/balloc.c 2009-07-23 17:34:32.170868529 -0400
@@ -169,9 +169,7 @@ static void udf_bitmap_free_blocks(struc
unsigned long overflow;
@@ -23060,7 +26144,7 @@ diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c
/* We search for the closest matching block to goal. If we find
diff -urNp linux-2.6.29.6/fs/ufs/inode.c linux-2.6.29.6/fs/ufs/inode.c
--- linux-2.6.29.6/fs/ufs/inode.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/ufs/inode.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/ufs/inode.c 2009-07-23 17:34:32.170868529 -0400
@@ -56,9 +56,7 @@ static int ufs_block_to_path(struct inod
@@ -23094,7 +26178,7 @@ diff -urNp linux-2.6.29.6/fs/ufs/inode.c linux-2.6.29.6/fs/ufs/inode.c
goto abort;
diff -urNp linux-2.6.29.6/fs/utimes.c linux-2.6.29.6/fs/utimes.c
--- linux-2.6.29.6/fs/utimes.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/utimes.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/utimes.c 2009-07-23 17:34:32.170868529 -0400
@@ -1,6 +1,7 @@
#include <linux/compiler.h>
#include <linux/file.h>
@@ -23116,9 +26200,30 @@ diff -urNp linux-2.6.29.6/fs/utimes.c linux-2.6.29.6/fs/utimes.c
mutex_lock(&inode->i_mutex);
error = notify_change(path->dentry, &newattrs);
mutex_unlock(&inode->i_mutex);
+diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c
+--- linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c 2009-07-23 18:40:28.621302411 -0400
+@@ -43,7 +43,7 @@
+ #include <linux/dcache.h>
+ #include <linux/smp_lock.h>
+
+-static struct vm_operations_struct xfs_file_vm_ops;
++static const struct vm_operations_struct xfs_file_vm_ops;
+
+ STATIC ssize_t
+ xfs_file_aio_read(
+@@ -272,7 +272,7 @@ const struct file_operations xfs_dir_fil
+ .fsync = xfs_file_fsync,
+ };
+
+-static struct vm_operations_struct xfs_file_vm_ops = {
++static const struct vm_operations_struct xfs_file_vm_ops = {
+ .fault = filemap_fault,
+ .page_mkwrite = xfs_vm_page_mkwrite,
+ };
diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c
--- linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c 2009-07-23 17:34:32.170868529 -0400
@@ -494,7 +494,7 @@ xfs_vn_put_link(
struct nameidata *nd,
void *p)
@@ -23128,9 +26233,30 @@ diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.29.6/fs/xfs/linu
if (!IS_ERR(s))
kfree(s);
+diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c
+--- linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c 2009-07-23 18:40:28.631296881 -0400
+@@ -69,7 +69,7 @@
+ #include <linux/parser.h>
+
+ static struct quotactl_ops xfs_quotactl_operations;
+-static struct super_operations xfs_super_operations;
++static const struct super_operations xfs_super_operations;
+ static kmem_zone_t *xfs_ioend_zone;
+ mempool_t *xfs_ioend_pool;
+
+@@ -1564,7 +1564,7 @@ xfs_fs_get_sb(
+ mnt);
+ }
+
+-static struct super_operations xfs_super_operations = {
++static const struct super_operations xfs_super_operations = {
+ .alloc_inode = xfs_fs_alloc_inode,
+ .destroy_inode = xfs_fs_destroy_inode,
+ .write_inode = xfs_fs_write_inode,
diff -urNp linux-2.6.29.6/fs/xfs/xfs_bmap.c linux-2.6.29.6/fs/xfs/xfs_bmap.c
--- linux-2.6.29.6/fs/xfs/xfs_bmap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/fs/xfs/xfs_bmap.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/fs/xfs/xfs_bmap.c 2009-07-23 17:34:32.171850695 -0400
@@ -360,7 +360,7 @@ xfs_bmap_validate_ret(
int nmap,
int ret_nmap);
@@ -23142,7 +26268,7 @@ diff -urNp linux-2.6.29.6/fs/xfs/xfs_bmap.c linux-2.6.29.6/fs/xfs/xfs_bmap.c
#if defined(XFS_RW_TRACE)
diff -urNp linux-2.6.29.6/grsecurity/gracl_alloc.c linux-2.6.29.6/grsecurity/gracl_alloc.c
--- linux-2.6.29.6/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_alloc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_alloc.c 2009-07-23 17:34:32.172792791 -0400
@@ -0,0 +1,105 @@
+#include <linux/kernel.h>
+#include <linux/mm.h>
@@ -23251,8 +26377,8 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_alloc.c linux-2.6.29.6/grsecurity/gra
+}
diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
--- linux-2.6.29.6/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl.c 2009-07-10 05:42:10.000000000 -0400
-@@ -0,0 +1,3855 @@
++++ linux-2.6.29.6/grsecurity/gracl.c 2009-07-23 18:43:31.274004949 -0400
+@@ -0,0 +1,3892 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/sched.h>
@@ -23305,7 +26431,11 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
+
+struct gr_arg *gr_usermode;
+
++#ifdef CONFIG_PAX_KERNEXEC
++static unsigned int gr_status __read_only = GR_STATUS_INIT;
++#else
+static unsigned int gr_status = GR_STATUS_INIT;
++#endif
+
+extern int chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum);
+extern void gr_clear_learn_entries(void);
@@ -24820,7 +27950,18 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
+ goto out;
+ }
+
++#ifdef CONFIG_PAX_KERNEXEC
++ {
++ unsigned long cr0;
++
++ pax_open_kernel(cr0);
++ gr_status |= GR_READY;
++ pax_close_kernel(cr0);
++ }
++#else
+ gr_status |= GR_READY;
++#endif
++
+ out:
+ return error;
+}
@@ -26187,7 +29328,17 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
+ case GR_SHUTDOWN:
+ if ((gr_status & GR_READY)
+ && !(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
++#ifdef CONFIG_PAX_KERNEXEC
++ {
++ unsigned long cr0;
++
++ pax_open_kernel(cr0);
++ gr_status &= ~GR_READY;
++ pax_close_kernel(cr0);
++ }
++#else
+ gr_status &= ~GR_READY;
++#endif
+ gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
+ free_variables();
+ memset(gr_usermode, 0, sizeof (struct gr_arg));
@@ -26218,7 +29369,17 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
+ error = -EAGAIN;
+ } else if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
+ lock_kernel();
++#ifdef CONFIG_PAX_KERNEXEC
++ {
++ unsigned long cr0;
++
++ pax_open_kernel(cr0);
++ gr_status &= ~GR_READY;
++ pax_close_kernel(cr0);
++ }
++#else
+ gr_status &= ~GR_READY;
++#endif
+ free_variables();
+ if (!(error2 = gracl_init(gr_usermode))) {
+ unlock_kernel();
@@ -26991,7 +30152,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
+int gr_is_taskstats_denied(int pid)
+{
+ struct task_struct *task;
++#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
+ const struct cred *cred;
++#endif
+ int ret = 0;
+
+ /* restrict taskstats viewing to un-chrooted root users
@@ -27110,7 +30273,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c
+
diff -urNp linux-2.6.29.6/grsecurity/gracl_cap.c linux-2.6.29.6/grsecurity/gracl_cap.c
--- linux-2.6.29.6/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_cap.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_cap.c 2009-07-23 17:34:32.174773311 -0400
@@ -0,0 +1,131 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
@@ -27245,7 +30408,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_cap.c linux-2.6.29.6/grsecurity/gracl
+
diff -urNp linux-2.6.29.6/grsecurity/gracl_fs.c linux-2.6.29.6/grsecurity/gracl_fs.c
--- linux-2.6.29.6/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_fs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_fs.c 2009-07-23 17:34:32.174773311 -0400
@@ -0,0 +1,423 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -27672,7 +30835,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_fs.c linux-2.6.29.6/grsecurity/gracl_
+}
diff -urNp linux-2.6.29.6/grsecurity/gracl_ip.c linux-2.6.29.6/grsecurity/gracl_ip.c
--- linux-2.6.29.6/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_ip.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_ip.c 2009-07-23 17:34:32.174773311 -0400
@@ -0,0 +1,340 @@
+#include <linux/kernel.h>
+#include <asm/uaccess.h>
@@ -28016,7 +31179,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_ip.c linux-2.6.29.6/grsecurity/gracl_
+}
diff -urNp linux-2.6.29.6/grsecurity/gracl_learn.c linux-2.6.29.6/grsecurity/gracl_learn.c
--- linux-2.6.29.6/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_learn.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_learn.c 2009-07-23 18:43:31.274004949 -0400
@@ -0,0 +1,211 @@
+#include <linux/kernel.h>
+#include <linux/mm.h>
@@ -28222,7 +31385,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_learn.c linux-2.6.29.6/grsecurity/gra
+ return 0;
+}
+
-+struct file_operations grsec_fops = {
++const struct file_operations grsec_fops = {
+ .read = read_learn,
+ .write = write_grsec_handler,
+ .open = open_learn,
@@ -28231,7 +31394,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_learn.c linux-2.6.29.6/grsecurity/gra
+};
diff -urNp linux-2.6.29.6/grsecurity/gracl_res.c linux-2.6.29.6/grsecurity/gracl_res.c
--- linux-2.6.29.6/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_res.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_res.c 2009-07-23 17:34:32.175727734 -0400
@@ -0,0 +1,58 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -28293,7 +31456,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_res.c linux-2.6.29.6/grsecurity/gracl
+}
diff -urNp linux-2.6.29.6/grsecurity/gracl_segv.c linux-2.6.29.6/grsecurity/gracl_segv.c
--- linux-2.6.29.6/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_segv.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_segv.c 2009-07-23 17:34:32.175727734 -0400
@@ -0,0 +1,307 @@
+#include <linux/kernel.h>
+#include <linux/mm.h>
@@ -28604,7 +31767,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_segv.c linux-2.6.29.6/grsecurity/grac
+}
diff -urNp linux-2.6.29.6/grsecurity/gracl_shm.c linux-2.6.29.6/grsecurity/gracl_shm.c
--- linux-2.6.29.6/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/gracl_shm.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/gracl_shm.c 2009-07-23 17:34:32.175727734 -0400
@@ -0,0 +1,37 @@
+#include <linux/kernel.h>
+#include <linux/mm.h>
@@ -28645,7 +31808,7 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_shm.c linux-2.6.29.6/grsecurity/gracl
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_chdir.c linux-2.6.29.6/grsecurity/grsec_chdir.c
--- linux-2.6.29.6/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_chdir.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_chdir.c 2009-07-23 17:34:32.175727734 -0400
@@ -0,0 +1,19 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -28668,7 +31831,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_chdir.c linux-2.6.29.6/grsecurity/grs
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_chroot.c linux-2.6.29.6/grsecurity/grsec_chroot.c
--- linux-2.6.29.6/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_chroot.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_chroot.c 2009-07-23 17:34:32.175727734 -0400
@@ -0,0 +1,350 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
@@ -29022,7 +32185,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_chroot.c linux-2.6.29.6/grsecurity/gr
+#endif
diff -urNp linux-2.6.29.6/grsecurity/grsec_disabled.c linux-2.6.29.6/grsecurity/grsec_disabled.c
--- linux-2.6.29.6/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_disabled.c 2009-07-09 23:09:22.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_disabled.c 2009-07-23 17:34:32.175727734 -0400
@@ -0,0 +1,426 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
@@ -29452,7 +32615,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_disabled.c linux-2.6.29.6/grsecurity/
+#endif
diff -urNp linux-2.6.29.6/grsecurity/grsec_exec.c linux-2.6.29.6/grsecurity/grsec_exec.c
--- linux-2.6.29.6/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_exec.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_exec.c 2009-07-23 17:34:32.176740408 -0400
@@ -0,0 +1,89 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -29545,7 +32708,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_exec.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_fifo.c linux-2.6.29.6/grsecurity/grsec_fifo.c
--- linux-2.6.29.6/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_fifo.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_fifo.c 2009-07-23 17:34:32.176740408 -0400
@@ -0,0 +1,24 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -29573,7 +32736,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_fifo.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_fork.c linux-2.6.29.6/grsecurity/grsec_fork.c
--- linux-2.6.29.6/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_fork.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_fork.c 2009-07-23 17:34:32.176740408 -0400
@@ -0,0 +1,15 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -29592,7 +32755,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_fork.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_init.c linux-2.6.29.6/grsecurity/grsec_init.c
--- linux-2.6.29.6/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_init.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_init.c 2009-07-23 18:43:31.274004949 -0400
@@ -0,0 +1,230 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -29662,7 +32825,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_init.c linux-2.6.29.6/grsecurity/grse
+extern unsigned char *gr_system_salt;
+extern unsigned char *gr_system_sum;
+
-+void
++void __init
+grsecurity_init(void)
+{
+ int j;
@@ -29826,7 +32989,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_init.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_ipc.c linux-2.6.29.6/grsecurity/grsec_ipc.c
--- linux-2.6.29.6/grsecurity/grsec_ipc.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_ipc.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_ipc.c 2009-07-23 17:34:32.176740408 -0400
@@ -0,0 +1,81 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -29911,7 +33074,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_ipc.c linux-2.6.29.6/grsecurity/grsec
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_link.c linux-2.6.29.6/grsecurity/grsec_link.c
--- linux-2.6.29.6/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_link.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_link.c 2009-07-23 17:34:32.176740408 -0400
@@ -0,0 +1,43 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -29958,7 +33121,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_link.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_log.c linux-2.6.29.6/grsecurity/grsec_log.c
--- linux-2.6.29.6/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_log.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_log.c 2009-07-23 17:34:32.177726844 -0400
@@ -0,0 +1,288 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -30250,7 +33413,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_log.c linux-2.6.29.6/grsecurity/grsec
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_mem.c linux-2.6.29.6/grsecurity/grsec_mem.c
--- linux-2.6.29.6/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_mem.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_mem.c 2009-07-23 17:34:32.177726844 -0400
@@ -0,0 +1,71 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -30325,7 +33488,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_mem.c linux-2.6.29.6/grsecurity/grsec
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_mount.c linux-2.6.29.6/grsecurity/grsec_mount.c
--- linux-2.6.29.6/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_mount.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_mount.c 2009-07-23 17:34:32.177726844 -0400
@@ -0,0 +1,34 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -30363,7 +33526,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_mount.c linux-2.6.29.6/grsecurity/grs
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_sig.c linux-2.6.29.6/grsecurity/grsec_sig.c
--- linux-2.6.29.6/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_sig.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_sig.c 2009-07-23 17:34:32.177726844 -0400
@@ -0,0 +1,58 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -30425,7 +33588,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_sig.c linux-2.6.29.6/grsecurity/grsec
+
diff -urNp linux-2.6.29.6/grsecurity/grsec_sock.c linux-2.6.29.6/grsecurity/grsec_sock.c
--- linux-2.6.29.6/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_sock.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_sock.c 2009-07-23 17:34:32.177726844 -0400
@@ -0,0 +1,269 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
@@ -30698,7 +33861,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_sock.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_sysctl.c linux-2.6.29.6/grsecurity/grsec_sysctl.c
--- linux-2.6.29.6/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_sysctl.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_sysctl.c 2009-07-23 17:34:32.178838233 -0400
@@ -0,0 +1,435 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -31137,7 +34300,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_sysctl.c linux-2.6.29.6/grsecurity/gr
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_textrel.c linux-2.6.29.6/grsecurity/grsec_textrel.c
--- linux-2.6.29.6/grsecurity/grsec_textrel.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_textrel.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_textrel.c 2009-07-23 17:34:32.178838233 -0400
@@ -0,0 +1,16 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -31157,7 +34320,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_textrel.c linux-2.6.29.6/grsecurity/g
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_time.c linux-2.6.29.6/grsecurity/grsec_time.c
--- linux-2.6.29.6/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_time.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_time.c 2009-07-23 17:34:32.178838233 -0400
@@ -0,0 +1,13 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -31174,7 +34337,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_time.c linux-2.6.29.6/grsecurity/grse
+}
diff -urNp linux-2.6.29.6/grsecurity/grsec_tpe.c linux-2.6.29.6/grsecurity/grsec_tpe.c
--- linux-2.6.29.6/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsec_tpe.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsec_tpe.c 2009-07-23 17:34:32.178838233 -0400
@@ -0,0 +1,38 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
@@ -31216,7 +34379,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_tpe.c linux-2.6.29.6/grsecurity/grsec
+}
diff -urNp linux-2.6.29.6/grsecurity/grsum.c linux-2.6.29.6/grsecurity/grsum.c
--- linux-2.6.29.6/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/grsum.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/grsum.c 2009-07-23 17:34:32.179767198 -0400
@@ -0,0 +1,59 @@
+#include <linux/err.h>
+#include <linux/kernel.h>
@@ -31279,8 +34442,8 @@ diff -urNp linux-2.6.29.6/grsecurity/grsum.c linux-2.6.29.6/grsecurity/grsum.c
+}
diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig
--- linux-2.6.29.6/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/Kconfig 2009-07-10 07:22:18.000000000 -0400
-@@ -0,0 +1,896 @@
++++ linux-2.6.29.6/grsecurity/Kconfig 2009-07-23 17:36:47.298949106 -0400
+@@ -0,0 +1,894 @@
+#
+# grecurity configuration
+#
@@ -31363,8 +34526,7 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig
+ select PAX_ASLR
+ select PAX_RANDMMAP
+ select PAX_REFCOUNT if (X86)
-+ select PAX_USERCOPY if (X86_32 && (SLAB || SLUB))
-+ select PAX_SECURE_VSYSCALL if (X86_64)
++ select PAX_USERCOPY if (X86 && (SLAB || SLUB || SLOB))
+
+ help
+ If you say Y here, several features in addition to those included
@@ -31446,8 +34608,7 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig
+ select PAX_EMUSIGRT if (PARISC)
+ select PAX_ETEXECRELOCS if (ALPHA || IA64 || PARISC)
+ select PAX_REFCOUNT if (X86)
-+ select PAX_USERCOPY if (X86_32 && (SLAB || SLUB))
-+ select PAX_SECURE_VSYSCALL if (X86_64)
++ select PAX_USERCOPY if (X86 && (SLAB || SLUB || SLOB))
+ help
+ If you say Y here, many of the features of grsecurity will be
+ enabled, which will protect you against many kinds of attacks
@@ -32179,7 +35340,7 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig
+endmenu
diff -urNp linux-2.6.29.6/grsecurity/Makefile linux-2.6.29.6/grsecurity/Makefile
--- linux-2.6.29.6/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/grsecurity/Makefile 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/grsecurity/Makefile 2009-07-23 17:34:32.180729893 -0400
@@ -0,0 +1,21 @@
+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
+# during 2001-2005 it has been completely redesigned by Brad Spengler
@@ -32202,9 +35363,30 @@ diff -urNp linux-2.6.29.6/grsecurity/Makefile linux-2.6.29.6/grsecurity/Makefile
+obj-y += grsec_disabled.o
+endif
+
+diff -urNp linux-2.6.29.6/include/acpi/processor.h linux-2.6.29.6/include/acpi/processor.h
+--- linux-2.6.29.6/include/acpi/processor.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/acpi/processor.h 2009-07-23 18:40:28.648332539 -0400
+@@ -322,7 +322,7 @@ static inline int acpi_processor_ppc_has
+ int acpi_processor_tstate_has_changed(struct acpi_processor *pr);
+ int acpi_processor_get_throttling_info(struct acpi_processor *pr);
+ extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state);
+-extern struct file_operations acpi_processor_throttling_fops;
++extern const struct file_operations acpi_processor_throttling_fops;
+ extern void acpi_processor_throttling_init(void);
+ /* in processor_idle.c */
+ int acpi_processor_power_init(struct acpi_processor *pr,
+@@ -336,7 +336,7 @@ extern struct cpuidle_driver acpi_idle_d
+
+ /* in processor_thermal.c */
+ int acpi_processor_get_limit_info(struct acpi_processor *pr);
+-extern struct file_operations acpi_processor_limit_fops;
++extern const struct file_operations acpi_processor_limit_fops;
+ extern struct thermal_cooling_device_ops processor_cooling_ops;
+ #ifdef CONFIG_CPU_FREQ
+ void acpi_thermal_cpufreq_init(void);
diff -urNp linux-2.6.29.6/include/asm-frv/atomic.h linux-2.6.29.6/include/asm-frv/atomic.h
--- linux-2.6.29.6/include/asm-frv/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-frv/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-frv/atomic.h 2009-07-23 17:34:32.180729893 -0400
@@ -114,6 +114,10 @@ static inline void atomic_dec(atomic_t *
atomic_sub_return(1, v);
}
@@ -32218,7 +35400,7 @@ diff -urNp linux-2.6.29.6/include/asm-frv/atomic.h linux-2.6.29.6/include/asm-fr
diff -urNp linux-2.6.29.6/include/asm-frv/kmap_types.h linux-2.6.29.6/include/asm-frv/kmap_types.h
--- linux-2.6.29.6/include/asm-frv/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-frv/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-frv/kmap_types.h 2009-07-23 17:34:32.180729893 -0400
@@ -23,6 +23,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -32229,7 +35411,7 @@ diff -urNp linux-2.6.29.6/include/asm-frv/kmap_types.h linux-2.6.29.6/include/as
diff -urNp linux-2.6.29.6/include/asm-generic/futex.h linux-2.6.29.6/include/asm-generic/futex.h
--- linux-2.6.29.6/include/asm-generic/futex.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-generic/futex.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-generic/futex.h 2009-07-23 17:34:32.180729893 -0400
@@ -6,7 +6,7 @@
#include <asm/errno.h>
@@ -32250,7 +35432,7 @@ diff -urNp linux-2.6.29.6/include/asm-generic/futex.h linux-2.6.29.6/include/asm
}
diff -urNp linux-2.6.29.6/include/asm-generic/int-l64.h linux-2.6.29.6/include/asm-generic/int-l64.h
--- linux-2.6.29.6/include/asm-generic/int-l64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-generic/int-l64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-generic/int-l64.h 2009-07-23 17:34:32.180729893 -0400
@@ -44,6 +44,8 @@ typedef unsigned int u32;
typedef signed long s64;
typedef unsigned long u64;
@@ -32262,7 +35444,7 @@ diff -urNp linux-2.6.29.6/include/asm-generic/int-l64.h linux-2.6.29.6/include/a
#define S16_C(x) x
diff -urNp linux-2.6.29.6/include/asm-generic/int-ll64.h linux-2.6.29.6/include/asm-generic/int-ll64.h
--- linux-2.6.29.6/include/asm-generic/int-ll64.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-generic/int-ll64.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-generic/int-ll64.h 2009-07-23 17:34:32.180729893 -0400
@@ -49,6 +49,8 @@ typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
@@ -32274,7 +35456,7 @@ diff -urNp linux-2.6.29.6/include/asm-generic/int-ll64.h linux-2.6.29.6/include/
#define S16_C(x) x
diff -urNp linux-2.6.29.6/include/asm-generic/vmlinux.lds.h linux-2.6.29.6/include/asm-generic/vmlinux.lds.h
--- linux-2.6.29.6/include/asm-generic/vmlinux.lds.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-generic/vmlinux.lds.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-generic/vmlinux.lds.h 2009-07-23 17:34:32.181776916 -0400
@@ -88,6 +88,7 @@
.rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
VMLINUX_SYMBOL(__start_rodata) = .; \
@@ -32285,7 +35467,7 @@ diff -urNp linux-2.6.29.6/include/asm-generic/vmlinux.lds.h linux-2.6.29.6/inclu
*(__tracepoints_strings)/* Tracepoints: strings */ \
diff -urNp linux-2.6.29.6/include/asm-m32r/atomic.h linux-2.6.29.6/include/asm-m32r/atomic.h
--- linux-2.6.29.6/include/asm-m32r/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-m32r/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-m32r/atomic.h 2009-07-23 17:34:32.181776916 -0400
@@ -308,6 +308,10 @@ static __inline__ void atomic_set_mask(u
local_irq_restore(flags);
}
@@ -32299,7 +35481,7 @@ diff -urNp linux-2.6.29.6/include/asm-m32r/atomic.h linux-2.6.29.6/include/asm-m
#define smp_mb__after_atomic_dec() barrier()
diff -urNp linux-2.6.29.6/include/asm-m32r/kmap_types.h linux-2.6.29.6/include/asm-m32r/kmap_types.h
--- linux-2.6.29.6/include/asm-m32r/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-m32r/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-m32r/kmap_types.h 2009-07-23 17:34:32.181776916 -0400
@@ -21,7 +21,8 @@ D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
@@ -32312,7 +35494,7 @@ diff -urNp linux-2.6.29.6/include/asm-m32r/kmap_types.h linux-2.6.29.6/include/a
#undef D
diff -urNp linux-2.6.29.6/include/asm-mn10300/atomic.h linux-2.6.29.6/include/asm-mn10300/atomic.h
--- linux-2.6.29.6/include/asm-mn10300/atomic.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-mn10300/atomic.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-mn10300/atomic.h 2009-07-23 17:34:32.181776916 -0400
@@ -145,6 +145,10 @@ static inline void atomic_clear_mask(uns
#define atomic_xchg(ptr, v) (xchg(&(ptr)->counter, (v)))
#define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new)))
@@ -32326,7 +35508,7 @@ diff -urNp linux-2.6.29.6/include/asm-mn10300/atomic.h linux-2.6.29.6/include/as
#define smp_mb__after_atomic_dec() barrier()
diff -urNp linux-2.6.29.6/include/asm-mn10300/kmap_types.h linux-2.6.29.6/include/asm-mn10300/kmap_types.h
--- linux-2.6.29.6/include/asm-mn10300/kmap_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/asm-mn10300/kmap_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/asm-mn10300/kmap_types.h 2009-07-23 17:34:32.181776916 -0400
@@ -25,6 +25,7 @@ enum km_type {
KM_IRQ1,
KM_SOFTIRQ0,
@@ -32337,7 +35519,7 @@ diff -urNp linux-2.6.29.6/include/asm-mn10300/kmap_types.h linux-2.6.29.6/includ
diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/drm_pciids.h
--- linux-2.6.29.6/include/drm/drm_pciids.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/drm/drm_pciids.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/drm/drm_pciids.h 2009-07-23 17:34:32.182748165 -0400
@@ -243,7 +243,7 @@
{0x1002, 0x796d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
{0x1002, 0x796e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
@@ -32442,7 +35624,16 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr
+ {0, 0, 0, 0, 0, 0}
diff -urNp linux-2.6.29.6/include/drm/drmP.h linux-2.6.29.6/include/drm/drmP.h
--- linux-2.6.29.6/include/drm/drmP.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/drm/drmP.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/drm/drmP.h 2009-07-23 18:40:27.472293076 -0400
+@@ -769,7 +769,7 @@ struct drm_driver {
+ void (*gem_free_object) (struct drm_gem_object *obj);
+
+ /* Driver private ops for this object */
+- struct vm_operations_struct *gem_vm_ops;
++ const struct vm_operations_struct *gem_vm_ops;
+
+ int major;
+ int minor;
@@ -825,7 +825,7 @@ struct drm_device {
/** \name Usage Counters */
@@ -32463,7 +35654,7 @@ diff -urNp linux-2.6.29.6/include/drm/drmP.h linux-2.6.29.6/include/drm/drmP.h
struct list_head filelist;
diff -urNp linux-2.6.29.6/include/linux/a.out.h linux-2.6.29.6/include/linux/a.out.h
--- linux-2.6.29.6/include/linux/a.out.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/a.out.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/a.out.h 2009-07-23 17:34:32.184929094 -0400
@@ -39,6 +39,14 @@ enum machine_type {
M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
};
@@ -32481,7 +35672,7 @@ diff -urNp linux-2.6.29.6/include/linux/a.out.h linux-2.6.29.6/include/linux/a.o
#endif
diff -urNp linux-2.6.29.6/include/linux/atmdev.h linux-2.6.29.6/include/linux/atmdev.h
--- linux-2.6.29.6/include/linux/atmdev.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/atmdev.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/atmdev.h 2009-07-23 17:34:32.185714643 -0400
@@ -237,7 +237,7 @@ struct compat_atm_iobuf {
#endif
@@ -32493,7 +35684,7 @@ diff -urNp linux-2.6.29.6/include/linux/atmdev.h linux-2.6.29.6/include/linux/at
};
diff -urNp linux-2.6.29.6/include/linux/binfmts.h linux-2.6.29.6/include/linux/binfmts.h
--- linux-2.6.29.6/include/linux/binfmts.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/binfmts.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/binfmts.h 2009-07-23 17:34:32.186791450 -0400
@@ -79,6 +79,7 @@ struct linux_binfmt {
int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
int (*load_shlib)(struct file *);
@@ -32504,7 +35695,7 @@ diff -urNp linux-2.6.29.6/include/linux/binfmts.h linux-2.6.29.6/include/linux/b
};
diff -urNp linux-2.6.29.6/include/linux/cache.h linux-2.6.29.6/include/linux/cache.h
--- linux-2.6.29.6/include/linux/cache.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/cache.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/cache.h 2009-07-23 17:34:32.186791450 -0400
@@ -16,6 +16,10 @@
#define __read_mostly
#endif
@@ -32518,7 +35709,7 @@ diff -urNp linux-2.6.29.6/include/linux/cache.h linux-2.6.29.6/include/linux/cac
#endif
diff -urNp linux-2.6.29.6/include/linux/capability.h linux-2.6.29.6/include/linux/capability.h
--- linux-2.6.29.6/include/linux/capability.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/capability.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/capability.h 2009-07-23 17:34:32.186791450 -0400
@@ -563,6 +563,7 @@ extern const kernel_cap_t __cap_init_eff
(security_real_capable_noaudit((t), (cap)) == 0)
@@ -32527,9 +35718,21 @@ diff -urNp linux-2.6.29.6/include/linux/capability.h linux-2.6.29.6/include/linu
/* audit system wants to get cap info from files as well */
struct dentry;
+diff -urNp linux-2.6.29.6/include/linux/cgroup.h linux-2.6.29.6/include/linux/cgroup.h
+--- linux-2.6.29.6/include/linux/cgroup.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/cgroup.h 2009-07-23 18:40:28.658648615 -0400
+@@ -35,7 +35,7 @@ extern void cgroup_exit(struct task_stru
+ extern int cgroupstats_build(struct cgroupstats *stats,
+ struct dentry *dentry);
+
+-extern struct file_operations proc_cgroup_operations;
++extern const struct file_operations proc_cgroup_operations;
+
+ /* Define the enumeration of all cgroup subsystems */
+ #define SUBSYS(_x) _x ## _subsys_id,
diff -urNp linux-2.6.29.6/include/linux/cpumask.h linux-2.6.29.6/include/linux/cpumask.h
--- linux-2.6.29.6/include/linux/cpumask.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/cpumask.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/cpumask.h 2009-07-23 17:34:32.187810630 -0400
@@ -142,7 +142,6 @@
#include <linux/bitmap.h>
@@ -32538,9 +35741,21 @@ diff -urNp linux-2.6.29.6/include/linux/cpumask.h linux-2.6.29.6/include/linux/c
#ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
#define cpu_set(cpu, dst) __cpu_set((cpu), &(dst))
+diff -urNp linux-2.6.29.6/include/linux/dcache.h linux-2.6.29.6/include/linux/dcache.h
+--- linux-2.6.29.6/include/linux/dcache.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/dcache.h 2009-07-23 18:40:28.672304095 -0400
+@@ -112,7 +112,7 @@ struct dentry {
+ struct list_head d_subdirs; /* our children */
+ struct list_head d_alias; /* inode alias list */
+ unsigned long d_time; /* used by d_revalidate */
+- struct dentry_operations *d_op;
++ const struct dentry_operations *d_op;
+ struct super_block *d_sb; /* The root of the dentry tree */
+ void *d_fsdata; /* fs-specific data */
+
diff -urNp linux-2.6.29.6/include/linux/elf.h linux-2.6.29.6/include/linux/elf.h
--- linux-2.6.29.6/include/linux/elf.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/elf.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/elf.h 2009-07-23 17:34:32.187810630 -0400
@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword;
#define PT_GNU_EH_FRAME 0x6474e550
@@ -32613,9 +35828,21 @@ diff -urNp linux-2.6.29.6/include/linux/elf.h linux-2.6.29.6/include/linux/elf.h
#endif
+diff -urNp linux-2.6.29.6/include/linux/fs.h linux-2.6.29.6/include/linux/fs.h
+--- linux-2.6.29.6/include/linux/fs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/fs.h 2009-07-23 18:40:28.682280722 -0400
+@@ -2207,7 +2207,7 @@ static int __fops ## _open(struct inode
+ __simple_attr_check_format(__fmt, 0ull); \
+ return simple_attr_open(inode, file, __get, __set, __fmt); \
+ } \
+-static struct file_operations __fops = { \
++static const struct file_operations __fops = { \
+ .owner = THIS_MODULE, \
+ .open = __fops ## _open, \
+ .release = simple_attr_release, \
diff -urNp linux-2.6.29.6/include/linux/fs_struct.h linux-2.6.29.6/include/linux/fs_struct.h
--- linux-2.6.29.6/include/linux/fs_struct.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/fs_struct.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/fs_struct.h 2009-07-23 17:34:32.187810630 -0400
@@ -4,7 +4,7 @@
#include <linux/path.h>
@@ -32627,7 +35854,7 @@ diff -urNp linux-2.6.29.6/include/linux/fs_struct.h linux-2.6.29.6/include/linux
int in_exec;
diff -urNp linux-2.6.29.6/include/linux/genhd.h linux-2.6.29.6/include/linux/genhd.h
--- linux-2.6.29.6/include/linux/genhd.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/genhd.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/genhd.h 2009-07-23 17:34:32.188714513 -0400
@@ -159,7 +159,7 @@ struct gendisk {
struct timer_rand_state *random;
@@ -32639,7 +35866,7 @@ diff -urNp linux-2.6.29.6/include/linux/genhd.h linux-2.6.29.6/include/linux/gen
struct blk_integrity *integrity;
diff -urNp linux-2.6.29.6/include/linux/gracl.h linux-2.6.29.6/include/linux/gracl.h
--- linux-2.6.29.6/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/include/linux/gracl.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/gracl.h 2009-07-23 17:34:32.188714513 -0400
@@ -0,0 +1,318 @@
+#ifndef GR_ACL_H
+#define GR_ACL_H
@@ -32961,7 +36188,7 @@ diff -urNp linux-2.6.29.6/include/linux/gracl.h linux-2.6.29.6/include/linux/gra
+
diff -urNp linux-2.6.29.6/include/linux/gralloc.h linux-2.6.29.6/include/linux/gralloc.h
--- linux-2.6.29.6/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/include/linux/gralloc.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/gralloc.h 2009-07-23 17:34:32.188714513 -0400
@@ -0,0 +1,9 @@
+#ifndef __GRALLOC_H
+#define __GRALLOC_H
@@ -32974,7 +36201,7 @@ diff -urNp linux-2.6.29.6/include/linux/gralloc.h linux-2.6.29.6/include/linux/g
+#endif
diff -urNp linux-2.6.29.6/include/linux/grdefs.h linux-2.6.29.6/include/linux/grdefs.h
--- linux-2.6.29.6/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/include/linux/grdefs.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/grdefs.h 2009-07-23 17:34:32.188714513 -0400
@@ -0,0 +1,136 @@
+#ifndef GRDEFS_H
+#define GRDEFS_H
@@ -33114,7 +36341,7 @@ diff -urNp linux-2.6.29.6/include/linux/grdefs.h linux-2.6.29.6/include/linux/gr
+#endif
diff -urNp linux-2.6.29.6/include/linux/grinternal.h linux-2.6.29.6/include/linux/grinternal.h
--- linux-2.6.29.6/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/include/linux/grinternal.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/grinternal.h 2009-07-23 17:34:32.188714513 -0400
@@ -0,0 +1,211 @@
+#ifndef __GRINTERNAL_H
+#define __GRINTERNAL_H
@@ -33329,7 +36556,7 @@ diff -urNp linux-2.6.29.6/include/linux/grinternal.h linux-2.6.29.6/include/linu
+#endif
diff -urNp linux-2.6.29.6/include/linux/grmsg.h linux-2.6.29.6/include/linux/grmsg.h
--- linux-2.6.29.6/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/include/linux/grmsg.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/grmsg.h 2009-07-23 17:34:32.188714513 -0400
@@ -0,0 +1,108 @@
+#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u"
+#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%u.%u.%u.%u TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%u.%u.%u.%u TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u"
@@ -33441,7 +36668,7 @@ diff -urNp linux-2.6.29.6/include/linux/grmsg.h linux-2.6.29.6/include/linux/grm
+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by "
diff -urNp linux-2.6.29.6/include/linux/grsecurity.h linux-2.6.29.6/include/linux/grsecurity.h
--- linux-2.6.29.6/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/include/linux/grsecurity.h 2009-07-09 23:21:34.000000000 -0400
++++ linux-2.6.29.6/include/linux/grsecurity.h 2009-07-23 17:34:32.189932774 -0400
@@ -0,0 +1,201 @@
+#ifndef GR_SECURITY_H
+#define GR_SECURITY_H
@@ -33646,7 +36873,7 @@ diff -urNp linux-2.6.29.6/include/linux/grsecurity.h linux-2.6.29.6/include/linu
+#endif
diff -urNp linux-2.6.29.6/include/linux/highmem.h linux-2.6.29.6/include/linux/highmem.h
--- linux-2.6.29.6/include/linux/highmem.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/highmem.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/highmem.h 2009-07-23 17:34:32.189932774 -0400
@@ -124,6 +124,18 @@ static inline void clear_highpage(struct
kunmap_atomic(kaddr, KM_USER0);
}
@@ -33666,9 +36893,21 @@ diff -urNp linux-2.6.29.6/include/linux/highmem.h linux-2.6.29.6/include/linux/h
static inline void zero_user_segments(struct page *page,
unsigned start1, unsigned end1,
unsigned start2, unsigned end2)
+diff -urNp linux-2.6.29.6/include/linux/hugetlb.h linux-2.6.29.6/include/linux/hugetlb.h
+--- linux-2.6.29.6/include/linux/hugetlb.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/hugetlb.h 2009-07-23 18:40:28.693352210 -0400
+@@ -138,7 +138,7 @@ static inline struct hugetlbfs_sb_info *
+ }
+
+ extern const struct file_operations hugetlbfs_file_operations;
+-extern struct vm_operations_struct hugetlb_vm_ops;
++extern const struct vm_operations_struct hugetlb_vm_ops;
+ struct file *hugetlb_file_setup(const char *name, size_t, int);
+ int hugetlb_get_quota(struct address_space *mapping, long delta);
+ void hugetlb_put_quota(struct address_space *mapping, long delta);
diff -urNp linux-2.6.29.6/include/linux/jbd2.h linux-2.6.29.6/include/linux/jbd2.h
--- linux-2.6.29.6/include/linux/jbd2.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/jbd2.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/jbd2.h 2009-07-23 17:34:32.189932774 -0400
@@ -66,7 +66,7 @@ extern u8 jbd2_journal_enable_debug;
} \
} while (0)
@@ -33680,7 +36919,7 @@ diff -urNp linux-2.6.29.6/include/linux/jbd2.h linux-2.6.29.6/include/linux/jbd2
static inline void *jbd2_alloc(size_t size, gfp_t flags)
diff -urNp linux-2.6.29.6/include/linux/jbd.h linux-2.6.29.6/include/linux/jbd.h
--- linux-2.6.29.6/include/linux/jbd.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/jbd.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/jbd.h 2009-07-23 17:34:32.189932774 -0400
@@ -66,7 +66,7 @@ extern u8 journal_enable_debug;
} \
} while (0)
@@ -33692,7 +36931,7 @@ diff -urNp linux-2.6.29.6/include/linux/jbd.h linux-2.6.29.6/include/linux/jbd.h
static inline void *jbd_alloc(size_t size, gfp_t flags)
diff -urNp linux-2.6.29.6/include/linux/kvm_host.h linux-2.6.29.6/include/linux/kvm_host.h
--- linux-2.6.29.6/include/linux/kvm_host.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/kvm_host.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/kvm_host.h 2009-07-23 17:34:32.189932774 -0400
@@ -155,7 +155,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc
void vcpu_load(struct kvm_vcpu *vcpu);
void vcpu_put(struct kvm_vcpu *vcpu);
@@ -33713,7 +36952,7 @@ diff -urNp linux-2.6.29.6/include/linux/kvm_host.h linux-2.6.29.6/include/linux/
int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
diff -urNp linux-2.6.29.6/include/linux/libata.h linux-2.6.29.6/include/linux/libata.h
--- linux-2.6.29.6/include/linux/libata.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/libata.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/libata.h 2009-07-23 17:34:32.190921738 -0400
@@ -64,11 +64,11 @@
#ifdef ATA_VERBOSE_DEBUG
#define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
@@ -33731,7 +36970,7 @@ diff -urNp linux-2.6.29.6/include/linux/libata.h linux-2.6.29.6/include/linux/li
#define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __func__, ## args)
diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h
--- linux-2.6.29.6/include/linux/mm.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/mm.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/mm.h 2009-07-23 17:34:32.190921738 -0400
@@ -39,6 +39,7 @@ extern unsigned long mmap_min_addr;
#include <asm/page.h>
#include <asm/pgtable.h>
@@ -33802,7 +37041,16 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h
#endif /* _LINUX_MM_H */
diff -urNp linux-2.6.29.6/include/linux/mm_types.h linux-2.6.29.6/include/linux/mm_types.h
--- linux-2.6.29.6/include/linux/mm_types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/mm_types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/mm_types.h 2009-07-23 18:40:27.472293076 -0400
+@@ -159,7 +159,7 @@ struct vm_area_struct {
+ struct anon_vma *anon_vma; /* Serialized by page_table_lock */
+
+ /* Function pointers to deal with this struct. */
+- struct vm_operations_struct * vm_ops;
++ const struct vm_operations_struct * vm_ops;
+
+ /* Information about our backing store: */
+ unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE
@@ -174,6 +174,8 @@ struct vm_area_struct {
#ifdef CONFIG_NUMA
struct mempolicy *vm_policy; /* NUMA policy for the VMA */
@@ -33839,7 +37087,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm_types.h linux-2.6.29.6/include/linux/
/* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/module.h
--- linux-2.6.29.6/include/linux/module.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/module.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/module.h 2009-07-23 17:34:32.191875265 -0400
@@ -278,16 +278,16 @@ struct module
int (*init)(void);
@@ -33926,7 +37174,7 @@ diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/mo
#endif
diff -urNp linux-2.6.29.6/include/linux/moduleloader.h linux-2.6.29.6/include/linux/moduleloader.h
--- linux-2.6.29.6/include/linux/moduleloader.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/moduleloader.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/moduleloader.h 2009-07-23 17:34:32.192794045 -0400
@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st
sections. Returns NULL on failure. */
void *module_alloc(unsigned long size);
@@ -33951,7 +37199,7 @@ diff -urNp linux-2.6.29.6/include/linux/moduleloader.h linux-2.6.29.6/include/li
int apply_relocate(Elf_Shdr *sechdrs,
diff -urNp linux-2.6.29.6/include/linux/namei.h linux-2.6.29.6/include/linux/namei.h
--- linux-2.6.29.6/include/linux/namei.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/namei.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/namei.h 2009-07-23 17:34:32.192794045 -0400
@@ -21,7 +21,7 @@ struct nameidata {
unsigned int flags;
int last_type;
@@ -33976,9 +37224,45 @@ diff -urNp linux-2.6.29.6/include/linux/namei.h linux-2.6.29.6/include/linux/nam
{
return nd->saved_names[nd->depth];
}
+diff -urNp linux-2.6.29.6/include/linux/nfsd/nfsd.h linux-2.6.29.6/include/linux/nfsd/nfsd.h
+--- linux-2.6.29.6/include/linux/nfsd/nfsd.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/nfsd/nfsd.h 2009-07-23 18:40:28.718303595 -0400
+@@ -56,7 +56,7 @@ extern struct svc_version nfsd_version2,
+ extern struct mutex nfsd_mutex;
+ extern struct svc_serv *nfsd_serv;
+
+-extern struct seq_operations nfs_exports_op;
++extern const struct seq_operations nfs_exports_op;
+
+ /*
+ * Function prototypes.
+diff -urNp linux-2.6.29.6/include/linux/nfs_fs.h linux-2.6.29.6/include/linux/nfs_fs.h
+--- linux-2.6.29.6/include/linux/nfs_fs.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/nfs_fs.h 2009-07-23 18:40:28.706582042 -0400
+@@ -415,7 +415,7 @@ extern const struct inode_operations nfs
+ extern const struct inode_operations nfs3_dir_inode_operations;
+ #endif /* CONFIG_NFS_V3 */
+ extern const struct file_operations nfs_dir_operations;
+-extern struct dentry_operations nfs_dentry_operations;
++extern const struct dentry_operations nfs_dentry_operations;
+
+ extern void nfs_force_lookup_revalidate(struct inode *dir);
+ extern int nfs_instantiate(struct dentry *dentry, struct nfs_fh *fh, struct nfs_fattr *fattr);
+diff -urNp linux-2.6.29.6/include/linux/nfs_xdr.h linux-2.6.29.6/include/linux/nfs_xdr.h
+--- linux-2.6.29.6/include/linux/nfs_xdr.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/nfs_xdr.h 2009-07-23 18:40:28.713831736 -0400
+@@ -785,7 +785,7 @@ struct nfs_access_entry;
+ */
+ struct nfs_rpc_ops {
+ u32 version; /* Protocol version */
+- struct dentry_operations *dentry_ops;
++ const struct dentry_operations *dentry_ops;
+ const struct inode_operations *dir_inode_ops;
+ const struct inode_operations *file_inode_ops;
+
diff -urNp linux-2.6.29.6/include/linux/nodemask.h linux-2.6.29.6/include/linux/nodemask.h
--- linux-2.6.29.6/include/linux/nodemask.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/nodemask.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/nodemask.h 2009-07-23 17:34:32.192794045 -0400
@@ -442,11 +442,11 @@ static inline int num_node_state(enum no
#define any_online_node(mask) \
@@ -33997,7 +37281,7 @@ diff -urNp linux-2.6.29.6/include/linux/nodemask.h linux-2.6.29.6/include/linux/
#define num_online_nodes() num_node_state(N_ONLINE)
diff -urNp linux-2.6.29.6/include/linux/oprofile.h linux-2.6.29.6/include/linux/oprofile.h
--- linux-2.6.29.6/include/linux/oprofile.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/oprofile.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/oprofile.h 2009-07-23 17:34:32.192794045 -0400
@@ -128,7 +128,7 @@ int oprofilefs_create_ro_ulong(struct su
/** Create a file for read-only access to an atomic_t. */
@@ -34009,7 +37293,7 @@ diff -urNp linux-2.6.29.6/include/linux/oprofile.h linux-2.6.29.6/include/linux/
struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
diff -urNp linux-2.6.29.6/include/linux/percpu.h linux-2.6.29.6/include/linux/percpu.h
--- linux-2.6.29.6/include/linux/percpu.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/percpu.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/percpu.h 2009-07-23 17:34:32.192794045 -0400
@@ -50,7 +50,7 @@
#endif
@@ -34021,7 +37305,7 @@ diff -urNp linux-2.6.29.6/include/linux/percpu.h linux-2.6.29.6/include/linux/pe
/*
diff -urNp linux-2.6.29.6/include/linux/personality.h linux-2.6.29.6/include/linux/personality.h
--- linux-2.6.29.6/include/linux/personality.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/personality.h 2009-07-10 05:44:42.000000000 -0400
++++ linux-2.6.29.6/include/linux/personality.h 2009-07-23 17:34:32.192794045 -0400
@@ -40,7 +40,7 @@ enum {
* Security-relevant compatibility flags that must be
* cleared upon setuid or setgid exec:
@@ -34033,7 +37317,7 @@ diff -urNp linux-2.6.29.6/include/linux/personality.h linux-2.6.29.6/include/lin
* Personality types.
diff -urNp linux-2.6.29.6/include/linux/poison.h linux-2.6.29.6/include/linux/poison.h
--- linux-2.6.29.6/include/linux/poison.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/poison.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/poison.h 2009-07-23 17:34:32.193834517 -0400
@@ -7,8 +7,8 @@
* under normal circumstances, used to verify that nobody uses
* non-initialized list entries.
@@ -34047,7 +37331,7 @@ diff -urNp linux-2.6.29.6/include/linux/poison.h linux-2.6.29.6/include/linux/po
/*
diff -urNp linux-2.6.29.6/include/linux/proc_fs.h linux-2.6.29.6/include/linux/proc_fs.h
--- linux-2.6.29.6/include/linux/proc_fs.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/proc_fs.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/proc_fs.h 2009-07-23 17:34:32.193834517 -0400
@@ -174,6 +174,19 @@ static inline struct proc_dir_entry *pro
return proc_create_data(name, mode, parent, proc_fops, NULL);
}
@@ -34070,7 +37354,7 @@ diff -urNp linux-2.6.29.6/include/linux/proc_fs.h linux-2.6.29.6/include/linux/p
read_proc_t *read_proc, void * data)
diff -urNp linux-2.6.29.6/include/linux/raid/md_k.h linux-2.6.29.6/include/linux/raid/md_k.h
--- linux-2.6.29.6/include/linux/raid/md_k.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/raid/md_k.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/raid/md_k.h 2009-07-23 17:34:32.193834517 -0400
@@ -293,7 +293,7 @@ static inline void rdev_dec_pending(mdk_
static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
@@ -34082,7 +37366,7 @@ diff -urNp linux-2.6.29.6/include/linux/raid/md_k.h linux-2.6.29.6/include/linux
struct mdk_personality
diff -urNp linux-2.6.29.6/include/linux/random.h linux-2.6.29.6/include/linux/random.h
--- linux-2.6.29.6/include/linux/random.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/random.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/random.h 2009-07-23 17:34:32.193834517 -0400
@@ -74,6 +74,11 @@ unsigned long randomize_range(unsigned l
u32 random32(void);
void srandom32(u32 seed);
@@ -34097,7 +37381,7 @@ diff -urNp linux-2.6.29.6/include/linux/random.h linux-2.6.29.6/include/linux/ra
#endif /* _LINUX_RANDOM_H */
diff -urNp linux-2.6.29.6/include/linux/reiserfs_fs_sb.h linux-2.6.29.6/include/linux/reiserfs_fs_sb.h
--- linux-2.6.29.6/include/linux/reiserfs_fs_sb.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/reiserfs_fs_sb.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/reiserfs_fs_sb.h 2009-07-23 17:34:32.194808945 -0400
@@ -374,7 +374,7 @@ struct reiserfs_sb_info {
/* Comment? -Hans */
wait_queue_head_t s_wait;
@@ -34109,7 +37393,7 @@ diff -urNp linux-2.6.29.6/include/linux/reiserfs_fs_sb.h linux-2.6.29.6/include/
on-disk FS format */
diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sched.h
--- linux-2.6.29.6/include/linux/sched.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/sched.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/sched.h 2009-07-23 17:34:32.195781799 -0400
@@ -97,6 +97,7 @@ struct futex_pi_state;
struct robust_list_head;
struct bio;
@@ -34255,7 +37539,7 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch
{
diff -urNp linux-2.6.29.6/include/linux/screen_info.h linux-2.6.29.6/include/linux/screen_info.h
--- linux-2.6.29.6/include/linux/screen_info.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/screen_info.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/screen_info.h 2009-07-23 17:34:32.195781799 -0400
@@ -42,7 +42,8 @@ struct screen_info {
__u16 pages; /* 0x32 */
__u16 vesa_attributes; /* 0x34 */
@@ -34268,7 +37552,7 @@ diff -urNp linux-2.6.29.6/include/linux/screen_info.h linux-2.6.29.6/include/lin
#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
diff -urNp linux-2.6.29.6/include/linux/security.h linux-2.6.29.6/include/linux/security.h
--- linux-2.6.29.6/include/linux/security.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/security.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/security.h 2009-07-23 17:34:32.196774213 -0400
@@ -32,6 +32,7 @@
#include <linux/sched.h>
#include <linux/key.h>
@@ -34279,7 +37563,7 @@ diff -urNp linux-2.6.29.6/include/linux/security.h linux-2.6.29.6/include/linux/
/* Maximum number of letters for an LSM name string */
diff -urNp linux-2.6.29.6/include/linux/shm.h linux-2.6.29.6/include/linux/shm.h
--- linux-2.6.29.6/include/linux/shm.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/shm.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/shm.h 2009-07-23 17:34:32.196774213 -0400
@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke
pid_t shm_cprid;
pid_t shm_lprid;
@@ -34293,7 +37577,7 @@ diff -urNp linux-2.6.29.6/include/linux/shm.h linux-2.6.29.6/include/linux/shm.h
/* shm_mode upper byte flags */
diff -urNp linux-2.6.29.6/include/linux/slab.h linux-2.6.29.6/include/linux/slab.h
--- linux-2.6.29.6/include/linux/slab.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/slab.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/slab.h 2009-07-23 17:34:32.196774213 -0400
@@ -73,10 +73,9 @@
* ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
* Both make kfree a no-op.
@@ -34353,7 +37637,7 @@ diff -urNp linux-2.6.29.6/include/linux/slab.h linux-2.6.29.6/include/linux/slab
#endif /* _LINUX_SLAB_H */
diff -urNp linux-2.6.29.6/include/linux/slub_def.h linux-2.6.29.6/include/linux/slub_def.h
--- linux-2.6.29.6/include/linux/slub_def.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/slub_def.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/slub_def.h 2009-07-23 17:34:32.196774213 -0400
@@ -85,7 +85,7 @@ struct kmem_cache {
struct kmem_cache_order_objects max;
struct kmem_cache_order_objects min;
@@ -34363,9 +37647,21 @@ diff -urNp linux-2.6.29.6/include/linux/slub_def.h linux-2.6.29.6/include/linux/
void (*ctor)(void *);
int inuse; /* Offset to metadata */
int align; /* Alignment */
+diff -urNp linux-2.6.29.6/include/linux/sonet.h linux-2.6.29.6/include/linux/sonet.h
+--- linux-2.6.29.6/include/linux/sonet.h 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/include/linux/sonet.h 2009-07-23 17:34:37.460011249 -0400
+@@ -61,7 +61,7 @@ struct sonet_stats {
+ #include <asm/atomic.h>
+
+ struct k_sonet_stats {
+-#define __HANDLE_ITEM(i) atomic_t i
++#define __HANDLE_ITEM(i) atomic_unchecked_t i
+ __SONET_ITEMS
+ #undef __HANDLE_ITEM
+ };
diff -urNp linux-2.6.29.6/include/linux/sysctl.h linux-2.6.29.6/include/linux/sysctl.h
--- linux-2.6.29.6/include/linux/sysctl.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/sysctl.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/sysctl.h 2009-07-23 17:34:32.197772567 -0400
@@ -165,7 +165,11 @@ enum
KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
};
@@ -34381,7 +37677,7 @@ diff -urNp linux-2.6.29.6/include/linux/sysctl.h linux-2.6.29.6/include/linux/sy
enum
diff -urNp linux-2.6.29.6/include/linux/thread_info.h linux-2.6.29.6/include/linux/thread_info.h
--- linux-2.6.29.6/include/linux/thread_info.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/thread_info.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/thread_info.h 2009-07-23 17:34:32.197772567 -0400
@@ -23,7 +23,7 @@ struct restart_block {
};
/* For futex_wait */
@@ -34393,7 +37689,7 @@ diff -urNp linux-2.6.29.6/include/linux/thread_info.h linux-2.6.29.6/include/lin
u32 bitset;
diff -urNp linux-2.6.29.6/include/linux/tty_ldisc.h linux-2.6.29.6/include/linux/tty_ldisc.h
--- linux-2.6.29.6/include/linux/tty_ldisc.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/tty_ldisc.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/tty_ldisc.h 2009-07-23 17:34:32.197772567 -0400
@@ -139,12 +139,12 @@ struct tty_ldisc_ops {
struct module *owner;
@@ -34411,7 +37707,7 @@ diff -urNp linux-2.6.29.6/include/linux/tty_ldisc.h linux-2.6.29.6/include/linux
#define TTY_LDISC_MAGIC 0x5403
diff -urNp linux-2.6.29.6/include/linux/types.h linux-2.6.29.6/include/linux/types.h
--- linux-2.6.29.6/include/linux/types.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/types.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/types.h 2009-07-23 17:34:32.197772567 -0400
@@ -198,10 +198,26 @@ typedef struct {
volatile int counter;
} atomic_t;
@@ -34441,7 +37737,7 @@ diff -urNp linux-2.6.29.6/include/linux/types.h linux-2.6.29.6/include/linux/typ
struct ustat {
diff -urNp linux-2.6.29.6/include/linux/uaccess.h linux-2.6.29.6/include/linux/uaccess.h
--- linux-2.6.29.6/include/linux/uaccess.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/uaccess.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/uaccess.h 2009-07-23 17:34:32.197772567 -0400
@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_
long ret; \
mm_segment_t old_fs = get_fs(); \
@@ -34458,7 +37754,7 @@ diff -urNp linux-2.6.29.6/include/linux/uaccess.h linux-2.6.29.6/include/linux/u
diff -urNp linux-2.6.29.6/include/linux/vmalloc.h linux-2.6.29.6/include/linux/vmalloc.h
--- linux-2.6.29.6/include/linux/vmalloc.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/linux/vmalloc.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/linux/vmalloc.h 2009-07-23 17:34:32.197772567 -0400
@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining
#define VM_MAP 0x00000004 /* vmap()ed pages */
#define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
@@ -34549,7 +37845,7 @@ diff -urNp linux-2.6.29.6/include/linux/vmalloc.h linux-2.6.29.6/include/linux/v
#endif /* _LINUX_VMALLOC_H */
diff -urNp linux-2.6.29.6/include/net/sctp/sctp.h linux-2.6.29.6/include/net/sctp/sctp.h
--- linux-2.6.29.6/include/net/sctp/sctp.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/net/sctp/sctp.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/net/sctp/sctp.h 2009-07-23 17:34:32.198741602 -0400
@@ -310,8 +310,8 @@ extern int sctp_debug_flag;
#else /* SCTP_DEBUG */
@@ -34563,7 +37859,7 @@ diff -urNp linux-2.6.29.6/include/net/sctp/sctp.h linux-2.6.29.6/include/net/sct
#define SCTP_ASSERT(expr, str, func)
diff -urNp linux-2.6.29.6/include/sound/core.h linux-2.6.29.6/include/sound/core.h
--- linux-2.6.29.6/include/sound/core.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/sound/core.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/sound/core.h 2009-07-23 17:34:32.198741602 -0400
@@ -427,7 +427,7 @@ static inline int __snd_bug_on(int cond)
*/
#define snd_printdd(format, args...) snd_printk(format, ##args)
@@ -34575,7 +37871,7 @@ diff -urNp linux-2.6.29.6/include/sound/core.h linux-2.6.29.6/include/sound/core
diff -urNp linux-2.6.29.6/include/video/uvesafb.h linux-2.6.29.6/include/video/uvesafb.h
--- linux-2.6.29.6/include/video/uvesafb.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/include/video/uvesafb.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/include/video/uvesafb.h 2009-07-23 17:34:32.198741602 -0400
@@ -177,6 +177,7 @@ struct uvesafb_par {
u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
u8 pmi_setpal; /* PMI for palette changes */
@@ -34586,7 +37882,7 @@ diff -urNp linux-2.6.29.6/include/video/uvesafb.h linux-2.6.29.6/include/video/u
u8 *vbe_state_orig; /*
diff -urNp linux-2.6.29.6/init/do_mounts.c linux-2.6.29.6/init/do_mounts.c
--- linux-2.6.29.6/init/do_mounts.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/do_mounts.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/do_mounts.c 2009-07-23 17:34:32.198741602 -0400
@@ -215,11 +215,11 @@ static void __init get_fs_names(char *pa
static int __init do_mount_root(char *name, char *fs, int flags, void *data)
@@ -34635,7 +37931,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts.c linux-2.6.29.6/init/do_mounts.c
diff -urNp linux-2.6.29.6/init/do_mounts.h linux-2.6.29.6/init/do_mounts.h
--- linux-2.6.29.6/init/do_mounts.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/do_mounts.h 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/do_mounts.h 2009-07-23 17:34:32.198741602 -0400
@@ -14,15 +14,15 @@ extern int root_mountflags;
static inline int create_dev(char *name, dev_t dev)
@@ -34657,7 +37953,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts.h linux-2.6.29.6/init/do_mounts.h
return 0;
diff -urNp linux-2.6.29.6/init/do_mounts_initrd.c linux-2.6.29.6/init/do_mounts_initrd.c
--- linux-2.6.29.6/init/do_mounts_initrd.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/do_mounts_initrd.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/do_mounts_initrd.c 2009-07-23 17:34:32.199729497 -0400
@@ -32,7 +32,7 @@ static int __init do_linuxrc(void * shel
sys_close(old_fd);sys_close(root_fd);
sys_close(0);sys_close(1);sys_close(2);
@@ -34743,7 +38039,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts_initrd.c linux-2.6.29.6/init/do_mounts_
}
diff -urNp linux-2.6.29.6/init/do_mounts_md.c linux-2.6.29.6/init/do_mounts_md.c
--- linux-2.6.29.6/init/do_mounts_md.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/do_mounts_md.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/do_mounts_md.c 2009-07-23 17:34:32.199729497 -0400
@@ -171,7 +171,7 @@ static void __init md_setup_drive(void)
partitioned ? "_d" : "", minor,
md_setup_args[ent].device_names);
@@ -34773,7 +38069,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts_md.c linux-2.6.29.6/init/do_mounts_md.c
sys_close(fd);
diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c
--- linux-2.6.29.6/init/initramfs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/initramfs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/initramfs.c 2009-07-23 17:34:32.199729497 -0400
@@ -276,7 +276,7 @@ static int __init maybe_link(void)
if (nlink >= 2) {
char *old = find_link(major, minor, ino, mode, collected);
@@ -34861,7 +38157,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c
next_state = Reset;
diff -urNp linux-2.6.29.6/init/Kconfig linux-2.6.29.6/init/Kconfig
--- linux-2.6.29.6/init/Kconfig 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/Kconfig 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/Kconfig 2009-07-23 17:34:32.199729497 -0400
@@ -712,6 +712,7 @@ config SYSCTL_SYSCALL
config KALLSYMS
bool "Load all symbols for debugging/ksymoops" if EMBEDDED
@@ -34893,7 +38189,7 @@ diff -urNp linux-2.6.29.6/init/Kconfig linux-2.6.29.6/init/Kconfig
boolean
diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c
--- linux-2.6.29.6/init/main.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/main.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/main.c 2009-07-23 17:34:32.200835198 -0400
@@ -96,6 +96,7 @@ static inline void mark_rodata_ro(void)
#ifdef CONFIG_TC
extern void tc_init(void);
@@ -34991,7 +38287,7 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c
* we're essentially up and running. Get rid of the
diff -urNp linux-2.6.29.6/init/noinitramfs.c linux-2.6.29.6/init/noinitramfs.c
--- linux-2.6.29.6/init/noinitramfs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/init/noinitramfs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/init/noinitramfs.c 2009-07-23 17:34:32.200835198 -0400
@@ -29,7 +29,7 @@ static int __init default_rootfs(void)
{
int err;
@@ -35012,7 +38308,7 @@ diff -urNp linux-2.6.29.6/init/noinitramfs.c linux-2.6.29.6/init/noinitramfs.c
diff -urNp linux-2.6.29.6/ipc/ipc_sysctl.c linux-2.6.29.6/ipc/ipc_sysctl.c
--- linux-2.6.29.6/ipc/ipc_sysctl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/ipc/ipc_sysctl.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/ipc/ipc_sysctl.c 2009-07-23 17:34:32.200835198 -0400
@@ -267,7 +267,7 @@ static struct ctl_table ipc_kern_table[]
.extra1 = &zero,
.extra2 = &one,
@@ -35033,7 +38329,16 @@ diff -urNp linux-2.6.29.6/ipc/ipc_sysctl.c linux-2.6.29.6/ipc/ipc_sysctl.c
static int __init ipc_sysctl_init(void)
diff -urNp linux-2.6.29.6/ipc/mqueue.c linux-2.6.29.6/ipc/mqueue.c
--- linux-2.6.29.6/ipc/mqueue.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/ipc/mqueue.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/ipc/mqueue.c 2009-07-23 18:40:28.718303595 -0400
+@@ -90,7 +90,7 @@ struct mqueue_inode_info {
+
+ static const struct inode_operations mqueue_dir_inode_operations;
+ static const struct file_operations mqueue_file_operations;
+-static struct super_operations mqueue_super_ops;
++static const struct super_operations mqueue_super_ops;
+ static void remove_notification(struct mqueue_inode_info *info);
+
+ static spinlock_t mq_lock;
@@ -151,6 +151,7 @@ static struct inode *mqueue_get_inode(st
mq_bytes = (mq_msg_tblsz +
(info->attr.mq_maxmsg * info->attr.mq_msgsize));
@@ -35042,9 +38347,18 @@ diff -urNp linux-2.6.29.6/ipc/mqueue.c linux-2.6.29.6/ipc/mqueue.c
spin_lock(&mq_lock);
if (u->mq_bytes + mq_bytes < u->mq_bytes ||
u->mq_bytes + mq_bytes >
+@@ -1189,7 +1190,7 @@ static const struct file_operations mque
+ .read = mqueue_read_file,
+ };
+
+-static struct super_operations mqueue_super_ops = {
++static const struct super_operations mqueue_super_ops = {
+ .alloc_inode = mqueue_alloc_inode,
+ .destroy_inode = mqueue_destroy_inode,
+ .statfs = simple_statfs,
diff -urNp linux-2.6.29.6/ipc/msg.c linux-2.6.29.6/ipc/msg.c
--- linux-2.6.29.6/ipc/msg.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/ipc/msg.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/ipc/msg.c 2009-07-23 17:34:32.201947567 -0400
@@ -314,6 +314,7 @@ SYSCALL_DEFINE2(msgget, key_t, key, int,
struct ipc_namespace *ns;
struct ipc_ops msg_ops;
@@ -35076,7 +38390,7 @@ diff -urNp linux-2.6.29.6/ipc/msg.c linux-2.6.29.6/ipc/msg.c
case IPC_SET:
diff -urNp linux-2.6.29.6/ipc/sem.c linux-2.6.29.6/ipc/sem.c
--- linux-2.6.29.6/ipc/sem.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/ipc/sem.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/ipc/sem.c 2009-07-23 17:34:32.201947567 -0400
@@ -313,6 +313,7 @@ SYSCALL_DEFINE3(semget, key_t, key, int,
struct ipc_namespace *ns;
struct ipc_ops sem_ops;
@@ -35108,7 +38422,16 @@ diff -urNp linux-2.6.29.6/ipc/sem.c linux-2.6.29.6/ipc/sem.c
case IPC_SET:
diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c
--- linux-2.6.29.6/ipc/shm.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/ipc/shm.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/ipc/shm.c 2009-07-23 19:29:38.792396623 -0400
+@@ -54,7 +54,7 @@ struct shm_file_data {
+ #define shm_file_data(file) (*((struct shm_file_data **)&(file)->private_data))
+
+ static const struct file_operations shm_file_operations;
+-static struct vm_operations_struct shm_vm_ops;
++static const struct vm_operations_struct shm_vm_ops;
+
+ #define shm_ids(ns) ((ns)->ids[IPC_SHM_IDS])
+
@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name
static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
#endif
@@ -35133,6 +38456,15 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c
if (shp->shm_nattch){
shp->shm_perm.mode |= SHM_DEST;
/* Do not find it any more */
+@@ -311,7 +321,7 @@ static const struct file_operations shm_
+ .get_unmapped_area = shm_get_unmapped_area,
+ };
+
+-static struct vm_operations_struct shm_vm_ops = {
++static const struct vm_operations_struct shm_vm_ops = {
+ .open = shm_open, /* callback for a new vm-area open */
+ .close = shm_close, /* callback for when the vm-area is released */
+ .fault = shm_fault,
@@ -394,6 +404,14 @@ static int newseg(struct ipc_namespace *
shp->shm_lprid = 0;
shp->shm_atim = shp->shm_dtim = 0;
@@ -35191,9 +38523,21 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c
size = i_size_read(path.dentry->d_inode);
shm_unlock(shp);
+diff -urNp linux-2.6.29.6/ipc/util.c linux-2.6.29.6/ipc/util.c
+--- linux-2.6.29.6/ipc/util.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/ipc/util.c 2009-07-23 18:40:28.718303595 -0400
+@@ -951,7 +951,7 @@ static int sysvipc_proc_show(struct seq_
+ return iface->show(s, it);
+ }
+
+-static struct seq_operations sysvipc_proc_seqops = {
++static const struct seq_operations sysvipc_proc_seqops = {
+ .start = sysvipc_proc_start,
+ .stop = sysvipc_proc_stop,
+ .next = sysvipc_proc_next,
diff -urNp linux-2.6.29.6/kernel/acct.c linux-2.6.29.6/kernel/acct.c
--- linux-2.6.29.6/kernel/acct.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/acct.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/acct.c 2009-07-23 17:34:32.202812463 -0400
@@ -574,7 +574,7 @@ static void do_acct_process(struct bsd_a
*/
flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
@@ -35205,7 +38549,7 @@ diff -urNp linux-2.6.29.6/kernel/acct.c linux-2.6.29.6/kernel/acct.c
set_fs(fs);
diff -urNp linux-2.6.29.6/kernel/capability.c linux-2.6.29.6/kernel/capability.c
--- linux-2.6.29.6/kernel/capability.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/capability.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/capability.c 2009-07-23 17:34:32.203740622 -0400
@@ -306,10 +306,21 @@ int capable(int cap)
BUG();
}
@@ -35229,9 +38573,95 @@ diff -urNp linux-2.6.29.6/kernel/capability.c linux-2.6.29.6/kernel/capability.c
+
EXPORT_SYMBOL(capable);
+EXPORT_SYMBOL(capable_nolog);
+diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c
+--- linux-2.6.29.6/kernel/cgroup.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/cgroup.c 2009-07-23 18:40:28.719355936 -0400
+@@ -560,8 +560,8 @@ void cgroup_unlock(void)
+ static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, int mode);
+ static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry);
+ static int cgroup_populate_dir(struct cgroup *cgrp);
+-static struct inode_operations cgroup_dir_inode_operations;
+-static struct file_operations proc_cgroupstats_operations;
++static const struct inode_operations cgroup_dir_inode_operations;
++static const struct file_operations proc_cgroupstats_operations;
+
+ static struct backing_dev_info cgroup_backing_dev_info = {
+ .capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK,
+@@ -872,7 +872,7 @@ static int cgroup_remount(struct super_b
+ return ret;
+ }
+
+-static struct super_operations cgroup_ops = {
++static const struct super_operations cgroup_ops = {
+ .statfs = simple_statfs,
+ .drop_inode = generic_delete_inode,
+ .show_options = cgroup_show_options,
+@@ -1550,7 +1550,7 @@ static int cgroup_seqfile_release(struct
+ return single_release(inode, file);
+ }
+
+-static struct file_operations cgroup_seqfile_operations = {
++static const struct file_operations cgroup_seqfile_operations = {
+ .read = seq_read,
+ .write = cgroup_file_write,
+ .llseek = seq_lseek,
+@@ -1609,7 +1609,7 @@ static int cgroup_rename(struct inode *o
+ return simple_rename(old_dir, old_dentry, new_dir, new_dentry);
+ }
+
+-static struct file_operations cgroup_file_operations = {
++static const struct file_operations cgroup_file_operations = {
+ .read = cgroup_file_read,
+ .write = cgroup_file_write,
+ .llseek = generic_file_llseek,
+@@ -1617,7 +1617,7 @@ static struct file_operations cgroup_fil
+ .release = cgroup_file_release,
+ };
+
+-static struct inode_operations cgroup_dir_inode_operations = {
++static const struct inode_operations cgroup_dir_inode_operations = {
+ .lookup = simple_lookup,
+ .mkdir = cgroup_mkdir,
+ .rmdir = cgroup_rmdir,
+@@ -2171,7 +2171,7 @@ static int cgroup_tasks_show(struct seq_
+ return seq_printf(s, "%d\n", *(int *)v);
+ }
+
+-static struct seq_operations cgroup_tasks_seq_operations = {
++static const struct seq_operations cgroup_tasks_seq_operations = {
+ .start = cgroup_tasks_start,
+ .stop = cgroup_tasks_stop,
+ .next = cgroup_tasks_next,
+@@ -2201,7 +2201,7 @@ static int cgroup_tasks_release(struct i
+ return seq_release(inode, file);
+ }
+
+-static struct file_operations cgroup_tasks_operations = {
++static const struct file_operations cgroup_tasks_operations = {
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .write = cgroup_file_write,
+@@ -2796,7 +2796,7 @@ static int cgroup_open(struct inode *ino
+ return single_open(file, proc_cgroup_show, pid);
+ }
+
+-struct file_operations proc_cgroup_operations = {
++const struct file_operations proc_cgroup_operations = {
+ .open = cgroup_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -2825,7 +2825,7 @@ static int cgroupstats_open(struct inode
+ return single_open(file, proc_cgroupstats_show, NULL);
+ }
+
+-static struct file_operations proc_cgroupstats_operations = {
++static const struct file_operations proc_cgroupstats_operations = {
+ .open = cgroupstats_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
diff -urNp linux-2.6.29.6/kernel/configs.c linux-2.6.29.6/kernel/configs.c
--- linux-2.6.29.6/kernel/configs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/configs.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/configs.c 2009-07-23 17:34:32.203740622 -0400
@@ -73,8 +73,19 @@ static int __init ikconfig_init(void)
struct proc_dir_entry *entry;
@@ -35254,7 +38684,7 @@ diff -urNp linux-2.6.29.6/kernel/configs.c linux-2.6.29.6/kernel/configs.c
diff -urNp linux-2.6.29.6/kernel/cpu.c linux-2.6.29.6/kernel/cpu.c
--- linux-2.6.29.6/kernel/cpu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/cpu.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/cpu.c 2009-07-23 17:34:32.203740622 -0400
@@ -19,7 +19,7 @@
/* Serializes the updates to cpu_online_mask, cpu_present_mask */
static DEFINE_MUTEX(cpu_add_remove_lock);
@@ -35266,7 +38696,7 @@ diff -urNp linux-2.6.29.6/kernel/cpu.c linux-2.6.29.6/kernel/cpu.c
* Should always be manipulated under cpu_add_remove_lock
diff -urNp linux-2.6.29.6/kernel/cred.c linux-2.6.29.6/kernel/cred.c
--- linux-2.6.29.6/kernel/cred.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/cred.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/cred.c 2009-07-23 17:34:32.203740622 -0400
@@ -366,6 +366,8 @@ int commit_creds(struct cred *new)
get_cred(new); /* we will require a ref for the subj creds too */
@@ -35278,7 +38708,7 @@ diff -urNp linux-2.6.29.6/kernel/cred.c linux-2.6.29.6/kernel/cred.c
old->egid != new->egid ||
diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c
--- linux-2.6.29.6/kernel/exit.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/exit.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/exit.c 2009-07-23 17:34:32.204997623 -0400
@@ -59,6 +59,10 @@ DEFINE_TRACE(sched_process_free);
DEFINE_TRACE(sched_process_exit);
DEFINE_TRACE(sched_process_wait);
@@ -35361,7 +38791,7 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c
read_unlock(&tasklist_lock);
diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c
--- linux-2.6.29.6/kernel/fork.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/fork.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/fork.c 2009-07-23 17:34:32.205707403 -0400
@@ -239,7 +239,7 @@ static struct task_struct *dup_task_stru
setup_thread_stack(tsk, orig);
@@ -35518,7 +38948,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c
new_fs = fs;
diff -urNp linux-2.6.29.6/kernel/futex.c linux-2.6.29.6/kernel/futex.c
--- linux-2.6.29.6/kernel/futex.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/futex.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/futex.c 2009-07-23 17:34:32.205707403 -0400
@@ -213,6 +213,11 @@ get_futex_key(u32 __user *uaddr, int fsh
struct page *page;
int err;
@@ -35551,7 +38981,7 @@ diff -urNp linux-2.6.29.6/kernel/futex.c linux-2.6.29.6/kernel/futex.c
diff -urNp linux-2.6.29.6/kernel/irq/handle.c linux-2.6.29.6/kernel/irq/handle.c
--- linux-2.6.29.6/kernel/irq/handle.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/irq/handle.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/irq/handle.c 2009-07-23 17:34:32.206808804 -0400
@@ -222,7 +222,8 @@ struct irq_desc irq_desc[NR_IRQS] __cach
.depth = 1,
.lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
@@ -35564,7 +38994,7 @@ diff -urNp linux-2.6.29.6/kernel/irq/handle.c linux-2.6.29.6/kernel/irq/handle.c
};
diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c
--- linux-2.6.29.6/kernel/kallsyms.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/kallsyms.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/kallsyms.c 2009-07-23 17:34:32.206808804 -0400
@@ -62,6 +62,18 @@ static inline int is_kernel_text(unsigne
static inline int is_kernel(unsigned long addr)
@@ -35619,7 +39049,7 @@ diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c
__initcall(kallsyms_init);
diff -urNp linux-2.6.29.6/kernel/kmod.c linux-2.6.29.6/kernel/kmod.c
--- linux-2.6.29.6/kernel/kmod.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/kmod.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/kmod.c 2009-07-23 17:34:32.206808804 -0400
@@ -108,7 +108,7 @@ int request_module(const char *fmt, ...)
return -ENOMEM;
}
@@ -35631,7 +39061,7 @@ diff -urNp linux-2.6.29.6/kernel/kmod.c linux-2.6.29.6/kernel/kmod.c
}
diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c
--- linux-2.6.29.6/kernel/kprobes.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/kprobes.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/kprobes.c 2009-07-23 18:40:27.474712638 -0400
@@ -183,7 +183,7 @@ static kprobe_opcode_t __kprobes *__get_
* kernel image and loaded module images reside. This is required
* so x86_64 can correctly handle the %rip-relative fixups.
@@ -35650,9 +39080,48 @@ diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c
kfree(kip);
}
return 1;
+@@ -1246,7 +1246,7 @@ static int __kprobes show_kprobe_addr(st
+ return 0;
+ }
+
+-static struct seq_operations kprobes_seq_ops = {
++static const struct seq_operations kprobes_seq_ops = {
+ .start = kprobe_seq_start,
+ .next = kprobe_seq_next,
+ .stop = kprobe_seq_stop,
+@@ -1258,7 +1258,7 @@ static int __kprobes kprobes_open(struct
+ return seq_open(filp, &kprobes_seq_ops);
+ }
+
+-static struct file_operations debugfs_kprobes_operations = {
++static const struct file_operations debugfs_kprobes_operations = {
+ .open = kprobes_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+@@ -1371,7 +1371,7 @@ static ssize_t write_enabled_file_bool(s
+ return count;
+ }
+
+-static struct file_operations fops_kp = {
++static const struct file_operations fops_kp = {
+ .read = read_enabled_file_bool,
+ .write = write_enabled_file_bool,
+ };
+diff -urNp linux-2.6.29.6/kernel/latencytop.c linux-2.6.29.6/kernel/latencytop.c
+--- linux-2.6.29.6/kernel/latencytop.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/latencytop.c 2009-07-23 18:40:28.720267146 -0400
+@@ -223,7 +223,7 @@ static int lstats_open(struct inode *ino
+ return single_open(filp, lstats_show, NULL);
+ }
+
+-static struct file_operations lstats_fops = {
++static const struct file_operations lstats_fops = {
+ .open = lstats_open,
+ .read = seq_read,
+ .write = lstats_write,
diff -urNp linux-2.6.29.6/kernel/lockdep.c linux-2.6.29.6/kernel/lockdep.c
--- linux-2.6.29.6/kernel/lockdep.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/lockdep.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/lockdep.c 2009-07-23 17:34:32.207852017 -0400
@@ -631,6 +631,10 @@ static int static_obj(void *obj)
int i;
#endif
@@ -35679,9 +39148,21 @@ diff -urNp linux-2.6.29.6/kernel/lockdep.c linux-2.6.29.6/kernel/lockdep.c
if ((addr >= start) && (addr < end))
return 1;
+diff -urNp linux-2.6.29.6/kernel/lockdep_proc.c linux-2.6.29.6/kernel/lockdep_proc.c
+--- linux-2.6.29.6/kernel/lockdep_proc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/lockdep_proc.c 2009-07-23 18:40:28.720267146 -0400
+@@ -666,7 +666,7 @@ static int ls_show(struct seq_file *m, v
+ return 0;
+ }
+
+-static struct seq_operations lockstat_ops = {
++static const struct seq_operations lockstat_ops = {
+ .start = ls_start,
+ .next = ls_next,
+ .stop = ls_stop,
diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c
--- linux-2.6.29.6/kernel/module.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/module.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/module.c 2009-07-23 17:34:32.207852017 -0400
@@ -46,6 +46,11 @@
#include <linux/rculist.h>
#include <asm/uaccess.h>
@@ -36254,7 +39735,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c
}
diff -urNp linux-2.6.29.6/kernel/mutex.c linux-2.6.29.6/kernel/mutex.c
--- linux-2.6.29.6/kernel/mutex.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/mutex.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/mutex.c 2009-07-23 17:34:32.208921522 -0400
@@ -83,7 +83,7 @@ __mutex_lock_slowpath(atomic_t *lock_cou
*
* This function is similar to (but not equivalent to) down().
@@ -36266,7 +39747,7 @@ diff -urNp linux-2.6.29.6/kernel/mutex.c linux-2.6.29.6/kernel/mutex.c
/*
diff -urNp linux-2.6.29.6/kernel/panic.c linux-2.6.29.6/kernel/panic.c
--- linux-2.6.29.6/kernel/panic.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/panic.c 2009-07-09 22:20:50.000000000 -0400
++++ linux-2.6.29.6/kernel/panic.c 2009-07-23 17:34:32.208921522 -0400
@@ -361,7 +361,8 @@ EXPORT_SYMBOL(warn_slowpath);
*/
void __stack_chk_fail(void)
@@ -36279,7 +39760,7 @@ diff -urNp linux-2.6.29.6/kernel/panic.c linux-2.6.29.6/kernel/panic.c
#endif
diff -urNp linux-2.6.29.6/kernel/pid.c linux-2.6.29.6/kernel/pid.c
--- linux-2.6.29.6/kernel/pid.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/pid.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/pid.c 2009-07-23 17:34:32.208921522 -0400
@@ -33,6 +33,7 @@
#include <linux/rculist.h>
#include <linux/bootmem.h>
@@ -36315,7 +39796,7 @@ diff -urNp linux-2.6.29.6/kernel/pid.c linux-2.6.29.6/kernel/pid.c
EXPORT_SYMBOL(find_task_by_pid_type_ns);
diff -urNp linux-2.6.29.6/kernel/posix-cpu-timers.c linux-2.6.29.6/kernel/posix-cpu-timers.c
--- linux-2.6.29.6/kernel/posix-cpu-timers.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/posix-cpu-timers.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/posix-cpu-timers.c 2009-07-23 17:34:32.209811964 -0400
@@ -6,6 +6,7 @@
#include <linux/posix-timers.h>
#include <linux/errno.h>
@@ -36363,7 +39844,7 @@ diff -urNp linux-2.6.29.6/kernel/posix-cpu-timers.c linux-2.6.29.6/kernel/posix-
spin_unlock(&timer->it_lock);
diff -urNp linux-2.6.29.6/kernel/power/poweroff.c linux-2.6.29.6/kernel/power/poweroff.c
--- linux-2.6.29.6/kernel/power/poweroff.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/power/poweroff.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/power/poweroff.c 2009-07-23 17:34:32.209811964 -0400
@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof
.enable_mask = SYSRQ_ENABLE_BOOT,
};
@@ -36375,7 +39856,7 @@ diff -urNp linux-2.6.29.6/kernel/power/poweroff.c linux-2.6.29.6/kernel/power/po
return 0;
diff -urNp linux-2.6.29.6/kernel/printk.c linux-2.6.29.6/kernel/printk.c
--- linux-2.6.29.6/kernel/printk.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/printk.c 2009-07-09 22:13:39.000000000 -0400
++++ linux-2.6.29.6/kernel/printk.c 2009-07-23 17:34:32.209811964 -0400
@@ -253,6 +253,11 @@ int do_syslog(int type, char __user *buf
char c;
int error = 0;
@@ -36390,7 +39871,7 @@ diff -urNp linux-2.6.29.6/kernel/printk.c linux-2.6.29.6/kernel/printk.c
return error;
diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c
--- linux-2.6.29.6/kernel/ptrace.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/ptrace.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/ptrace.c 2009-07-23 17:34:32.210756226 -0400
@@ -149,7 +149,7 @@ int __ptrace_may_access(struct task_stru
cred->gid != tcred->egid ||
cred->gid != tcred->sgid ||
@@ -36430,9 +39911,81 @@ diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c
ret = arch_ptrace(child, request, addr, data);
if (ret < 0)
goto out_put_task_struct;
+diff -urNp linux-2.6.29.6/kernel/rcupreempt_trace.c linux-2.6.29.6/kernel/rcupreempt_trace.c
+--- linux-2.6.29.6/kernel/rcupreempt_trace.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/rcupreempt_trace.c 2009-07-23 18:40:28.721271955 -0400
+@@ -261,17 +261,17 @@ static ssize_t rcuctrs_read(struct file
+ return bcount;
+ }
+
+-static struct file_operations rcustats_fops = {
++static const struct file_operations rcustats_fops = {
+ .owner = THIS_MODULE,
+ .read = rcustats_read,
+ };
+
+-static struct file_operations rcugp_fops = {
++static const struct file_operations rcugp_fops = {
+ .owner = THIS_MODULE,
+ .read = rcugp_read,
+ };
+
+-static struct file_operations rcuctrs_fops = {
++static const struct file_operations rcuctrs_fops = {
+ .owner = THIS_MODULE,
+ .read = rcuctrs_read,
+ };
+diff -urNp linux-2.6.29.6/kernel/rcutree_trace.c linux-2.6.29.6/kernel/rcutree_trace.c
+--- linux-2.6.29.6/kernel/rcutree_trace.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/rcutree_trace.c 2009-07-23 18:40:28.721271955 -0400
+@@ -88,7 +88,7 @@ static int rcudata_open(struct inode *in
+ return single_open(file, show_rcudata, NULL);
+ }
+
+-static struct file_operations rcudata_fops = {
++static const struct file_operations rcudata_fops = {
+ .owner = THIS_MODULE,
+ .open = rcudata_open,
+ .read = seq_read,
+@@ -138,7 +138,7 @@ static int rcudata_csv_open(struct inode
+ return single_open(file, show_rcudata_csv, NULL);
+ }
+
+-static struct file_operations rcudata_csv_fops = {
++static const struct file_operations rcudata_csv_fops = {
+ .owner = THIS_MODULE,
+ .open = rcudata_csv_open,
+ .read = seq_read,
+@@ -185,7 +185,7 @@ static int rcuhier_open(struct inode *in
+ return single_open(file, show_rcuhier, NULL);
+ }
+
+-static struct file_operations rcuhier_fops = {
++static const struct file_operations rcuhier_fops = {
+ .owner = THIS_MODULE,
+ .open = rcuhier_open,
+ .read = seq_read,
+@@ -207,7 +207,7 @@ static int rcugp_open(struct inode *inod
+ return single_open(file, show_rcugp, NULL);
+ }
+
+-static struct file_operations rcugp_fops = {
++static const struct file_operations rcugp_fops = {
+ .owner = THIS_MODULE,
+ .open = rcugp_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/kernel/relay.c linux-2.6.29.6/kernel/relay.c
--- linux-2.6.29.6/kernel/relay.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/relay.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/relay.c 2009-07-23 18:40:27.474712638 -0400
+@@ -60,7 +60,7 @@ static int relay_buf_fault(struct vm_are
+ /*
+ * vm_ops for relay file mappings.
+ */
+-static struct vm_operations_struct relay_file_mmap_ops = {
++static const struct vm_operations_struct relay_file_mmap_ops = {
+ .fault = relay_buf_fault,
+ .close = relay_file_mmap_close,
+ };
@@ -1292,7 +1292,7 @@ static int subbuf_splice_actor(struct fi
return 0;
@@ -36444,7 +39997,7 @@ diff -urNp linux-2.6.29.6/kernel/relay.c linux-2.6.29.6/kernel/relay.c
if (read_start + ret == nonpad_end)
diff -urNp linux-2.6.29.6/kernel/resource.c linux-2.6.29.6/kernel/resource.c
--- linux-2.6.29.6/kernel/resource.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/resource.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/resource.c 2009-07-23 17:34:32.210756226 -0400
@@ -132,8 +132,18 @@ static const struct file_operations proc
static int __init ioresources_init(void)
@@ -36466,7 +40019,16 @@ diff -urNp linux-2.6.29.6/kernel/resource.c linux-2.6.29.6/kernel/resource.c
__initcall(ioresources_init);
diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c
--- linux-2.6.29.6/kernel/sched.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/sched.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/sched.c 2009-07-23 18:40:27.477441834 -0400
+@@ -801,7 +801,7 @@ static int sched_feat_open(struct inode
+ return single_open(filp, sched_feat_show, NULL);
+ }
+
+-static struct file_operations sched_feat_fops = {
++static const struct file_operations sched_feat_fops = {
+ .open = sched_feat_open,
+ .write = sched_feat_write,
+ .read = seq_read,
@@ -5175,6 +5175,8 @@ int can_nice(const struct task_struct *p
/* convert nice value [19,-20] to rlimit style value [1,40] */
int nice_rlim = 20 - nice;
@@ -36515,7 +40077,7 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c
static struct ctl_table *sd_alloc_ctl_entry(int n)
diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c
--- linux-2.6.29.6/kernel/signal.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/signal.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/signal.c 2009-07-23 17:34:32.213855277 -0400
@@ -198,6 +198,9 @@ static struct sigqueue *__sigqueue_alloc
*/
user = get_uid(__task_cred(t)->user);
@@ -36577,7 +40139,7 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c
return ret;
diff -urNp linux-2.6.29.6/kernel/softirq.c linux-2.6.29.6/kernel/softirq.c
--- linux-2.6.29.6/kernel/softirq.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/softirq.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/softirq.c 2009-07-23 17:34:32.213855277 -0400
@@ -450,9 +450,9 @@ void tasklet_kill(struct tasklet_struct
printk("Attempt to kill tasklet from interrupt\n");
@@ -36592,7 +40154,7 @@ diff -urNp linux-2.6.29.6/kernel/softirq.c linux-2.6.29.6/kernel/softirq.c
clear_bit(TASKLET_STATE_SCHED, &t->state);
diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c
--- linux-2.6.29.6/kernel/sys.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/sys.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/sys.c 2009-07-23 17:34:32.214754476 -0400
@@ -131,6 +131,12 @@ static int set_one_prio(struct task_stru
error = -EACCES;
goto out;
@@ -36721,7 +40283,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c
}
diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c
--- linux-2.6.29.6/kernel/sysctl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/sysctl.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/sysctl.c 2009-07-23 17:34:32.215815558 -0400
@@ -61,6 +61,13 @@
static int deprecated_sysctl_warning(struct __sysctl_args *args);
@@ -36846,7 +40408,7 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c
return error;
diff -urNp linux-2.6.29.6/kernel/taskstats.c linux-2.6.29.6/kernel/taskstats.c
--- linux-2.6.29.6/kernel/taskstats.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/taskstats.c 2009-07-10 05:28:01.000000000 -0400
++++ linux-2.6.29.6/kernel/taskstats.c 2009-07-23 17:34:32.215815558 -0400
@@ -26,9 +26,12 @@
#include <linux/cgroup.h>
#include <linux/fs.h>
@@ -36872,7 +40434,7 @@ diff -urNp linux-2.6.29.6/kernel/taskstats.c linux-2.6.29.6/kernel/taskstats.c
diff -urNp linux-2.6.29.6/kernel/time/tick-broadcast.c linux-2.6.29.6/kernel/time/tick-broadcast.c
--- linux-2.6.29.6/kernel/time/tick-broadcast.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/time/tick-broadcast.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/time/tick-broadcast.c 2009-07-23 17:34:32.216793372 -0400
@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl
* then clear the broadcast bit.
*/
@@ -36882,9 +40444,33 @@ diff -urNp linux-2.6.29.6/kernel/time/tick-broadcast.c linux-2.6.29.6/kernel/tim
cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
tick_broadcast_clear_oneshot(cpu);
+diff -urNp linux-2.6.29.6/kernel/time/timer_list.c linux-2.6.29.6/kernel/time/timer_list.c
+--- linux-2.6.29.6/kernel/time/timer_list.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/time/timer_list.c 2009-07-23 18:40:28.721271955 -0400
+@@ -275,7 +275,7 @@ static int timer_list_open(struct inode
+ return single_open(filp, timer_list_show, NULL);
+ }
+
+-static struct file_operations timer_list_fops = {
++static const struct file_operations timer_list_fops = {
+ .open = timer_list_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+diff -urNp linux-2.6.29.6/kernel/time/timer_stats.c linux-2.6.29.6/kernel/time/timer_stats.c
+--- linux-2.6.29.6/kernel/time/timer_stats.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/time/timer_stats.c 2009-07-23 18:40:28.722279043 -0400
+@@ -395,7 +395,7 @@ static int tstats_open(struct inode *ino
+ return single_open(filp, tstats_show, NULL);
+ }
+
+-static struct file_operations tstats_fops = {
++static const struct file_operations tstats_fops = {
+ .open = tstats_open,
+ .read = seq_read,
+ .write = tstats_write,
diff -urNp linux-2.6.29.6/kernel/time.c linux-2.6.29.6/kernel/time.c
--- linux-2.6.29.6/kernel/time.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/time.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/time.c 2009-07-23 17:34:32.216793372 -0400
@@ -94,6 +94,9 @@ SYSCALL_DEFINE1(stime, time_t __user *,
return err;
@@ -36922,9 +40508,116 @@ diff -urNp linux-2.6.29.6/kernel/time.c linux-2.6.29.6/kernel/time.c
{
#if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ)
return (USEC_PER_SEC / HZ) * j;
+diff -urNp linux-2.6.29.6/kernel/trace/ftrace.c linux-2.6.29.6/kernel/trace/ftrace.c
+--- linux-2.6.29.6/kernel/trace/ftrace.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/trace/ftrace.c 2009-07-23 18:40:28.722279043 -0400
+@@ -873,7 +873,7 @@ static int t_show(struct seq_file *m, vo
+ return 0;
+ }
+
+-static struct seq_operations show_ftrace_seq_ops = {
++static const struct seq_operations show_ftrace_seq_ops = {
+ .start = t_start,
+ .next = t_next,
+ .stop = t_stop,
+@@ -1303,21 +1303,21 @@ ftrace_notrace_release(struct inode *ino
+ return ftrace_regex_release(inode, file, 0);
+ }
+
+-static struct file_operations ftrace_avail_fops = {
++static const struct file_operations ftrace_avail_fops = {
+ .open = ftrace_avail_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = ftrace_avail_release,
+ };
+
+-static struct file_operations ftrace_failures_fops = {
++static const struct file_operations ftrace_failures_fops = {
+ .open = ftrace_failures_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = ftrace_avail_release,
+ };
+
+-static struct file_operations ftrace_filter_fops = {
++static const struct file_operations ftrace_filter_fops = {
+ .open = ftrace_filter_open,
+ .read = ftrace_regex_read,
+ .write = ftrace_filter_write,
+@@ -1325,7 +1325,7 @@ static struct file_operations ftrace_fil
+ .release = ftrace_filter_release,
+ };
+
+-static struct file_operations ftrace_notrace_fops = {
++static const struct file_operations ftrace_notrace_fops = {
+ .open = ftrace_notrace_open,
+ .read = ftrace_regex_read,
+ .write = ftrace_notrace_write,
+@@ -1385,7 +1385,7 @@ static int g_show(struct seq_file *m, vo
+ return 0;
+ }
+
+-static struct seq_operations ftrace_graph_seq_ops = {
++static const struct seq_operations ftrace_graph_seq_ops = {
+ .start = g_start,
+ .next = g_next,
+ .stop = g_stop,
+@@ -1840,7 +1840,7 @@ ftrace_pid_write(struct file *filp, cons
+ return cnt;
+ }
+
+-static struct file_operations ftrace_pid_fops = {
++static const struct file_operations ftrace_pid_fops = {
+ .read = ftrace_pid_read,
+ .write = ftrace_pid_write,
+ };
+diff -urNp linux-2.6.29.6/kernel/trace/Kconfig linux-2.6.29.6/kernel/trace/Kconfig
+--- linux-2.6.29.6/kernel/trace/Kconfig 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/trace/Kconfig 2009-07-23 18:43:34.850823161 -0400
+@@ -51,6 +51,7 @@ config FUNCTION_TRACER
+ bool "Kernel Function Tracer"
+ depends on HAVE_FUNCTION_TRACER
+ depends on DEBUG_KERNEL
++ depends on !PAX_KERNEXEC
+ select FRAME_POINTER
+ select KALLSYMS
+ select TRACING
+@@ -237,6 +238,7 @@ config STACK_TRACER
+ bool "Trace max stack"
+ depends on HAVE_FUNCTION_TRACER
+ depends on DEBUG_KERNEL
++ depends on !PAX_KERNEXEC
+ select FUNCTION_TRACER
+ select STACKTRACE
+ select KALLSYMS
+diff -urNp linux-2.6.29.6/kernel/trace/ring_buffer.c linux-2.6.29.6/kernel/trace/ring_buffer.c
+--- linux-2.6.29.6/kernel/trace/ring_buffer.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/trace/ring_buffer.c 2009-07-23 18:40:28.723274997 -0400
+@@ -2509,7 +2509,7 @@ rb_simple_write(struct file *filp, const
+ return cnt;
+ }
+
+-static struct file_operations rb_simple_fops = {
++static const struct file_operations rb_simple_fops = {
+ .open = tracing_open_generic,
+ .read = rb_simple_read,
+ .write = rb_simple_write,
+diff -urNp linux-2.6.29.6/kernel/trace/trace_branch.c linux-2.6.29.6/kernel/trace/trace_branch.c
+--- linux-2.6.29.6/kernel/trace/trace_branch.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/trace/trace_branch.c 2009-07-23 18:40:28.724260937 -0400
+@@ -267,7 +267,7 @@ static int t_show(struct seq_file *m, vo
+ return 0;
+ }
+
+-static struct seq_operations tracing_likely_seq_ops = {
++static const struct seq_operations tracing_likely_seq_ops = {
+ .start = t_start,
+ .next = t_next,
+ .stop = t_stop,
diff -urNp linux-2.6.29.6/kernel/trace/trace.c linux-2.6.29.6/kernel/trace/trace.c
--- linux-2.6.29.6/kernel/trace/trace.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/trace/trace.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/trace/trace.c 2009-07-23 18:40:27.478286190 -0400
@@ -442,7 +442,7 @@ trace_seq_path(struct trace_seq *s, stru
return 0;
p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
@@ -36934,9 +40627,145 @@ diff -urNp linux-2.6.29.6/kernel/trace/trace.c linux-2.6.29.6/kernel/trace/trace
if (p) {
s->len = p - s->buffer;
return 1;
+@@ -2418,7 +2418,7 @@ static int s_show(struct seq_file *m, vo
+ return 0;
+ }
+
+-static struct seq_operations tracer_seq_ops = {
++static const struct seq_operations tracer_seq_ops = {
+ .start = s_start,
+ .next = s_next,
+ .stop = s_stop,
+@@ -2600,7 +2600,7 @@ static int t_show(struct seq_file *m, vo
+ return 0;
+ }
+
+-static struct seq_operations show_traces_seq_ops = {
++static const struct seq_operations show_traces_seq_ops = {
+ .start = t_start,
+ .next = t_next,
+ .stop = t_stop,
+@@ -2623,21 +2623,21 @@ static int show_traces_open(struct inode
+ return ret;
+ }
+
+-static struct file_operations tracing_fops = {
++static const struct file_operations tracing_fops = {
+ .open = tracing_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = tracing_release,
+ };
+
+-static struct file_operations tracing_lt_fops = {
++static const struct file_operations tracing_lt_fops = {
+ .open = tracing_lt_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = tracing_release,
+ };
+
+-static struct file_operations show_traces_fops = {
++static const struct file_operations show_traces_fops = {
+ .open = show_traces_open,
+ .read = seq_read,
+ .release = seq_release,
+@@ -2730,7 +2730,7 @@ err_unlock:
+ return err;
+ }
+
+-static struct file_operations tracing_cpumask_fops = {
++static const struct file_operations tracing_cpumask_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_cpumask_read,
+ .write = tracing_cpumask_write,
+@@ -2875,7 +2875,7 @@ tracing_trace_options_write(struct file
+ return cnt;
+ }
+
+-static struct file_operations tracing_iter_fops = {
++static const struct file_operations tracing_iter_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_trace_options_read,
+ .write = tracing_trace_options_write,
+@@ -2908,7 +2908,7 @@ tracing_readme_read(struct file *filp, c
+ readme_msg, strlen(readme_msg));
+ }
+
+-static struct file_operations tracing_readme_fops = {
++static const struct file_operations tracing_readme_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_readme_read,
+ };
+@@ -3433,38 +3433,38 @@ tracing_mark_write(struct file *filp, co
+ return cnt;
+ }
+
+-static struct file_operations tracing_max_lat_fops = {
++static const struct file_operations tracing_max_lat_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_max_lat_read,
+ .write = tracing_max_lat_write,
+ };
+
+-static struct file_operations tracing_ctrl_fops = {
++static const struct file_operations tracing_ctrl_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_ctrl_read,
+ .write = tracing_ctrl_write,
+ };
+
+-static struct file_operations set_tracer_fops = {
++static const struct file_operations set_tracer_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_set_trace_read,
+ .write = tracing_set_trace_write,
+ };
+
+-static struct file_operations tracing_pipe_fops = {
++static const struct file_operations tracing_pipe_fops = {
+ .open = tracing_open_pipe,
+ .poll = tracing_poll_pipe,
+ .read = tracing_read_pipe,
+ .release = tracing_release_pipe,
+ };
+
+-static struct file_operations tracing_entries_fops = {
++static const struct file_operations tracing_entries_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_entries_read,
+ .write = tracing_entries_write,
+ };
+
+-static struct file_operations tracing_mark_fops = {
++static const struct file_operations tracing_mark_fops = {
+ .open = tracing_open_generic,
+ .write = tracing_mark_write,
+ };
+@@ -3500,7 +3500,7 @@ tracing_read_dyn_info(struct file *filp,
+ return r;
+ }
+
+-static struct file_operations tracing_dyn_info_fops = {
++static const struct file_operations tracing_dyn_info_fops = {
+ .open = tracing_open_generic,
+ .read = tracing_read_dyn_info,
+ };
+diff -urNp linux-2.6.29.6/kernel/trace/trace_sysprof.c linux-2.6.29.6/kernel/trace/trace_sysprof.c
+--- linux-2.6.29.6/kernel/trace/trace_sysprof.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/kernel/trace/trace_sysprof.c 2009-07-23 18:40:28.724260937 -0400
+@@ -317,7 +317,7 @@ sysprof_sample_write(struct file *filp,
+ return cnt;
+ }
+
+-static struct file_operations sysprof_sample_fops = {
++static const struct file_operations sysprof_sample_fops = {
+ .read = sysprof_sample_read,
+ .write = sysprof_sample_write,
+ };
diff -urNp linux-2.6.29.6/kernel/utsname_sysctl.c linux-2.6.29.6/kernel/utsname_sysctl.c
--- linux-2.6.29.6/kernel/utsname_sysctl.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/kernel/utsname_sysctl.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/kernel/utsname_sysctl.c 2009-07-23 17:34:32.217711177 -0400
@@ -123,7 +123,7 @@ static struct ctl_table uts_kern_table[]
.proc_handler = proc_do_uts_string,
.strategy = sysctl_uts_string,
@@ -36955,9 +40784,21 @@ diff -urNp linux-2.6.29.6/kernel/utsname_sysctl.c linux-2.6.29.6/kernel/utsname_
};
static int __init utsname_sysctl_init(void)
+diff -urNp linux-2.6.29.6/lib/dynamic_printk.c linux-2.6.29.6/lib/dynamic_printk.c
+--- linux-2.6.29.6/lib/dynamic_printk.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/lib/dynamic_printk.c 2009-07-23 18:40:28.724260937 -0400
+@@ -352,7 +352,7 @@ static int pr_debug_seq_show(struct seq_
+ return 0;
+ }
+
+-static struct seq_operations pr_debug_seq_ops = {
++static const struct seq_operations pr_debug_seq_ops = {
+ .start = pr_debug_seq_start,
+ .next = pr_debug_seq_next,
+ .stop = pr_debug_seq_stop,
diff -urNp linux-2.6.29.6/lib/Kconfig.debug linux-2.6.29.6/lib/Kconfig.debug
--- linux-2.6.29.6/lib/Kconfig.debug 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/lib/Kconfig.debug 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/lib/Kconfig.debug 2009-07-23 17:34:32.218743017 -0400
@@ -783,7 +783,7 @@ config LATENCYTOP
select STACKTRACE
select SCHEDSTATS
@@ -36969,7 +40810,7 @@ diff -urNp linux-2.6.29.6/lib/Kconfig.debug linux-2.6.29.6/lib/Kconfig.debug
to find out which userspace is blocking on what kernel operations.
diff -urNp linux-2.6.29.6/lib/parser.c linux-2.6.29.6/lib/parser.c
--- linux-2.6.29.6/lib/parser.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/lib/parser.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/lib/parser.c 2009-07-23 17:34:32.218743017 -0400
@@ -126,7 +126,7 @@ static int match_number(substring_t *s,
char *buf;
int ret;
@@ -36981,7 +40822,7 @@ diff -urNp linux-2.6.29.6/lib/parser.c linux-2.6.29.6/lib/parser.c
memcpy(buf, s->from, s->to - s->from);
diff -urNp linux-2.6.29.6/lib/radix-tree.c linux-2.6.29.6/lib/radix-tree.c
--- linux-2.6.29.6/lib/radix-tree.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/lib/radix-tree.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/lib/radix-tree.c 2009-07-23 17:34:32.218743017 -0400
@@ -81,7 +81,7 @@ struct radix_tree_preload {
int nr;
struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH];
@@ -36993,7 +40834,7 @@ diff -urNp linux-2.6.29.6/lib/radix-tree.c linux-2.6.29.6/lib/radix-tree.c
{
diff -urNp linux-2.6.29.6/lib/random32.c linux-2.6.29.6/lib/random32.c
--- linux-2.6.29.6/lib/random32.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/lib/random32.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/lib/random32.c 2009-07-23 17:34:32.219722211 -0400
@@ -61,7 +61,7 @@ static u32 __random32(struct rnd_state *
*/
static inline u32 __seed(u32 x, u32 m)
@@ -37005,21 +40846,30 @@ diff -urNp linux-2.6.29.6/lib/random32.c linux-2.6.29.6/lib/random32.c
/**
diff -urNp linux-2.6.29.6/localversion-grsec linux-2.6.29.6/localversion-grsec
--- linux-2.6.29.6/localversion-grsec 1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.29.6/localversion-grsec 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/localversion-grsec 2009-07-23 17:34:32.219722211 -0400
@@ -0,0 +1 @@
+-grsec
diff -urNp linux-2.6.29.6/Makefile linux-2.6.29.6/Makefile
--- linux-2.6.29.6/Makefile 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/Makefile 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/Makefile 2009-07-23 17:34:37.457730203 -0400
@@ -226,7 +226,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
HOSTCC = gcc
HOSTCXX = g++
-HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-+HOSTCFLAGS = -Wall -W -Wno-unused -Wno-sign-compare -Wstrict-prototypes -O2 -fomit-frame-pointer
++HOSTCFLAGS = -Wall -W -Wno-unused -Wno-sign-compare -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-delete-null-pointer-checks
HOSTCXXFLAGS = -O2
# Decide whether to build built-in, modular, or both.
+@@ -567,7 +567,7 @@ KBUILD_CFLAGS += $(call cc-option,-Wdecl
+ KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
+
+ # disable invalid "can't wrap" optimzations for signed / pointers
+-KBUILD_CFLAGS += $(call cc-option,-fwrapv)
++KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
+
+ # revert to pre-gcc-4.4 behaviour of .eh_frame
+ KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
@@ -636,7 +636,7 @@ export mod_strip_cmd
@@ -37031,7 +40881,16 @@ diff -urNp linux-2.6.29.6/Makefile linux-2.6.29.6/Makefile
$(core-y) $(core-m) $(drivers-y) $(drivers-m) \
diff -urNp linux-2.6.29.6/mm/filemap.c linux-2.6.29.6/mm/filemap.c
--- linux-2.6.29.6/mm/filemap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/filemap.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/filemap.c 2009-07-23 18:40:27.479596094 -0400
+@@ -1604,7 +1604,7 @@ page_not_uptodate:
+ }
+ EXPORT_SYMBOL(filemap_fault);
+
+-struct vm_operations_struct generic_file_vm_ops = {
++const struct vm_operations_struct generic_file_vm_ops = {
+ .fault = filemap_fault,
+ };
+
@@ -1615,7 +1615,7 @@ int generic_file_mmap(struct file * file
struct address_space *mapping = file->f_mapping;
@@ -37049,9 +40908,21 @@ diff -urNp linux-2.6.29.6/mm/filemap.c linux-2.6.29.6/mm/filemap.c
if (*pos >= limit) {
send_sig(SIGXFSZ, current, 0);
return -EFBIG;
+diff -urNp linux-2.6.29.6/mm/filemap_xip.c linux-2.6.29.6/mm/filemap_xip.c
+--- linux-2.6.29.6/mm/filemap_xip.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/mm/filemap_xip.c 2009-07-23 18:40:28.737571137 -0400
+@@ -296,7 +296,7 @@ out:
+ }
+ }
+
+-static struct vm_operations_struct xip_file_vm_ops = {
++static const struct vm_operations_struct xip_file_vm_ops = {
+ .fault = xip_file_fault,
+ };
+
diff -urNp linux-2.6.29.6/mm/fremap.c linux-2.6.29.6/mm/fremap.c
--- linux-2.6.29.6/mm/fremap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/fremap.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/fremap.c 2009-07-23 17:34:32.221026931 -0400
@@ -153,6 +153,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign
retry:
vma = find_vma(mm, start);
@@ -37066,7 +40937,16 @@ diff -urNp linux-2.6.29.6/mm/fremap.c linux-2.6.29.6/mm/fremap.c
* and that the remapped range is valid and fully within
diff -urNp linux-2.6.29.6/mm/hugetlb.c linux-2.6.29.6/mm/hugetlb.c
--- linux-2.6.29.6/mm/hugetlb.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/hugetlb.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/hugetlb.c 2009-07-23 18:40:27.480266950 -0400
+@@ -1661,7 +1661,7 @@ static int hugetlb_vm_op_fault(struct vm
+ return 0;
+ }
+
+-struct vm_operations_struct hugetlb_vm_ops = {
++const struct vm_operations_struct hugetlb_vm_ops = {
+ .fault = hugetlb_vm_op_fault,
+ .open = hugetlb_vm_op_open,
+ .close = hugetlb_vm_op_close,
@@ -1864,6 +1864,26 @@ static int unmap_ref_private(struct mm_s
return 1;
}
@@ -37148,7 +41028,7 @@ diff -urNp linux-2.6.29.6/mm/hugetlb.c linux-2.6.29.6/mm/hugetlb.c
return VM_FAULT_OOM;
diff -urNp linux-2.6.29.6/mm/madvise.c linux-2.6.29.6/mm/madvise.c
--- linux-2.6.29.6/mm/madvise.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/madvise.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/madvise.c 2009-07-23 17:34:32.221732895 -0400
@@ -43,6 +43,10 @@ static long madvise_behavior(struct vm_a
pgoff_t pgoff;
int new_flags = vma->vm_flags;
@@ -37211,7 +41091,7 @@ diff -urNp linux-2.6.29.6/mm/madvise.c linux-2.6.29.6/mm/madvise.c
goto out;
diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c
--- linux-2.6.29.6/mm/memory.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/memory.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/memory.c 2009-07-23 17:34:32.222717577 -0400
@@ -47,6 +47,7 @@
#include <linux/pagemap.h>
#include <linux/rmap.h>
@@ -37617,7 +41497,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c
* Dumping its contents makes post-mortem fully interpretable later
diff -urNp linux-2.6.29.6/mm/mempolicy.c linux-2.6.29.6/mm/mempolicy.c
--- linux-2.6.29.6/mm/mempolicy.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/mempolicy.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/mempolicy.c 2009-07-23 17:34:32.224099604 -0400
@@ -551,6 +551,10 @@ static int mbind_range(struct vm_area_st
struct vm_area_struct *next;
int err;
@@ -37675,7 +41555,7 @@ diff -urNp linux-2.6.29.6/mm/mempolicy.c linux-2.6.29.6/mm/mempolicy.c
} else if (vma->vm_start <= mm->start_stack &&
diff -urNp linux-2.6.29.6/mm/mlock.c linux-2.6.29.6/mm/mlock.c
--- linux-2.6.29.6/mm/mlock.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/mlock.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/mlock.c 2009-07-23 17:34:32.224099604 -0400
@@ -13,6 +13,7 @@
#include <linux/pagemap.h>
#include <linux/mempolicy.h>
@@ -37746,7 +41626,7 @@ diff -urNp linux-2.6.29.6/mm/mlock.c linux-2.6.29.6/mm/mlock.c
ret = do_mlockall(flags);
diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c
--- linux-2.6.29.6/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/mmap.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/mmap.c 2009-07-23 19:29:10.716514097 -0400
@@ -43,6 +43,16 @@
#define arch_rebalance_pgtables(addr, len) (addr)
#endif
@@ -38856,6 +42736,15 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c
if (cur + npages > lim)
return 0;
return 1;
+@@ -2260,7 +2712,7 @@ static void special_mapping_close(struct
+ {
+ }
+
+-static struct vm_operations_struct special_mapping_vmops = {
++static const struct vm_operations_struct special_mapping_vmops = {
+ .close = special_mapping_close,
+ .fault = special_mapping_fault,
+ };
@@ -2288,6 +2740,15 @@ int install_special_mapping(struct mm_st
vma->vm_start = addr;
vma->vm_end = addr + len;
@@ -38874,7 +42763,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c
diff -urNp linux-2.6.29.6/mm/mprotect.c linux-2.6.29.6/mm/mprotect.c
--- linux-2.6.29.6/mm/mprotect.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/mprotect.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/mprotect.c 2009-07-23 17:34:32.228714408 -0400
@@ -23,10 +23,16 @@
#include <linux/swapops.h>
#include <linux/mmu_notifier.h>
@@ -39067,7 +42956,7 @@ diff -urNp linux-2.6.29.6/mm/mprotect.c linux-2.6.29.6/mm/mprotect.c
if (nstart < prev->vm_end)
diff -urNp linux-2.6.29.6/mm/mremap.c linux-2.6.29.6/mm/mremap.c
--- linux-2.6.29.6/mm/mremap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/mremap.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/mremap.c 2009-07-23 17:34:32.228714408 -0400
@@ -113,6 +113,12 @@ static void move_ptes(struct vm_area_str
continue;
pte = ptep_clear_flush(vma, old_addr, old_pte);
@@ -39181,7 +43070,16 @@ diff -urNp linux-2.6.29.6/mm/mremap.c linux-2.6.29.6/mm/mremap.c
if (ret & ~PAGE_MASK)
diff -urNp linux-2.6.29.6/mm/nommu.c linux-2.6.29.6/mm/nommu.c
--- linux-2.6.29.6/mm/nommu.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/nommu.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/nommu.c 2009-07-23 18:40:27.482433806 -0400
+@@ -79,7 +79,7 @@ static struct kmem_cache *vm_region_jar;
+ struct rb_root nommu_region_tree = RB_ROOT;
+ DECLARE_RWSEM(nommu_region_sem);
+
+-struct vm_operations_struct generic_file_vm_ops = {
++const struct vm_operations_struct generic_file_vm_ops = {
+ };
+
+ /*
@@ -770,15 +770,6 @@ struct vm_area_struct *find_vma(struct m
EXPORT_SYMBOL(find_vma);
@@ -39200,7 +43098,7 @@ diff -urNp linux-2.6.29.6/mm/nommu.c linux-2.6.29.6/mm/nommu.c
*/
diff -urNp linux-2.6.29.6/mm/page_alloc.c linux-2.6.29.6/mm/page_alloc.c
--- linux-2.6.29.6/mm/page_alloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/page_alloc.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/page_alloc.c 2009-07-23 17:34:32.229702725 -0400
@@ -549,6 +549,10 @@ static void __free_pages_ok(struct page
int i;
int bad = 0;
@@ -39250,7 +43148,7 @@ diff -urNp linux-2.6.29.6/mm/page_alloc.c linux-2.6.29.6/mm/page_alloc.c
diff -urNp linux-2.6.29.6/mm/rmap.c linux-2.6.29.6/mm/rmap.c
--- linux-2.6.29.6/mm/rmap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/rmap.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/rmap.c 2009-07-23 17:34:32.230802833 -0400
@@ -103,6 +103,10 @@ int anon_vma_prepare(struct vm_area_stru
struct mm_struct *mm = vma->vm_mm;
struct anon_vma *allocated;
@@ -39280,7 +43178,7 @@ diff -urNp linux-2.6.29.6/mm/rmap.c linux-2.6.29.6/mm/rmap.c
allocated = NULL;
diff -urNp linux-2.6.29.6/mm/shmem.c linux-2.6.29.6/mm/shmem.c
--- linux-2.6.29.6/mm/shmem.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/shmem.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/shmem.c 2009-07-23 18:40:28.737571137 -0400
@@ -29,7 +29,7 @@
#include <linux/module.h>
#include <linux/swap.h>
@@ -39290,9 +43188,27 @@ diff -urNp linux-2.6.29.6/mm/shmem.c linux-2.6.29.6/mm/shmem.c
#ifdef CONFIG_SHMEM
/*
+@@ -203,7 +203,7 @@ static const struct file_operations shme
+ static const struct inode_operations shmem_inode_operations;
+ static const struct inode_operations shmem_dir_inode_operations;
+ static const struct inode_operations shmem_special_inode_operations;
+-static struct vm_operations_struct shmem_vm_ops;
++static const struct vm_operations_struct shmem_vm_ops;
+
+ static struct backing_dev_info shmem_backing_dev_info __read_mostly = {
+ .ra_pages = 0, /* No readahead */
+@@ -2482,7 +2482,7 @@ static const struct super_operations shm
+ .put_super = shmem_put_super,
+ };
+
+-static struct vm_operations_struct shmem_vm_ops = {
++static const struct vm_operations_struct shmem_vm_ops = {
+ .fault = shmem_fault,
+ #ifdef CONFIG_NUMA
+ .set_policy = shmem_set_policy,
diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c
--- linux-2.6.29.6/mm/slab.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/slab.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/slab.c 2009-07-23 17:34:32.231924238 -0400
@@ -305,7 +305,7 @@ struct kmem_list3 {
* Need this for bootstrapping a per node allocator.
*/
@@ -39392,7 +43308,7 @@ diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c
* @objp: Pointer to the object
diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c
--- linux-2.6.29.6/mm/slob.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/slob.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/slob.c 2009-07-23 17:34:32.232713662 -0400
@@ -29,7 +29,7 @@
* If kmalloc is asked for objects of PAGE_SIZE or larger, it calls
* alloc_pages() directly, allocating compound pages so the page order
@@ -39693,7 +43609,7 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c
EXPORT_SYMBOL(kmem_cache_free);
diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c
--- linux-2.6.29.6/mm/slub.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/slub.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/slub.c 2009-07-23 17:34:32.232713662 -0400
@@ -1786,7 +1786,7 @@ static int slub_min_objects;
* Merge control. If this is set then no merging of slab caches will occur.
* (Could be removed. This was introduced to pacify the merge skeptics.)
@@ -39824,7 +43740,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c
module_init(slab_proc_init);
diff -urNp linux-2.6.29.6/mm/util.c linux-2.6.29.6/mm/util.c
--- linux-2.6.29.6/mm/util.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/util.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/util.c 2009-07-23 17:34:32.233880520 -0400
@@ -187,6 +187,12 @@ EXPORT_SYMBOL(strndup_user);
void arch_pick_mmap_layout(struct mm_struct *mm)
{
@@ -39840,7 +43756,7 @@ diff -urNp linux-2.6.29.6/mm/util.c linux-2.6.29.6/mm/util.c
}
diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c
--- linux-2.6.29.6/mm/vmalloc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/mm/vmalloc.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/mm/vmalloc.c 2009-07-23 17:34:32.233880520 -0400
@@ -90,6 +90,11 @@ static int vmap_pte_range(pmd_t *pmd, un
unsigned long end, pgprot_t prot, struct page **pages, int *nr)
{
@@ -39998,7 +43914,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c
struct vm_struct *area;
diff -urNp linux-2.6.29.6/net/atm/atm_misc.c linux-2.6.29.6/net/atm/atm_misc.c
--- linux-2.6.29.6/net/atm/atm_misc.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/atm/atm_misc.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/atm/atm_misc.c 2009-07-23 17:34:37.460011249 -0400
@@ -19,7 +19,7 @@ int atm_charge(struct atm_vcc *vcc,int t
if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
return 1;
@@ -40017,9 +43933,18 @@ diff -urNp linux-2.6.29.6/net/atm/atm_misc.c linux-2.6.29.6/net/atm/atm_misc.c
return NULL;
}
+@@ -96,7 +96,7 @@ void sonet_copy_stats(struct k_sonet_sta
+
+ void sonet_subtract_stats(struct k_sonet_stats *from,struct sonet_stats *to)
+ {
+-#define __HANDLE_ITEM(i) atomic_sub(to->i,&from->i)
++#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i,&from->i)
+ __SONET_ITEMS
+ #undef __HANDLE_ITEM
+ }
diff -urNp linux-2.6.29.6/net/atm/resources.c linux-2.6.29.6/net/atm/resources.c
--- linux-2.6.29.6/net/atm/resources.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/atm/resources.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/atm/resources.c 2009-07-23 17:34:32.234796571 -0400
@@ -170,7 +170,7 @@ static void copy_aal_stats(struct k_atm_
static void subtract_aal_stats(struct k_atm_aal_stats *from,
struct atm_aal_stats *to)
@@ -40031,7 +43956,7 @@ diff -urNp linux-2.6.29.6/net/atm/resources.c linux-2.6.29.6/net/atm/resources.c
}
diff -urNp linux-2.6.29.6/net/bridge/br_stp_if.c linux-2.6.29.6/net/bridge/br_stp_if.c
--- linux-2.6.29.6/net/bridge/br_stp_if.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/bridge/br_stp_if.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/bridge/br_stp_if.c 2009-07-23 17:34:32.234796571 -0400
@@ -146,7 +146,7 @@ static void br_stp_stop(struct net_bridg
char *envp[] = { NULL };
@@ -40043,7 +43968,7 @@ diff -urNp linux-2.6.29.6/net/bridge/br_stp_if.c linux-2.6.29.6/net/bridge/br_st
diff -urNp linux-2.6.29.6/net/core/flow.c linux-2.6.29.6/net/core/flow.c
--- linux-2.6.29.6/net/core/flow.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/core/flow.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/core/flow.c 2009-07-23 17:34:32.234796571 -0400
@@ -39,7 +39,7 @@ atomic_t flow_cache_genid = ATOMIC_INIT(
static u32 flow_hash_shift;
@@ -40073,7 +43998,7 @@ diff -urNp linux-2.6.29.6/net/core/flow.c linux-2.6.29.6/net/core/flow.c
diff -urNp linux-2.6.29.6/net/dccp/ccids/ccid3.c linux-2.6.29.6/net/dccp/ccids/ccid3.c
--- linux-2.6.29.6/net/dccp/ccids/ccid3.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/dccp/ccids/ccid3.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/dccp/ccids/ccid3.c 2009-07-23 17:34:32.234796571 -0400
@@ -43,7 +43,7 @@
static int ccid3_debug;
#define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a)
@@ -40085,7 +44010,7 @@ diff -urNp linux-2.6.29.6/net/dccp/ccids/ccid3.c linux-2.6.29.6/net/dccp/ccids/c
/*
diff -urNp linux-2.6.29.6/net/dccp/dccp.h linux-2.6.29.6/net/dccp/dccp.h
--- linux-2.6.29.6/net/dccp/dccp.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/dccp/dccp.h 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/dccp/dccp.h 2009-07-23 17:34:32.235712173 -0400
@@ -43,8 +43,8 @@ extern int dccp_debug;
#define dccp_pr_debug(format, a...) DCCP_PR_DEBUG(dccp_debug, format, ##a)
#define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a)
@@ -40099,7 +44024,7 @@ diff -urNp linux-2.6.29.6/net/dccp/dccp.h linux-2.6.29.6/net/dccp/dccp.h
extern struct inet_hashinfo dccp_hashinfo;
diff -urNp linux-2.6.29.6/net/ipv4/inet_connection_sock.c linux-2.6.29.6/net/ipv4/inet_connection_sock.c
--- linux-2.6.29.6/net/ipv4/inet_connection_sock.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv4/inet_connection_sock.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv4/inet_connection_sock.c 2009-07-23 17:34:32.235712173 -0400
@@ -15,6 +15,7 @@
#include <linux/module.h>
@@ -40110,7 +44035,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/inet_connection_sock.c linux-2.6.29.6/net/ipv
#include <net/inet_hashtables.h>
diff -urNp linux-2.6.29.6/net/ipv4/inet_hashtables.c linux-2.6.29.6/net/ipv4/inet_hashtables.c
--- linux-2.6.29.6/net/ipv4/inet_hashtables.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv4/inet_hashtables.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv4/inet_hashtables.c 2009-07-23 17:34:32.235712173 -0400
@@ -18,11 +18,14 @@
#include <linux/sched.h>
#include <linux/slab.h>
@@ -40137,7 +44062,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/inet_hashtables.c linux-2.6.29.6/net/ipv4/ine
inet_twsk_put(tw);
diff -urNp linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c
--- linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-23 17:34:32.235712173 -0400
@@ -397,7 +397,7 @@ static unsigned char asn1_octets_decode(
*len = 0;
@@ -40149,7 +44074,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.29.6/
printk("OOM in bsalg (%d)\n", __LINE__);
diff -urNp linux-2.6.29.6/net/ipv4/tcp_ipv4.c linux-2.6.29.6/net/ipv4/tcp_ipv4.c
--- linux-2.6.29.6/net/ipv4/tcp_ipv4.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv4/tcp_ipv4.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv4/tcp_ipv4.c 2009-07-23 17:34:32.236754222 -0400
@@ -1512,6 +1512,9 @@ int tcp_v4_do_rcv(struct sock *sk, struc
return 0;
@@ -40172,7 +44097,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/tcp_ipv4.c linux-2.6.29.6/net/ipv4/tcp_ipv4.c
diff -urNp linux-2.6.29.6/net/ipv4/tcp_minisocks.c linux-2.6.29.6/net/ipv4/tcp_minisocks.c
--- linux-2.6.29.6/net/ipv4/tcp_minisocks.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv4/tcp_minisocks.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv4/tcp_minisocks.c 2009-07-23 17:34:32.236754222 -0400
@@ -695,8 +695,11 @@ listen_overflow:
embryonic_reset:
@@ -40187,7 +44112,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/tcp_minisocks.c linux-2.6.29.6/net/ipv4/tcp_m
return NULL;
diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c
--- linux-2.6.29.6/net/ipv4/udp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv4/udp.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv4/udp.c 2009-07-23 17:34:32.237793198 -0400
@@ -86,6 +86,7 @@
#include <linux/types.h>
#include <linux/fcntl.h>
@@ -40248,7 +44173,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c
/*
diff -urNp linux-2.6.29.6/net/ipv6/exthdrs.c linux-2.6.29.6/net/ipv6/exthdrs.c
--- linux-2.6.29.6/net/ipv6/exthdrs.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv6/exthdrs.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv6/exthdrs.c 2009-07-23 17:34:32.237793198 -0400
@@ -630,7 +630,7 @@ static struct tlvtype_proc tlvprochopopt
.type = IPV6_TLV_JUMBO,
.func = ipv6_hop_jumbo,
@@ -40258,9 +44183,48 @@ diff -urNp linux-2.6.29.6/net/ipv6/exthdrs.c linux-2.6.29.6/net/ipv6/exthdrs.c
};
int ipv6_parse_hopopts(struct sk_buff *skb)
+diff -urNp linux-2.6.29.6/net/ipv6/ip6mr.c linux-2.6.29.6/net/ipv6/ip6mr.c
+--- linux-2.6.29.6/net/ipv6/ip6mr.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/ipv6/ip6mr.c 2009-07-23 18:40:28.745511060 -0400
+@@ -204,7 +204,7 @@ static int ip6mr_vif_seq_show(struct seq
+ return 0;
+ }
+
+-static struct seq_operations ip6mr_vif_seq_ops = {
++static const struct seq_operations ip6mr_vif_seq_ops = {
+ .start = ip6mr_vif_seq_start,
+ .next = ip6mr_vif_seq_next,
+ .stop = ip6mr_vif_seq_stop,
+@@ -217,7 +217,7 @@ static int ip6mr_vif_open(struct inode *
+ sizeof(struct ipmr_vif_iter));
+ }
+
+-static struct file_operations ip6mr_vif_fops = {
++static const struct file_operations ip6mr_vif_fops = {
+ .owner = THIS_MODULE,
+ .open = ip6mr_vif_open,
+ .read = seq_read,
+@@ -328,7 +328,7 @@ static int ipmr_mfc_seq_show(struct seq_
+ return 0;
+ }
+
+-static struct seq_operations ipmr_mfc_seq_ops = {
++static const struct seq_operations ipmr_mfc_seq_ops = {
+ .start = ipmr_mfc_seq_start,
+ .next = ipmr_mfc_seq_next,
+ .stop = ipmr_mfc_seq_stop,
+@@ -341,7 +341,7 @@ static int ipmr_mfc_open(struct inode *i
+ sizeof(struct ipmr_mfc_iter));
+ }
+
+-static struct file_operations ip6mr_mfc_fops = {
++static const struct file_operations ip6mr_mfc_fops = {
+ .owner = THIS_MODULE,
+ .open = ipmr_mfc_open,
+ .read = seq_read,
diff -urNp linux-2.6.29.6/net/ipv6/raw.c linux-2.6.29.6/net/ipv6/raw.c
--- linux-2.6.29.6/net/ipv6/raw.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv6/raw.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv6/raw.c 2009-07-23 17:34:32.237793198 -0400
@@ -600,7 +600,7 @@ out:
return err;
}
@@ -40272,7 +44236,7 @@ diff -urNp linux-2.6.29.6/net/ipv6/raw.c linux-2.6.29.6/net/ipv6/raw.c
{
diff -urNp linux-2.6.29.6/net/ipv6/tcp_ipv6.c linux-2.6.29.6/net/ipv6/tcp_ipv6.c
--- linux-2.6.29.6/net/ipv6/tcp_ipv6.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv6/tcp_ipv6.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv6/tcp_ipv6.c 2009-07-23 17:34:32.238737195 -0400
@@ -1576,6 +1576,9 @@ static int tcp_v6_do_rcv(struct sock *sk
return 0;
@@ -40295,7 +44259,7 @@ diff -urNp linux-2.6.29.6/net/ipv6/tcp_ipv6.c linux-2.6.29.6/net/ipv6/tcp_ipv6.c
diff -urNp linux-2.6.29.6/net/ipv6/udp.c linux-2.6.29.6/net/ipv6/udp.c
--- linux-2.6.29.6/net/ipv6/udp.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/ipv6/udp.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/ipv6/udp.c 2009-07-23 17:34:32.238737195 -0400
@@ -558,6 +558,9 @@ int __udp6_lib_rcv(struct sk_buff *skb,
UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS,
proto == IPPROTO_UDPLITE);
@@ -40306,9 +44270,30 @@ diff -urNp linux-2.6.29.6/net/ipv6/udp.c linux-2.6.29.6/net/ipv6/udp.c
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, dev);
kfree_skb(skb);
+diff -urNp linux-2.6.29.6/net/key/af_key.c linux-2.6.29.6/net/key/af_key.c
+--- linux-2.6.29.6/net/key/af_key.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/key/af_key.c 2009-07-23 18:40:28.770272617 -0400
+@@ -3707,7 +3707,7 @@ static void pfkey_seq_stop(struct seq_fi
+ read_unlock(&pfkey_table_lock);
+ }
+
+-static struct seq_operations pfkey_seq_ops = {
++static const struct seq_operations pfkey_seq_ops = {
+ .start = pfkey_seq_start,
+ .next = pfkey_seq_next,
+ .stop = pfkey_seq_stop,
+@@ -3720,7 +3720,7 @@ static int pfkey_seq_open(struct inode *
+ sizeof(struct seq_net_private));
+ }
+
+-static struct file_operations pfkey_proc_ops = {
++static const struct file_operations pfkey_proc_ops = {
+ .open = pfkey_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
diff -urNp linux-2.6.29.6/net/mac80211/ieee80211_i.h linux-2.6.29.6/net/mac80211/ieee80211_i.h
--- linux-2.6.29.6/net/mac80211/ieee80211_i.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/mac80211/ieee80211_i.h 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/mac80211/ieee80211_i.h 2009-07-23 17:34:32.239733592 -0400
@@ -562,7 +562,7 @@ struct ieee80211_local {
unsigned long queue_stop_reasons[IEEE80211_MAX_QUEUES];
spinlock_t queue_stop_reason_lock;
@@ -40320,7 +44305,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/ieee80211_i.h linux-2.6.29.6/net/mac80211
int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss;
diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface.c
--- linux-2.6.29.6/net/mac80211/iface.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/mac80211/iface.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/mac80211/iface.c 2009-07-23 17:34:32.239733592 -0400
@@ -146,7 +146,7 @@ static int ieee80211_open(struct net_dev
break;
}
@@ -40386,7 +44371,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface
diff -urNp linux-2.6.29.6/net/mac80211/main.c linux-2.6.29.6/net/mac80211/main.c
--- linux-2.6.29.6/net/mac80211/main.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/mac80211/main.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/mac80211/main.c 2009-07-23 17:34:32.239733592 -0400
@@ -233,7 +233,7 @@ int ieee80211_hw_config(struct ieee80211
local->hw.conf.power_level = power;
}
@@ -40398,7 +44383,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/main.c linux-2.6.29.6/net/mac80211/main.c
* Goal:
diff -urNp linux-2.6.29.6/net/mac80211/rate.c linux-2.6.29.6/net/mac80211/rate.c
--- linux-2.6.29.6/net/mac80211/rate.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/mac80211/rate.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/mac80211/rate.c 2009-07-23 17:34:32.240714874 -0400
@@ -256,7 +256,7 @@ int ieee80211_init_rate_ctrl_alg(struct
struct rate_control_ref *ref, *old;
@@ -40408,9 +44393,45 @@ diff -urNp linux-2.6.29.6/net/mac80211/rate.c linux-2.6.29.6/net/mac80211/rate.c
return -EBUSY;
ref = rate_control_alloc(name, local);
+diff -urNp linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c
+--- linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c 2009-07-23 18:40:28.777436731 -0400
+@@ -139,7 +139,7 @@ minstrel_stats_release(struct inode *ino
+ return 0;
+ }
+
+-static struct file_operations minstrel_stat_fops = {
++static const struct file_operations minstrel_stat_fops = {
+ .owner = THIS_MODULE,
+ .open = minstrel_stats_open,
+ .read = minstrel_stats_read,
+diff -urNp linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c
+--- linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c 2009-07-23 18:40:28.783149857 -0400
+@@ -198,7 +198,7 @@ static ssize_t rate_control_pid_events_r
+
+ #undef RC_PID_PRINT_BUF_SIZE
+
+-static struct file_operations rc_pid_fop_events = {
++static const struct file_operations rc_pid_fop_events = {
+ .owner = THIS_MODULE,
+ .read = rate_control_pid_events_read,
+ .poll = rate_control_pid_events_poll,
+diff -urNp linux-2.6.29.6/net/packet/af_packet.c linux-2.6.29.6/net/packet/af_packet.c
+--- linux-2.6.29.6/net/packet/af_packet.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/packet/af_packet.c 2009-07-23 18:40:28.789919912 -0400
+@@ -1741,7 +1741,7 @@ static void packet_mm_close(struct vm_ar
+ atomic_dec(&pkt_sk(sk)->mapped);
+ }
+
+-static struct vm_operations_struct packet_mmap_ops = {
++static const struct vm_operations_struct packet_mmap_ops = {
+ .open = packet_mm_open,
+ .close =packet_mm_close,
+ };
diff -urNp linux-2.6.29.6/net/sctp/socket.c linux-2.6.29.6/net/sctp/socket.c
--- linux-2.6.29.6/net/sctp/socket.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/sctp/socket.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/sctp/socket.c 2009-07-23 17:34:32.240714874 -0400
@@ -1434,7 +1434,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc
struct sctp_sndrcvinfo *sinfo;
struct sctp_initmsg *sinit;
@@ -40430,7 +44451,7 @@ diff -urNp linux-2.6.29.6/net/sctp/socket.c linux-2.6.29.6/net/sctp/socket.c
if (pp->fastreuse && sk->sk_reuse &&
diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c
--- linux-2.6.29.6/net/socket.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/socket.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/socket.c 2009-07-23 19:30:30.968455360 -0400
@@ -86,6 +86,7 @@
#include <linux/audit.h>
#include <linux/wireless.h>
@@ -40461,6 +44482,15 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c
static int sock_no_open(struct inode *irrelevant, struct file *dontcare);
static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t pos);
+@@ -285,7 +301,7 @@ static int init_inodecache(void)
+ return 0;
+ }
+
+-static struct super_operations sockfs_ops = {
++static const struct super_operations sockfs_ops = {
+ .alloc_inode = sock_alloc_inode,
+ .destroy_inode =sock_destroy_inode,
+ .statfs = simple_statfs,
@@ -299,7 +315,7 @@ static int sockfs_get_sb(struct file_sys
mnt);
}
@@ -40470,6 +44500,15 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c
static struct file_system_type sock_fs_type = {
.name = "sockfs",
+@@ -328,7 +344,7 @@ static char *sockfs_dname(struct dentry
+ dentry->d_inode->i_ino);
+ }
+
+-static struct dentry_operations sockfs_dentry_operations = {
++static const struct dentry_operations sockfs_dentry_operations = {
+ .d_delete = sockfs_delete_dentry,
+ .d_dname = sockfs_dname,
+ };
@@ -1234,6 +1250,16 @@ SYSCALL_DEFINE3(socket, int, family, int
if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK))
flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK;
@@ -40584,9 +44623,30 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c
err =
security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
if (err)
+diff -urNp linux-2.6.29.6/net/sunrpc/rpc_pipe.c linux-2.6.29.6/net/sunrpc/rpc_pipe.c
+--- linux-2.6.29.6/net/sunrpc/rpc_pipe.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/sunrpc/rpc_pipe.c 2009-07-23 18:40:28.803536193 -0400
+@@ -480,7 +480,7 @@ static int rpc_delete_dentry(struct dent
+ return 1;
+ }
+
+-static struct dentry_operations rpc_dentry_operations = {
++static const struct dentry_operations rpc_dentry_operations = {
+ .d_delete = rpc_delete_dentry,
+ };
+
+@@ -858,7 +858,7 @@ EXPORT_SYMBOL_GPL(rpc_unlink);
+ /*
+ * populate the filesystem
+ */
+-static struct super_operations s_ops = {
++static const struct super_operations s_ops = {
+ .alloc_inode = rpc_alloc_inode,
+ .destroy_inode = rpc_destroy_inode,
+ .statfs = simple_statfs,
diff -urNp linux-2.6.29.6/net/unix/af_unix.c linux-2.6.29.6/net/unix/af_unix.c
--- linux-2.6.29.6/net/unix/af_unix.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/net/unix/af_unix.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/net/unix/af_unix.c 2009-07-23 17:34:32.242831111 -0400
@@ -734,6 +734,12 @@ static struct sock *unix_find_other(stru
err = -ECONNREFUSED;
if (!S_ISSOCK(inode->i_mode))
@@ -40644,9 +44704,45 @@ diff -urNp linux-2.6.29.6/net/unix/af_unix.c linux-2.6.29.6/net/unix/af_unix.c
list = &unix_socket_table[addr->hash];
} else {
list = &unix_socket_table[dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)];
+diff -urNp linux-2.6.29.6/net/xfrm/xfrm_proc.c linux-2.6.29.6/net/xfrm/xfrm_proc.c
+--- linux-2.6.29.6/net/xfrm/xfrm_proc.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/net/xfrm/xfrm_proc.c 2009-07-23 18:40:28.814555102 -0400
+@@ -60,7 +60,7 @@ static int xfrm_statistics_seq_open(stru
+ return single_open_net(inode, file, xfrm_statistics_seq_show);
+ }
+
+-static struct file_operations xfrm_statistics_seq_fops = {
++static const struct file_operations xfrm_statistics_seq_fops = {
+ .owner = THIS_MODULE,
+ .open = xfrm_statistics_seq_open,
+ .read = seq_read,
+diff -urNp linux-2.6.29.6/samples/markers/marker-example.c linux-2.6.29.6/samples/markers/marker-example.c
+--- linux-2.6.29.6/samples/markers/marker-example.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/samples/markers/marker-example.c 2009-07-23 18:40:28.823705055 -0400
+@@ -26,7 +26,7 @@ static int my_open(struct inode *inode,
+ return -EPERM;
+ }
+
+-static struct file_operations mark_ops = {
++static const struct file_operations mark_ops = {
+ .open = my_open,
+ };
+
+diff -urNp linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c
+--- linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c 2009-07-23 18:40:28.824321350 -0400
+@@ -28,7 +28,7 @@ static int my_open(struct inode *inode,
+ return -EPERM;
+ }
+
+-static struct file_operations mark_ops = {
++static const struct file_operations mark_ops = {
+ .open = my_open,
+ };
+
diff -urNp linux-2.6.29.6/scripts/mod/modpost.c linux-2.6.29.6/scripts/mod/modpost.c
--- linux-2.6.29.6/scripts/mod/modpost.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/scripts/mod/modpost.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/scripts/mod/modpost.c 2009-07-23 17:34:32.242831111 -0400
@@ -830,6 +830,7 @@ enum mismatch {
INIT_TO_EXIT,
EXIT_TO_INIT,
@@ -40685,7 +44781,7 @@ diff -urNp linux-2.6.29.6/scripts/mod/modpost.c linux-2.6.29.6/scripts/mod/modpo
break;
diff -urNp linux-2.6.29.6/scripts/pnmtologo.c linux-2.6.29.6/scripts/pnmtologo.c
--- linux-2.6.29.6/scripts/pnmtologo.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/scripts/pnmtologo.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/scripts/pnmtologo.c 2009-07-23 17:34:32.243888317 -0400
@@ -237,14 +237,14 @@ static void write_header(void)
fprintf(out, " * Linux logo %s\n", logoname);
fputs(" */\n\n", out);
@@ -40714,7 +44810,7 @@ diff -urNp linux-2.6.29.6/scripts/pnmtologo.c linux-2.6.29.6/scripts/pnmtologo.c
for (i = 0; i < logo_clutsize; i++) {
diff -urNp linux-2.6.29.6/security/commoncap.c linux-2.6.29.6/security/commoncap.c
--- linux-2.6.29.6/security/commoncap.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/security/commoncap.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/security/commoncap.c 2009-07-23 17:34:32.243888317 -0400
@@ -28,9 +28,11 @@
#include <linux/prctl.h>
#include <linux/securebits.h>
@@ -40730,8 +44826,8 @@ diff -urNp linux-2.6.29.6/security/commoncap.c linux-2.6.29.6/security/commoncap
diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig
--- linux-2.6.29.6/security/Kconfig 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/security/Kconfig 2009-07-10 07:23:12.000000000 -0400
-@@ -4,6 +4,481 @@
++++ linux-2.6.29.6/security/Kconfig 2009-07-23 17:35:37.439768706 -0400
+@@ -4,6 +4,465 @@
menu "Security options"
@@ -41190,22 +45286,6 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig
+ Note that the current implementation provides the strictest checks
+ for the SLUB allocator.
+
-+config PAX_SECURE_VSYSCALL
-+ bool "Harden vsyscall against exploitation"
-+ depends on X86_64
-+ default y
-+ help
-+ By saying Y here, the kernel will make the vsyscall mapping
-+ non-executable and redirect users of the fixed-address
-+ vsyscall mapping to a more secure vDSO. This removes the
-+ vsyscall mappings as targets of exploitation, particularly in
-+ abusing them to easily transition from interrupt to process
-+ context.
-+
-+ You should enable this feature if the kernel being built is
-+ not being used as a guest within VMWare ESX Server, as we have
-+ been informed that this feature is incompatible with their
-+ product.
+endmenu
+
+endmenu
@@ -41213,9 +45293,39 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig
config KEYS
bool "Enable access key retention support"
help
+diff -urNp linux-2.6.29.6/security/smack/smackfs.c linux-2.6.29.6/security/smack/smackfs.c
+--- linux-2.6.29.6/security/smack/smackfs.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/security/smack/smackfs.c 2009-07-23 18:40:28.832499629 -0400
+@@ -179,7 +179,7 @@ static void load_seq_stop(struct seq_fil
+ /* No-op */
+ }
+
+-static struct seq_operations load_seq_ops = {
++static const struct seq_operations load_seq_ops = {
+ .start = load_seq_start,
+ .next = load_seq_next,
+ .show = load_seq_show,
+@@ -491,7 +491,7 @@ static void cipso_seq_stop(struct seq_fi
+ /* No-op */
+ }
+
+-static struct seq_operations cipso_seq_ops = {
++static const struct seq_operations cipso_seq_ops = {
+ .start = cipso_seq_start,
+ .stop = cipso_seq_stop,
+ .next = cipso_seq_next,
+@@ -675,7 +675,7 @@ static void netlbladdr_seq_stop(struct s
+ /* No-op */
+ }
+
+-static struct seq_operations netlbladdr_seq_ops = {
++static const struct seq_operations netlbladdr_seq_ops = {
+ .start = netlbladdr_seq_start,
+ .stop = netlbladdr_seq_stop,
+ .next = netlbladdr_seq_next,
diff -urNp linux-2.6.29.6/sound/core/oss/pcm_oss.c linux-2.6.29.6/sound/core/oss/pcm_oss.c
--- linux-2.6.29.6/sound/core/oss/pcm_oss.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/sound/core/oss/pcm_oss.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/sound/core/oss/pcm_oss.c 2009-07-23 17:34:32.245757940 -0400
@@ -2929,8 +2929,8 @@ static void snd_pcm_oss_proc_done(struct
}
}
@@ -41229,7 +45339,7 @@ diff -urNp linux-2.6.29.6/sound/core/oss/pcm_oss.c linux-2.6.29.6/sound/core/oss
/*
diff -urNp linux-2.6.29.6/sound/core/seq/seq_lock.h linux-2.6.29.6/sound/core/seq/seq_lock.h
--- linux-2.6.29.6/sound/core/seq/seq_lock.h 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/sound/core/seq/seq_lock.h 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/sound/core/seq/seq_lock.h 2009-07-23 17:34:32.245757940 -0400
@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo
#else /* SMP || CONFIG_SND_DEBUG */
@@ -41247,7 +45357,7 @@ diff -urNp linux-2.6.29.6/sound/core/seq/seq_lock.h linux-2.6.29.6/sound/core/se
diff -urNp linux-2.6.29.6/sound/pci/ac97/ac97_patch.c linux-2.6.29.6/sound/pci/ac97/ac97_patch.c
--- linux-2.6.29.6/sound/pci/ac97/ac97_patch.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/sound/pci/ac97/ac97_patch.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/sound/pci/ac97/ac97_patch.c 2009-07-23 17:34:32.246936980 -0400
@@ -1498,7 +1498,7 @@ static const struct snd_ac97_res_table a
{ AC97_VIDEO, 0x9f1f },
{ AC97_AUX, 0x9f1f },
@@ -41268,7 +45378,7 @@ diff -urNp linux-2.6.29.6/sound/pci/ac97/ac97_patch.c linux-2.6.29.6/sound/pci/a
static int patch_lm4550(struct snd_ac97 *ac97)
diff -urNp linux-2.6.29.6/sound/pci/ens1370.c linux-2.6.29.6/sound/pci/ens1370.c
--- linux-2.6.29.6/sound/pci/ens1370.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/sound/pci/ens1370.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/sound/pci/ens1370.c 2009-07-23 17:34:32.247850956 -0400
@@ -452,7 +452,7 @@ static struct pci_device_id snd_audiopci
{ 0x1274, 0x5880, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1373 - CT5880 */
{ 0x1102, 0x8938, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Ectiva EV1938 */
@@ -41280,7 +45390,7 @@ diff -urNp linux-2.6.29.6/sound/pci/ens1370.c linux-2.6.29.6/sound/pci/ens1370.c
MODULE_DEVICE_TABLE(pci, snd_audiopci_ids);
diff -urNp linux-2.6.29.6/sound/pci/intel8x0.c linux-2.6.29.6/sound/pci/intel8x0.c
--- linux-2.6.29.6/sound/pci/intel8x0.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/sound/pci/intel8x0.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/sound/pci/intel8x0.c 2009-07-23 17:34:32.247850956 -0400
@@ -443,7 +443,7 @@ static struct pci_device_id snd_intel8x0
{ 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */
{ 0x1022, 0x7445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD768 */
@@ -41301,7 +45411,7 @@ diff -urNp linux-2.6.29.6/sound/pci/intel8x0.c linux-2.6.29.6/sound/pci/intel8x0
static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock,
diff -urNp linux-2.6.29.6/sound/pci/intel8x0m.c linux-2.6.29.6/sound/pci/intel8x0m.c
--- linux-2.6.29.6/sound/pci/intel8x0m.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/sound/pci/intel8x0m.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/sound/pci/intel8x0m.c 2009-07-23 17:34:32.249009543 -0400
@@ -239,7 +239,7 @@ static struct pci_device_id snd_intel8x0
{ 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */
{ 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI }, /* Ali5455 */
@@ -41320,9 +45430,45 @@ diff -urNp linux-2.6.29.6/sound/pci/intel8x0m.c linux-2.6.29.6/sound/pci/intel8x
};
static int __devinit snd_intel8x0m_probe(struct pci_dev *pci,
+diff -urNp linux-2.6.29.6/sound/usb/usx2y/us122l.c linux-2.6.29.6/sound/usb/usx2y/us122l.c
+--- linux-2.6.29.6/sound/usb/usx2y/us122l.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/sound/usb/usx2y/us122l.c 2009-07-23 18:40:28.832499629 -0400
+@@ -154,7 +154,7 @@ static void usb_stream_hwdep_vm_close(st
+ snd_printdd(KERN_DEBUG "%i\n", atomic_read(&us122l->mmap_count));
+ }
+
+-static struct vm_operations_struct usb_stream_hwdep_vm_ops = {
++static const struct vm_operations_struct usb_stream_hwdep_vm_ops = {
+ .open = usb_stream_hwdep_vm_open,
+ .fault = usb_stream_hwdep_vm_fault,
+ .close = usb_stream_hwdep_vm_close,
+diff -urNp linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c
+--- linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c 2009-07-23 18:40:28.833508615 -0400
+@@ -56,7 +56,7 @@ static int snd_us428ctls_vm_fault(struct
+ return 0;
+ }
+
+-static struct vm_operations_struct us428ctls_vm_ops = {
++static const struct vm_operations_struct us428ctls_vm_ops = {
+ .fault = snd_us428ctls_vm_fault,
+ };
+
+diff -urNp linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c
+--- linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c 2009-07-02 19:41:20.000000000 -0400
++++ linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c 2009-07-23 18:40:28.833508615 -0400
+@@ -697,7 +697,7 @@ static int snd_usX2Y_hwdep_pcm_vm_fault(
+ }
+
+
+-static struct vm_operations_struct snd_usX2Y_hwdep_pcm_vm_ops = {
++static const struct vm_operations_struct snd_usX2Y_hwdep_pcm_vm_ops = {
+ .open = snd_usX2Y_hwdep_pcm_vm_open,
+ .close = snd_usX2Y_hwdep_pcm_vm_close,
+ .fault = snd_usX2Y_hwdep_pcm_vm_fault,
diff -urNp linux-2.6.29.6/virt/kvm/kvm_main.c linux-2.6.29.6/virt/kvm/kvm_main.c
--- linux-2.6.29.6/virt/kvm/kvm_main.c 2009-07-02 19:41:20.000000000 -0400
-+++ linux-2.6.29.6/virt/kvm/kvm_main.c 2009-07-09 22:13:40.000000000 -0400
++++ linux-2.6.29.6/virt/kvm/kvm_main.c 2009-07-23 17:34:32.249724330 -0400
@@ -2059,6 +2059,9 @@ static struct miscdevice kvm_dev = {
KVM_MINOR,
"kvm",