aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-04-20 12:30:52 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-04-20 15:03:00 +0000
commit18d77b6614c1c493c2c4a0c8fb9d26460f18483e (patch)
treeb74f9f656ce0482ca9f9052da41d03cbf3eaaf11
parentd166b1f5032eaeb9dd9e72db948a170af4710a96 (diff)
downloadalpine_aports-18d77b6614c1c493c2c4a0c8fb9d26460f18483e.tar.bz2
alpine_aports-18d77b6614c1c493c2c4a0c8fb9d26460f18483e.tar.xz
alpine_aports-18d77b6614c1c493c2c4a0c8fb9d26460f18483e.zip
Revert "main/linux-grsec: upgrade to 2.2.2-2.6.38.3-201104190633"
This reverts commit 443af6fbde8be65de45228a926e021f8be852d39.
-rw-r--r--main/linux-grsec/APKBUILD14
-rw-r--r--main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch (renamed from main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104190633.patch)9913
-rw-r--r--main/linux-grsec/kernelconfig.x867
-rw-r--r--main/linux-grsec/kernelconfig.x86_648
4 files changed, 4128 insertions, 5814 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 631133bc78..3e7a6bc50c 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,9 +2,9 @@
2 2
3_flavor=grsec 3_flavor=grsec
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=2.6.38.3 5pkgver=2.6.38.2
6_kernver=2.6.38 6_kernver=2.6.38
7pkgrel=1 7pkgrel=3
8pkgdesc="Linux kernel with grsecurity" 8pkgdesc="Linux kernel with grsecurity"
9url=http://grsecurity.net 9url=http://grsecurity.net
10depends="mkinitfs linux-firmware" 10depends="mkinitfs linux-firmware"
@@ -14,7 +14,7 @@ _config=${config:-kernelconfig.${CARCH}}
14install= 14install=
15source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 15source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
16 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 16 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
17 grsecurity-2.2.2-2.6.38.3-201104190633.patch 17 grsecurity-2.2.2-2.6.38.2-201103281752.patch
18 18
19 0004-arp-flush-arp-cache-on-device-change.patch 19 0004-arp-flush-arp-cache-on-device-change.patch
20 net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch 20 net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch
@@ -137,9 +137,9 @@ dev() {
137} 137}
138 138
139md5sums="7d471477bfa67546f902da62227fa976 linux-2.6.38.tar.bz2 139md5sums="7d471477bfa67546f902da62227fa976 linux-2.6.38.tar.bz2
140b3677121c4b5efcb8128c2000788d0aa patch-2.6.38.3.bz2 140599badab31c4920d4122133208c810d7 patch-2.6.38.2.bz2
141a19024797f192fe21a468de80c101d8a grsecurity-2.2.2-2.6.38.3-201104190633.patch 141fac4f5fb386192c544fae27db6db18a7 grsecurity-2.2.2-2.6.38.2-201103281752.patch
142776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch 142776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch
143aa1b82da0cabfb41c5e6da5bddf60bab net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch 143aa1b82da0cabfb41c5e6da5bddf60bab net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch
144b88a5966a35d817b85586208100137b2 kernelconfig.x86 14447ff0feca681cd53a037b7f5c9b46c3d kernelconfig.x86
145f116ab9c5f14e7ce6d16c4c4985a36c9 kernelconfig.x86_64" 1452d70a4c38d97ca1a5280ca8d4e535628 kernelconfig.x86_64"
diff --git a/main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104190633.patch b/main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch
index 1261eb5a1a..190cb94594 100644
--- a/main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104190633.patch
+++ b/main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch
@@ -1,6 +1,6 @@
1diff -urNp linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 1diff -urNp linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h
2--- linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 2--- linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3+++ linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 3+++ linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
4@@ -3,9 +3,9 @@ 4@@ -3,9 +3,9 @@
5 5
6 #include <linux/dma-attrs.h> 6 #include <linux/dma-attrs.h>
@@ -13,9 +13,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.3/ar
13 { 13 {
14 return dma_ops; 14 return dma_ops;
15 } 15 }
16diff -urNp linux-2.6.38.3/arch/alpha/include/asm/elf.h linux-2.6.38.3/arch/alpha/include/asm/elf.h 16diff -urNp linux-2.6.38.2/arch/alpha/include/asm/elf.h linux-2.6.38.2/arch/alpha/include/asm/elf.h
17--- linux-2.6.38.3/arch/alpha/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 17--- linux-2.6.38.2/arch/alpha/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
18+++ linux-2.6.38.3/arch/alpha/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 18+++ linux-2.6.38.2/arch/alpha/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
19@@ -90,6 +90,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 19@@ -90,6 +90,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
20 20
21 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000) 21 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
@@ -30,9 +30,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/include/asm/elf.h linux-2.6.38.3/arch/alpha
30 /* $0 is set by ld.so to a pointer to a function which might be 30 /* $0 is set by ld.so to a pointer to a function which might be
31 registered using atexit. This provides a mean for the dynamic 31 registered using atexit. This provides a mean for the dynamic
32 linker to call DT_FINI functions for shared libraries that have 32 linker to call DT_FINI functions for shared libraries that have
33diff -urNp linux-2.6.38.3/arch/alpha/include/asm/pgtable.h linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 33diff -urNp linux-2.6.38.2/arch/alpha/include/asm/pgtable.h linux-2.6.38.2/arch/alpha/include/asm/pgtable.h
34--- linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 34--- linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
35+++ linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 35+++ linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
36@@ -101,6 +101,17 @@ struct vm_area_struct; 36@@ -101,6 +101,17 @@ struct vm_area_struct;
37 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS) 37 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS)
38 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW) 38 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
@@ -51,9 +51,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/include/asm/pgtable.h linux-2.6.38.3/arch/a
51 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE) 51 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
52 52
53 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x)) 53 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
54diff -urNp linux-2.6.38.3/arch/alpha/kernel/module.c linux-2.6.38.3/arch/alpha/kernel/module.c 54diff -urNp linux-2.6.38.2/arch/alpha/kernel/module.c linux-2.6.38.2/arch/alpha/kernel/module.c
55--- linux-2.6.38.3/arch/alpha/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 55--- linux-2.6.38.2/arch/alpha/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
56+++ linux-2.6.38.3/arch/alpha/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 56+++ linux-2.6.38.2/arch/alpha/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
57@@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, 57@@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs,
58 58
59 /* The small sections were sorted to the end of the segment. 59 /* The small sections were sorted to the end of the segment.
@@ -63,9 +63,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/module.c linux-2.6.38.3/arch/alpha/k
63 got = sechdrs[me->arch.gotsecindex].sh_addr; 63 got = sechdrs[me->arch.gotsecindex].sh_addr;
64 64
65 for (i = 0; i < n; i++) { 65 for (i = 0; i < n; i++) {
66diff -urNp linux-2.6.38.3/arch/alpha/kernel/osf_sys.c linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 66diff -urNp linux-2.6.38.2/arch/alpha/kernel/osf_sys.c linux-2.6.38.2/arch/alpha/kernel/osf_sys.c
67--- linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 2011-03-14 21:20:32.000000000 -0400 67--- linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 2011-03-14 21:20:32.000000000 -0400
68+++ linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 2011-04-17 15:57:32.000000000 -0400 68+++ linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 2011-03-21 18:31:35.000000000 -0400
69@@ -1162,7 +1162,7 @@ arch_get_unmapped_area_1(unsigned long a 69@@ -1162,7 +1162,7 @@ arch_get_unmapped_area_1(unsigned long a
70 /* At this point: (!vma || addr < vma->vm_end). */ 70 /* At this point: (!vma || addr < vma->vm_end). */
71 if (limit - len < addr) 71 if (limit - len < addr)
@@ -97,9 +97,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/osf_sys.c linux-2.6.38.3/arch/alpha/
97 if (addr != (unsigned long) -ENOMEM) 97 if (addr != (unsigned long) -ENOMEM)
98 return addr; 98 return addr;
99 99
100diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 100diff -urNp linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c
101--- linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 2011-03-14 21:20:32.000000000 -0400 101--- linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 2011-03-14 21:20:32.000000000 -0400
102+++ linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 2011-04-17 15:57:32.000000000 -0400 102+++ linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 2011-03-21 18:31:35.000000000 -0400
103@@ -950,7 +950,7 @@ static int alpha_pci_set_mask(struct dev 103@@ -950,7 +950,7 @@ static int alpha_pci_set_mask(struct dev
104 return 0; 104 return 0;
105 } 105 }
@@ -116,9 +116,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c linux-2.6.38.3/arch/alph
116-struct dma_map_ops *dma_ops = &alpha_pci_ops; 116-struct dma_map_ops *dma_ops = &alpha_pci_ops;
117+const struct dma_map_ops *dma_ops = &alpha_pci_ops; 117+const struct dma_map_ops *dma_ops = &alpha_pci_ops;
118 EXPORT_SYMBOL(dma_ops); 118 EXPORT_SYMBOL(dma_ops);
119diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci-noop.c linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 119diff -urNp linux-2.6.38.2/arch/alpha/kernel/pci-noop.c linux-2.6.38.2/arch/alpha/kernel/pci-noop.c
120--- linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 2011-03-14 21:20:32.000000000 -0400 120--- linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 2011-03-14 21:20:32.000000000 -0400
121+++ linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 2011-04-17 15:57:32.000000000 -0400 121+++ linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 2011-03-21 18:31:35.000000000 -0400
122@@ -173,7 +173,7 @@ static int alpha_noop_set_mask(struct de 122@@ -173,7 +173,7 @@ static int alpha_noop_set_mask(struct de
123 return 0; 123 return 0;
124 } 124 }
@@ -137,9 +137,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci-noop.c linux-2.6.38.3/arch/alpha
137 EXPORT_SYMBOL(dma_ops); 137 EXPORT_SYMBOL(dma_ops);
138 138
139 void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) 139 void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
140diff -urNp linux-2.6.38.3/arch/alpha/mm/fault.c linux-2.6.38.3/arch/alpha/mm/fault.c 140diff -urNp linux-2.6.38.2/arch/alpha/mm/fault.c linux-2.6.38.2/arch/alpha/mm/fault.c
141--- linux-2.6.38.3/arch/alpha/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 141--- linux-2.6.38.2/arch/alpha/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
142+++ linux-2.6.38.3/arch/alpha/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 142+++ linux-2.6.38.2/arch/alpha/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
143@@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct * 143@@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct *
144 __reload_thread(pcb); 144 __reload_thread(pcb);
145 } 145 }
@@ -296,9 +296,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/mm/fault.c linux-2.6.38.3/arch/alpha/mm/fau
296 } else if (!cause) { 296 } else if (!cause) {
297 /* Allow reads even for write-only mappings */ 297 /* Allow reads even for write-only mappings */
298 if (!(vma->vm_flags & (VM_READ | VM_WRITE))) 298 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
299diff -urNp linux-2.6.38.3/arch/arm/include/asm/elf.h linux-2.6.38.3/arch/arm/include/asm/elf.h 299diff -urNp linux-2.6.38.2/arch/arm/include/asm/elf.h linux-2.6.38.2/arch/arm/include/asm/elf.h
300--- linux-2.6.38.3/arch/arm/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 300--- linux-2.6.38.2/arch/arm/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
301+++ linux-2.6.38.3/arch/arm/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 301+++ linux-2.6.38.2/arch/arm/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
302@@ -115,7 +115,14 @@ int dump_task_regs(struct task_struct *t 302@@ -115,7 +115,14 @@ int dump_task_regs(struct task_struct *t
303 the loader. We need to make sure that it is out of the way of the program 303 the loader. We need to make sure that it is out of the way of the program
304 that it will "exec", and that there is sufficient room for the brk. */ 304 that it will "exec", and that there is sufficient room for the brk. */
@@ -326,9 +326,9 @@ diff -urNp linux-2.6.38.3/arch/arm/include/asm/elf.h linux-2.6.38.3/arch/arm/inc
326 extern int vectors_user_mapping(void); 326 extern int vectors_user_mapping(void);
327 #define arch_setup_additional_pages(bprm, uses_interp) vectors_user_mapping() 327 #define arch_setup_additional_pages(bprm, uses_interp) vectors_user_mapping()
328 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 328 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
329diff -urNp linux-2.6.38.3/arch/arm/include/asm/kmap_types.h linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 329diff -urNp linux-2.6.38.2/arch/arm/include/asm/kmap_types.h linux-2.6.38.2/arch/arm/include/asm/kmap_types.h
330--- linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 330--- linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
331+++ linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 331+++ linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
332@@ -21,6 +21,7 @@ enum km_type { 332@@ -21,6 +21,7 @@ enum km_type {
333 KM_L1_CACHE, 333 KM_L1_CACHE,
334 KM_L2_CACHE, 334 KM_L2_CACHE,
@@ -337,9 +337,9 @@ diff -urNp linux-2.6.38.3/arch/arm/include/asm/kmap_types.h linux-2.6.38.3/arch/
337 KM_TYPE_NR 337 KM_TYPE_NR
338 }; 338 };
339 339
340diff -urNp linux-2.6.38.3/arch/arm/include/asm/uaccess.h linux-2.6.38.3/arch/arm/include/asm/uaccess.h 340diff -urNp linux-2.6.38.2/arch/arm/include/asm/uaccess.h linux-2.6.38.2/arch/arm/include/asm/uaccess.h
341--- linux-2.6.38.3/arch/arm/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 341--- linux-2.6.38.2/arch/arm/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
342+++ linux-2.6.38.3/arch/arm/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 342+++ linux-2.6.38.2/arch/arm/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
343@@ -403,6 +403,9 @@ extern unsigned long __must_check __strn 343@@ -403,6 +403,9 @@ extern unsigned long __must_check __strn
344 344
345 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n) 345 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
@@ -360,9 +360,9 @@ diff -urNp linux-2.6.38.3/arch/arm/include/asm/uaccess.h linux-2.6.38.3/arch/arm
360 if (access_ok(VERIFY_WRITE, to, n)) 360 if (access_ok(VERIFY_WRITE, to, n))
361 n = __copy_to_user(to, from, n); 361 n = __copy_to_user(to, from, n);
362 return n; 362 return n;
363diff -urNp linux-2.6.38.3/arch/arm/kernel/kgdb.c linux-2.6.38.3/arch/arm/kernel/kgdb.c 363diff -urNp linux-2.6.38.2/arch/arm/kernel/kgdb.c linux-2.6.38.2/arch/arm/kernel/kgdb.c
364--- linux-2.6.38.3/arch/arm/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 364--- linux-2.6.38.2/arch/arm/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
365+++ linux-2.6.38.3/arch/arm/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 365+++ linux-2.6.38.2/arch/arm/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
366@@ -246,7 +246,7 @@ void kgdb_arch_exit(void) 366@@ -246,7 +246,7 @@ void kgdb_arch_exit(void)
367 * and we handle the normal undef case within the do_undefinstr 367 * and we handle the normal undef case within the do_undefinstr
368 * handler. 368 * handler.
@@ -372,9 +372,9 @@ diff -urNp linux-2.6.38.3/arch/arm/kernel/kgdb.c linux-2.6.38.3/arch/arm/kernel/
372 #ifndef __ARMEB__ 372 #ifndef __ARMEB__
373 .gdb_bpt_instr = {0xfe, 0xde, 0xff, 0xe7} 373 .gdb_bpt_instr = {0xfe, 0xde, 0xff, 0xe7}
374 #else /* ! __ARMEB__ */ 374 #else /* ! __ARMEB__ */
375diff -urNp linux-2.6.38.3/arch/arm/kernel/process.c linux-2.6.38.3/arch/arm/kernel/process.c 375diff -urNp linux-2.6.38.2/arch/arm/kernel/process.c linux-2.6.38.2/arch/arm/kernel/process.c
376--- linux-2.6.38.3/arch/arm/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 376--- linux-2.6.38.2/arch/arm/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
377+++ linux-2.6.38.3/arch/arm/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 377+++ linux-2.6.38.2/arch/arm/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
378@@ -28,7 +28,6 @@ 378@@ -28,7 +28,6 @@
379 #include <linux/tick.h> 379 #include <linux/tick.h>
380 #include <linux/utsname.h> 380 #include <linux/utsname.h>
@@ -396,9 +396,9 @@ diff -urNp linux-2.6.38.3/arch/arm/kernel/process.c linux-2.6.38.3/arch/arm/kern
396 #ifdef CONFIG_MMU 396 #ifdef CONFIG_MMU
397 /* 397 /*
398 * The vectors page is always readable from user space for the 398 * The vectors page is always readable from user space for the
399diff -urNp linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 399diff -urNp linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c
400--- linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 2011-03-14 21:20:32.000000000 -0400 400--- linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c 2011-03-14 21:20:32.000000000 -0400
401+++ linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 2011-04-17 15:57:32.000000000 -0400 401+++ linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c 2011-03-21 18:31:35.000000000 -0400
402@@ -47,7 +47,7 @@ static ssize_t last_radio_log_read(struc 402@@ -47,7 +47,7 @@ static ssize_t last_radio_log_read(struc
403 return count; 403 return count;
404 } 404 }
@@ -408,9 +408,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.3/arch
408 .read = last_radio_log_read, 408 .read = last_radio_log_read,
409 .llseek = default_llseek, 409 .llseek = default_llseek,
410 }; 410 };
411diff -urNp linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 411diff -urNp linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c
412--- linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 2011-03-14 21:20:32.000000000 -0400 412--- linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 2011-03-14 21:20:32.000000000 -0400
413+++ linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 2011-04-17 15:57:32.000000000 -0400 413+++ linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 2011-03-21 18:31:35.000000000 -0400
414@@ -168,7 +168,7 @@ static ssize_t mbox_read_fifo(struct dev 414@@ -168,7 +168,7 @@ static ssize_t mbox_read_fifo(struct dev
415 return sprintf(buf, "0x%X\n", mbox_value); 415 return sprintf(buf, "0x%X\n", mbox_value);
416 } 416 }
@@ -420,9 +420,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.3/arch/
420 420
421 static int mbox_show(struct seq_file *s, void *data) 421 static int mbox_show(struct seq_file *s, void *data)
422 { 422 {
423diff -urNp linux-2.6.38.3/arch/arm/mm/fault.c linux-2.6.38.3/arch/arm/mm/fault.c 423diff -urNp linux-2.6.38.2/arch/arm/mm/fault.c linux-2.6.38.2/arch/arm/mm/fault.c
424--- linux-2.6.38.3/arch/arm/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 424--- linux-2.6.38.2/arch/arm/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
425+++ linux-2.6.38.3/arch/arm/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 425+++ linux-2.6.38.2/arch/arm/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
426@@ -167,6 +167,13 @@ __do_user_fault(struct task_struct *tsk, 426@@ -167,6 +167,13 @@ __do_user_fault(struct task_struct *tsk,
427 } 427 }
428 #endif 428 #endif
@@ -471,9 +471,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mm/fault.c linux-2.6.38.3/arch/arm/mm/fault.c
471 /* 471 /*
472 * First Level Translation Fault Handler 472 * First Level Translation Fault Handler
473 * 473 *
474diff -urNp linux-2.6.38.3/arch/arm/mm/mmap.c linux-2.6.38.3/arch/arm/mm/mmap.c 474diff -urNp linux-2.6.38.2/arch/arm/mm/mmap.c linux-2.6.38.2/arch/arm/mm/mmap.c
475--- linux-2.6.38.3/arch/arm/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 475--- linux-2.6.38.2/arch/arm/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
476+++ linux-2.6.38.3/arch/arm/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 476+++ linux-2.6.38.2/arch/arm/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400
477@@ -64,6 +64,10 @@ arch_get_unmapped_area(struct file *filp 477@@ -64,6 +64,10 @@ arch_get_unmapped_area(struct file *filp
478 if (len > TASK_SIZE) 478 if (len > TASK_SIZE)
479 return -ENOMEM; 479 return -ENOMEM;
@@ -523,9 +523,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mm/mmap.c linux-2.6.38.3/arch/arm/mm/mmap.c
523 /* 523 /*
524 * Remember the place where we stopped the search: 524 * Remember the place where we stopped the search:
525 */ 525 */
526diff -urNp linux-2.6.38.3/arch/avr32/include/asm/elf.h linux-2.6.38.3/arch/avr32/include/asm/elf.h 526diff -urNp linux-2.6.38.2/arch/avr32/include/asm/elf.h linux-2.6.38.2/arch/avr32/include/asm/elf.h
527--- linux-2.6.38.3/arch/avr32/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 527--- linux-2.6.38.2/arch/avr32/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
528+++ linux-2.6.38.3/arch/avr32/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 528+++ linux-2.6.38.2/arch/avr32/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
529@@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpreg 529@@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpreg
530 the loader. We need to make sure that it is out of the way of the program 530 the loader. We need to make sure that it is out of the way of the program
531 that it will "exec", and that there is sufficient room for the brk. */ 531 that it will "exec", and that there is sufficient room for the brk. */
@@ -542,9 +542,9 @@ diff -urNp linux-2.6.38.3/arch/avr32/include/asm/elf.h linux-2.6.38.3/arch/avr32
542 542
543 /* This yields a mask that user programs can use to figure out what 543 /* This yields a mask that user programs can use to figure out what
544 instruction set this CPU supports. This could be done in user space, 544 instruction set this CPU supports. This could be done in user space,
545diff -urNp linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 545diff -urNp linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h
546--- linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 546--- linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
547+++ linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 547+++ linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
548@@ -22,7 +22,8 @@ D(10) KM_IRQ0, 548@@ -22,7 +22,8 @@ D(10) KM_IRQ0,
549 D(11) KM_IRQ1, 549 D(11) KM_IRQ1,
550 D(12) KM_SOFTIRQ0, 550 D(12) KM_SOFTIRQ0,
@@ -555,9 +555,9 @@ diff -urNp linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h linux-2.6.38.3/arc
555 }; 555 };
556 556
557 #undef D 557 #undef D
558diff -urNp linux-2.6.38.3/arch/avr32/mm/fault.c linux-2.6.38.3/arch/avr32/mm/fault.c 558diff -urNp linux-2.6.38.2/arch/avr32/mm/fault.c linux-2.6.38.2/arch/avr32/mm/fault.c
559--- linux-2.6.38.3/arch/avr32/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 559--- linux-2.6.38.2/arch/avr32/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
560+++ linux-2.6.38.3/arch/avr32/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 560+++ linux-2.6.38.2/arch/avr32/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
561@@ -41,6 +41,23 @@ static inline int notify_page_fault(stru 561@@ -41,6 +41,23 @@ static inline int notify_page_fault(stru
562 562
563 int exception_trace = 1; 563 int exception_trace = 1;
@@ -599,9 +599,9 @@ diff -urNp linux-2.6.38.3/arch/avr32/mm/fault.c linux-2.6.38.3/arch/avr32/mm/fau
599 if (exception_trace && printk_ratelimit()) 599 if (exception_trace && printk_ratelimit())
600 printk("%s%s[%d]: segfault at %08lx pc %08lx " 600 printk("%s%s[%d]: segfault at %08lx pc %08lx "
601 "sp %08lx ecr %lu\n", 601 "sp %08lx ecr %lu\n",
602diff -urNp linux-2.6.38.3/arch/blackfin/kernel/kgdb.c linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 602diff -urNp linux-2.6.38.2/arch/blackfin/kernel/kgdb.c linux-2.6.38.2/arch/blackfin/kernel/kgdb.c
603--- linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 603--- linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
604+++ linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 604+++ linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
605@@ -420,7 +420,7 @@ int kgdb_arch_handle_exception(int vecto 605@@ -420,7 +420,7 @@ int kgdb_arch_handle_exception(int vecto
606 return -1; /* this means that we do not want to exit from the handler */ 606 return -1; /* this means that we do not want to exit from the handler */
607 } 607 }
@@ -611,9 +611,9 @@ diff -urNp linux-2.6.38.3/arch/blackfin/kernel/kgdb.c linux-2.6.38.3/arch/blackf
611 .gdb_bpt_instr = {0xa1}, 611 .gdb_bpt_instr = {0xa1},
612 #ifdef CONFIG_SMP 612 #ifdef CONFIG_SMP
613 .flags = KGDB_HW_BREAKPOINT|KGDB_THR_PROC_SWAP, 613 .flags = KGDB_HW_BREAKPOINT|KGDB_THR_PROC_SWAP,
614diff -urNp linux-2.6.38.3/arch/blackfin/mm/maccess.c linux-2.6.38.3/arch/blackfin/mm/maccess.c 614diff -urNp linux-2.6.38.2/arch/blackfin/mm/maccess.c linux-2.6.38.2/arch/blackfin/mm/maccess.c
615--- linux-2.6.38.3/arch/blackfin/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 615--- linux-2.6.38.2/arch/blackfin/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
616+++ linux-2.6.38.3/arch/blackfin/mm/maccess.c 2011-04-17 15:57:32.000000000 -0400 616+++ linux-2.6.38.2/arch/blackfin/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400
617@@ -16,7 +16,7 @@ static int validate_memory_access_addres 617@@ -16,7 +16,7 @@ static int validate_memory_access_addres
618 return bfin_mem_access_type(addr, size); 618 return bfin_mem_access_type(addr, size);
619 } 619 }
@@ -632,9 +632,9 @@ diff -urNp linux-2.6.38.3/arch/blackfin/mm/maccess.c linux-2.6.38.3/arch/blackfi
632 { 632 {
633 unsigned long ldst = (unsigned long)dst; 633 unsigned long ldst = (unsigned long)dst;
634 int mem_type; 634 int mem_type;
635diff -urNp linux-2.6.38.3/arch/frv/include/asm/kmap_types.h linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 635diff -urNp linux-2.6.38.2/arch/frv/include/asm/kmap_types.h linux-2.6.38.2/arch/frv/include/asm/kmap_types.h
636--- linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 636--- linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
637+++ linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 637+++ linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
638@@ -23,6 +23,7 @@ enum km_type { 638@@ -23,6 +23,7 @@ enum km_type {
639 KM_IRQ1, 639 KM_IRQ1,
640 KM_SOFTIRQ0, 640 KM_SOFTIRQ0,
@@ -643,9 +643,9 @@ diff -urNp linux-2.6.38.3/arch/frv/include/asm/kmap_types.h linux-2.6.38.3/arch/
643 KM_TYPE_NR 643 KM_TYPE_NR
644 }; 644 };
645 645
646diff -urNp linux-2.6.38.3/arch/frv/mm/elf-fdpic.c linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 646diff -urNp linux-2.6.38.2/arch/frv/mm/elf-fdpic.c linux-2.6.38.2/arch/frv/mm/elf-fdpic.c
647--- linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 2011-03-14 21:20:32.000000000 -0400 647--- linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 2011-03-14 21:20:32.000000000 -0400
648+++ linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 2011-04-17 15:57:32.000000000 -0400 648+++ linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 2011-03-21 18:31:35.000000000 -0400
649@@ -73,8 +73,7 @@ unsigned long arch_get_unmapped_area(str 649@@ -73,8 +73,7 @@ unsigned long arch_get_unmapped_area(str
650 if (addr) { 650 if (addr) {
651 addr = PAGE_ALIGN(addr); 651 addr = PAGE_ALIGN(addr);
@@ -674,9 +674,9 @@ diff -urNp linux-2.6.38.3/arch/frv/mm/elf-fdpic.c linux-2.6.38.3/arch/frv/mm/elf
674 goto success; 674 goto success;
675 addr = vma->vm_end; 675 addr = vma->vm_end;
676 } 676 }
677diff -urNp linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 677diff -urNp linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c
678--- linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 2011-03-14 21:20:32.000000000 -0400 678--- linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 2011-03-14 21:20:32.000000000 -0400
679+++ linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 2011-04-17 15:57:32.000000000 -0400 679+++ linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 2011-03-21 18:31:35.000000000 -0400
680@@ -17,7 +17,7 @@ 680@@ -17,7 +17,7 @@
681 #include <linux/swiotlb.h> 681 #include <linux/swiotlb.h>
682 #include <asm/machvec.h> 682 #include <asm/machvec.h>
@@ -695,9 +695,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.3/arch/i
695 { 695 {
696 if (use_swiotlb(dev)) 696 if (use_swiotlb(dev))
697 return &swiotlb_dma_ops; 697 return &swiotlb_dma_ops;
698diff -urNp linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 698diff -urNp linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c
699--- linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 2011-03-14 21:20:32.000000000 -0400 699--- linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 2011-03-14 21:20:32.000000000 -0400
700+++ linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 2011-04-17 15:57:32.000000000 -0400 700+++ linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 2011-03-21 18:31:35.000000000 -0400
701@@ -2097,7 +2097,7 @@ static struct acpi_driver acpi_sba_ioc_d 701@@ -2097,7 +2097,7 @@ static struct acpi_driver acpi_sba_ioc_d
702 }, 702 },
703 }; 703 };
@@ -716,9 +716,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.3/arch/ia
716 .alloc_coherent = sba_alloc_coherent, 716 .alloc_coherent = sba_alloc_coherent,
717 .free_coherent = sba_free_coherent, 717 .free_coherent = sba_free_coherent,
718 .map_page = sba_map_page, 718 .map_page = sba_map_page,
719diff -urNp linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 719diff -urNp linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h
720--- linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 720--- linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
721+++ linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 721+++ linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
722@@ -12,7 +12,7 @@ 722@@ -12,7 +12,7 @@
723 723
724 #define ARCH_HAS_DMA_GET_REQUIRED_MASK 724 #define ARCH_HAS_DMA_GET_REQUIRED_MASK
@@ -762,9 +762,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.3/arc
762 return ops->dma_supported(dev, mask); 762 return ops->dma_supported(dev, mask);
763 } 763 }
764 764
765diff -urNp linux-2.6.38.3/arch/ia64/include/asm/elf.h linux-2.6.38.3/arch/ia64/include/asm/elf.h 765diff -urNp linux-2.6.38.2/arch/ia64/include/asm/elf.h linux-2.6.38.2/arch/ia64/include/asm/elf.h
766--- linux-2.6.38.3/arch/ia64/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 766--- linux-2.6.38.2/arch/ia64/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
767+++ linux-2.6.38.3/arch/ia64/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 767+++ linux-2.6.38.2/arch/ia64/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
768@@ -42,6 +42,13 @@ 768@@ -42,6 +42,13 @@
769 */ 769 */
770 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL) 770 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
@@ -779,9 +779,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/elf.h linux-2.6.38.3/arch/ia64/i
779 #define PT_IA_64_UNWIND 0x70000001 779 #define PT_IA_64_UNWIND 0x70000001
780 780
781 /* IA-64 relocations: */ 781 /* IA-64 relocations: */
782diff -urNp linux-2.6.38.3/arch/ia64/include/asm/machvec.h linux-2.6.38.3/arch/ia64/include/asm/machvec.h 782diff -urNp linux-2.6.38.2/arch/ia64/include/asm/machvec.h linux-2.6.38.2/arch/ia64/include/asm/machvec.h
783--- linux-2.6.38.3/arch/ia64/include/asm/machvec.h 2011-03-14 21:20:32.000000000 -0400 783--- linux-2.6.38.2/arch/ia64/include/asm/machvec.h 2011-03-14 21:20:32.000000000 -0400
784+++ linux-2.6.38.3/arch/ia64/include/asm/machvec.h 2011-04-17 15:57:32.000000000 -0400 784+++ linux-2.6.38.2/arch/ia64/include/asm/machvec.h 2011-03-21 18:31:35.000000000 -0400
785@@ -45,7 +45,7 @@ typedef void ia64_mv_kernel_launch_event 785@@ -45,7 +45,7 @@ typedef void ia64_mv_kernel_launch_event
786 /* DMA-mapping interface: */ 786 /* DMA-mapping interface: */
787 typedef void ia64_mv_dma_init (void); 787 typedef void ia64_mv_dma_init (void);
@@ -800,9 +800,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/machvec.h linux-2.6.38.3/arch/ia
800 800
801 /* 801 /*
802 * Define default versions so we can extend machvec for new platforms without having 802 * Define default versions so we can extend machvec for new platforms without having
803diff -urNp linux-2.6.38.3/arch/ia64/include/asm/pgtable.h linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 803diff -urNp linux-2.6.38.2/arch/ia64/include/asm/pgtable.h linux-2.6.38.2/arch/ia64/include/asm/pgtable.h
804--- linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 804--- linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
805+++ linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 805+++ linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
806@@ -12,7 +12,7 @@ 806@@ -12,7 +12,7 @@
807 * David Mosberger-Tang <davidm@hpl.hp.com> 807 * David Mosberger-Tang <davidm@hpl.hp.com>
808 */ 808 */
@@ -830,9 +830,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/pgtable.h linux-2.6.38.3/arch/ia
830 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX) 830 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
831 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX) 831 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
832 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX) 832 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
833diff -urNp linux-2.6.38.3/arch/ia64/include/asm/spinlock.h linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 833diff -urNp linux-2.6.38.2/arch/ia64/include/asm/spinlock.h linux-2.6.38.2/arch/ia64/include/asm/spinlock.h
834--- linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400 834--- linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
835+++ linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 2011-04-17 15:57:32.000000000 -0400 835+++ linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 2011-03-21 18:31:35.000000000 -0400
836@@ -72,7 +72,7 @@ static __always_inline void __ticket_spi 836@@ -72,7 +72,7 @@ static __always_inline void __ticket_spi
837 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp; 837 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
838 838
@@ -842,9 +842,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/spinlock.h linux-2.6.38.3/arch/i
842 } 842 }
843 843
844 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock) 844 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
845diff -urNp linux-2.6.38.3/arch/ia64/include/asm/uaccess.h linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 845diff -urNp linux-2.6.38.2/arch/ia64/include/asm/uaccess.h linux-2.6.38.2/arch/ia64/include/asm/uaccess.h
846--- linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 846--- linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
847+++ linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 847+++ linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
848@@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _ 848@@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _
849 const void *__cu_from = (from); \ 849 const void *__cu_from = (from); \
850 long __cu_len = (n); \ 850 long __cu_len = (n); \
@@ -863,9 +863,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/uaccess.h linux-2.6.38.3/arch/ia
863 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \ 863 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \
864 __cu_len; \ 864 __cu_len; \
865 }) 865 })
866diff -urNp linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 866diff -urNp linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c
867--- linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 2011-03-14 21:20:32.000000000 -0400 867--- linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 2011-03-14 21:20:32.000000000 -0400
868+++ linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 2011-04-17 15:57:32.000000000 -0400 868+++ linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 2011-03-21 18:31:35.000000000 -0400
869@@ -3,7 +3,7 @@ 869@@ -3,7 +3,7 @@
870 /* Set this to 1 if there is a HW IOMMU in the system */ 870 /* Set this to 1 if there is a HW IOMMU in the system */
871 int iommu_detected __read_mostly; 871 int iommu_detected __read_mostly;
@@ -884,9 +884,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c linux-2.6.38.3/arch/ia6
884 { 884 {
885 return dma_ops; 885 return dma_ops;
886 } 886 }
887diff -urNp linux-2.6.38.3/arch/ia64/kernel/module.c linux-2.6.38.3/arch/ia64/kernel/module.c 887diff -urNp linux-2.6.38.2/arch/ia64/kernel/module.c linux-2.6.38.2/arch/ia64/kernel/module.c
888--- linux-2.6.38.3/arch/ia64/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 888--- linux-2.6.38.2/arch/ia64/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
889+++ linux-2.6.38.3/arch/ia64/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 889+++ linux-2.6.38.2/arch/ia64/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
890@@ -315,8 +315,7 @@ module_alloc (unsigned long size) 890@@ -315,8 +315,7 @@ module_alloc (unsigned long size)
891 void 891 void
892 module_free (struct module *mod, void *module_region) 892 module_free (struct module *mod, void *module_region)
@@ -975,9 +975,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/module.c linux-2.6.38.3/arch/ia64/ker
975 mod->arch.gp = gp; 975 mod->arch.gp = gp;
976 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); 976 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
977 } 977 }
978diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-dma.c linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 978diff -urNp linux-2.6.38.2/arch/ia64/kernel/pci-dma.c linux-2.6.38.2/arch/ia64/kernel/pci-dma.c
979--- linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400 979--- linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400
980+++ linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 2011-04-17 15:57:32.000000000 -0400 980+++ linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 2011-03-21 18:31:35.000000000 -0400
981@@ -43,7 +43,7 @@ struct device fallback_dev = { 981@@ -43,7 +43,7 @@ struct device fallback_dev = {
982 .dma_mask = &fallback_dev.coherent_dma_mask, 982 .dma_mask = &fallback_dev.coherent_dma_mask,
983 }; 983 };
@@ -987,9 +987,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-dma.c linux-2.6.38.3/arch/ia64/ke
987 987
988 static int __init pci_iommu_init(void) 988 static int __init pci_iommu_init(void)
989 { 989 {
990diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 990diff -urNp linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c
991--- linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 991--- linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
992+++ linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 2011-04-17 15:57:32.000000000 -0400 992+++ linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 2011-03-21 18:31:35.000000000 -0400
993@@ -22,7 +22,7 @@ static void *ia64_swiotlb_alloc_coherent 993@@ -22,7 +22,7 @@ static void *ia64_swiotlb_alloc_coherent
994 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp); 994 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp);
995 } 995 }
@@ -999,9 +999,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.3/arch/ia6
999 .alloc_coherent = ia64_swiotlb_alloc_coherent, 999 .alloc_coherent = ia64_swiotlb_alloc_coherent,
1000 .free_coherent = swiotlb_free_coherent, 1000 .free_coherent = swiotlb_free_coherent,
1001 .map_page = swiotlb_map_page, 1001 .map_page = swiotlb_map_page,
1002diff -urNp linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 1002diff -urNp linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c
1003--- linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 2011-03-14 21:20:32.000000000 -0400 1003--- linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 2011-03-14 21:20:32.000000000 -0400
1004+++ linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 2011-04-17 15:57:32.000000000 -0400 1004+++ linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 2011-03-21 18:31:35.000000000 -0400
1005@@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil 1005@@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil
1006 if (REGION_NUMBER(addr) == RGN_HPAGE) 1006 if (REGION_NUMBER(addr) == RGN_HPAGE)
1007 addr = 0; 1007 addr = 0;
@@ -1034,9 +1034,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c linux-2.6.38.3/arch/ia64/k
1034 /* Remember the address where we stopped this search: */ 1034 /* Remember the address where we stopped this search: */
1035 mm->free_area_cache = addr + len; 1035 mm->free_area_cache = addr + len;
1036 return addr; 1036 return addr;
1037diff -urNp linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 1037diff -urNp linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S
1038--- linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400 1038--- linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400
1039+++ linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 2011-04-17 15:57:32.000000000 -0400 1039+++ linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 2011-03-21 18:31:35.000000000 -0400
1040@@ -199,7 +199,7 @@ SECTIONS { 1040@@ -199,7 +199,7 @@ SECTIONS {
1041 /* Per-cpu data: */ 1041 /* Per-cpu data: */
1042 . = ALIGN(PERCPU_PAGE_SIZE); 1042 . = ALIGN(PERCPU_PAGE_SIZE);
@@ -1046,9 +1046,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.3/arch/ia6
1046 /* 1046 /*
1047 * ensure percpu data fits 1047 * ensure percpu data fits
1048 * into percpu page size 1048 * into percpu page size
1049diff -urNp linux-2.6.38.3/arch/ia64/mm/fault.c linux-2.6.38.3/arch/ia64/mm/fault.c 1049diff -urNp linux-2.6.38.2/arch/ia64/mm/fault.c linux-2.6.38.2/arch/ia64/mm/fault.c
1050--- linux-2.6.38.3/arch/ia64/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1050--- linux-2.6.38.2/arch/ia64/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1051+++ linux-2.6.38.3/arch/ia64/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 1051+++ linux-2.6.38.2/arch/ia64/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
1052@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned 1052@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned
1053 return pte_present(pte); 1053 return pte_present(pte);
1054 } 1054 }
@@ -1098,9 +1098,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/mm/fault.c linux-2.6.38.3/arch/ia64/mm/fault
1098 /* 1098 /*
1099 * If for any reason at all we couldn't handle the fault, make 1099 * If for any reason at all we couldn't handle the fault, make
1100 * sure we exit gracefully rather than endlessly redo the 1100 * sure we exit gracefully rather than endlessly redo the
1101diff -urNp linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 1101diff -urNp linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c
1102--- linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 1102--- linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
1103+++ linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400 1103+++ linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 2011-03-21 18:31:35.000000000 -0400
1104@@ -171,7 +171,7 @@ unsigned long hugetlb_get_unmapped_area( 1104@@ -171,7 +171,7 @@ unsigned long hugetlb_get_unmapped_area(
1105 /* At this point: (!vmm || addr < vmm->vm_end). */ 1105 /* At this point: (!vmm || addr < vmm->vm_end). */
1106 if (REGION_OFFSET(addr) + len > RGN_MAP_LIMIT) 1106 if (REGION_OFFSET(addr) + len > RGN_MAP_LIMIT)
@@ -1110,9 +1110,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c linux-2.6.38.3/arch/ia64/mm
1110 return addr; 1110 return addr;
1111 addr = ALIGN(vmm->vm_end, HPAGE_SIZE); 1111 addr = ALIGN(vmm->vm_end, HPAGE_SIZE);
1112 } 1112 }
1113diff -urNp linux-2.6.38.3/arch/ia64/mm/init.c linux-2.6.38.3/arch/ia64/mm/init.c 1113diff -urNp linux-2.6.38.2/arch/ia64/mm/init.c linux-2.6.38.2/arch/ia64/mm/init.c
1114--- linux-2.6.38.3/arch/ia64/mm/init.c 2011-03-14 21:20:32.000000000 -0400 1114--- linux-2.6.38.2/arch/ia64/mm/init.c 2011-03-14 21:20:32.000000000 -0400
1115+++ linux-2.6.38.3/arch/ia64/mm/init.c 2011-04-17 15:57:32.000000000 -0400 1115+++ linux-2.6.38.2/arch/ia64/mm/init.c 2011-03-21 18:31:35.000000000 -0400
1116@@ -122,6 +122,19 @@ ia64_init_addr_space (void) 1116@@ -122,6 +122,19 @@ ia64_init_addr_space (void)
1117 vma->vm_start = current->thread.rbs_bot & PAGE_MASK; 1117 vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
1118 vma->vm_end = vma->vm_start + PAGE_SIZE; 1118 vma->vm_end = vma->vm_start + PAGE_SIZE;
@@ -1133,9 +1133,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/mm/init.c linux-2.6.38.3/arch/ia64/mm/init.c
1133 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 1133 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
1134 down_write(&current->mm->mmap_sem); 1134 down_write(&current->mm->mmap_sem);
1135 if (insert_vm_struct(current->mm, vma)) { 1135 if (insert_vm_struct(current->mm, vma)) {
1136diff -urNp linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 1136diff -urNp linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c
1137--- linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 2011-03-14 21:20:32.000000000 -0400 1137--- linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 2011-03-14 21:20:32.000000000 -0400
1138+++ linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 2011-04-17 15:57:32.000000000 -0400 1138+++ linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 2011-03-21 18:31:35.000000000 -0400
1139@@ -465,7 +465,7 @@ int sn_pci_legacy_write(struct pci_bus * 1139@@ -465,7 +465,7 @@ int sn_pci_legacy_write(struct pci_bus *
1140 return ret; 1140 return ret;
1141 } 1141 }
@@ -1145,9 +1145,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.3/arch/ia64/sn
1145 .alloc_coherent = sn_dma_alloc_coherent, 1145 .alloc_coherent = sn_dma_alloc_coherent,
1146 .free_coherent = sn_dma_free_coherent, 1146 .free_coherent = sn_dma_free_coherent,
1147 .map_page = sn_dma_map_page, 1147 .map_page = sn_dma_map_page,
1148diff -urNp linux-2.6.38.3/arch/m32r/lib/usercopy.c linux-2.6.38.3/arch/m32r/lib/usercopy.c 1148diff -urNp linux-2.6.38.2/arch/m32r/lib/usercopy.c linux-2.6.38.2/arch/m32r/lib/usercopy.c
1149--- linux-2.6.38.3/arch/m32r/lib/usercopy.c 2011-03-14 21:20:32.000000000 -0400 1149--- linux-2.6.38.2/arch/m32r/lib/usercopy.c 2011-03-14 21:20:32.000000000 -0400
1150+++ linux-2.6.38.3/arch/m32r/lib/usercopy.c 2011-04-17 15:57:32.000000000 -0400 1150+++ linux-2.6.38.2/arch/m32r/lib/usercopy.c 2011-03-21 18:31:35.000000000 -0400
1151@@ -14,6 +14,9 @@ 1151@@ -14,6 +14,9 @@
1152 unsigned long 1152 unsigned long
1153 __generic_copy_to_user(void __user *to, const void *from, unsigned long n) 1153 __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -1168,9 +1168,9 @@ diff -urNp linux-2.6.38.3/arch/m32r/lib/usercopy.c linux-2.6.38.3/arch/m32r/lib/
1168 prefetchw(to); 1168 prefetchw(to);
1169 if (access_ok(VERIFY_READ, from, n)) 1169 if (access_ok(VERIFY_READ, from, n))
1170 __copy_user_zeroing(to,from,n); 1170 __copy_user_zeroing(to,from,n);
1171diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/device.h linux-2.6.38.3/arch/microblaze/include/asm/device.h 1171diff -urNp linux-2.6.38.2/arch/microblaze/include/asm/device.h linux-2.6.38.2/arch/microblaze/include/asm/device.h
1172--- linux-2.6.38.3/arch/microblaze/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1172--- linux-2.6.38.2/arch/microblaze/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1173+++ linux-2.6.38.3/arch/microblaze/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 1173+++ linux-2.6.38.2/arch/microblaze/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
1174@@ -13,7 +13,7 @@ struct device_node; 1174@@ -13,7 +13,7 @@ struct device_node;
1175 1175
1176 struct dev_archdata { 1176 struct dev_archdata {
@@ -1180,9 +1180,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/device.h linux-2.6.38.3/ar
1180 void *dma_data; 1180 void *dma_data;
1181 }; 1181 };
1182 1182
1183diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 1183diff -urNp linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h
1184--- linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1184--- linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1185+++ linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 1185+++ linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
1186@@ -43,14 +43,14 @@ static inline unsigned long device_to_ma 1186@@ -43,14 +43,14 @@ static inline unsigned long device_to_ma
1187 return 0xfffffffful; 1187 return 0xfffffffful;
1188 } 1188 }
@@ -1254,9 +1254,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h linux-2.6.38
1254 1254
1255 BUG_ON(!ops); 1255 BUG_ON(!ops);
1256 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); 1256 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
1257diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/pci.h linux-2.6.38.3/arch/microblaze/include/asm/pci.h 1257diff -urNp linux-2.6.38.2/arch/microblaze/include/asm/pci.h linux-2.6.38.2/arch/microblaze/include/asm/pci.h
1258--- linux-2.6.38.3/arch/microblaze/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400 1258--- linux-2.6.38.2/arch/microblaze/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400
1259+++ linux-2.6.38.3/arch/microblaze/include/asm/pci.h 2011-04-17 15:57:32.000000000 -0400 1259+++ linux-2.6.38.2/arch/microblaze/include/asm/pci.h 2011-03-21 18:31:35.000000000 -0400
1260@@ -54,8 +54,8 @@ static inline void pcibios_penalize_isa_ 1260@@ -54,8 +54,8 @@ static inline void pcibios_penalize_isa_
1261 } 1261 }
1262 1262
@@ -1268,9 +1268,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/pci.h linux-2.6.38.3/arch/
1268 #else /* CONFIG_PCI */ 1268 #else /* CONFIG_PCI */
1269 #define set_pci_dma_ops(d) 1269 #define set_pci_dma_ops(d)
1270 #define get_pci_dma_ops() NULL 1270 #define get_pci_dma_ops() NULL
1271diff -urNp linux-2.6.38.3/arch/microblaze/kernel/dma.c linux-2.6.38.3/arch/microblaze/kernel/dma.c 1271diff -urNp linux-2.6.38.2/arch/microblaze/kernel/dma.c linux-2.6.38.2/arch/microblaze/kernel/dma.c
1272--- linux-2.6.38.3/arch/microblaze/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400 1272--- linux-2.6.38.2/arch/microblaze/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400
1273+++ linux-2.6.38.3/arch/microblaze/kernel/dma.c 2011-04-17 15:57:32.000000000 -0400 1273+++ linux-2.6.38.2/arch/microblaze/kernel/dma.c 2011-03-21 18:31:35.000000000 -0400
1274@@ -133,7 +133,7 @@ static inline void dma_direct_unmap_page 1274@@ -133,7 +133,7 @@ static inline void dma_direct_unmap_page
1275 __dma_sync_page(dma_address, 0 , size, direction); 1275 __dma_sync_page(dma_address, 0 , size, direction);
1276 } 1276 }
@@ -1280,9 +1280,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/kernel/dma.c linux-2.6.38.3/arch/micro
1280 .alloc_coherent = dma_direct_alloc_coherent, 1280 .alloc_coherent = dma_direct_alloc_coherent,
1281 .free_coherent = dma_direct_free_coherent, 1281 .free_coherent = dma_direct_free_coherent,
1282 .map_sg = dma_direct_map_sg, 1282 .map_sg = dma_direct_map_sg,
1283diff -urNp linux-2.6.38.3/arch/microblaze/kernel/kgdb.c linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 1283diff -urNp linux-2.6.38.2/arch/microblaze/kernel/kgdb.c linux-2.6.38.2/arch/microblaze/kernel/kgdb.c
1284--- linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 1284--- linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
1285+++ linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 1285+++ linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
1286@@ -141,10 +141,11 @@ void kgdb_arch_exit(void) 1286@@ -141,10 +141,11 @@ void kgdb_arch_exit(void)
1287 /* 1287 /*
1288 * Global data 1288 * Global data
@@ -1296,9 +1296,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/kernel/kgdb.c linux-2.6.38.3/arch/micr
1296 .gdb_bpt_instr = {0xba, 0x0c, 0x00, 0x18}, /* brki r16, 0x18 */ 1296 .gdb_bpt_instr = {0xba, 0x0c, 0x00, 0x18}, /* brki r16, 0x18 */
1297 #endif 1297 #endif
1298 }; 1298 };
1299diff -urNp linux-2.6.38.3/arch/microblaze/pci/pci-common.c linux-2.6.38.3/arch/microblaze/pci/pci-common.c 1299diff -urNp linux-2.6.38.2/arch/microblaze/pci/pci-common.c linux-2.6.38.2/arch/microblaze/pci/pci-common.c
1300--- linux-2.6.38.3/arch/microblaze/pci/pci-common.c 2011-03-14 21:20:32.000000000 -0400 1300--- linux-2.6.38.2/arch/microblaze/pci/pci-common.c 2011-03-14 21:20:32.000000000 -0400
1301+++ linux-2.6.38.3/arch/microblaze/pci/pci-common.c 2011-04-17 15:57:32.000000000 -0400 1301+++ linux-2.6.38.2/arch/microblaze/pci/pci-common.c 2011-03-21 18:31:35.000000000 -0400
1302@@ -47,14 +47,14 @@ resource_size_t isa_mem_base; 1302@@ -47,14 +47,14 @@ resource_size_t isa_mem_base;
1303 /* Default PCI flags is 0 on ppc32, modified at boot on ppc64 */ 1303 /* Default PCI flags is 0 on ppc32, modified at boot on ppc64 */
1304 unsigned int pci_flags; 1304 unsigned int pci_flags;
@@ -1317,9 +1317,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/pci/pci-common.c linux-2.6.38.3/arch/m
1317 { 1317 {
1318 return pci_dma_ops; 1318 return pci_dma_ops;
1319 } 1319 }
1320diff -urNp linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 1320diff -urNp linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c
1321--- linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 2011-03-14 21:20:32.000000000 -0400 1321--- linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c 2011-03-14 21:20:32.000000000 -0400
1322+++ linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 2011-04-17 15:57:32.000000000 -0400 1322+++ linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c 2011-03-21 18:31:35.000000000 -0400
1323@@ -202,7 +202,7 @@ static phys_addr_t octeon_unity_dma_to_p 1323@@ -202,7 +202,7 @@ static phys_addr_t octeon_unity_dma_to_p
1324 } 1324 }
1325 1325
@@ -1338,9 +1338,9 @@ diff -urNp linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.3/ar
1338 1338
1339 void __init octeon_pci_dma_init(void) 1339 void __init octeon_pci_dma_init(void)
1340 { 1340 {
1341diff -urNp linux-2.6.38.3/arch/mips/include/asm/device.h linux-2.6.38.3/arch/mips/include/asm/device.h 1341diff -urNp linux-2.6.38.2/arch/mips/include/asm/device.h linux-2.6.38.2/arch/mips/include/asm/device.h
1342--- linux-2.6.38.3/arch/mips/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1342--- linux-2.6.38.2/arch/mips/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1343+++ linux-2.6.38.3/arch/mips/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 1343+++ linux-2.6.38.2/arch/mips/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
1344@@ -10,7 +10,7 @@ struct dma_map_ops; 1344@@ -10,7 +10,7 @@ struct dma_map_ops;
1345 1345
1346 struct dev_archdata { 1346 struct dev_archdata {
@@ -1350,9 +1350,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/device.h linux-2.6.38.3/arch/mip
1350 }; 1350 };
1351 1351
1352 struct pdev_archdata { 1352 struct pdev_archdata {
1353diff -urNp linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 1353diff -urNp linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h
1354--- linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1354--- linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1355+++ linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 1355+++ linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
1356@@ -7,9 +7,9 @@ 1356@@ -7,9 +7,9 @@
1357 1357
1358 #include <dma-coherence.h> 1358 #include <dma-coherence.h>
@@ -1399,9 +1399,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h linux-2.6.38.3/arc
1399 1399
1400 ops->free_coherent(dev, size, vaddr, dma_handle); 1400 ops->free_coherent(dev, size, vaddr, dma_handle);
1401 1401
1402diff -urNp linux-2.6.38.3/arch/mips/include/asm/elf.h linux-2.6.38.3/arch/mips/include/asm/elf.h 1402diff -urNp linux-2.6.38.2/arch/mips/include/asm/elf.h linux-2.6.38.2/arch/mips/include/asm/elf.h
1403--- linux-2.6.38.3/arch/mips/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 1403--- linux-2.6.38.2/arch/mips/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
1404+++ linux-2.6.38.3/arch/mips/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 1404+++ linux-2.6.38.2/arch/mips/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
1405@@ -372,13 +372,16 @@ extern const char *__elf_platform; 1405@@ -372,13 +372,16 @@ extern const char *__elf_platform;
1406 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) 1406 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1407 #endif 1407 #endif
@@ -1423,9 +1423,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/elf.h linux-2.6.38.3/arch/mips/i
1423-#define arch_randomize_brk arch_randomize_brk 1423-#define arch_randomize_brk arch_randomize_brk
1424- 1424-
1425 #endif /* _ASM_ELF_H */ 1425 #endif /* _ASM_ELF_H */
1426diff -urNp linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 1426diff -urNp linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h
1427--- linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-14 21:20:32.000000000 -0400 1427--- linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-14 21:20:32.000000000 -0400
1428+++ linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-04-17 15:57:32.000000000 -0400 1428+++ linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-21 18:31:35.000000000 -0400
1429@@ -66,7 +66,7 @@ dma_addr_t phys_to_dma(struct device *de 1429@@ -66,7 +66,7 @@ dma_addr_t phys_to_dma(struct device *de
1430 phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr); 1430 phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr);
1431 1431
@@ -1435,9 +1435,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence
1435 extern char *octeon_swiotlb; 1435 extern char *octeon_swiotlb;
1436 1436
1437 #endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */ 1437 #endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */
1438diff -urNp linux-2.6.38.3/arch/mips/include/asm/page.h linux-2.6.38.3/arch/mips/include/asm/page.h 1438diff -urNp linux-2.6.38.2/arch/mips/include/asm/page.h linux-2.6.38.2/arch/mips/include/asm/page.h
1439--- linux-2.6.38.3/arch/mips/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 1439--- linux-2.6.38.2/arch/mips/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
1440+++ linux-2.6.38.3/arch/mips/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400 1440+++ linux-2.6.38.2/arch/mips/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400
1441@@ -93,7 +93,7 @@ extern void copy_user_highpage(struct pa 1441@@ -93,7 +93,7 @@ extern void copy_user_highpage(struct pa
1442 #ifdef CONFIG_CPU_MIPS32 1442 #ifdef CONFIG_CPU_MIPS32
1443 typedef struct { unsigned long pte_low, pte_high; } pte_t; 1443 typedef struct { unsigned long pte_low, pte_high; } pte_t;
@@ -1447,20 +1447,28 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/page.h linux-2.6.38.3/arch/mips/
1447 #else 1447 #else
1448 typedef struct { unsigned long long pte; } pte_t; 1448 typedef struct { unsigned long long pte; } pte_t;
1449 #define pte_val(x) ((x).pte) 1449 #define pte_val(x) ((x).pte)
1450diff -urNp linux-2.6.38.3/arch/mips/include/asm/system.h linux-2.6.38.3/arch/mips/include/asm/system.h 1450diff -urNp linux-2.6.38.2/arch/mips/include/asm/system.h linux-2.6.38.2/arch/mips/include/asm/system.h
1451--- linux-2.6.38.3/arch/mips/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 1451--- linux-2.6.38.2/arch/mips/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
1452+++ linux-2.6.38.3/arch/mips/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 1452+++ linux-2.6.38.2/arch/mips/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
1453@@ -230,6 +230,6 @@ extern void per_cpu_trap_init(void); 1453@@ -23,6 +23,7 @@
1454 #include <asm/dsp.h>
1455 #include <asm/watch.h>
1456 #include <asm/war.h>
1457+#include <asm/asm.h>
1458
1459
1460 /*
1461@@ -230,6 +231,6 @@ extern void per_cpu_trap_init(void);
1454 */ 1462 */
1455 #define __ARCH_WANT_UNLOCKED_CTXSW 1463 #define __ARCH_WANT_UNLOCKED_CTXSW
1456 1464
1457-extern unsigned long arch_align_stack(unsigned long sp); 1465-extern unsigned long arch_align_stack(unsigned long sp);
1458+#define arch_align_stack(x) ((x) & ~0xfUL) 1466+#define arch_align_stack(x) ((x) & ALMASK)
1459 1467
1460 #endif /* _ASM_SYSTEM_H */ 1468 #endif /* _ASM_SYSTEM_H */
1461diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 1469diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c
1462--- linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 2011-03-14 21:20:32.000000000 -0400 1470--- linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 2011-03-14 21:20:32.000000000 -0400
1463+++ linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 2011-04-17 15:57:32.000000000 -0400 1471+++ linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 2011-03-21 18:31:35.000000000 -0400
1464@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 1472@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
1465 #undef ELF_ET_DYN_BASE 1473 #undef ELF_ET_DYN_BASE
1466 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 1474 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1475,9 +1483,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.3/arch/m
1475 #include <asm/processor.h> 1483 #include <asm/processor.h>
1476 #include <linux/module.h> 1484 #include <linux/module.h>
1477 #include <linux/elfcore.h> 1485 #include <linux/elfcore.h>
1478diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 1486diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c
1479--- linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 2011-03-14 21:20:32.000000000 -0400 1487--- linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 2011-03-14 21:20:32.000000000 -0400
1480+++ linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 2011-04-17 15:57:32.000000000 -0400 1488+++ linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 2011-03-21 18:31:35.000000000 -0400
1481@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 1489@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
1482 #undef ELF_ET_DYN_BASE 1490 #undef ELF_ET_DYN_BASE
1483 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 1491 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1492,9 +1500,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.3/arch/m
1492 #include <asm/processor.h> 1500 #include <asm/processor.h>
1493 1501
1494 /* 1502 /*
1495diff -urNp linux-2.6.38.3/arch/mips/kernel/kgdb.c linux-2.6.38.3/arch/mips/kernel/kgdb.c 1503diff -urNp linux-2.6.38.2/arch/mips/kernel/kgdb.c linux-2.6.38.2/arch/mips/kernel/kgdb.c
1496--- linux-2.6.38.3/arch/mips/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 1504--- linux-2.6.38.2/arch/mips/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
1497+++ linux-2.6.38.3/arch/mips/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 1505+++ linux-2.6.38.2/arch/mips/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
1498@@ -351,7 +351,7 @@ int kgdb_arch_handle_exception(int vecto 1506@@ -351,7 +351,7 @@ int kgdb_arch_handle_exception(int vecto
1499 return -1; 1507 return -1;
1500 } 1508 }
@@ -1504,9 +1512,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/kgdb.c linux-2.6.38.3/arch/mips/kerne
1504 1512
1505 /* 1513 /*
1506 * We use kgdb_early_setup so that functions we need to call now don't 1514 * We use kgdb_early_setup so that functions we need to call now don't
1507diff -urNp linux-2.6.38.3/arch/mips/kernel/process.c linux-2.6.38.3/arch/mips/kernel/process.c 1515diff -urNp linux-2.6.38.2/arch/mips/kernel/process.c linux-2.6.38.2/arch/mips/kernel/process.c
1508--- linux-2.6.38.3/arch/mips/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 1516--- linux-2.6.38.2/arch/mips/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
1509+++ linux-2.6.38.3/arch/mips/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 1517+++ linux-2.6.38.2/arch/mips/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
1510@@ -473,15 +473,3 @@ unsigned long get_wchan(struct task_stru 1518@@ -473,15 +473,3 @@ unsigned long get_wchan(struct task_stru
1511 out: 1519 out:
1512 return pc; 1520 return pc;
@@ -1523,9 +1531,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/process.c linux-2.6.38.3/arch/mips/ke
1523- 1531-
1524- return sp & ALMASK; 1532- return sp & ALMASK;
1525-} 1533-}
1526diff -urNp linux-2.6.38.3/arch/mips/kernel/syscall.c linux-2.6.38.3/arch/mips/kernel/syscall.c 1534diff -urNp linux-2.6.38.2/arch/mips/kernel/syscall.c linux-2.6.38.2/arch/mips/kernel/syscall.c
1527--- linux-2.6.38.3/arch/mips/kernel/syscall.c 2011-03-14 21:20:32.000000000 -0400 1535--- linux-2.6.38.2/arch/mips/kernel/syscall.c 2011-03-14 21:20:32.000000000 -0400
1528+++ linux-2.6.38.3/arch/mips/kernel/syscall.c 2011-04-17 15:57:32.000000000 -0400 1536+++ linux-2.6.38.2/arch/mips/kernel/syscall.c 2011-03-21 18:31:35.000000000 -0400
1529@@ -108,14 +108,18 @@ unsigned long arch_get_unmapped_area(str 1537@@ -108,14 +108,18 @@ unsigned long arch_get_unmapped_area(str
1530 do_color_align = 0; 1538 do_color_align = 0;
1531 if (filp || (flags & MAP_SHARED)) 1539 if (filp || (flags & MAP_SHARED))
@@ -1576,9 +1584,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/syscall.c linux-2.6.38.3/arch/mips/ke
1576 SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len, 1584 SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
1577 unsigned long, prot, unsigned long, flags, unsigned long, 1585 unsigned long, prot, unsigned long, flags, unsigned long,
1578 fd, off_t, offset) 1586 fd, off_t, offset)
1579diff -urNp linux-2.6.38.3/arch/mips/mm/dma-default.c linux-2.6.38.3/arch/mips/mm/dma-default.c 1587diff -urNp linux-2.6.38.2/arch/mips/mm/dma-default.c linux-2.6.38.2/arch/mips/mm/dma-default.c
1580--- linux-2.6.38.3/arch/mips/mm/dma-default.c 2011-03-14 21:20:32.000000000 -0400 1588--- linux-2.6.38.2/arch/mips/mm/dma-default.c 2011-03-14 21:20:32.000000000 -0400
1581+++ linux-2.6.38.3/arch/mips/mm/dma-default.c 2011-04-17 15:57:32.000000000 -0400 1589+++ linux-2.6.38.2/arch/mips/mm/dma-default.c 2011-03-21 18:31:35.000000000 -0400
1582@@ -300,7 +300,7 @@ void dma_cache_sync(struct device *dev, 1590@@ -300,7 +300,7 @@ void dma_cache_sync(struct device *dev,
1583 1591
1584 EXPORT_SYMBOL(dma_cache_sync); 1592 EXPORT_SYMBOL(dma_cache_sync);
@@ -1597,9 +1605,9 @@ diff -urNp linux-2.6.38.3/arch/mips/mm/dma-default.c linux-2.6.38.3/arch/mips/mm
1597 EXPORT_SYMBOL(mips_dma_map_ops); 1605 EXPORT_SYMBOL(mips_dma_map_ops);
1598 1606
1599 #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16) 1607 #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16)
1600diff -urNp linux-2.6.38.3/arch/mips/mm/fault.c linux-2.6.38.3/arch/mips/mm/fault.c 1608diff -urNp linux-2.6.38.2/arch/mips/mm/fault.c linux-2.6.38.2/arch/mips/mm/fault.c
1601--- linux-2.6.38.3/arch/mips/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1609--- linux-2.6.38.2/arch/mips/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1602+++ linux-2.6.38.3/arch/mips/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 1610+++ linux-2.6.38.2/arch/mips/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
1603@@ -28,6 +28,23 @@ 1611@@ -28,6 +28,23 @@
1604 #include <asm/highmem.h> /* For VMALLOC_END */ 1612 #include <asm/highmem.h> /* For VMALLOC_END */
1605 #include <linux/kdebug.h> 1613 #include <linux/kdebug.h>
@@ -1624,9 +1632,9 @@ diff -urNp linux-2.6.38.3/arch/mips/mm/fault.c linux-2.6.38.3/arch/mips/mm/fault
1624 /* 1632 /*
1625 * This routine handles page faults. It determines the address, 1633 * This routine handles page faults. It determines the address,
1626 * and the problem, and then passes it off to one of the appropriate 1634 * and the problem, and then passes it off to one of the appropriate
1627diff -urNp linux-2.6.38.3/arch/parisc/include/asm/elf.h linux-2.6.38.3/arch/parisc/include/asm/elf.h 1635diff -urNp linux-2.6.38.2/arch/parisc/include/asm/elf.h linux-2.6.38.2/arch/parisc/include/asm/elf.h
1628--- linux-2.6.38.3/arch/parisc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 1636--- linux-2.6.38.2/arch/parisc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
1629+++ linux-2.6.38.3/arch/parisc/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 1637+++ linux-2.6.38.2/arch/parisc/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
1630@@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration.. 1638@@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration..
1631 1639
1632 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000) 1640 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
@@ -1641,9 +1649,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/include/asm/elf.h linux-2.6.38.3/arch/pari
1641 /* This yields a mask that user programs can use to figure out what 1649 /* This yields a mask that user programs can use to figure out what
1642 instruction set this CPU supports. This could be done in user space, 1650 instruction set this CPU supports. This could be done in user space,
1643 but it's not easy, and we've already done it here. */ 1651 but it's not easy, and we've already done it here. */
1644diff -urNp linux-2.6.38.3/arch/parisc/include/asm/pgtable.h linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 1652diff -urNp linux-2.6.38.2/arch/parisc/include/asm/pgtable.h linux-2.6.38.2/arch/parisc/include/asm/pgtable.h
1645--- linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 1653--- linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
1646+++ linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 1654+++ linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
1647@@ -209,6 +209,17 @@ struct vm_area_struct; 1655@@ -209,6 +209,17 @@ struct vm_area_struct;
1648 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED) 1656 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
1649 #define PAGE_COPY PAGE_EXECREAD 1657 #define PAGE_COPY PAGE_EXECREAD
@@ -1662,9 +1670,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/include/asm/pgtable.h linux-2.6.38.3/arch/
1662 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL) 1670 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
1663 #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE) 1671 #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE)
1664 #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE) 1672 #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE)
1665diff -urNp linux-2.6.38.3/arch/parisc/kernel/module.c linux-2.6.38.3/arch/parisc/kernel/module.c 1673diff -urNp linux-2.6.38.2/arch/parisc/kernel/module.c linux-2.6.38.2/arch/parisc/kernel/module.c
1666--- linux-2.6.38.3/arch/parisc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 1674--- linux-2.6.38.2/arch/parisc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
1667+++ linux-2.6.38.3/arch/parisc/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 1675+++ linux-2.6.38.2/arch/parisc/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
1668@@ -96,16 +96,38 @@ 1676@@ -96,16 +96,38 @@
1669 1677
1670 /* three functions to determine where in the module core 1678 /* three functions to determine where in the module core
@@ -1765,9 +1773,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/kernel/module.c linux-2.6.38.3/arch/parisc
1765 1773
1766 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", 1774 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
1767 me->arch.unwind_section, table, end, gp); 1775 me->arch.unwind_section, table, end, gp);
1768diff -urNp linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 1776diff -urNp linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c
1769--- linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 2011-03-14 21:20:32.000000000 -0400 1777--- linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 2011-03-14 21:20:32.000000000 -0400
1770+++ linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 2011-04-17 15:57:32.000000000 -0400 1778+++ linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 2011-03-21 18:31:35.000000000 -0400
1771@@ -43,7 +43,7 @@ static unsigned long get_unshared_area(u 1779@@ -43,7 +43,7 @@ static unsigned long get_unshared_area(u
1772 /* At this point: (!vma || addr < vma->vm_end). */ 1780 /* At this point: (!vma || addr < vma->vm_end). */
1773 if (TASK_SIZE - len < addr) 1781 if (TASK_SIZE - len < addr)
@@ -1795,9 +1803,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c linux-2.6.38.3/arch/pa
1795 1803
1796 if (filp) { 1804 if (filp) {
1797 addr = get_shared_area(filp->f_mapping, addr, len, pgoff); 1805 addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
1798diff -urNp linux-2.6.38.3/arch/parisc/kernel/traps.c linux-2.6.38.3/arch/parisc/kernel/traps.c 1806diff -urNp linux-2.6.38.2/arch/parisc/kernel/traps.c linux-2.6.38.2/arch/parisc/kernel/traps.c
1799--- linux-2.6.38.3/arch/parisc/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400 1807--- linux-2.6.38.2/arch/parisc/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400
1800+++ linux-2.6.38.3/arch/parisc/kernel/traps.c 2011-04-17 15:57:32.000000000 -0400 1808+++ linux-2.6.38.2/arch/parisc/kernel/traps.c 2011-03-21 18:31:35.000000000 -0400
1801@@ -733,9 +733,7 @@ void notrace handle_interruption(int cod 1809@@ -733,9 +733,7 @@ void notrace handle_interruption(int cod
1802 1810
1803 down_read(&current->mm->mmap_sem); 1811 down_read(&current->mm->mmap_sem);
@@ -1809,9 +1817,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/kernel/traps.c linux-2.6.38.3/arch/parisc/
1809 fault_address = regs->iaoq[0]; 1817 fault_address = regs->iaoq[0];
1810 fault_space = regs->iasq[0]; 1818 fault_space = regs->iasq[0];
1811 1819
1812diff -urNp linux-2.6.38.3/arch/parisc/mm/fault.c linux-2.6.38.3/arch/parisc/mm/fault.c 1820diff -urNp linux-2.6.38.2/arch/parisc/mm/fault.c linux-2.6.38.2/arch/parisc/mm/fault.c
1813--- linux-2.6.38.3/arch/parisc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1821--- linux-2.6.38.2/arch/parisc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1814+++ linux-2.6.38.3/arch/parisc/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 1822+++ linux-2.6.38.2/arch/parisc/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
1815@@ -15,6 +15,7 @@ 1823@@ -15,6 +15,7 @@
1816 #include <linux/sched.h> 1824 #include <linux/sched.h>
1817 #include <linux/interrupt.h> 1825 #include <linux/interrupt.h>
@@ -1981,9 +1989,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/mm/fault.c linux-2.6.38.3/arch/parisc/mm/f
1981 1989
1982 /* 1990 /*
1983 * If for any reason at all we couldn't handle the fault, make 1991 * If for any reason at all we couldn't handle the fault, make
1984diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/device.h linux-2.6.38.3/arch/powerpc/include/asm/device.h 1992diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/device.h linux-2.6.38.2/arch/powerpc/include/asm/device.h
1985--- linux-2.6.38.3/arch/powerpc/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1993--- linux-2.6.38.2/arch/powerpc/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1986+++ linux-2.6.38.3/arch/powerpc/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 1994+++ linux-2.6.38.2/arch/powerpc/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
1987@@ -17,7 +17,7 @@ struct device_node; 1995@@ -17,7 +17,7 @@ struct device_node;
1988 */ 1996 */
1989 struct dev_archdata { 1997 struct dev_archdata {
@@ -1993,9 +2001,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/device.h linux-2.6.38.3/arch/
1993 2001
1994 /* 2002 /*
1995 * When an iommu is in use, dma_data is used as a ptr to the base of the 2003 * When an iommu is in use, dma_data is used as a ptr to the base of the
1996diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2004diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h
1997--- linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 2005--- linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1998+++ linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 2006+++ linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
1999@@ -66,12 +66,13 @@ static inline unsigned long device_to_ma 2007@@ -66,12 +66,13 @@ static inline unsigned long device_to_ma
2000 /* 2008 /*
2001 * Available generic sets of operations 2009 * Available generic sets of operations
@@ -2058,9 +2066,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.3/
2058 2066
2059 if (dma_ops->mapping_error) 2067 if (dma_ops->mapping_error)
2060 return dma_ops->mapping_error(dev, dma_addr); 2068 return dma_ops->mapping_error(dev, dma_addr);
2061diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/elf.h linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2069diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/elf.h linux-2.6.38.2/arch/powerpc/include/asm/elf.h
2062--- linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 2070--- linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
2063+++ linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 2071+++ linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
2064@@ -178,8 +178,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E 2072@@ -178,8 +178,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E
2065 the loader. We need to make sure that it is out of the way of the program 2073 the loader. We need to make sure that it is out of the way of the program
2066 that it will "exec", and that there is sufficient room for the brk. */ 2074 that it will "exec", and that there is sufficient room for the brk. */
@@ -2093,9 +2101,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/elf.h linux-2.6.38.3/arch/pow
2093 #endif /* __KERNEL__ */ 2101 #endif /* __KERNEL__ */
2094 2102
2095 /* 2103 /*
2096diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/iommu.h linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2104diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/iommu.h linux-2.6.38.2/arch/powerpc/include/asm/iommu.h
2097--- linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400 2105--- linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400
2098+++ linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2011-04-17 15:57:32.000000000 -0400 2106+++ linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2011-03-21 18:31:35.000000000 -0400
2099@@ -116,6 +116,9 @@ extern void iommu_init_early_iSeries(voi 2107@@ -116,6 +116,9 @@ extern void iommu_init_early_iSeries(voi
2100 extern void iommu_init_early_dart(void); 2108 extern void iommu_init_early_dart(void);
2101 extern void iommu_init_early_pasemi(void); 2109 extern void iommu_init_early_pasemi(void);
@@ -2106,9 +2114,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/iommu.h linux-2.6.38.3/arch/p
2106 #ifdef CONFIG_PCI 2114 #ifdef CONFIG_PCI
2107 extern void pci_iommu_init(void); 2115 extern void pci_iommu_init(void);
2108 extern void pci_direct_iommu_init(void); 2116 extern void pci_direct_iommu_init(void);
2109diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2117diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h
2110--- linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 2118--- linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
2111+++ linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 2119+++ linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
2112@@ -27,6 +27,7 @@ enum km_type { 2120@@ -27,6 +27,7 @@ enum km_type {
2113 KM_PPC_SYNC_PAGE, 2121 KM_PPC_SYNC_PAGE,
2114 KM_PPC_SYNC_ICACHE, 2122 KM_PPC_SYNC_ICACHE,
@@ -2117,9 +2125,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.3/a
2117 KM_TYPE_NR 2125 KM_TYPE_NR
2118 }; 2126 };
2119 2127
2120diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page_64.h linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2128diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page_64.h linux-2.6.38.2/arch/powerpc/include/asm/page_64.h
2121--- linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2011-03-14 21:20:32.000000000 -0400 2129--- linux-2.6.38.2/arch/powerpc/include/asm/page_64.h 2011-03-14 21:20:32.000000000 -0400
2122+++ linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2011-04-17 15:57:32.000000000 -0400 2130+++ linux-2.6.38.2/arch/powerpc/include/asm/page_64.h 2011-03-21 18:31:35.000000000 -0400
2123@@ -172,15 +172,18 @@ do { \ 2131@@ -172,15 +172,18 @@ do { \
2124 * stack by default, so in the absense of a PT_GNU_STACK program header 2132 * stack by default, so in the absense of a PT_GNU_STACK program header
2125 * we turn execute permission off. 2133 * we turn execute permission off.
@@ -2141,9 +2149,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page_64.h linux-2.6.38.3/arch
2141 2149
2142 #include <asm-generic/getorder.h> 2150 #include <asm-generic/getorder.h>
2143 2151
2144diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page.h linux-2.6.38.3/arch/powerpc/include/asm/page.h 2152diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page.h linux-2.6.38.2/arch/powerpc/include/asm/page.h
2145--- linux-2.6.38.3/arch/powerpc/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 2153--- linux-2.6.38.2/arch/powerpc/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
2146+++ linux-2.6.38.3/arch/powerpc/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400 2154+++ linux-2.6.38.2/arch/powerpc/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400
2147@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr; 2155@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr;
2148 * and needs to be executable. This means the whole heap ends 2156 * and needs to be executable. This means the whole heap ends
2149 * up being executable. 2157 * up being executable.
@@ -2166,9 +2174,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page.h linux-2.6.38.3/arch/po
2166 #ifndef __ASSEMBLY__ 2174 #ifndef __ASSEMBLY__
2167 2175
2168 #undef STRICT_MM_TYPECHECKS 2176 #undef STRICT_MM_TYPECHECKS
2169diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pci.h linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2177diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pci.h linux-2.6.38.2/arch/powerpc/include/asm/pci.h
2170--- linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400 2178--- linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400
2171+++ linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2011-04-17 15:57:32.000000000 -0400 2179+++ linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2011-03-21 18:31:35.000000000 -0400
2172@@ -65,8 +65,8 @@ static inline int pci_get_legacy_ide_irq 2180@@ -65,8 +65,8 @@ static inline int pci_get_legacy_ide_irq
2173 } 2181 }
2174 2182
@@ -2180,9 +2188,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pci.h linux-2.6.38.3/arch/pow
2180 #else /* CONFIG_PCI */ 2188 #else /* CONFIG_PCI */
2181 #define set_pci_dma_ops(d) 2189 #define set_pci_dma_ops(d)
2182 #define get_pci_dma_ops() NULL 2190 #define get_pci_dma_ops() NULL
2183diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2191diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h
2184--- linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 2192--- linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
2185+++ linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 2193+++ linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
2186@@ -2,6 +2,7 @@ 2194@@ -2,6 +2,7 @@
2187 #define _ASM_POWERPC_PGTABLE_H 2195 #define _ASM_POWERPC_PGTABLE_H
2188 #ifdef __KERNEL__ 2196 #ifdef __KERNEL__
@@ -2191,9 +2199,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h linux-2.6.38.3/arch
2191 #ifndef __ASSEMBLY__ 2199 #ifndef __ASSEMBLY__
2192 #include <asm/processor.h> /* For TASK_SIZE */ 2200 #include <asm/processor.h> /* For TASK_SIZE */
2193 #include <asm/mmu.h> 2201 #include <asm/mmu.h>
2194diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2202diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h
2195--- linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2011-03-14 21:20:32.000000000 -0400 2203--- linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h 2011-03-14 21:20:32.000000000 -0400
2196+++ linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2011-04-17 15:57:32.000000000 -0400 2204+++ linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h 2011-03-21 18:31:35.000000000 -0400
2197@@ -21,6 +21,7 @@ 2205@@ -21,6 +21,7 @@
2198 #define _PAGE_FILE 0x004 /* when !present: nonlinear file mapping */ 2206 #define _PAGE_FILE 0x004 /* when !present: nonlinear file mapping */
2199 #define _PAGE_USER 0x004 /* usermode access allowed */ 2207 #define _PAGE_USER 0x004 /* usermode access allowed */
@@ -2202,9 +2210,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.3/a
2202 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */ 2210 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
2203 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */ 2211 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
2204 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */ 2212 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
2205diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/reg.h linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2213diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/reg.h linux-2.6.38.2/arch/powerpc/include/asm/reg.h
2206--- linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2011-04-18 17:27:13.000000000 -0400 2214--- linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2011-03-23 17:20:06.000000000 -0400
2207+++ linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2011-04-17 15:57:32.000000000 -0400 2215+++ linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2011-03-23 17:21:43.000000000 -0400
2208@@ -191,6 +191,7 @@ 2216@@ -191,6 +191,7 @@
2209 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */ 2217 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
2210 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */ 2218 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
@@ -2213,9 +2221,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/reg.h linux-2.6.38.3/arch/pow
2213 #define DSISR_PROTFAULT 0x08000000 /* protection fault */ 2221 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
2214 #define DSISR_ISSTORE 0x02000000 /* access was a store */ 2222 #define DSISR_ISSTORE 0x02000000 /* access was a store */
2215 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */ 2223 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
2216diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2224diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h
2217--- linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2011-03-14 21:20:32.000000000 -0400 2225--- linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2011-03-14 21:20:32.000000000 -0400
2218+++ linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2011-04-17 15:57:32.000000000 -0400 2226+++ linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2011-03-21 18:31:35.000000000 -0400
2219@@ -13,7 +13,7 @@ 2227@@ -13,7 +13,7 @@
2220 2228
2221 #include <linux/swiotlb.h> 2229 #include <linux/swiotlb.h>
@@ -2225,9 +2233,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.3/arch
2225 2233
2226 static inline void dma_mark_clean(void *addr, size_t size) {} 2234 static inline void dma_mark_clean(void *addr, size_t size) {}
2227 2235
2228diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/system.h linux-2.6.38.3/arch/powerpc/include/asm/system.h 2236diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/system.h linux-2.6.38.2/arch/powerpc/include/asm/system.h
2229--- linux-2.6.38.3/arch/powerpc/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 2237--- linux-2.6.38.2/arch/powerpc/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
2230+++ linux-2.6.38.3/arch/powerpc/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 2238+++ linux-2.6.38.2/arch/powerpc/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
2231@@ -533,7 +533,7 @@ __cmpxchg_local(volatile void *ptr, unsi 2239@@ -533,7 +533,7 @@ __cmpxchg_local(volatile void *ptr, unsi
2232 #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) 2240 #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
2233 #endif 2241 #endif
@@ -2237,9 +2245,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/system.h linux-2.6.38.3/arch/
2237 2245
2238 /* Used in very early kernel initialization. */ 2246 /* Used in very early kernel initialization. */
2239 extern unsigned long reloc_offset(void); 2247 extern unsigned long reloc_offset(void);
2240diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2248diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h
2241--- linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 2249--- linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
2242+++ linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 2250+++ linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
2243@@ -13,6 +13,8 @@ 2251@@ -13,6 +13,8 @@
2244 #define VERIFY_READ 0 2252 #define VERIFY_READ 0
2245 #define VERIFY_WRITE 1 2253 #define VERIFY_WRITE 1
@@ -2417,9 +2425,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h linux-2.6.38.3/arch
2417 extern unsigned long __clear_user(void __user *addr, unsigned long size); 2425 extern unsigned long __clear_user(void __user *addr, unsigned long size);
2418 2426
2419 static inline unsigned long clear_user(void __user *addr, unsigned long size) 2427 static inline unsigned long clear_user(void __user *addr, unsigned long size)
2420diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma.c linux-2.6.38.3/arch/powerpc/kernel/dma.c 2428diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma.c linux-2.6.38.2/arch/powerpc/kernel/dma.c
2421--- linux-2.6.38.3/arch/powerpc/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400 2429--- linux-2.6.38.2/arch/powerpc/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400
2422+++ linux-2.6.38.3/arch/powerpc/kernel/dma.c 2011-04-17 15:57:32.000000000 -0400 2430+++ linux-2.6.38.2/arch/powerpc/kernel/dma.c 2011-03-21 18:31:35.000000000 -0400
2423@@ -136,7 +136,7 @@ static inline void dma_direct_sync_singl 2431@@ -136,7 +136,7 @@ static inline void dma_direct_sync_singl
2424 } 2432 }
2425 #endif 2433 #endif
@@ -2438,9 +2446,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma.c linux-2.6.38.3/arch/powerpc/
2438 2446
2439 if (ppc_md.dma_set_mask) 2447 if (ppc_md.dma_set_mask)
2440 return ppc_md.dma_set_mask(dev, dma_mask); 2448 return ppc_md.dma_set_mask(dev, dma_mask);
2441diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2449diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c
2442--- linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2011-03-14 21:20:32.000000000 -0400 2450--- linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2011-03-14 21:20:32.000000000 -0400
2443+++ linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2011-04-17 15:57:32.000000000 -0400 2451+++ linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2011-03-21 18:31:35.000000000 -0400
2444@@ -70,7 +70,7 @@ static void dma_iommu_unmap_sg(struct de 2452@@ -70,7 +70,7 @@ static void dma_iommu_unmap_sg(struct de
2445 } 2453 }
2446 2454
@@ -2459,9 +2467,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.3/arch/po
2459 .alloc_coherent = dma_iommu_alloc_coherent, 2467 .alloc_coherent = dma_iommu_alloc_coherent,
2460 .free_coherent = dma_iommu_free_coherent, 2468 .free_coherent = dma_iommu_free_coherent,
2461 .map_sg = dma_iommu_map_sg, 2469 .map_sg = dma_iommu_map_sg,
2462diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2470diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c
2463--- linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 2471--- linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
2464+++ linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2011-04-17 15:57:32.000000000 -0400 2472+++ linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2011-03-21 18:31:35.000000000 -0400
2465@@ -31,7 +31,7 @@ unsigned int ppc_swiotlb_enable; 2473@@ -31,7 +31,7 @@ unsigned int ppc_swiotlb_enable;
2466 * map_page, and unmap_page on highmem, use normal dma_ops 2474 * map_page, and unmap_page on highmem, use normal dma_ops
2467 * for everything else. 2475 * for everything else.
@@ -2471,9 +2479,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.3/arch/
2471 .alloc_coherent = dma_direct_alloc_coherent, 2479 .alloc_coherent = dma_direct_alloc_coherent,
2472 .free_coherent = dma_direct_free_coherent, 2480 .free_coherent = dma_direct_free_coherent,
2473 .map_sg = swiotlb_map_sg_attrs, 2481 .map_sg = swiotlb_map_sg_attrs,
2474diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2482diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S
2475--- linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2011-03-14 21:20:32.000000000 -0400 2483--- linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2011-03-14 21:20:32.000000000 -0400
2476+++ linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2011-04-17 15:57:32.000000000 -0400 2484+++ linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2011-03-21 18:31:35.000000000 -0400
2477@@ -495,6 +495,7 @@ storage_fault_common: 2485@@ -495,6 +495,7 @@ storage_fault_common:
2478 std r14,_DAR(r1) 2486 std r14,_DAR(r1)
2479 std r15,_DSISR(r1) 2487 std r15,_DSISR(r1)
@@ -2492,9 +2500,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.3/ar
2492 addi r3,r1,STACK_FRAME_OVERHEAD 2500 addi r3,r1,STACK_FRAME_OVERHEAD
2493 ld r4,_DAR(r1) 2501 ld r4,_DAR(r1)
2494 bl .bad_page_fault 2502 bl .bad_page_fault
2495diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2503diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S
2496--- linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2011-03-14 21:20:32.000000000 -0400 2504--- linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2011-03-14 21:20:32.000000000 -0400
2497+++ linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2011-04-17 15:57:32.000000000 -0400 2505+++ linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2011-03-21 18:31:35.000000000 -0400
2498@@ -848,10 +848,10 @@ handle_page_fault: 2506@@ -848,10 +848,10 @@ handle_page_fault:
2499 11: ld r4,_DAR(r1) 2507 11: ld r4,_DAR(r1)
2500 ld r5,_DSISR(r1) 2508 ld r5,_DSISR(r1)
@@ -2507,9 +2515,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.3/ar
2507 mr r5,r3 2515 mr r5,r3
2508 addi r3,r1,STACK_FRAME_OVERHEAD 2516 addi r3,r1,STACK_FRAME_OVERHEAD
2509 lwz r4,_DAR(r1) 2517 lwz r4,_DAR(r1)
2510diff -urNp linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2518diff -urNp linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c
2511--- linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2011-03-14 21:20:32.000000000 -0400 2519--- linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2011-03-14 21:20:32.000000000 -0400
2512+++ linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2011-04-17 15:57:32.000000000 -0400 2520+++ linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2011-03-21 18:31:35.000000000 -0400
2513@@ -128,7 +128,7 @@ static int ibmebus_dma_supported(struct 2521@@ -128,7 +128,7 @@ static int ibmebus_dma_supported(struct
2514 return 1; 2522 return 1;
2515 } 2523 }
@@ -2519,9 +2527,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c linux-2.6.38.3/arch/powe
2519 .alloc_coherent = ibmebus_alloc_coherent, 2527 .alloc_coherent = ibmebus_alloc_coherent,
2520 .free_coherent = ibmebus_free_coherent, 2528 .free_coherent = ibmebus_free_coherent,
2521 .map_sg = ibmebus_map_sg, 2529 .map_sg = ibmebus_map_sg,
2522diff -urNp linux-2.6.38.3/arch/powerpc/kernel/kgdb.c linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2530diff -urNp linux-2.6.38.2/arch/powerpc/kernel/kgdb.c linux-2.6.38.2/arch/powerpc/kernel/kgdb.c
2523--- linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 2531--- linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
2524+++ linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 2532+++ linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
2525@@ -422,7 +422,7 @@ int kgdb_arch_handle_exception(int vecto 2533@@ -422,7 +422,7 @@ int kgdb_arch_handle_exception(int vecto
2526 /* 2534 /*
2527 * Global data 2535 * Global data
@@ -2531,9 +2539,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/kgdb.c linux-2.6.38.3/arch/powerpc
2531 .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08}, 2539 .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08},
2532 }; 2540 };
2533 2541
2534diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module_32.c linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2542diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module_32.c linux-2.6.38.2/arch/powerpc/kernel/module_32.c
2535--- linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2011-03-14 21:20:32.000000000 -0400 2543--- linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2011-03-14 21:20:32.000000000 -0400
2536+++ linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2011-04-17 15:57:32.000000000 -0400 2544+++ linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2011-03-21 18:31:35.000000000 -0400
2537@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr 2545@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr
2538 me->arch.core_plt_section = i; 2546 me->arch.core_plt_section = i;
2539 } 2547 }
@@ -2563,9 +2571,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module_32.c linux-2.6.38.3/arch/po
2563 2571
2564 /* Find this entry, or if that fails, the next avail. entry */ 2572 /* Find this entry, or if that fails, the next avail. entry */
2565 while (entry->jump[0]) { 2573 while (entry->jump[0]) {
2566diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module.c linux-2.6.38.3/arch/powerpc/kernel/module.c 2574diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module.c linux-2.6.38.2/arch/powerpc/kernel/module.c
2567--- linux-2.6.38.3/arch/powerpc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 2575--- linux-2.6.38.2/arch/powerpc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
2568+++ linux-2.6.38.3/arch/powerpc/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 2576+++ linux-2.6.38.2/arch/powerpc/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
2569@@ -31,11 +31,24 @@ 2577@@ -31,11 +31,24 @@
2570 2578
2571 LIST_HEAD(module_bug_list); 2579 LIST_HEAD(module_bug_list);
@@ -2605,9 +2613,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module.c linux-2.6.38.3/arch/power
2605 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr, 2613 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
2606 const Elf_Shdr *sechdrs, 2614 const Elf_Shdr *sechdrs,
2607 const char *name) 2615 const char *name)
2608diff -urNp linux-2.6.38.3/arch/powerpc/kernel/pci-common.c linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2616diff -urNp linux-2.6.38.2/arch/powerpc/kernel/pci-common.c linux-2.6.38.2/arch/powerpc/kernel/pci-common.c
2609--- linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2011-03-14 21:20:32.000000000 -0400 2617--- linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2011-03-14 21:20:32.000000000 -0400
2610+++ linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2011-04-17 15:57:32.000000000 -0400 2618+++ linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2011-03-21 18:31:35.000000000 -0400
2611@@ -52,14 +52,14 @@ resource_size_t isa_mem_base; 2619@@ -52,14 +52,14 @@ resource_size_t isa_mem_base;
2612 unsigned int ppc_pci_flags = 0; 2620 unsigned int ppc_pci_flags = 0;
2613 2621
@@ -2626,9 +2634,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/pci-common.c linux-2.6.38.3/arch/p
2626 { 2634 {
2627 return pci_dma_ops; 2635 return pci_dma_ops;
2628 } 2636 }
2629diff -urNp linux-2.6.38.3/arch/powerpc/kernel/process.c linux-2.6.38.3/arch/powerpc/kernel/process.c 2637diff -urNp linux-2.6.38.2/arch/powerpc/kernel/process.c linux-2.6.38.2/arch/powerpc/kernel/process.c
2630--- linux-2.6.38.3/arch/powerpc/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 2638--- linux-2.6.38.2/arch/powerpc/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
2631+++ linux-2.6.38.3/arch/powerpc/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 2639+++ linux-2.6.38.2/arch/powerpc/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
2632@@ -655,8 +655,8 @@ void show_regs(struct pt_regs * regs) 2640@@ -655,8 +655,8 @@ void show_regs(struct pt_regs * regs)
2633 * Lookup NIP late so we have the best change of getting the 2641 * Lookup NIP late so we have the best change of getting the
2634 * above info out without failing 2642 * above info out without failing
@@ -2721,9 +2729,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/process.c linux-2.6.38.3/arch/powe
2721- 2729-
2722- return ret; 2730- return ret;
2723-} 2731-}
2724diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_32.c linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2732diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_32.c linux-2.6.38.2/arch/powerpc/kernel/signal_32.c
2725--- linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2011-03-14 21:20:32.000000000 -0400 2733--- linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2011-03-14 21:20:32.000000000 -0400
2726+++ linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2011-04-17 15:57:32.000000000 -0400 2734+++ linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2011-03-21 18:31:35.000000000 -0400
2727@@ -858,7 +858,7 @@ int handle_rt_signal32(unsigned long sig 2735@@ -858,7 +858,7 @@ int handle_rt_signal32(unsigned long sig
2728 /* Save user registers on the stack */ 2736 /* Save user registers on the stack */
2729 frame = &rt_sf->uc.uc_mcontext; 2737 frame = &rt_sf->uc.uc_mcontext;
@@ -2733,9 +2741,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_32.c linux-2.6.38.3/arch/po
2733 if (save_user_regs(regs, frame, 0, 1)) 2741 if (save_user_regs(regs, frame, 0, 1))
2734 goto badframe; 2742 goto badframe;
2735 regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp; 2743 regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp;
2736diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_64.c linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2744diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_64.c linux-2.6.38.2/arch/powerpc/kernel/signal_64.c
2737--- linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2011-03-14 21:20:32.000000000 -0400 2745--- linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2011-03-14 21:20:32.000000000 -0400
2738+++ linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2011-04-17 15:57:32.000000000 -0400 2746+++ linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2011-03-21 18:31:35.000000000 -0400
2739@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct 2747@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct
2740 current->thread.fpscr.val = 0; 2748 current->thread.fpscr.val = 0;
2741 2749
@@ -2745,9 +2753,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_64.c linux-2.6.38.3/arch/po
2745 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp; 2753 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
2746 } else { 2754 } else {
2747 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); 2755 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
2748diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vdso.c linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2756diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vdso.c linux-2.6.38.2/arch/powerpc/kernel/vdso.c
2749--- linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2011-03-14 21:20:32.000000000 -0400 2757--- linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2011-03-14 21:20:32.000000000 -0400
2750+++ linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2011-04-17 15:57:32.000000000 -0400 2758+++ linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2011-03-21 18:31:35.000000000 -0400
2751@@ -36,6 +36,7 @@ 2759@@ -36,6 +36,7 @@
2752 #include <asm/firmware.h> 2760 #include <asm/firmware.h>
2753 #include <asm/vdso.h> 2761 #include <asm/vdso.h>
@@ -2774,9 +2782,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vdso.c linux-2.6.38.3/arch/powerpc
2774 if (IS_ERR_VALUE(vdso_base)) { 2782 if (IS_ERR_VALUE(vdso_base)) {
2775 rc = vdso_base; 2783 rc = vdso_base;
2776 goto fail_mmapsem; 2784 goto fail_mmapsem;
2777diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vio.c linux-2.6.38.3/arch/powerpc/kernel/vio.c 2785diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vio.c linux-2.6.38.2/arch/powerpc/kernel/vio.c
2778--- linux-2.6.38.3/arch/powerpc/kernel/vio.c 2011-03-14 21:20:32.000000000 -0400 2786--- linux-2.6.38.2/arch/powerpc/kernel/vio.c 2011-03-14 21:20:32.000000000 -0400
2779+++ linux-2.6.38.3/arch/powerpc/kernel/vio.c 2011-04-17 15:57:32.000000000 -0400 2787+++ linux-2.6.38.2/arch/powerpc/kernel/vio.c 2011-03-21 18:31:35.000000000 -0400
2780@@ -605,11 +605,12 @@ static int vio_dma_iommu_dma_supported(s 2788@@ -605,11 +605,12 @@ static int vio_dma_iommu_dma_supported(s
2781 return dma_iommu_ops.dma_supported(dev, mask); 2789 return dma_iommu_ops.dma_supported(dev, mask);
2782 } 2790 }
@@ -2791,9 +2799,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vio.c linux-2.6.38.3/arch/powerpc/
2791 .map_page = vio_dma_iommu_map_page, 2799 .map_page = vio_dma_iommu_map_page,
2792 .unmap_page = vio_dma_iommu_unmap_page, 2800 .unmap_page = vio_dma_iommu_unmap_page,
2793 .dma_supported = vio_dma_iommu_dma_supported, 2801 .dma_supported = vio_dma_iommu_dma_supported,
2794diff -urNp linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2802diff -urNp linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c
2795--- linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400 2803--- linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400
2796+++ linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2011-04-17 15:57:32.000000000 -0400 2804+++ linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2011-03-21 18:31:35.000000000 -0400
2797@@ -9,22 +9,6 @@ 2805@@ -9,22 +9,6 @@
2798 #include <linux/module.h> 2806 #include <linux/module.h>
2799 #include <asm/uaccess.h> 2807 #include <asm/uaccess.h>
@@ -2825,9 +2833,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c linux-2.6.38.3/arch/pow
2825-EXPORT_SYMBOL(copy_to_user); 2833-EXPORT_SYMBOL(copy_to_user);
2826 EXPORT_SYMBOL(copy_in_user); 2834 EXPORT_SYMBOL(copy_in_user);
2827 2835
2828diff -urNp linux-2.6.38.3/arch/powerpc/mm/fault.c linux-2.6.38.3/arch/powerpc/mm/fault.c 2836diff -urNp linux-2.6.38.2/arch/powerpc/mm/fault.c linux-2.6.38.2/arch/powerpc/mm/fault.c
2829--- linux-2.6.38.3/arch/powerpc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 2837--- linux-2.6.38.2/arch/powerpc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
2830+++ linux-2.6.38.3/arch/powerpc/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 2838+++ linux-2.6.38.2/arch/powerpc/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
2831@@ -31,6 +31,10 @@ 2839@@ -31,6 +31,10 @@
2832 #include <linux/kdebug.h> 2840 #include <linux/kdebug.h>
2833 #include <linux/perf_event.h> 2841 #include <linux/perf_event.h>
@@ -2932,9 +2940,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/mm/fault.c linux-2.6.38.3/arch/powerpc/mm
2932 _exception(SIGSEGV, regs, code, address); 2940 _exception(SIGSEGV, regs, code, address);
2933 return 0; 2941 return 0;
2934 } 2942 }
2935diff -urNp linux-2.6.38.3/arch/powerpc/mm/mmap_64.c linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2943diff -urNp linux-2.6.38.2/arch/powerpc/mm/mmap_64.c linux-2.6.38.2/arch/powerpc/mm/mmap_64.c
2936--- linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2011-03-14 21:20:32.000000000 -0400 2944--- linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2011-03-14 21:20:32.000000000 -0400
2937+++ linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2011-04-17 15:57:32.000000000 -0400 2945+++ linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2011-03-21 18:31:35.000000000 -0400
2938@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str 2946@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str
2939 */ 2947 */
2940 if (mmap_is_legacy()) { 2948 if (mmap_is_legacy()) {
@@ -2958,9 +2966,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/mm/mmap_64.c linux-2.6.38.3/arch/powerpc/
2958 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 2966 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
2959 mm->unmap_area = arch_unmap_area_topdown; 2967 mm->unmap_area = arch_unmap_area_topdown;
2960 } 2968 }
2961diff -urNp linux-2.6.38.3/arch/powerpc/mm/slice.c linux-2.6.38.3/arch/powerpc/mm/slice.c 2969diff -urNp linux-2.6.38.2/arch/powerpc/mm/slice.c linux-2.6.38.2/arch/powerpc/mm/slice.c
2962--- linux-2.6.38.3/arch/powerpc/mm/slice.c 2011-03-14 21:20:32.000000000 -0400 2970--- linux-2.6.38.2/arch/powerpc/mm/slice.c 2011-03-14 21:20:32.000000000 -0400
2963+++ linux-2.6.38.3/arch/powerpc/mm/slice.c 2011-04-17 15:57:32.000000000 -0400 2971+++ linux-2.6.38.2/arch/powerpc/mm/slice.c 2011-03-21 23:47:41.000000000 -0400
2964@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_ 2972@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_
2965 if ((mm->task_size - len) < addr) 2973 if ((mm->task_size - len) < addr)
2966 return 0; 2974 return 0;
@@ -3027,9 +3035,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/mm/slice.c linux-2.6.38.3/arch/powerpc/mm
3027 /* If hint, make sure it matches our alignment restrictions */ 3035 /* If hint, make sure it matches our alignment restrictions */
3028 if (!fixed && addr) { 3036 if (!fixed && addr) {
3029 addr = _ALIGN_UP(addr, 1ul << pshift); 3037 addr = _ALIGN_UP(addr, 1ul << pshift);
3030diff -urNp linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 3038diff -urNp linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c
3031--- linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 2011-03-14 21:20:32.000000000 -0400 3039--- linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 2011-03-14 21:20:32.000000000 -0400
3032+++ linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 2011-04-17 15:57:32.000000000 -0400 3040+++ linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 2011-03-21 18:31:35.000000000 -0400
3033@@ -642,7 +642,7 @@ static int dma_fixed_dma_supported(struc 3041@@ -642,7 +642,7 @@ static int dma_fixed_dma_supported(struc
3034 3042
3035 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask); 3043 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask);
@@ -3039,9 +3047,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.3/arc
3039 .alloc_coherent = dma_fixed_alloc_coherent, 3047 .alloc_coherent = dma_fixed_alloc_coherent,
3040 .free_coherent = dma_fixed_free_coherent, 3048 .free_coherent = dma_fixed_free_coherent,
3041 .map_sg = dma_fixed_map_sg, 3049 .map_sg = dma_fixed_map_sg,
3042diff -urNp linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 3050diff -urNp linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c
3043--- linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 2011-03-14 21:20:32.000000000 -0400 3051--- linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c 2011-03-14 21:20:32.000000000 -0400
3044+++ linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 2011-04-17 15:57:32.000000000 -0400 3052+++ linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c 2011-03-21 18:31:35.000000000 -0400
3045@@ -695,7 +695,7 @@ static int ps3_dma_supported(struct devi 3053@@ -695,7 +695,7 @@ static int ps3_dma_supported(struct devi
3046 return mask >= DMA_BIT_MASK(32); 3054 return mask >= DMA_BIT_MASK(32);
3047 } 3055 }
@@ -3060,9 +3068,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.3
3060 .alloc_coherent = ps3_alloc_coherent, 3068 .alloc_coherent = ps3_alloc_coherent,
3061 .free_coherent = ps3_free_coherent, 3069 .free_coherent = ps3_free_coherent,
3062 .map_sg = ps3_ioc0_map_sg, 3070 .map_sg = ps3_ioc0_map_sg,
3063diff -urNp linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 3071diff -urNp linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c
3064--- linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-14 21:20:32.000000000 -0400 3072--- linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-14 21:20:32.000000000 -0400
3065+++ linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-04-17 15:57:32.000000000 -0400 3073+++ linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-21 18:31:35.000000000 -0400
3066@@ -240,7 +240,7 @@ static int cpm_suspend_enter(suspend_sta 3074@@ -240,7 +240,7 @@ static int cpm_suspend_enter(suspend_sta
3067 return 0; 3075 return 0;
3068 } 3076 }
@@ -3072,9 +3080,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.3/arch/p
3072 .valid = cpm_suspend_valid, 3080 .valid = cpm_suspend_valid,
3073 .enter = cpm_suspend_enter, 3081 .enter = cpm_suspend_enter,
3074 }; 3082 };
3075diff -urNp linux-2.6.38.3/arch/s390/include/asm/elf.h linux-2.6.38.3/arch/s390/include/asm/elf.h 3083diff -urNp linux-2.6.38.2/arch/s390/include/asm/elf.h linux-2.6.38.2/arch/s390/include/asm/elf.h
3076--- linux-2.6.38.3/arch/s390/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 3084--- linux-2.6.38.2/arch/s390/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
3077+++ linux-2.6.38.3/arch/s390/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 3085+++ linux-2.6.38.2/arch/s390/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
3078@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled; 3086@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled;
3079 the loader. We need to make sure that it is out of the way of the program 3087 the loader. We need to make sure that it is out of the way of the program
3080 that it will "exec", and that there is sufficient room for the brk. */ 3088 that it will "exec", and that there is sufficient room for the brk. */
@@ -3100,9 +3108,9 @@ diff -urNp linux-2.6.38.3/arch/s390/include/asm/elf.h linux-2.6.38.3/arch/s390/i
3100-#define arch_randomize_brk arch_randomize_brk 3108-#define arch_randomize_brk arch_randomize_brk
3101- 3109-
3102 #endif 3110 #endif
3103diff -urNp linux-2.6.38.3/arch/s390/include/asm/system.h linux-2.6.38.3/arch/s390/include/asm/system.h 3111diff -urNp linux-2.6.38.2/arch/s390/include/asm/system.h linux-2.6.38.2/arch/s390/include/asm/system.h
3104--- linux-2.6.38.3/arch/s390/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 3112--- linux-2.6.38.2/arch/s390/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
3105+++ linux-2.6.38.3/arch/s390/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 3113+++ linux-2.6.38.2/arch/s390/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
3106@@ -449,7 +449,7 @@ extern void (*_machine_restart)(char *co 3114@@ -449,7 +449,7 @@ extern void (*_machine_restart)(char *co
3107 extern void (*_machine_halt)(void); 3115 extern void (*_machine_halt)(void);
3108 extern void (*_machine_power_off)(void); 3116 extern void (*_machine_power_off)(void);
@@ -3112,9 +3120,9 @@ diff -urNp linux-2.6.38.3/arch/s390/include/asm/system.h linux-2.6.38.3/arch/s39
3112 3120
3113 static inline int tprot(unsigned long addr) 3121 static inline int tprot(unsigned long addr)
3114 { 3122 {
3115diff -urNp linux-2.6.38.3/arch/s390/include/asm/uaccess.h linux-2.6.38.3/arch/s390/include/asm/uaccess.h 3123diff -urNp linux-2.6.38.2/arch/s390/include/asm/uaccess.h linux-2.6.38.2/arch/s390/include/asm/uaccess.h
3116--- linux-2.6.38.3/arch/s390/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 3124--- linux-2.6.38.2/arch/s390/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
3117+++ linux-2.6.38.3/arch/s390/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 3125+++ linux-2.6.38.2/arch/s390/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
3118@@ -234,6 +234,10 @@ static inline unsigned long __must_check 3126@@ -234,6 +234,10 @@ static inline unsigned long __must_check
3119 copy_to_user(void __user *to, const void *from, unsigned long n) 3127 copy_to_user(void __user *to, const void *from, unsigned long n)
3120 { 3128 {
@@ -3147,9 +3155,9 @@ diff -urNp linux-2.6.38.3/arch/s390/include/asm/uaccess.h linux-2.6.38.3/arch/s3
3147 if (unlikely(sz != -1 && sz < n)) { 3155 if (unlikely(sz != -1 && sz < n)) {
3148 copy_from_user_overflow(); 3156 copy_from_user_overflow();
3149 return n; 3157 return n;
3150diff -urNp linux-2.6.38.3/arch/s390/Kconfig linux-2.6.38.3/arch/s390/Kconfig 3158diff -urNp linux-2.6.38.2/arch/s390/Kconfig linux-2.6.38.2/arch/s390/Kconfig
3151--- linux-2.6.38.3/arch/s390/Kconfig 2011-03-14 21:20:32.000000000 -0400 3159--- linux-2.6.38.2/arch/s390/Kconfig 2011-03-14 21:20:32.000000000 -0400
3152+++ linux-2.6.38.3/arch/s390/Kconfig 2011-04-17 15:57:32.000000000 -0400 3160+++ linux-2.6.38.2/arch/s390/Kconfig 2011-03-21 18:31:35.000000000 -0400
3153@@ -233,11 +233,9 @@ config S390_EXEC_PROTECT 3161@@ -233,11 +233,9 @@ config S390_EXEC_PROTECT
3154 prompt "Data execute protection" 3162 prompt "Data execute protection"
3155 help 3163 help
@@ -3165,9 +3173,9 @@ diff -urNp linux-2.6.38.3/arch/s390/Kconfig linux-2.6.38.3/arch/s390/Kconfig
3165 3173
3166 comment "Code generation options" 3174 comment "Code generation options"
3167 3175
3168diff -urNp linux-2.6.38.3/arch/s390/kernel/module.c linux-2.6.38.3/arch/s390/kernel/module.c 3176diff -urNp linux-2.6.38.2/arch/s390/kernel/module.c linux-2.6.38.2/arch/s390/kernel/module.c
3169--- linux-2.6.38.3/arch/s390/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 3177--- linux-2.6.38.2/arch/s390/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
3170+++ linux-2.6.38.3/arch/s390/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 3178+++ linux-2.6.38.2/arch/s390/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
3171@@ -168,11 +168,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, 3179@@ -168,11 +168,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr,
3172 3180
3173 /* Increase core size by size of got & plt and set start 3181 /* Increase core size by size of got & plt and set start
@@ -3239,9 +3247,9 @@ diff -urNp linux-2.6.38.3/arch/s390/kernel/module.c linux-2.6.38.3/arch/s390/ker
3239 rela->r_addend - loc; 3247 rela->r_addend - loc;
3240 if (r_type == R_390_GOTPC) 3248 if (r_type == R_390_GOTPC)
3241 *(unsigned int *) loc = val; 3249 *(unsigned int *) loc = val;
3242diff -urNp linux-2.6.38.3/arch/s390/kernel/process.c linux-2.6.38.3/arch/s390/kernel/process.c 3250diff -urNp linux-2.6.38.2/arch/s390/kernel/process.c linux-2.6.38.2/arch/s390/kernel/process.c
3243--- linux-2.6.38.3/arch/s390/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 3251--- linux-2.6.38.2/arch/s390/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
3244+++ linux-2.6.38.3/arch/s390/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 3252+++ linux-2.6.38.2/arch/s390/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
3245@@ -334,39 +334,3 @@ unsigned long get_wchan(struct task_stru 3253@@ -334,39 +334,3 @@ unsigned long get_wchan(struct task_stru
3246 } 3254 }
3247 return 0; 3255 return 0;
@@ -3282,9 +3290,9 @@ diff -urNp linux-2.6.38.3/arch/s390/kernel/process.c linux-2.6.38.3/arch/s390/ke
3282- return base; 3290- return base;
3283- return ret; 3291- return ret;
3284-} 3292-}
3285diff -urNp linux-2.6.38.3/arch/s390/kernel/setup.c linux-2.6.38.3/arch/s390/kernel/setup.c 3293diff -urNp linux-2.6.38.2/arch/s390/kernel/setup.c linux-2.6.38.2/arch/s390/kernel/setup.c
3286--- linux-2.6.38.3/arch/s390/kernel/setup.c 2011-03-14 21:20:32.000000000 -0400 3294--- linux-2.6.38.2/arch/s390/kernel/setup.c 2011-03-14 21:20:32.000000000 -0400
3287+++ linux-2.6.38.3/arch/s390/kernel/setup.c 2011-04-17 15:57:32.000000000 -0400 3295+++ linux-2.6.38.2/arch/s390/kernel/setup.c 2011-03-21 18:31:35.000000000 -0400
3288@@ -281,7 +281,7 @@ static int __init early_parse_mem(char * 3296@@ -281,7 +281,7 @@ static int __init early_parse_mem(char *
3289 } 3297 }
3290 early_param("mem", early_parse_mem); 3298 early_param("mem", early_parse_mem);
@@ -3333,9 +3341,9 @@ diff -urNp linux-2.6.38.3/arch/s390/kernel/setup.c linux-2.6.38.3/arch/s390/kern
3333 static void setup_addressing_mode(void) 3341 static void setup_addressing_mode(void)
3334 { 3342 {
3335 if (user_mode == SECONDARY_SPACE_MODE) { 3343 if (user_mode == SECONDARY_SPACE_MODE) {
3336diff -urNp linux-2.6.38.3/arch/s390/mm/maccess.c linux-2.6.38.3/arch/s390/mm/maccess.c 3344diff -urNp linux-2.6.38.2/arch/s390/mm/maccess.c linux-2.6.38.2/arch/s390/mm/maccess.c
3337--- linux-2.6.38.3/arch/s390/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 3345--- linux-2.6.38.2/arch/s390/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
3338+++ linux-2.6.38.3/arch/s390/mm/maccess.c 2011-04-17 15:57:32.000000000 -0400 3346+++ linux-2.6.38.2/arch/s390/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400
3339@@ -45,7 +45,7 @@ static long probe_kernel_write_odd(void 3347@@ -45,7 +45,7 @@ static long probe_kernel_write_odd(void
3340 return rc ? rc : count; 3348 return rc ? rc : count;
3341 } 3349 }
@@ -3345,9 +3353,9 @@ diff -urNp linux-2.6.38.3/arch/s390/mm/maccess.c linux-2.6.38.3/arch/s390/mm/mac
3345 { 3353 {
3346 long copied = 0; 3354 long copied = 0;
3347 3355
3348diff -urNp linux-2.6.38.3/arch/s390/mm/mmap.c linux-2.6.38.3/arch/s390/mm/mmap.c 3356diff -urNp linux-2.6.38.2/arch/s390/mm/mmap.c linux-2.6.38.2/arch/s390/mm/mmap.c
3349--- linux-2.6.38.3/arch/s390/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 3357--- linux-2.6.38.2/arch/s390/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
3350+++ linux-2.6.38.3/arch/s390/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 3358+++ linux-2.6.38.2/arch/s390/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400
3351@@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_str 3359@@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_str
3352 */ 3360 */
3353 if (mmap_is_legacy()) { 3361 if (mmap_is_legacy()) {
@@ -3394,9 +3402,9 @@ diff -urNp linux-2.6.38.3/arch/s390/mm/mmap.c linux-2.6.38.3/arch/s390/mm/mmap.c
3394 mm->get_unmapped_area = s390_get_unmapped_area_topdown; 3402 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
3395 mm->unmap_area = arch_unmap_area_topdown; 3403 mm->unmap_area = arch_unmap_area_topdown;
3396 } 3404 }
3397diff -urNp linux-2.6.38.3/arch/score/include/asm/system.h linux-2.6.38.3/arch/score/include/asm/system.h 3405diff -urNp linux-2.6.38.2/arch/score/include/asm/system.h linux-2.6.38.2/arch/score/include/asm/system.h
3398--- linux-2.6.38.3/arch/score/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 3406--- linux-2.6.38.2/arch/score/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
3399+++ linux-2.6.38.3/arch/score/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 3407+++ linux-2.6.38.2/arch/score/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
3400@@ -17,7 +17,7 @@ do { \ 3408@@ -17,7 +17,7 @@ do { \
3401 #define finish_arch_switch(prev) do {} while (0) 3409 #define finish_arch_switch(prev) do {} while (0)
3402 3410
@@ -3406,9 +3414,9 @@ diff -urNp linux-2.6.38.3/arch/score/include/asm/system.h linux-2.6.38.3/arch/sc
3406 3414
3407 #define mb() barrier() 3415 #define mb() barrier()
3408 #define rmb() barrier() 3416 #define rmb() barrier()
3409diff -urNp linux-2.6.38.3/arch/score/kernel/process.c linux-2.6.38.3/arch/score/kernel/process.c 3417diff -urNp linux-2.6.38.2/arch/score/kernel/process.c linux-2.6.38.2/arch/score/kernel/process.c
3410--- linux-2.6.38.3/arch/score/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 3418--- linux-2.6.38.2/arch/score/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
3411+++ linux-2.6.38.3/arch/score/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 3419+++ linux-2.6.38.2/arch/score/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
3412@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_stru 3420@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_stru
3413 3421
3414 return task_pt_regs(task)->cp0_epc; 3422 return task_pt_regs(task)->cp0_epc;
@@ -3418,9 +3426,9 @@ diff -urNp linux-2.6.38.3/arch/score/kernel/process.c linux-2.6.38.3/arch/score/
3418-{ 3426-{
3419- return sp; 3427- return sp;
3420-} 3428-}
3421diff -urNp linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 3429diff -urNp linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h
3422--- linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 3430--- linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3423+++ linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 3431+++ linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
3424@@ -1,10 +1,10 @@ 3432@@ -1,10 +1,10 @@
3425 #ifndef __ASM_SH_DMA_MAPPING_H 3433 #ifndef __ASM_SH_DMA_MAPPING_H
3426 #define __ASM_SH_DMA_MAPPING_H 3434 #define __ASM_SH_DMA_MAPPING_H
@@ -3479,9 +3487,9 @@ diff -urNp linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h linux-2.6.38.3/arch/
3479 3487
3480 if (dma_release_from_coherent(dev, get_order(size), vaddr)) 3488 if (dma_release_from_coherent(dev, get_order(size), vaddr))
3481 return; 3489 return;
3482diff -urNp linux-2.6.38.3/arch/sh/kernel/dma-nommu.c linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 3490diff -urNp linux-2.6.38.2/arch/sh/kernel/dma-nommu.c linux-2.6.38.2/arch/sh/kernel/dma-nommu.c
3483--- linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 2011-03-14 21:20:32.000000000 -0400 3491--- linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 2011-03-14 21:20:32.000000000 -0400
3484+++ linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 2011-04-17 15:57:32.000000000 -0400 3492+++ linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 2011-03-21 18:31:35.000000000 -0400
3485@@ -62,7 +62,7 @@ static void nommu_sync_sg(struct device 3493@@ -62,7 +62,7 @@ static void nommu_sync_sg(struct device
3486 } 3494 }
3487 #endif 3495 #endif
@@ -3491,9 +3499,9 @@ diff -urNp linux-2.6.38.3/arch/sh/kernel/dma-nommu.c linux-2.6.38.3/arch/sh/kern
3491 .alloc_coherent = dma_generic_alloc_coherent, 3499 .alloc_coherent = dma_generic_alloc_coherent,
3492 .free_coherent = dma_generic_free_coherent, 3500 .free_coherent = dma_generic_free_coherent,
3493 .map_page = nommu_map_page, 3501 .map_page = nommu_map_page,
3494diff -urNp linux-2.6.38.3/arch/sh/kernel/kgdb.c linux-2.6.38.3/arch/sh/kernel/kgdb.c 3502diff -urNp linux-2.6.38.2/arch/sh/kernel/kgdb.c linux-2.6.38.2/arch/sh/kernel/kgdb.c
3495--- linux-2.6.38.3/arch/sh/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 3503--- linux-2.6.38.2/arch/sh/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
3496+++ linux-2.6.38.3/arch/sh/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 3504+++ linux-2.6.38.2/arch/sh/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
3497@@ -319,7 +319,7 @@ void kgdb_arch_exit(void) 3505@@ -319,7 +319,7 @@ void kgdb_arch_exit(void)
3498 unregister_die_notifier(&kgdb_notifier); 3506 unregister_die_notifier(&kgdb_notifier);
3499 } 3507 }
@@ -3503,9 +3511,9 @@ diff -urNp linux-2.6.38.3/arch/sh/kernel/kgdb.c linux-2.6.38.3/arch/sh/kernel/kg
3503 /* Breakpoint instruction: trapa #0x3c */ 3511 /* Breakpoint instruction: trapa #0x3c */
3504 #ifdef CONFIG_CPU_LITTLE_ENDIAN 3512 #ifdef CONFIG_CPU_LITTLE_ENDIAN
3505 .gdb_bpt_instr = { 0x3c, 0xc3 }, 3513 .gdb_bpt_instr = { 0x3c, 0xc3 },
3506diff -urNp linux-2.6.38.3/arch/sh/mm/consistent.c linux-2.6.38.3/arch/sh/mm/consistent.c 3514diff -urNp linux-2.6.38.2/arch/sh/mm/consistent.c linux-2.6.38.2/arch/sh/mm/consistent.c
3507--- linux-2.6.38.3/arch/sh/mm/consistent.c 2011-03-14 21:20:32.000000000 -0400 3515--- linux-2.6.38.2/arch/sh/mm/consistent.c 2011-03-14 21:20:32.000000000 -0400
3508+++ linux-2.6.38.3/arch/sh/mm/consistent.c 2011-04-17 15:57:32.000000000 -0400 3516+++ linux-2.6.38.2/arch/sh/mm/consistent.c 2011-03-21 18:31:35.000000000 -0400
3509@@ -22,7 +22,7 @@ 3517@@ -22,7 +22,7 @@
3510 3518
3511 #define PREALLOC_DMA_DEBUG_ENTRIES 4096 3519 #define PREALLOC_DMA_DEBUG_ENTRIES 4096
@@ -3515,9 +3523,9 @@ diff -urNp linux-2.6.38.3/arch/sh/mm/consistent.c linux-2.6.38.3/arch/sh/mm/cons
3515 EXPORT_SYMBOL(dma_ops); 3523 EXPORT_SYMBOL(dma_ops);
3516 3524
3517 static int __init dma_init(void) 3525 static int __init dma_init(void)
3518diff -urNp linux-2.6.38.3/arch/sh/mm/mmap.c linux-2.6.38.3/arch/sh/mm/mmap.c 3526diff -urNp linux-2.6.38.2/arch/sh/mm/mmap.c linux-2.6.38.2/arch/sh/mm/mmap.c
3519--- linux-2.6.38.3/arch/sh/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 3527--- linux-2.6.38.2/arch/sh/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
3520+++ linux-2.6.38.3/arch/sh/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 3528+++ linux-2.6.38.2/arch/sh/mm/mmap.c 2011-03-21 23:47:41.000000000 -0400
3521@@ -74,8 +74,7 @@ unsigned long arch_get_unmapped_area(str 3529@@ -74,8 +74,7 @@ unsigned long arch_get_unmapped_area(str
3522 addr = PAGE_ALIGN(addr); 3530 addr = PAGE_ALIGN(addr);
3523 3531
@@ -3592,9 +3600,9 @@ diff -urNp linux-2.6.38.3/arch/sh/mm/mmap.c linux-2.6.38.3/arch/sh/mm/mmap.c
3592 3600
3593 bottomup: 3601 bottomup:
3594 /* 3602 /*
3595diff -urNp linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 3603diff -urNp linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h
3596--- linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 2011-03-14 21:20:32.000000000 -0400 3604--- linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h 2011-03-14 21:20:32.000000000 -0400
3597+++ linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 2011-04-17 15:57:32.000000000 -0400 3605+++ linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h 2011-03-21 18:31:35.000000000 -0400
3598@@ -14,18 +14,40 @@ 3606@@ -14,18 +14,40 @@
3599 #define ATOMIC64_INIT(i) { (i) } 3607 #define ATOMIC64_INIT(i) { (i) }
3600 3608
@@ -3754,9 +3762,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h linux-2.6.38.3/arch
3754 } 3762 }
3755 3763
3756 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 3764 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
3757diff -urNp linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 3765diff -urNp linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h
3758--- linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 3766--- linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3759+++ linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 3767+++ linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
3760@@ -12,10 +12,10 @@ extern int dma_supported(struct device * 3768@@ -12,10 +12,10 @@ extern int dma_supported(struct device *
3761 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) 3769 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
3762 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) 3770 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
@@ -3788,9 +3796,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.3/ar
3788 3796
3789 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); 3797 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
3790 ops->free_coherent(dev, size, cpu_addr, dma_handle); 3798 ops->free_coherent(dev, size, cpu_addr, dma_handle);
3791diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_32.h linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 3799diff -urNp linux-2.6.38.2/arch/sparc/include/asm/elf_32.h linux-2.6.38.2/arch/sparc/include/asm/elf_32.h
3792--- linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 2011-03-14 21:20:32.000000000 -0400 3800--- linux-2.6.38.2/arch/sparc/include/asm/elf_32.h 2011-03-14 21:20:32.000000000 -0400
3793+++ linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 2011-04-17 15:57:32.000000000 -0400 3801+++ linux-2.6.38.2/arch/sparc/include/asm/elf_32.h 2011-03-21 18:31:35.000000000 -0400
3794@@ -114,6 +114,13 @@ typedef struct { 3802@@ -114,6 +114,13 @@ typedef struct {
3795 3803
3796 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE) 3804 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
@@ -3805,9 +3813,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_32.h linux-2.6.38.3/arch/sp
3805 /* This yields a mask that user programs can use to figure out what 3813 /* This yields a mask that user programs can use to figure out what
3806 instruction set this cpu supports. This can NOT be done in userspace 3814 instruction set this cpu supports. This can NOT be done in userspace
3807 on Sparc. */ 3815 on Sparc. */
3808diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_64.h linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 3816diff -urNp linux-2.6.38.2/arch/sparc/include/asm/elf_64.h linux-2.6.38.2/arch/sparc/include/asm/elf_64.h
3809--- linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 2011-03-14 21:20:32.000000000 -0400 3817--- linux-2.6.38.2/arch/sparc/include/asm/elf_64.h 2011-03-14 21:20:32.000000000 -0400
3810+++ linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 2011-04-17 15:57:32.000000000 -0400 3818+++ linux-2.6.38.2/arch/sparc/include/asm/elf_64.h 2011-03-21 18:31:35.000000000 -0400
3811@@ -162,6 +162,12 @@ typedef struct { 3819@@ -162,6 +162,12 @@ typedef struct {
3812 #define ELF_ET_DYN_BASE 0x0000010000000000UL 3820 #define ELF_ET_DYN_BASE 0x0000010000000000UL
3813 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL 3821 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
@@ -3821,9 +3829,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_64.h linux-2.6.38.3/arch/sp
3821 3829
3822 /* This yields a mask that user programs can use to figure out what 3830 /* This yields a mask that user programs can use to figure out what
3823 instruction set this cpu supports. */ 3831 instruction set this cpu supports. */
3824diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 3832diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h
3825--- linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400 3833--- linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400
3826+++ linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 2011-04-17 15:57:32.000000000 -0400 3834+++ linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h 2011-03-21 18:31:35.000000000 -0400
3827@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd) 3835@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd)
3828 BTFIXUPDEF_INT(page_none) 3836 BTFIXUPDEF_INT(page_none)
3829 BTFIXUPDEF_INT(page_copy) 3837 BTFIXUPDEF_INT(page_copy)
@@ -3855,9 +3863,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.3/arc
3855 extern unsigned long page_kernel; 3863 extern unsigned long page_kernel;
3856 3864
3857 #ifdef MODULE 3865 #ifdef MODULE
3858diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 3866diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h
3859--- linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 2011-03-14 21:20:32.000000000 -0400 3867--- linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 2011-03-14 21:20:32.000000000 -0400
3860+++ linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 2011-04-17 15:57:32.000000000 -0400 3868+++ linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 2011-03-21 18:31:35.000000000 -0400
3861@@ -115,6 +115,13 @@ 3869@@ -115,6 +115,13 @@
3862 SRMMU_EXEC | SRMMU_REF) 3870 SRMMU_EXEC | SRMMU_REF)
3863 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \ 3871 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
@@ -3872,9 +3880,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.3/arch/
3872 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \ 3880 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
3873 SRMMU_DIRTY | SRMMU_REF) 3881 SRMMU_DIRTY | SRMMU_REF)
3874 3882
3875diff -urNp linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 3883diff -urNp linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h
3876--- linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 2011-03-14 21:20:32.000000000 -0400 3884--- linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h 2011-03-14 21:20:32.000000000 -0400
3877+++ linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 2011-04-17 15:57:32.000000000 -0400 3885+++ linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h 2011-03-21 18:31:35.000000000 -0400
3878@@ -99,7 +99,12 @@ static void inline arch_read_lock(arch_r 3886@@ -99,7 +99,12 @@ static void inline arch_read_lock(arch_r
3879 __asm__ __volatile__ ( 3887 __asm__ __volatile__ (
3880 "1: ldsw [%2], %0\n" 3888 "1: ldsw [%2], %0\n"
@@ -3926,9 +3934,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.3/ar
3926 " cas [%2], %0, %1\n" 3934 " cas [%2], %0, %1\n"
3927 " cmp %0, %1\n" 3935 " cmp %0, %1\n"
3928 " bne,pn %%xcc, 1b\n" 3936 " bne,pn %%xcc, 1b\n"
3929diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 3937diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h
3930--- linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400 3938--- linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
3931+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 2011-04-17 15:57:32.000000000 -0400 3939+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h 2011-03-21 18:31:35.000000000 -0400
3932@@ -249,27 +249,46 @@ extern unsigned long __copy_user(void __ 3940@@ -249,27 +249,46 @@ extern unsigned long __copy_user(void __
3933 3941
3934 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) 3942 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -3980,9 +3988,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.3/arc
3980 return __copy_user((__force void __user *) to, from, n); 3988 return __copy_user((__force void __user *) to, from, n);
3981 } 3989 }
3982 3990
3983diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 3991diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h
3984--- linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400 3992--- linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400
3985+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 2011-04-17 15:57:32.000000000 -0400 3993+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h 2011-03-21 18:31:35.000000000 -0400
3986@@ -10,6 +10,7 @@ 3994@@ -10,6 +10,7 @@
3987 #include <linux/compiler.h> 3995 #include <linux/compiler.h>
3988 #include <linux/string.h> 3996 #include <linux/string.h>
@@ -4025,9 +4033,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.3/arc
4025 if (unlikely(ret)) 4033 if (unlikely(ret))
4026 ret = copy_to_user_fixup(to, from, size); 4034 ret = copy_to_user_fixup(to, from, size);
4027 return ret; 4035 return ret;
4028diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess.h linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 4036diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess.h linux-2.6.38.2/arch/sparc/include/asm/uaccess.h
4029--- linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 4037--- linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
4030+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 4038+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
4031@@ -1,5 +1,13 @@ 4039@@ -1,5 +1,13 @@
4032 #ifndef ___ASM_SPARC_UACCESS_H 4040 #ifndef ___ASM_SPARC_UACCESS_H
4033 #define ___ASM_SPARC_UACCESS_H 4041 #define ___ASM_SPARC_UACCESS_H
@@ -4042,9 +4050,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess.h linux-2.6.38.3/arch/s
4042 #if defined(__sparc__) && defined(__arch64__) 4050 #if defined(__sparc__) && defined(__arch64__)
4043 #include <asm/uaccess_64.h> 4051 #include <asm/uaccess_64.h>
4044 #else 4052 #else
4045diff -urNp linux-2.6.38.3/arch/sparc/kernel/iommu.c linux-2.6.38.3/arch/sparc/kernel/iommu.c 4053diff -urNp linux-2.6.38.2/arch/sparc/kernel/iommu.c linux-2.6.38.2/arch/sparc/kernel/iommu.c
4046--- linux-2.6.38.3/arch/sparc/kernel/iommu.c 2011-03-14 21:20:32.000000000 -0400 4054--- linux-2.6.38.2/arch/sparc/kernel/iommu.c 2011-03-14 21:20:32.000000000 -0400
4047+++ linux-2.6.38.3/arch/sparc/kernel/iommu.c 2011-04-17 15:57:32.000000000 -0400 4055+++ linux-2.6.38.2/arch/sparc/kernel/iommu.c 2011-03-21 18:31:35.000000000 -0400
4048@@ -827,7 +827,7 @@ static void dma_4u_sync_sg_for_cpu(struc 4056@@ -827,7 +827,7 @@ static void dma_4u_sync_sg_for_cpu(struc
4049 spin_unlock_irqrestore(&iommu->lock, flags); 4057 spin_unlock_irqrestore(&iommu->lock, flags);
4050 } 4058 }
@@ -4063,9 +4071,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/iommu.c linux-2.6.38.3/arch/sparc/ke
4063 EXPORT_SYMBOL(dma_ops); 4071 EXPORT_SYMBOL(dma_ops);
4064 4072
4065 extern int pci64_dma_supported(struct pci_dev *pdev, u64 device_mask); 4073 extern int pci64_dma_supported(struct pci_dev *pdev, u64 device_mask);
4066diff -urNp linux-2.6.38.3/arch/sparc/kernel/ioport.c linux-2.6.38.3/arch/sparc/kernel/ioport.c 4074diff -urNp linux-2.6.38.2/arch/sparc/kernel/ioport.c linux-2.6.38.2/arch/sparc/kernel/ioport.c
4067--- linux-2.6.38.3/arch/sparc/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400 4075--- linux-2.6.38.2/arch/sparc/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400
4068+++ linux-2.6.38.3/arch/sparc/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400 4076+++ linux-2.6.38.2/arch/sparc/kernel/ioport.c 2011-03-21 18:31:35.000000000 -0400
4069@@ -397,7 +397,7 @@ static void sbus_sync_sg_for_device(stru 4077@@ -397,7 +397,7 @@ static void sbus_sync_sg_for_device(stru
4070 BUG(); 4078 BUG();
4071 } 4079 }
@@ -4093,9 +4101,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/ioport.c linux-2.6.38.3/arch/sparc/k
4093 .alloc_coherent = pci32_alloc_coherent, 4101 .alloc_coherent = pci32_alloc_coherent,
4094 .free_coherent = pci32_free_coherent, 4102 .free_coherent = pci32_free_coherent,
4095 .map_page = pci32_map_page, 4103 .map_page = pci32_map_page,
4096diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 4104diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c
4097--- linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 2011-03-14 21:20:32.000000000 -0400 4105--- linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 2011-03-14 21:20:32.000000000 -0400
4098+++ linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 2011-04-17 15:57:32.000000000 -0400 4106+++ linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 2011-03-21 18:31:35.000000000 -0400
4099@@ -164,7 +164,7 @@ void kgdb_arch_set_pc(struct pt_regs *re 4107@@ -164,7 +164,7 @@ void kgdb_arch_set_pc(struct pt_regs *re
4100 regs->npc = regs->pc + 4; 4108 regs->npc = regs->pc + 4;
4101 } 4109 }
@@ -4105,9 +4113,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c linux-2.6.38.3/arch/sparc/
4105 /* Breakpoint instruction: ta 0x7d */ 4113 /* Breakpoint instruction: ta 0x7d */
4106 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x7d }, 4114 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x7d },
4107 }; 4115 };
4108diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 4116diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c
4109--- linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 2011-03-14 21:20:32.000000000 -0400 4117--- linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 2011-03-14 21:20:32.000000000 -0400
4110+++ linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 2011-04-17 15:57:32.000000000 -0400 4118+++ linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 2011-03-21 18:31:35.000000000 -0400
4111@@ -187,7 +187,7 @@ void kgdb_arch_set_pc(struct pt_regs *re 4119@@ -187,7 +187,7 @@ void kgdb_arch_set_pc(struct pt_regs *re
4112 regs->tnpc = regs->tpc + 4; 4120 regs->tnpc = regs->tpc + 4;
4113 } 4121 }
@@ -4117,9 +4125,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c linux-2.6.38.3/arch/sparc/
4117 /* Breakpoint instruction: ta 0x72 */ 4125 /* Breakpoint instruction: ta 0x72 */
4118 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x72 }, 4126 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x72 },
4119 }; 4127 };
4120diff -urNp linux-2.6.38.3/arch/sparc/kernel/Makefile linux-2.6.38.3/arch/sparc/kernel/Makefile 4128diff -urNp linux-2.6.38.2/arch/sparc/kernel/Makefile linux-2.6.38.2/arch/sparc/kernel/Makefile
4121--- linux-2.6.38.3/arch/sparc/kernel/Makefile 2011-03-14 21:20:32.000000000 -0400 4129--- linux-2.6.38.2/arch/sparc/kernel/Makefile 2011-03-14 21:20:32.000000000 -0400
4122+++ linux-2.6.38.3/arch/sparc/kernel/Makefile 2011-04-17 15:57:32.000000000 -0400 4130+++ linux-2.6.38.2/arch/sparc/kernel/Makefile 2011-03-21 18:31:35.000000000 -0400
4123@@ -3,7 +3,7 @@ 4131@@ -3,7 +3,7 @@
4124 # 4132 #
4125 4133
@@ -4129,9 +4137,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/Makefile linux-2.6.38.3/arch/sparc/k
4129 4137
4130 extra-y := head_$(BITS).o 4138 extra-y := head_$(BITS).o
4131 extra-y += init_task.o 4139 extra-y += init_task.o
4132diff -urNp linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 4140diff -urNp linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c
4133--- linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 2011-03-14 21:20:32.000000000 -0400 4141--- linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 2011-03-14 21:20:32.000000000 -0400
4134+++ linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 2011-04-17 15:57:32.000000000 -0400 4142+++ linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 2011-03-21 18:31:35.000000000 -0400
4135@@ -525,7 +525,7 @@ static void dma_4v_unmap_sg(struct devic 4143@@ -525,7 +525,7 @@ static void dma_4v_unmap_sg(struct devic
4136 spin_unlock_irqrestore(&iommu->lock, flags); 4144 spin_unlock_irqrestore(&iommu->lock, flags);
4137 } 4145 }
@@ -4141,9 +4149,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.3/arch/spar
4141 .alloc_coherent = dma_4v_alloc_coherent, 4149 .alloc_coherent = dma_4v_alloc_coherent,
4142 .free_coherent = dma_4v_free_coherent, 4150 .free_coherent = dma_4v_free_coherent,
4143 .map_page = dma_4v_map_page, 4151 .map_page = dma_4v_map_page,
4144diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_32.c linux-2.6.38.3/arch/sparc/kernel/process_32.c 4152diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_32.c linux-2.6.38.2/arch/sparc/kernel/process_32.c
4145--- linux-2.6.38.3/arch/sparc/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400 4153--- linux-2.6.38.2/arch/sparc/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400
4146+++ linux-2.6.38.3/arch/sparc/kernel/process_32.c 2011-04-17 15:57:32.000000000 -0400 4154+++ linux-2.6.38.2/arch/sparc/kernel/process_32.c 2011-03-21 18:31:35.000000000 -0400
4147@@ -196,7 +196,7 @@ void __show_backtrace(unsigned long fp) 4155@@ -196,7 +196,7 @@ void __show_backtrace(unsigned long fp)
4148 rw->ins[4], rw->ins[5], 4156 rw->ins[4], rw->ins[5],
4149 rw->ins[6], 4157 rw->ins[6],
@@ -4179,9 +4187,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_32.c linux-2.6.38.3/arch/spa
4179 fp = rw->ins[6]; 4187 fp = rw->ins[6];
4180 } while (++count < 16); 4188 } while (++count < 16);
4181 printk("\n"); 4189 printk("\n");
4182diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_64.c linux-2.6.38.3/arch/sparc/kernel/process_64.c 4190diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_64.c linux-2.6.38.2/arch/sparc/kernel/process_64.c
4183--- linux-2.6.38.3/arch/sparc/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 4191--- linux-2.6.38.2/arch/sparc/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
4184+++ linux-2.6.38.3/arch/sparc/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400 4192+++ linux-2.6.38.2/arch/sparc/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400
4185@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_reg 4193@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_reg
4186 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n", 4194 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
4187 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]); 4195 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
@@ -4217,9 +4225,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_64.c linux-2.6.38.3/arch/spa
4217 (void *) gp->tpc, 4225 (void *) gp->tpc,
4218 (void *) gp->o7, 4226 (void *) gp->o7,
4219 (void *) gp->i7, 4227 (void *) gp->i7,
4220diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 4228diff -urNp linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c
4221--- linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 2011-03-14 21:20:32.000000000 -0400 4229--- linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c 2011-03-14 21:20:32.000000000 -0400
4222+++ linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 2011-04-17 15:57:32.000000000 -0400 4230+++ linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c 2011-03-21 18:31:35.000000000 -0400
4223@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str 4231@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str
4224 if (ARCH_SUN4C && len > 0x20000000) 4232 if (ARCH_SUN4C && len > 0x20000000)
4225 return -ENOMEM; 4233 return -ENOMEM;
@@ -4238,9 +4246,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.3/arch/s
4238 return addr; 4246 return addr;
4239 addr = vmm->vm_end; 4247 addr = vmm->vm_end;
4240 if (flags & MAP_SHARED) 4248 if (flags & MAP_SHARED)
4241diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 4249diff -urNp linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c
4242--- linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 2011-03-14 21:20:32.000000000 -0400 4250--- linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c 2011-03-14 21:20:32.000000000 -0400
4243+++ linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 2011-04-17 15:57:32.000000000 -0400 4251+++ linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c 2011-03-21 23:47:41.000000000 -0400
4244@@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(str 4252@@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(str
4245 /* We do not accept a shared mapping if it would violate 4253 /* We do not accept a shared mapping if it would violate
4246 * cache aliasing constraints. 4254 * cache aliasing constraints.
@@ -4388,9 +4396,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.3/arch/s
4388 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 4396 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4389 mm->unmap_area = arch_unmap_area_topdown; 4397 mm->unmap_area = arch_unmap_area_topdown;
4390 } 4398 }
4391diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_32.c linux-2.6.38.3/arch/sparc/kernel/traps_32.c 4399diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_32.c linux-2.6.38.2/arch/sparc/kernel/traps_32.c
4392--- linux-2.6.38.3/arch/sparc/kernel/traps_32.c 2011-03-14 21:20:32.000000000 -0400 4400--- linux-2.6.38.2/arch/sparc/kernel/traps_32.c 2011-03-14 21:20:32.000000000 -0400
4393+++ linux-2.6.38.3/arch/sparc/kernel/traps_32.c 2011-04-17 15:57:32.000000000 -0400 4401+++ linux-2.6.38.2/arch/sparc/kernel/traps_32.c 2011-03-21 18:31:35.000000000 -0400
4394@@ -76,7 +76,7 @@ void die_if_kernel(char *str, struct pt_ 4402@@ -76,7 +76,7 @@ void die_if_kernel(char *str, struct pt_
4395 count++ < 30 && 4403 count++ < 30 &&
4396 (((unsigned long) rw) >= PAGE_OFFSET) && 4404 (((unsigned long) rw) >= PAGE_OFFSET) &&
@@ -4400,9 +4408,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_32.c linux-2.6.38.3/arch/sparc
4400 (void *) rw->ins[7]); 4408 (void *) rw->ins[7]);
4401 rw = (struct reg_window32 *)rw->ins[6]; 4409 rw = (struct reg_window32 *)rw->ins[6];
4402 } 4410 }
4403diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_64.c linux-2.6.38.3/arch/sparc/kernel/traps_64.c 4411diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_64.c linux-2.6.38.2/arch/sparc/kernel/traps_64.c
4404--- linux-2.6.38.3/arch/sparc/kernel/traps_64.c 2011-03-14 21:20:32.000000000 -0400 4412--- linux-2.6.38.2/arch/sparc/kernel/traps_64.c 2011-03-14 21:20:32.000000000 -0400
4405+++ linux-2.6.38.3/arch/sparc/kernel/traps_64.c 2011-04-17 15:57:32.000000000 -0400 4413+++ linux-2.6.38.2/arch/sparc/kernel/traps_64.c 2011-03-21 18:31:35.000000000 -0400
4406@@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_ 4414@@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_
4407 i + 1, 4415 i + 1,
4408 p->trapstack[i].tstate, p->trapstack[i].tpc, 4416 p->trapstack[i].tstate, p->trapstack[i].tpc,
@@ -4519,9 +4527,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_64.c linux-2.6.38.3/arch/sparc
4519 (void *) rw->ins[7]); 4527 (void *) rw->ins[7]);
4520 4528
4521 rw = kernel_stack_up(rw); 4529 rw = kernel_stack_up(rw);
4522diff -urNp linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 4530diff -urNp linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c
4523--- linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 2011-03-14 21:20:32.000000000 -0400 4531--- linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 2011-03-14 21:20:32.000000000 -0400
4524+++ linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 2011-04-17 15:57:32.000000000 -0400 4532+++ linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 2011-03-21 18:31:35.000000000 -0400
4525@@ -278,7 +278,7 @@ static void log_unaligned(struct pt_regs 4533@@ -278,7 +278,7 @@ static void log_unaligned(struct pt_regs
4526 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5); 4534 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
4527 4535
@@ -4531,9 +4539,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c linux-2.6.38.3/arch/s
4531 regs->tpc, (void *) regs->tpc); 4539 regs->tpc, (void *) regs->tpc);
4532 } 4540 }
4533 } 4541 }
4534diff -urNp linux-2.6.38.3/arch/sparc/lib/atomic_64.S linux-2.6.38.3/arch/sparc/lib/atomic_64.S 4542diff -urNp linux-2.6.38.2/arch/sparc/lib/atomic_64.S linux-2.6.38.2/arch/sparc/lib/atomic_64.S
4535--- linux-2.6.38.3/arch/sparc/lib/atomic_64.S 2011-03-14 21:20:32.000000000 -0400 4543--- linux-2.6.38.2/arch/sparc/lib/atomic_64.S 2011-03-14 21:20:32.000000000 -0400
4536+++ linux-2.6.38.3/arch/sparc/lib/atomic_64.S 2011-04-17 15:57:32.000000000 -0400 4544+++ linux-2.6.38.2/arch/sparc/lib/atomic_64.S 2011-03-21 18:31:35.000000000 -0400
4537@@ -18,7 +18,12 @@ 4545@@ -18,7 +18,12 @@
4538 atomic_add: /* %o0 = increment, %o1 = atomic_ptr */ 4546 atomic_add: /* %o0 = increment, %o1 = atomic_ptr */
4539 BACKOFF_SETUP(%o2) 4547 BACKOFF_SETUP(%o2)
@@ -4768,9 +4776,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/lib/atomic_64.S linux-2.6.38.3/arch/sparc/l
4768 casx [%o1], %g1, %g7 4776 casx [%o1], %g1, %g7
4769 cmp %g1, %g7 4777 cmp %g1, %g7
4770 bne,pn %xcc, BACKOFF_LABEL(2f, 1b) 4778 bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
4771diff -urNp linux-2.6.38.3/arch/sparc/lib/ksyms.c linux-2.6.38.3/arch/sparc/lib/ksyms.c 4779diff -urNp linux-2.6.38.2/arch/sparc/lib/ksyms.c linux-2.6.38.2/arch/sparc/lib/ksyms.c
4772--- linux-2.6.38.3/arch/sparc/lib/ksyms.c 2011-03-14 21:20:32.000000000 -0400 4780--- linux-2.6.38.2/arch/sparc/lib/ksyms.c 2011-03-14 21:20:32.000000000 -0400
4773+++ linux-2.6.38.3/arch/sparc/lib/ksyms.c 2011-04-17 15:57:32.000000000 -0400 4781+++ linux-2.6.38.2/arch/sparc/lib/ksyms.c 2011-03-21 18:31:35.000000000 -0400
4774@@ -142,12 +142,17 @@ EXPORT_SYMBOL(__downgrade_write); 4782@@ -142,12 +142,17 @@ EXPORT_SYMBOL(__downgrade_write);
4775 4783
4776 /* Atomic counter implementation. */ 4784 /* Atomic counter implementation. */
@@ -4789,9 +4797,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/lib/ksyms.c linux-2.6.38.3/arch/sparc/lib/k
4789 EXPORT_SYMBOL(atomic64_sub_ret); 4797 EXPORT_SYMBOL(atomic64_sub_ret);
4790 4798
4791 /* Atomic bit operations. */ 4799 /* Atomic bit operations. */
4792diff -urNp linux-2.6.38.3/arch/sparc/Makefile linux-2.6.38.3/arch/sparc/Makefile 4800diff -urNp linux-2.6.38.2/arch/sparc/Makefile linux-2.6.38.2/arch/sparc/Makefile
4793--- linux-2.6.38.3/arch/sparc/Makefile 2011-03-14 21:20:32.000000000 -0400 4801--- linux-2.6.38.2/arch/sparc/Makefile 2011-03-14 21:20:32.000000000 -0400
4794+++ linux-2.6.38.3/arch/sparc/Makefile 2011-04-17 15:57:32.000000000 -0400 4802+++ linux-2.6.38.2/arch/sparc/Makefile 2011-03-21 18:31:35.000000000 -0400
4795@@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc 4803@@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc
4796 # Export what is needed by arch/sparc/boot/Makefile 4804 # Export what is needed by arch/sparc/boot/Makefile
4797 export VMLINUX_INIT VMLINUX_MAIN 4805 export VMLINUX_INIT VMLINUX_MAIN
@@ -4801,9 +4809,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/Makefile linux-2.6.38.3/arch/sparc/Makefile
4801 VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y) 4809 VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y)
4802 VMLINUX_MAIN += $(drivers-y) $(net-y) 4810 VMLINUX_MAIN += $(drivers-y) $(net-y)
4803 4811
4804diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_32.c linux-2.6.38.3/arch/sparc/mm/fault_32.c 4812diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_32.c linux-2.6.38.2/arch/sparc/mm/fault_32.c
4805--- linux-2.6.38.3/arch/sparc/mm/fault_32.c 2011-03-14 21:20:32.000000000 -0400 4813--- linux-2.6.38.2/arch/sparc/mm/fault_32.c 2011-03-14 21:20:32.000000000 -0400
4806+++ linux-2.6.38.3/arch/sparc/mm/fault_32.c 2011-04-17 15:57:32.000000000 -0400 4814+++ linux-2.6.38.2/arch/sparc/mm/fault_32.c 2011-03-21 18:31:35.000000000 -0400
4807@@ -22,6 +22,9 @@ 4815@@ -22,6 +22,9 @@
4808 #include <linux/interrupt.h> 4816 #include <linux/interrupt.h>
4809 #include <linux/module.h> 4817 #include <linux/module.h>
@@ -5108,9 +5116,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_32.c linux-2.6.38.3/arch/sparc/mm/
5108 /* Allow reads even for write-only mappings */ 5116 /* Allow reads even for write-only mappings */
5109 if(!(vma->vm_flags & (VM_READ | VM_EXEC))) 5117 if(!(vma->vm_flags & (VM_READ | VM_EXEC)))
5110 goto bad_area; 5118 goto bad_area;
5111diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_64.c linux-2.6.38.3/arch/sparc/mm/fault_64.c 5119diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_64.c linux-2.6.38.2/arch/sparc/mm/fault_64.c
5112--- linux-2.6.38.3/arch/sparc/mm/fault_64.c 2011-03-14 21:20:32.000000000 -0400 5120--- linux-2.6.38.2/arch/sparc/mm/fault_64.c 2011-03-14 21:20:32.000000000 -0400
5113+++ linux-2.6.38.3/arch/sparc/mm/fault_64.c 2011-04-17 15:57:32.000000000 -0400 5121+++ linux-2.6.38.2/arch/sparc/mm/fault_64.c 2011-03-21 18:31:35.000000000 -0400
5114@@ -21,6 +21,9 @@ 5122@@ -21,6 +21,9 @@
5115 #include <linux/kprobes.h> 5123 #include <linux/kprobes.h>
5116 #include <linux/kdebug.h> 5124 #include <linux/kdebug.h>
@@ -5618,9 +5626,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_64.c linux-2.6.38.3/arch/sparc/mm/
5618 /* Pure DTLB misses do not tell us whether the fault causing 5626 /* Pure DTLB misses do not tell us whether the fault causing
5619 * load/store/atomic was a write or not, it only says that there 5627 * load/store/atomic was a write or not, it only says that there
5620 * was no match. So in such a case we (carefully) read the 5628 * was no match. So in such a case we (carefully) read the
5621diff -urNp linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 5629diff -urNp linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c
5622--- linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 5630--- linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
5623+++ linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400 5631+++ linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 2011-03-21 23:47:41.000000000 -0400
5624@@ -68,7 +68,7 @@ full_search: 5632@@ -68,7 +68,7 @@ full_search:
5625 } 5633 }
5626 return -ENOMEM; 5634 return -ENOMEM;
@@ -5680,9 +5688,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c linux-2.6.38.3/arch/sparc/
5680 return addr; 5688 return addr;
5681 } 5689 }
5682 if (mm->get_unmapped_area == arch_get_unmapped_area) 5690 if (mm->get_unmapped_area == arch_get_unmapped_area)
5683diff -urNp linux-2.6.38.3/arch/sparc/mm/init_32.c linux-2.6.38.3/arch/sparc/mm/init_32.c 5691diff -urNp linux-2.6.38.2/arch/sparc/mm/init_32.c linux-2.6.38.2/arch/sparc/mm/init_32.c
5684--- linux-2.6.38.3/arch/sparc/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400 5692--- linux-2.6.38.2/arch/sparc/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400
5685+++ linux-2.6.38.3/arch/sparc/mm/init_32.c 2011-04-17 15:57:32.000000000 -0400 5693+++ linux-2.6.38.2/arch/sparc/mm/init_32.c 2011-03-21 18:31:35.000000000 -0400
5686@@ -318,6 +318,9 @@ extern void device_scan(void); 5694@@ -318,6 +318,9 @@ extern void device_scan(void);
5687 pgprot_t PAGE_SHARED __read_mostly; 5695 pgprot_t PAGE_SHARED __read_mostly;
5688 EXPORT_SYMBOL(PAGE_SHARED); 5696 EXPORT_SYMBOL(PAGE_SHARED);
@@ -5717,9 +5725,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/init_32.c linux-2.6.38.3/arch/sparc/mm/i
5717 protection_map[12] = PAGE_READONLY; 5725 protection_map[12] = PAGE_READONLY;
5718 protection_map[13] = PAGE_READONLY; 5726 protection_map[13] = PAGE_READONLY;
5719 protection_map[14] = PAGE_SHARED; 5727 protection_map[14] = PAGE_SHARED;
5720diff -urNp linux-2.6.38.3/arch/sparc/mm/Makefile linux-2.6.38.3/arch/sparc/mm/Makefile 5728diff -urNp linux-2.6.38.2/arch/sparc/mm/Makefile linux-2.6.38.2/arch/sparc/mm/Makefile
5721--- linux-2.6.38.3/arch/sparc/mm/Makefile 2011-03-14 21:20:32.000000000 -0400 5729--- linux-2.6.38.2/arch/sparc/mm/Makefile 2011-03-14 21:20:32.000000000 -0400
5722+++ linux-2.6.38.3/arch/sparc/mm/Makefile 2011-04-17 15:57:32.000000000 -0400 5730+++ linux-2.6.38.2/arch/sparc/mm/Makefile 2011-03-21 18:31:35.000000000 -0400
5723@@ -2,7 +2,7 @@ 5731@@ -2,7 +2,7 @@
5724 # 5732 #
5725 5733
@@ -5729,9 +5737,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/Makefile linux-2.6.38.3/arch/sparc/mm/Ma
5729 5737
5730 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o 5738 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o
5731 obj-y += fault_$(BITS).o 5739 obj-y += fault_$(BITS).o
5732diff -urNp linux-2.6.38.3/arch/sparc/mm/srmmu.c linux-2.6.38.3/arch/sparc/mm/srmmu.c 5740diff -urNp linux-2.6.38.2/arch/sparc/mm/srmmu.c linux-2.6.38.2/arch/sparc/mm/srmmu.c
5733--- linux-2.6.38.3/arch/sparc/mm/srmmu.c 2011-03-14 21:20:32.000000000 -0400 5741--- linux-2.6.38.2/arch/sparc/mm/srmmu.c 2011-03-14 21:20:32.000000000 -0400
5734+++ linux-2.6.38.3/arch/sparc/mm/srmmu.c 2011-04-17 15:57:32.000000000 -0400 5742+++ linux-2.6.38.2/arch/sparc/mm/srmmu.c 2011-03-21 18:31:35.000000000 -0400
5735@@ -2200,6 +2200,13 @@ void __init ld_mmu_srmmu(void) 5743@@ -2200,6 +2200,13 @@ void __init ld_mmu_srmmu(void)
5736 PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED); 5744 PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED);
5737 BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY)); 5745 BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY));
@@ -5746,9 +5754,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/srmmu.c linux-2.6.38.3/arch/sparc/mm/srm
5746 BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL)); 5754 BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL));
5747 page_kernel = pgprot_val(SRMMU_PAGE_KERNEL); 5755 page_kernel = pgprot_val(SRMMU_PAGE_KERNEL);
5748 5756
5749diff -urNp linux-2.6.38.3/arch/um/include/asm/kmap_types.h linux-2.6.38.3/arch/um/include/asm/kmap_types.h 5757diff -urNp linux-2.6.38.2/arch/um/include/asm/kmap_types.h linux-2.6.38.2/arch/um/include/asm/kmap_types.h
5750--- linux-2.6.38.3/arch/um/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 5758--- linux-2.6.38.2/arch/um/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
5751+++ linux-2.6.38.3/arch/um/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 5759+++ linux-2.6.38.2/arch/um/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
5752@@ -23,6 +23,7 @@ enum km_type { 5760@@ -23,6 +23,7 @@ enum km_type {
5753 KM_IRQ1, 5761 KM_IRQ1,
5754 KM_SOFTIRQ0, 5762 KM_SOFTIRQ0,
@@ -5757,9 +5765,9 @@ diff -urNp linux-2.6.38.3/arch/um/include/asm/kmap_types.h linux-2.6.38.3/arch/u
5757 KM_TYPE_NR 5765 KM_TYPE_NR
5758 }; 5766 };
5759 5767
5760diff -urNp linux-2.6.38.3/arch/um/include/asm/page.h linux-2.6.38.3/arch/um/include/asm/page.h 5768diff -urNp linux-2.6.38.2/arch/um/include/asm/page.h linux-2.6.38.2/arch/um/include/asm/page.h
5761--- linux-2.6.38.3/arch/um/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 5769--- linux-2.6.38.2/arch/um/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
5762+++ linux-2.6.38.3/arch/um/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400 5770+++ linux-2.6.38.2/arch/um/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400
5763@@ -14,6 +14,9 @@ 5771@@ -14,6 +14,9 @@
5764 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) 5772 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
5765 #define PAGE_MASK (~(PAGE_SIZE-1)) 5773 #define PAGE_MASK (~(PAGE_SIZE-1))
@@ -5770,9 +5778,9 @@ diff -urNp linux-2.6.38.3/arch/um/include/asm/page.h linux-2.6.38.3/arch/um/incl
5770 #ifndef __ASSEMBLY__ 5778 #ifndef __ASSEMBLY__
5771 5779
5772 struct page; 5780 struct page;
5773diff -urNp linux-2.6.38.3/arch/um/kernel/process.c linux-2.6.38.3/arch/um/kernel/process.c 5781diff -urNp linux-2.6.38.2/arch/um/kernel/process.c linux-2.6.38.2/arch/um/kernel/process.c
5774--- linux-2.6.38.3/arch/um/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 5782--- linux-2.6.38.2/arch/um/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
5775+++ linux-2.6.38.3/arch/um/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 5783+++ linux-2.6.38.2/arch/um/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
5776@@ -404,22 +404,6 @@ int singlestepping(void * t) 5784@@ -404,22 +404,6 @@ int singlestepping(void * t)
5777 return 2; 5785 return 2;
5778 } 5786 }
@@ -5796,9 +5804,9 @@ diff -urNp linux-2.6.38.3/arch/um/kernel/process.c linux-2.6.38.3/arch/um/kernel
5796 unsigned long get_wchan(struct task_struct *p) 5804 unsigned long get_wchan(struct task_struct *p)
5797 { 5805 {
5798 unsigned long stack_page, sp, ip; 5806 unsigned long stack_page, sp, ip;
5799diff -urNp linux-2.6.38.3/arch/um/sys-i386/syscalls.c linux-2.6.38.3/arch/um/sys-i386/syscalls.c 5807diff -urNp linux-2.6.38.2/arch/um/sys-i386/syscalls.c linux-2.6.38.2/arch/um/sys-i386/syscalls.c
5800--- linux-2.6.38.3/arch/um/sys-i386/syscalls.c 2011-03-14 21:20:32.000000000 -0400 5808--- linux-2.6.38.2/arch/um/sys-i386/syscalls.c 2011-03-14 21:20:32.000000000 -0400
5801+++ linux-2.6.38.3/arch/um/sys-i386/syscalls.c 2011-04-17 15:57:32.000000000 -0400 5809+++ linux-2.6.38.2/arch/um/sys-i386/syscalls.c 2011-03-21 18:31:35.000000000 -0400
5802@@ -11,6 +11,21 @@ 5810@@ -11,6 +11,21 @@
5803 #include "asm/uaccess.h" 5811 #include "asm/uaccess.h"
5804 #include "asm/unistd.h" 5812 #include "asm/unistd.h"
@@ -5821,9 +5829,9 @@ diff -urNp linux-2.6.38.3/arch/um/sys-i386/syscalls.c linux-2.6.38.3/arch/um/sys
5821 /* 5829 /*
5822 * The prototype on i386 is: 5830 * The prototype on i386 is:
5823 * 5831 *
5824diff -urNp linux-2.6.38.3/arch/x86/boot/bitops.h linux-2.6.38.3/arch/x86/boot/bitops.h 5832diff -urNp linux-2.6.38.2/arch/x86/boot/bitops.h linux-2.6.38.2/arch/x86/boot/bitops.h
5825--- linux-2.6.38.3/arch/x86/boot/bitops.h 2011-03-14 21:20:32.000000000 -0400 5833--- linux-2.6.38.2/arch/x86/boot/bitops.h 2011-03-14 21:20:32.000000000 -0400
5826+++ linux-2.6.38.3/arch/x86/boot/bitops.h 2011-04-17 15:57:32.000000000 -0400 5834+++ linux-2.6.38.2/arch/x86/boot/bitops.h 2011-03-21 18:31:35.000000000 -0400
5827@@ -26,7 +26,7 @@ static inline int variable_test_bit(int 5835@@ -26,7 +26,7 @@ static inline int variable_test_bit(int
5828 u8 v; 5836 u8 v;
5829 const u32 *p = (const u32 *)addr; 5837 const u32 *p = (const u32 *)addr;
@@ -5842,9 +5850,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/bitops.h linux-2.6.38.3/arch/x86/boot/bi
5842 } 5850 }
5843 5851
5844 #endif /* BOOT_BITOPS_H */ 5852 #endif /* BOOT_BITOPS_H */
5845diff -urNp linux-2.6.38.3/arch/x86/boot/boot.h linux-2.6.38.3/arch/x86/boot/boot.h 5853diff -urNp linux-2.6.38.2/arch/x86/boot/boot.h linux-2.6.38.2/arch/x86/boot/boot.h
5846--- linux-2.6.38.3/arch/x86/boot/boot.h 2011-03-14 21:20:32.000000000 -0400 5854--- linux-2.6.38.2/arch/x86/boot/boot.h 2011-03-14 21:20:32.000000000 -0400
5847+++ linux-2.6.38.3/arch/x86/boot/boot.h 2011-04-17 15:57:32.000000000 -0400 5855+++ linux-2.6.38.2/arch/x86/boot/boot.h 2011-03-21 18:31:35.000000000 -0400
5848@@ -85,7 +85,7 @@ static inline void io_delay(void) 5856@@ -85,7 +85,7 @@ static inline void io_delay(void)
5849 static inline u16 ds(void) 5857 static inline u16 ds(void)
5850 { 5858 {
@@ -5863,9 +5871,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/boot.h linux-2.6.38.3/arch/x86/boot/boot
5863 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); 5871 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
5864 return diff; 5872 return diff;
5865 } 5873 }
5866diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_32.S linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 5874diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/head_32.S linux-2.6.38.2/arch/x86/boot/compressed/head_32.S
5867--- linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 2011-03-14 21:20:32.000000000 -0400 5875--- linux-2.6.38.2/arch/x86/boot/compressed/head_32.S 2011-03-14 21:20:32.000000000 -0400
5868+++ linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 2011-04-17 15:57:32.000000000 -0400 5876+++ linux-2.6.38.2/arch/x86/boot/compressed/head_32.S 2011-03-21 18:31:35.000000000 -0400
5869@@ -76,7 +76,7 @@ ENTRY(startup_32) 5877@@ -76,7 +76,7 @@ ENTRY(startup_32)
5870 notl %eax 5878 notl %eax
5871 andl %eax, %ebx 5879 andl %eax, %ebx
@@ -5894,9 +5902,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_32.S linux-2.6.38.3/arch
5894 addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) 5902 addl %ebx, -__PAGE_OFFSET(%ebx, %ecx)
5895 jmp 1b 5903 jmp 1b
5896 2: 5904 2:
5897diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_64.S linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 5905diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/head_64.S linux-2.6.38.2/arch/x86/boot/compressed/head_64.S
5898--- linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 2011-03-14 21:20:32.000000000 -0400 5906--- linux-2.6.38.2/arch/x86/boot/compressed/head_64.S 2011-03-14 21:20:32.000000000 -0400
5899+++ linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 2011-04-17 15:57:32.000000000 -0400 5907+++ linux-2.6.38.2/arch/x86/boot/compressed/head_64.S 2011-03-21 18:31:35.000000000 -0400
5900@@ -91,7 +91,7 @@ ENTRY(startup_32) 5908@@ -91,7 +91,7 @@ ENTRY(startup_32)
5901 notl %eax 5909 notl %eax
5902 andl %eax, %ebx 5910 andl %eax, %ebx
@@ -5915,9 +5923,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_64.S linux-2.6.38.3/arch
5915 #endif 5923 #endif
5916 5924
5917 /* Target address to relocate to for decompression */ 5925 /* Target address to relocate to for decompression */
5918diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/misc.c linux-2.6.38.3/arch/x86/boot/compressed/misc.c 5926diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/misc.c linux-2.6.38.2/arch/x86/boot/compressed/misc.c
5919--- linux-2.6.38.3/arch/x86/boot/compressed/misc.c 2011-03-14 21:20:32.000000000 -0400 5927--- linux-2.6.38.2/arch/x86/boot/compressed/misc.c 2011-03-14 21:20:32.000000000 -0400
5920+++ linux-2.6.38.3/arch/x86/boot/compressed/misc.c 2011-04-17 15:57:32.000000000 -0400 5928+++ linux-2.6.38.2/arch/x86/boot/compressed/misc.c 2011-03-21 18:31:35.000000000 -0400
5921@@ -310,7 +310,7 @@ static void parse_elf(void *output) 5929@@ -310,7 +310,7 @@ static void parse_elf(void *output)
5922 case PT_LOAD: 5930 case PT_LOAD:
5923 #ifdef CONFIG_RELOCATABLE 5931 #ifdef CONFIG_RELOCATABLE
@@ -5936,9 +5944,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/misc.c linux-2.6.38.3/arch/x8
5936 error("Wrong destination address"); 5944 error("Wrong destination address");
5937 #endif 5945 #endif
5938 5946
5939diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/relocs.c linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 5947diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/relocs.c linux-2.6.38.2/arch/x86/boot/compressed/relocs.c
5940--- linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 2011-03-14 21:20:32.000000000 -0400 5948--- linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 2011-03-14 21:20:32.000000000 -0400
5941+++ linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 2011-04-17 15:57:32.000000000 -0400 5949+++ linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 2011-03-21 18:31:35.000000000 -0400
5942@@ -13,8 +13,11 @@ 5950@@ -13,8 +13,11 @@
5943 5951
5944 static void die(char *fmt, ...); 5952 static void die(char *fmt, ...);
@@ -6131,9 +6139,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/relocs.c linux-2.6.38.3/arch/
6131 read_shdrs(fp); 6139 read_shdrs(fp);
6132 read_strtabs(fp); 6140 read_strtabs(fp);
6133 read_symtabs(fp); 6141 read_symtabs(fp);
6134diff -urNp linux-2.6.38.3/arch/x86/boot/cpucheck.c linux-2.6.38.3/arch/x86/boot/cpucheck.c 6142diff -urNp linux-2.6.38.2/arch/x86/boot/cpucheck.c linux-2.6.38.2/arch/x86/boot/cpucheck.c
6135--- linux-2.6.38.3/arch/x86/boot/cpucheck.c 2011-03-14 21:20:32.000000000 -0400 6143--- linux-2.6.38.2/arch/x86/boot/cpucheck.c 2011-03-14 21:20:32.000000000 -0400
6136+++ linux-2.6.38.3/arch/x86/boot/cpucheck.c 2011-04-17 15:57:32.000000000 -0400 6144+++ linux-2.6.38.2/arch/x86/boot/cpucheck.c 2011-03-21 18:31:35.000000000 -0400
6137@@ -74,7 +74,7 @@ static int has_fpu(void) 6145@@ -74,7 +74,7 @@ static int has_fpu(void)
6138 u16 fcw = -1, fsw = -1; 6146 u16 fcw = -1, fsw = -1;
6139 u32 cr0; 6147 u32 cr0;
@@ -6229,9 +6237,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/cpucheck.c linux-2.6.38.3/arch/x86/boot/
6229 6237
6230 err = check_flags(); 6238 err = check_flags();
6231 } 6239 }
6232diff -urNp linux-2.6.38.3/arch/x86/boot/header.S linux-2.6.38.3/arch/x86/boot/header.S 6240diff -urNp linux-2.6.38.2/arch/x86/boot/header.S linux-2.6.38.2/arch/x86/boot/header.S
6233--- linux-2.6.38.3/arch/x86/boot/header.S 2011-03-14 21:20:32.000000000 -0400 6241--- linux-2.6.38.2/arch/x86/boot/header.S 2011-03-14 21:20:32.000000000 -0400
6234+++ linux-2.6.38.3/arch/x86/boot/header.S 2011-04-17 15:57:32.000000000 -0400 6242+++ linux-2.6.38.2/arch/x86/boot/header.S 2011-03-21 18:31:35.000000000 -0400
6235@@ -224,7 +224,7 @@ setup_data: .quad 0 # 64-bit physical 6243@@ -224,7 +224,7 @@ setup_data: .quad 0 # 64-bit physical
6236 # single linked list of 6244 # single linked list of
6237 # struct setup_data 6245 # struct setup_data
@@ -6241,9 +6249,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/header.S linux-2.6.38.3/arch/x86/boot/he
6241 6249
6242 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset) 6250 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
6243 #define VO_INIT_SIZE (VO__end - VO__text) 6251 #define VO_INIT_SIZE (VO__end - VO__text)
6244diff -urNp linux-2.6.38.3/arch/x86/boot/memory.c linux-2.6.38.3/arch/x86/boot/memory.c 6252diff -urNp linux-2.6.38.2/arch/x86/boot/memory.c linux-2.6.38.2/arch/x86/boot/memory.c
6245--- linux-2.6.38.3/arch/x86/boot/memory.c 2011-03-14 21:20:32.000000000 -0400 6253--- linux-2.6.38.2/arch/x86/boot/memory.c 2011-03-14 21:20:32.000000000 -0400
6246+++ linux-2.6.38.3/arch/x86/boot/memory.c 2011-04-17 15:57:32.000000000 -0400 6254+++ linux-2.6.38.2/arch/x86/boot/memory.c 2011-03-21 18:31:35.000000000 -0400
6247@@ -19,7 +19,7 @@ 6255@@ -19,7 +19,7 @@
6248 6256
6249 static int detect_memory_e820(void) 6257 static int detect_memory_e820(void)
@@ -6253,9 +6261,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/memory.c linux-2.6.38.3/arch/x86/boot/me
6253 struct biosregs ireg, oreg; 6261 struct biosregs ireg, oreg;
6254 struct e820entry *desc = boot_params.e820_map; 6262 struct e820entry *desc = boot_params.e820_map;
6255 static struct e820entry buf; /* static so it is zeroed */ 6263 static struct e820entry buf; /* static so it is zeroed */
6256diff -urNp linux-2.6.38.3/arch/x86/boot/video.c linux-2.6.38.3/arch/x86/boot/video.c 6264diff -urNp linux-2.6.38.2/arch/x86/boot/video.c linux-2.6.38.2/arch/x86/boot/video.c
6257--- linux-2.6.38.3/arch/x86/boot/video.c 2011-03-14 21:20:32.000000000 -0400 6265--- linux-2.6.38.2/arch/x86/boot/video.c 2011-03-14 21:20:32.000000000 -0400
6258+++ linux-2.6.38.3/arch/x86/boot/video.c 2011-04-17 15:57:32.000000000 -0400 6266+++ linux-2.6.38.2/arch/x86/boot/video.c 2011-03-21 18:31:35.000000000 -0400
6259@@ -96,7 +96,7 @@ static void store_mode_params(void) 6267@@ -96,7 +96,7 @@ static void store_mode_params(void)
6260 static unsigned int get_entry(void) 6268 static unsigned int get_entry(void)
6261 { 6269 {
@@ -6265,9 +6273,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/video.c linux-2.6.38.3/arch/x86/boot/vid
6265 int key; 6273 int key;
6266 unsigned int v; 6274 unsigned int v;
6267 6275
6268diff -urNp linux-2.6.38.3/arch/x86/boot/video-vesa.c linux-2.6.38.3/arch/x86/boot/video-vesa.c 6276diff -urNp linux-2.6.38.2/arch/x86/boot/video-vesa.c linux-2.6.38.2/arch/x86/boot/video-vesa.c
6269--- linux-2.6.38.3/arch/x86/boot/video-vesa.c 2011-03-14 21:20:32.000000000 -0400 6277--- linux-2.6.38.2/arch/x86/boot/video-vesa.c 2011-03-14 21:20:32.000000000 -0400
6270+++ linux-2.6.38.3/arch/x86/boot/video-vesa.c 2011-04-17 15:57:32.000000000 -0400 6278+++ linux-2.6.38.2/arch/x86/boot/video-vesa.c 2011-03-21 18:31:35.000000000 -0400
6271@@ -200,6 +200,7 @@ static void vesa_store_pm_info(void) 6279@@ -200,6 +200,7 @@ static void vesa_store_pm_info(void)
6272 6280
6273 boot_params.screen_info.vesapm_seg = oreg.es; 6281 boot_params.screen_info.vesapm_seg = oreg.es;
@@ -6276,9 +6284,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/video-vesa.c linux-2.6.38.3/arch/x86/boo
6276 } 6284 }
6277 6285
6278 /* 6286 /*
6279diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_aout.c linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 6287diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_aout.c linux-2.6.38.2/arch/x86/ia32/ia32_aout.c
6280--- linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 2011-03-14 21:20:32.000000000 -0400 6288--- linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 2011-03-14 21:20:32.000000000 -0400
6281+++ linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 2011-04-17 15:57:32.000000000 -0400 6289+++ linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 2011-03-21 18:31:35.000000000 -0400
6282@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, st 6290@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, st
6283 unsigned long dump_start, dump_size; 6291 unsigned long dump_start, dump_size;
6284 struct user32 dump; 6292 struct user32 dump;
@@ -6288,9 +6296,9 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_aout.c linux-2.6.38.3/arch/x86/ia32
6288 fs = get_fs(); 6296 fs = get_fs();
6289 set_fs(KERNEL_DS); 6297 set_fs(KERNEL_DS);
6290 has_dumped = 1; 6298 has_dumped = 1;
6291diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32/ia32entry.S 6299diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32/ia32entry.S
6292--- linux-2.6.38.3/arch/x86/ia32/ia32entry.S 2011-03-14 21:20:32.000000000 -0400 6300--- linux-2.6.38.2/arch/x86/ia32/ia32entry.S 2011-03-14 21:20:32.000000000 -0400
6293+++ linux-2.6.38.3/arch/x86/ia32/ia32entry.S 2011-04-17 15:57:32.000000000 -0400 6301+++ linux-2.6.38.2/arch/x86/ia32/ia32entry.S 2011-03-21 18:31:35.000000000 -0400
6294@@ -13,6 +13,7 @@ 6302@@ -13,6 +13,7 @@
6295 #include <asm/thread_info.h> 6303 #include <asm/thread_info.h>
6296 #include <asm/segment.h> 6304 #include <asm/segment.h>
@@ -6299,7 +6307,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6299 #include <linux/linkage.h> 6307 #include <linux/linkage.h>
6300 6308
6301 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 6309 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
6302@@ -93,6 +94,23 @@ ENTRY(native_irq_enable_sysexit) 6310@@ -93,6 +94,18 @@ ENTRY(native_irq_enable_sysexit)
6303 ENDPROC(native_irq_enable_sysexit) 6311 ENDPROC(native_irq_enable_sysexit)
6304 #endif 6312 #endif
6305 6313
@@ -6313,36 +6321,20 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6313+#ifdef CONFIG_PAX_MEMORY_UDEREF 6321+#ifdef CONFIG_PAX_MEMORY_UDEREF
6314+ call pax_exit_kernel_user 6322+ call pax_exit_kernel_user
6315+#endif 6323+#endif
6316+#ifdef CONFIG_PAX_RANDKSTACK
6317+ push %rax
6318+ call pax_randomize_kstack
6319+ pop %rax
6320+#endif
6321+ .endm 6324+ .endm
6322+ 6325+
6323 /* 6326 /*
6324 * 32bit SYSENTER instruction entry. 6327 * 32bit SYSENTER instruction entry.
6325 * 6328 *
6326@@ -119,7 +137,7 @@ ENTRY(ia32_sysenter_target) 6329@@ -120,6 +133,7 @@ ENTRY(ia32_sysenter_target)
6327 CFI_REGISTER rsp,rbp
6328 SWAPGS_UNSAFE_STACK 6330 SWAPGS_UNSAFE_STACK
6329 movq PER_CPU_VAR(kernel_stack), %rsp 6331 movq PER_CPU_VAR(kernel_stack), %rsp
6330- addq $(KERNEL_STACK_OFFSET),%rsp 6332 addq $(KERNEL_STACK_OFFSET),%rsp
6331+ pax_enter_kernel_user 6333+ pax_enter_kernel_user
6332 /* 6334 /*
6333 * No need to follow this irqs on/off section: the syscall 6335 * No need to follow this irqs on/off section: the syscall
6334 * disabled irqs, here we enable it straight after entry: 6336 * disabled irqs, here we enable it straight after entry:
6335@@ -135,7 +153,8 @@ ENTRY(ia32_sysenter_target) 6337@@ -150,6 +164,12 @@ ENTRY(ia32_sysenter_target)
6336 pushfq
6337 CFI_ADJUST_CFA_OFFSET 8
6338 /*CFI_REL_OFFSET rflags,0*/
6339- movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
6340+ GET_THREAD_INFO(%r10)
6341+ movl TI_sysenter_return(%r10), %r10d
6342 CFI_REGISTER rip,r10
6343 pushq $__USER32_CS
6344 CFI_ADJUST_CFA_OFFSET 8
6345@@ -150,6 +169,12 @@ ENTRY(ia32_sysenter_target)
6346 SAVE_ARGS 0,0,1 6338 SAVE_ARGS 0,0,1
6347 /* no need to do an access_ok check here because rbp has been 6339 /* no need to do an access_ok check here because rbp has been
6348 32bit zero extended */ 6340 32bit zero extended */
@@ -6355,7 +6347,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6355 1: movl (%rbp),%ebp 6347 1: movl (%rbp),%ebp
6356 .section __ex_table,"a" 6348 .section __ex_table,"a"
6357 .quad 1b,ia32_badarg 6349 .quad 1b,ia32_badarg
6358@@ -172,6 +197,7 @@ sysenter_dispatch: 6350@@ -172,6 +192,7 @@ sysenter_dispatch:
6359 testl $_TIF_ALLWORK_MASK,TI_flags(%r10) 6351 testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
6360 jnz sysexit_audit 6352 jnz sysexit_audit
6361 sysexit_from_sys_call: 6353 sysexit_from_sys_call:
@@ -6363,15 +6355,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6363 andl $~TS_COMPAT,TI_status(%r10) 6355 andl $~TS_COMPAT,TI_status(%r10)
6364 /* clear IF, that popfq doesn't enable interrupts early */ 6356 /* clear IF, that popfq doesn't enable interrupts early */
6365 andl $~0x200,EFLAGS-R11(%rsp) 6357 andl $~0x200,EFLAGS-R11(%rsp)
6366@@ -283,19 +309,24 @@ ENDPROC(ia32_sysenter_target) 6358@@ -290,6 +311,11 @@ ENTRY(ia32_cstar_target)
6367 ENTRY(ia32_cstar_target)
6368 CFI_STARTPROC32 simple
6369 CFI_SIGNAL_FRAME
6370- CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
6371+ CFI_DEF_CFA rsp,0
6372 CFI_REGISTER rip,rcx
6373 /*CFI_REGISTER rflags,r11*/
6374 SWAPGS_UNSAFE_STACK
6375 movl %esp,%r8d 6359 movl %esp,%r8d
6376 CFI_REGISTER rsp,r8 6360 CFI_REGISTER rsp,r8
6377 movq PER_CPU_VAR(kernel_stack),%rsp 6361 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -6383,14 +6367,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6383 /* 6367 /*
6384 * No need to follow this irqs on/off section: the syscall 6368 * No need to follow this irqs on/off section: the syscall
6385 * disabled irqs and here we enable it straight after entry: 6369 * disabled irqs and here we enable it straight after entry:
6386 */ 6370@@ -311,6 +337,12 @@ ENTRY(ia32_cstar_target)
6387 ENABLE_INTERRUPTS(CLBR_NONE)
6388- SAVE_ARGS 8,1,1
6389+ SAVE_ARGS 8*6,1,1
6390 movl %eax,%eax /* zero extension */
6391 movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
6392 movq %rcx,RIP-ARGOFFSET(%rsp)
6393@@ -311,6 +342,12 @@ ENTRY(ia32_cstar_target)
6394 /* no need to do an access_ok check here because r8 has been 6371 /* no need to do an access_ok check here because r8 has been
6395 32bit zero extended */ 6372 32bit zero extended */
6396 /* hardware stack frame is complete now */ 6373 /* hardware stack frame is complete now */
@@ -6403,16 +6380,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6403 1: movl (%r8),%r9d 6380 1: movl (%r8),%r9d
6404 .section __ex_table,"a" 6381 .section __ex_table,"a"
6405 .quad 1b,ia32_badarg 6382 .quad 1b,ia32_badarg
6406@@ -323,7 +360,7 @@ ENTRY(ia32_cstar_target) 6383@@ -333,6 +365,7 @@ cstar_dispatch:
6407 cmpq $IA32_NR_syscalls-1,%rax
6408 ja ia32_badsys
6409 cstar_do_call:
6410- IA32_ARG_FIXUP 1
6411+ IA32_ARG_FIXUP 0
6412 cstar_dispatch:
6413 call *ia32_sys_call_table(,%rax,8)
6414 movq %rax,RAX-ARGOFFSET(%rsp)
6415@@ -333,6 +370,7 @@ cstar_dispatch:
6416 testl $_TIF_ALLWORK_MASK,TI_flags(%r10) 6384 testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
6417 jnz sysretl_audit 6385 jnz sysretl_audit
6418 sysretl_from_sys_call: 6386 sysretl_from_sys_call:
@@ -6420,7 +6388,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6420 andl $~TS_COMPAT,TI_status(%r10) 6388 andl $~TS_COMPAT,TI_status(%r10)
6421 RESTORE_ARGS 1,-ARG_SKIP,1,1,1 6389 RESTORE_ARGS 1,-ARG_SKIP,1,1,1
6422 movl RIP-ARGOFFSET(%rsp),%ecx 6390 movl RIP-ARGOFFSET(%rsp),%ecx
6423@@ -415,6 +453,7 @@ ENTRY(ia32_syscall) 6391@@ -415,6 +448,7 @@ ENTRY(ia32_syscall)
6424 CFI_REL_OFFSET rip,RIP-RIP 6392 CFI_REL_OFFSET rip,RIP-RIP
6425 PARAVIRT_ADJUST_EXCEPTION_FRAME 6393 PARAVIRT_ADJUST_EXCEPTION_FRAME
6426 SWAPGS 6394 SWAPGS
@@ -6428,9 +6396,9 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6428 /* 6396 /*
6429 * No need to follow this irqs on/off section: the syscall 6397 * No need to follow this irqs on/off section: the syscall
6430 * disabled irqs and here we enable it straight after entry: 6398 * disabled irqs and here we enable it straight after entry:
6431diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_signal.c linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 6399diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_signal.c linux-2.6.38.2/arch/x86/ia32/ia32_signal.c
6432--- linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 2011-03-14 21:20:32.000000000 -0400 6400--- linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 2011-03-14 21:20:32.000000000 -0400
6433+++ linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 2011-04-17 15:57:32.000000000 -0400 6401+++ linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 2011-03-21 18:31:35.000000000 -0400
6434@@ -403,7 +403,7 @@ static void __user *get_sigframe(struct 6402@@ -403,7 +403,7 @@ static void __user *get_sigframe(struct
6435 sp -= frame_size; 6403 sp -= frame_size;
6436 /* Align the stack pointer according to the i386 ABI, 6404 /* Align the stack pointer according to the i386 ABI,
@@ -6480,9 +6448,9 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_signal.c linux-2.6.38.3/arch/x86/ia
6480 } put_user_catch(err); 6448 } put_user_catch(err);
6481 6449
6482 if (err) 6450 if (err)
6483diff -urNp linux-2.6.38.3/arch/x86/include/asm/alternative.h linux-2.6.38.3/arch/x86/include/asm/alternative.h 6451diff -urNp linux-2.6.38.2/arch/x86/include/asm/alternative.h linux-2.6.38.2/arch/x86/include/asm/alternative.h
6484--- linux-2.6.38.3/arch/x86/include/asm/alternative.h 2011-03-14 21:20:32.000000000 -0400 6452--- linux-2.6.38.2/arch/x86/include/asm/alternative.h 2011-03-14 21:20:32.000000000 -0400
6485+++ linux-2.6.38.3/arch/x86/include/asm/alternative.h 2011-04-17 15:57:32.000000000 -0400 6453+++ linux-2.6.38.2/arch/x86/include/asm/alternative.h 2011-03-21 18:31:35.000000000 -0400
6486@@ -94,7 +94,7 @@ static inline int alternatives_text_rese 6454@@ -94,7 +94,7 @@ static inline int alternatives_text_rese
6487 ".section .discard,\"aw\",@progbits\n" \ 6455 ".section .discard,\"aw\",@progbits\n" \
6488 " .byte 0xff + (664f-663f) - (662b-661b)\n" /* rlen <= slen */ \ 6456 " .byte 0xff + (664f-663f) - (662b-661b)\n" /* rlen <= slen */ \
@@ -6492,9 +6460,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/alternative.h linux-2.6.38.3/arch
6492 "663:\n\t" newinstr "\n664:\n" /* replacement */ \ 6460 "663:\n\t" newinstr "\n664:\n" /* replacement */ \
6493 ".previous" 6461 ".previous"
6494 6462
6495diff -urNp linux-2.6.38.3/arch/x86/include/asm/apm.h linux-2.6.38.3/arch/x86/include/asm/apm.h 6463diff -urNp linux-2.6.38.2/arch/x86/include/asm/apm.h linux-2.6.38.2/arch/x86/include/asm/apm.h
6496--- linux-2.6.38.3/arch/x86/include/asm/apm.h 2011-03-14 21:20:32.000000000 -0400 6464--- linux-2.6.38.2/arch/x86/include/asm/apm.h 2011-03-14 21:20:32.000000000 -0400
6497+++ linux-2.6.38.3/arch/x86/include/asm/apm.h 2011-04-17 15:57:32.000000000 -0400 6465+++ linux-2.6.38.2/arch/x86/include/asm/apm.h 2011-03-21 18:31:35.000000000 -0400
6498@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 6466@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32
6499 __asm__ __volatile__(APM_DO_ZERO_SEGS 6467 __asm__ __volatile__(APM_DO_ZERO_SEGS
6500 "pushl %%edi\n\t" 6468 "pushl %%edi\n\t"
@@ -6513,9 +6481,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/apm.h linux-2.6.38.3/arch/x86/inc
6513 "setc %%bl\n\t" 6481 "setc %%bl\n\t"
6514 "popl %%ebp\n\t" 6482 "popl %%ebp\n\t"
6515 "popl %%edi\n\t" 6483 "popl %%edi\n\t"
6516diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 6484diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h
6517--- linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 2011-03-14 21:20:32.000000000 -0400 6485--- linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h 2011-03-14 21:20:32.000000000 -0400
6518+++ linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 2011-04-17 15:57:32.000000000 -0400 6486+++ linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h 2011-03-21 18:31:35.000000000 -0400
6519@@ -12,6 +12,14 @@ typedef struct { 6487@@ -12,6 +12,14 @@ typedef struct {
6520 u64 __aligned(8) counter; 6488 u64 __aligned(8) counter;
6521 } atomic64_t; 6489 } atomic64_t;
@@ -6531,9 +6499,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h linux-2.6.38.3/arch
6531 #define ATOMIC64_INIT(val) { (val) } 6499 #define ATOMIC64_INIT(val) { (val) }
6532 6500
6533 #ifdef CONFIG_X86_CMPXCHG64 6501 #ifdef CONFIG_X86_CMPXCHG64
6534diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 6502diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h
6535--- linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 2011-03-14 21:20:32.000000000 -0400 6503--- linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h 2011-03-14 21:20:32.000000000 -0400
6536+++ linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 2011-04-17 15:57:32.000000000 -0400 6504+++ linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h 2011-03-21 18:31:35.000000000 -0400
6537@@ -18,7 +18,19 @@ 6505@@ -18,7 +18,19 @@
6538 */ 6506 */
6539 static inline long atomic64_read(const atomic64_t *v) 6507 static inline long atomic64_read(const atomic64_t *v)
@@ -6843,9 +6811,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h linux-2.6.38.3/arch
6843 } 6811 }
6844 6812
6845 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 6813 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
6846diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic.h linux-2.6.38.3/arch/x86/include/asm/atomic.h 6814diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic.h linux-2.6.38.2/arch/x86/include/asm/atomic.h
6847--- linux-2.6.38.3/arch/x86/include/asm/atomic.h 2011-03-14 21:20:32.000000000 -0400 6815--- linux-2.6.38.2/arch/x86/include/asm/atomic.h 2011-03-14 21:20:32.000000000 -0400
6848+++ linux-2.6.38.3/arch/x86/include/asm/atomic.h 2011-04-17 15:57:32.000000000 -0400 6816+++ linux-2.6.38.2/arch/x86/include/asm/atomic.h 2011-03-21 18:31:35.000000000 -0400
6849@@ -22,7 +22,18 @@ 6817@@ -22,7 +22,18 @@
6850 */ 6818 */
6851 static inline int atomic_read(const atomic_t *v) 6819 static inline int atomic_read(const atomic_t *v)
@@ -7217,9 +7185,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic.h linux-2.6.38.3/arch/x86/
7217 /* 7185 /*
7218 * atomic_dec_if_positive - decrement by 1 if old value positive 7186 * atomic_dec_if_positive - decrement by 1 if old value positive
7219 * @v: pointer of type atomic_t 7187 * @v: pointer of type atomic_t
7220diff -urNp linux-2.6.38.3/arch/x86/include/asm/bitops.h linux-2.6.38.3/arch/x86/include/asm/bitops.h 7188diff -urNp linux-2.6.38.2/arch/x86/include/asm/bitops.h linux-2.6.38.2/arch/x86/include/asm/bitops.h
7221--- linux-2.6.38.3/arch/x86/include/asm/bitops.h 2011-03-14 21:20:32.000000000 -0400 7189--- linux-2.6.38.2/arch/x86/include/asm/bitops.h 2011-03-14 21:20:32.000000000 -0400
7222+++ linux-2.6.38.3/arch/x86/include/asm/bitops.h 2011-04-17 15:57:32.000000000 -0400 7190+++ linux-2.6.38.2/arch/x86/include/asm/bitops.h 2011-03-21 18:31:35.000000000 -0400
7223@@ -38,7 +38,7 @@ 7191@@ -38,7 +38,7 @@
7224 * a mask operation on a byte. 7192 * a mask operation on a byte.
7225 */ 7193 */
@@ -7229,9 +7197,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/bitops.h linux-2.6.38.3/arch/x86/
7229 #define CONST_MASK(nr) (1 << ((nr) & 7)) 7197 #define CONST_MASK(nr) (1 << ((nr) & 7))
7230 7198
7231 /** 7199 /**
7232diff -urNp linux-2.6.38.3/arch/x86/include/asm/boot.h linux-2.6.38.3/arch/x86/include/asm/boot.h 7200diff -urNp linux-2.6.38.2/arch/x86/include/asm/boot.h linux-2.6.38.2/arch/x86/include/asm/boot.h
7233--- linux-2.6.38.3/arch/x86/include/asm/boot.h 2011-03-14 21:20:32.000000000 -0400 7201--- linux-2.6.38.2/arch/x86/include/asm/boot.h 2011-03-14 21:20:32.000000000 -0400
7234+++ linux-2.6.38.3/arch/x86/include/asm/boot.h 2011-04-17 15:57:32.000000000 -0400 7202+++ linux-2.6.38.2/arch/x86/include/asm/boot.h 2011-03-21 18:31:35.000000000 -0400
7235@@ -11,10 +11,15 @@ 7203@@ -11,10 +11,15 @@
7236 #include <asm/pgtable_types.h> 7204 #include <asm/pgtable_types.h>
7237 7205
@@ -7249,9 +7217,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/boot.h linux-2.6.38.3/arch/x86/in
7249 /* Minimum kernel alignment, as a power of two */ 7217 /* Minimum kernel alignment, as a power of two */
7250 #ifdef CONFIG_X86_64 7218 #ifdef CONFIG_X86_64
7251 #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT 7219 #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT
7252diff -urNp linux-2.6.38.3/arch/x86/include/asm/cacheflush.h linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 7220diff -urNp linux-2.6.38.2/arch/x86/include/asm/cacheflush.h linux-2.6.38.2/arch/x86/include/asm/cacheflush.h
7253--- linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 2011-03-14 21:20:32.000000000 -0400 7221--- linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 2011-03-14 21:20:32.000000000 -0400
7254+++ linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 2011-04-17 15:57:32.000000000 -0400 7222+++ linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 2011-03-21 18:31:35.000000000 -0400
7255@@ -26,7 +26,7 @@ static inline unsigned long get_page_mem 7223@@ -26,7 +26,7 @@ static inline unsigned long get_page_mem
7256 unsigned long pg_flags = pg->flags & _PGMT_MASK; 7224 unsigned long pg_flags = pg->flags & _PGMT_MASK;
7257 7225
@@ -7261,9 +7229,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/cacheflush.h linux-2.6.38.3/arch/
7261 else if (pg_flags == _PGMT_WC) 7229 else if (pg_flags == _PGMT_WC)
7262 return _PAGE_CACHE_WC; 7230 return _PAGE_CACHE_WC;
7263 else if (pg_flags == _PGMT_UC_MINUS) 7231 else if (pg_flags == _PGMT_UC_MINUS)
7264diff -urNp linux-2.6.38.3/arch/x86/include/asm/cache.h linux-2.6.38.3/arch/x86/include/asm/cache.h 7232diff -urNp linux-2.6.38.2/arch/x86/include/asm/cache.h linux-2.6.38.2/arch/x86/include/asm/cache.h
7265--- linux-2.6.38.3/arch/x86/include/asm/cache.h 2011-03-14 21:20:32.000000000 -0400 7233--- linux-2.6.38.2/arch/x86/include/asm/cache.h 2011-03-14 21:20:32.000000000 -0400
7266+++ linux-2.6.38.3/arch/x86/include/asm/cache.h 2011-04-17 15:57:32.000000000 -0400 7234+++ linux-2.6.38.2/arch/x86/include/asm/cache.h 2011-03-21 18:31:35.000000000 -0400
7267@@ -8,6 +8,7 @@ 7235@@ -8,6 +8,7 @@
7268 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 7236 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
7269 7237
@@ -7272,9 +7240,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/cache.h linux-2.6.38.3/arch/x86/i
7272 7240
7273 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT 7241 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
7274 #define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT) 7242 #define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
7275diff -urNp linux-2.6.38.3/arch/x86/include/asm/checksum_32.h linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 7243diff -urNp linux-2.6.38.2/arch/x86/include/asm/checksum_32.h linux-2.6.38.2/arch/x86/include/asm/checksum_32.h
7276--- linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 2011-03-14 21:20:32.000000000 -0400 7244--- linux-2.6.38.2/arch/x86/include/asm/checksum_32.h 2011-03-14 21:20:32.000000000 -0400
7277+++ linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 2011-04-17 15:57:32.000000000 -0400 7245+++ linux-2.6.38.2/arch/x86/include/asm/checksum_32.h 2011-03-21 18:31:35.000000000 -0400
7278@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene 7246@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene
7279 int len, __wsum sum, 7247 int len, __wsum sum,
7280 int *src_err_ptr, int *dst_err_ptr); 7248 int *src_err_ptr, int *dst_err_ptr);
@@ -7308,9 +7276,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/checksum_32.h linux-2.6.38.3/arch
7308 len, sum, NULL, err_ptr); 7276 len, sum, NULL, err_ptr);
7309 7277
7310 if (len) 7278 if (len)
7311diff -urNp linux-2.6.38.3/arch/x86/include/asm/cpufeature.h linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 7279diff -urNp linux-2.6.38.2/arch/x86/include/asm/cpufeature.h linux-2.6.38.2/arch/x86/include/asm/cpufeature.h
7312--- linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 2011-03-14 21:20:32.000000000 -0400 7280--- linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 2011-03-14 21:20:32.000000000 -0400
7313+++ linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 2011-04-17 15:57:32.000000000 -0400 7281+++ linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 2011-03-21 18:31:35.000000000 -0400
7314@@ -349,7 +349,7 @@ static __always_inline __pure bool __sta 7282@@ -349,7 +349,7 @@ static __always_inline __pure bool __sta
7315 ".section .discard,\"aw\",@progbits\n" 7283 ".section .discard,\"aw\",@progbits\n"
7316 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */ 7284 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
@@ -7320,9 +7288,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/cpufeature.h linux-2.6.38.3/arch/
7320 "3: movb $1,%0\n" 7288 "3: movb $1,%0\n"
7321 "4:\n" 7289 "4:\n"
7322 ".previous\n" 7290 ".previous\n"
7323diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc_defs.h linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 7291diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc_defs.h linux-2.6.38.2/arch/x86/include/asm/desc_defs.h
7324--- linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 2011-03-14 21:20:32.000000000 -0400 7292--- linux-2.6.38.2/arch/x86/include/asm/desc_defs.h 2011-03-14 21:20:32.000000000 -0400
7325+++ linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 2011-04-17 15:57:32.000000000 -0400 7293+++ linux-2.6.38.2/arch/x86/include/asm/desc_defs.h 2011-03-21 18:31:35.000000000 -0400
7326@@ -31,6 +31,12 @@ struct desc_struct { 7294@@ -31,6 +31,12 @@ struct desc_struct {
7327 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1; 7295 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
7328 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8; 7296 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
@@ -7336,9 +7304,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc_defs.h linux-2.6.38.3/arch/x
7336 }; 7304 };
7337 } __attribute__((packed)); 7305 } __attribute__((packed));
7338 7306
7339diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc.h linux-2.6.38.3/arch/x86/include/asm/desc.h 7307diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc.h linux-2.6.38.2/arch/x86/include/asm/desc.h
7340--- linux-2.6.38.3/arch/x86/include/asm/desc.h 2011-03-14 21:20:32.000000000 -0400 7308--- linux-2.6.38.2/arch/x86/include/asm/desc.h 2011-03-14 21:20:32.000000000 -0400
7341+++ linux-2.6.38.3/arch/x86/include/asm/desc.h 2011-04-17 15:57:32.000000000 -0400 7309+++ linux-2.6.38.2/arch/x86/include/asm/desc.h 2011-03-21 18:31:35.000000000 -0400
7342@@ -4,6 +4,7 @@ 7310@@ -4,6 +4,7 @@
7343 #include <asm/desc_defs.h> 7311 #include <asm/desc_defs.h>
7344 #include <asm/ldt.h> 7312 #include <asm/ldt.h>
@@ -7526,9 +7494,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc.h linux-2.6.38.3/arch/x86/in
7526+#endif 7494+#endif
7527+ 7495+
7528 #endif /* _ASM_X86_DESC_H */ 7496 #endif /* _ASM_X86_DESC_H */
7529diff -urNp linux-2.6.38.3/arch/x86/include/asm/device.h linux-2.6.38.3/arch/x86/include/asm/device.h 7497diff -urNp linux-2.6.38.2/arch/x86/include/asm/device.h linux-2.6.38.2/arch/x86/include/asm/device.h
7530--- linux-2.6.38.3/arch/x86/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 7498--- linux-2.6.38.2/arch/x86/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
7531+++ linux-2.6.38.3/arch/x86/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 7499+++ linux-2.6.38.2/arch/x86/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
7532@@ -6,7 +6,7 @@ struct dev_archdata { 7500@@ -6,7 +6,7 @@ struct dev_archdata {
7533 void *acpi_handle; 7501 void *acpi_handle;
7534 #endif 7502 #endif
@@ -7538,9 +7506,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/device.h linux-2.6.38.3/arch/x86/
7538 #endif 7506 #endif
7539 #if defined(CONFIG_DMAR) || defined(CONFIG_AMD_IOMMU) 7507 #if defined(CONFIG_DMAR) || defined(CONFIG_AMD_IOMMU)
7540 void *iommu; /* hook for IOMMU specific extension */ 7508 void *iommu; /* hook for IOMMU specific extension */
7541diff -urNp linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 7509diff -urNp linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h
7542--- linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 7510--- linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
7543+++ linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 7511+++ linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
7544@@ -26,9 +26,9 @@ extern int iommu_merge; 7512@@ -26,9 +26,9 @@ extern int iommu_merge;
7545 extern struct device x86_dma_fallback_dev; 7513 extern struct device x86_dma_fallback_dev;
7546 extern int panic_on_overflow; 7514 extern int panic_on_overflow;
@@ -7580,9 +7548,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h linux-2.6.38.3/arch
7580 7548
7581 WARN_ON(irqs_disabled()); /* for portability */ 7549 WARN_ON(irqs_disabled()); /* for portability */
7582 7550
7583diff -urNp linux-2.6.38.3/arch/x86/include/asm/e820.h linux-2.6.38.3/arch/x86/include/asm/e820.h 7551diff -urNp linux-2.6.38.2/arch/x86/include/asm/e820.h linux-2.6.38.2/arch/x86/include/asm/e820.h
7584--- linux-2.6.38.3/arch/x86/include/asm/e820.h 2011-03-14 21:20:32.000000000 -0400 7552--- linux-2.6.38.2/arch/x86/include/asm/e820.h 2011-03-14 21:20:32.000000000 -0400
7585+++ linux-2.6.38.3/arch/x86/include/asm/e820.h 2011-04-17 15:57:32.000000000 -0400 7553+++ linux-2.6.38.2/arch/x86/include/asm/e820.h 2011-03-21 18:31:35.000000000 -0400
7586@@ -69,7 +69,7 @@ struct e820map { 7554@@ -69,7 +69,7 @@ struct e820map {
7587 #define ISA_START_ADDRESS 0xa0000 7555 #define ISA_START_ADDRESS 0xa0000
7588 #define ISA_END_ADDRESS 0x100000 7556 #define ISA_END_ADDRESS 0x100000
@@ -7592,9 +7560,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/e820.h linux-2.6.38.3/arch/x86/in
7592 #define BIOS_END 0x00100000 7560 #define BIOS_END 0x00100000
7593 7561
7594 #define BIOS_ROM_BASE 0xffe00000 7562 #define BIOS_ROM_BASE 0xffe00000
7595diff -urNp linux-2.6.38.3/arch/x86/include/asm/elf.h linux-2.6.38.3/arch/x86/include/asm/elf.h 7563diff -urNp linux-2.6.38.2/arch/x86/include/asm/elf.h linux-2.6.38.2/arch/x86/include/asm/elf.h
7596--- linux-2.6.38.3/arch/x86/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 7564--- linux-2.6.38.2/arch/x86/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
7597+++ linux-2.6.38.3/arch/x86/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 7565+++ linux-2.6.38.2/arch/x86/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
7598@@ -237,7 +237,25 @@ extern int force_personality32; 7566@@ -237,7 +237,25 @@ extern int force_personality32;
7599 the loader. We need to make sure that it is out of the way of the program 7567 the loader. We need to make sure that it is out of the way of the program
7600 that it will "exec", and that there is sufficient room for the brk. */ 7568 that it will "exec", and that there is sufficient room for the brk. */
@@ -7648,9 +7616,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/elf.h linux-2.6.38.3/arch/x86/inc
7648-#define arch_randomize_brk arch_randomize_brk 7616-#define arch_randomize_brk arch_randomize_brk
7649- 7617-
7650 #endif /* _ASM_X86_ELF_H */ 7618 #endif /* _ASM_X86_ELF_H */
7651diff -urNp linux-2.6.38.3/arch/x86/include/asm/futex.h linux-2.6.38.3/arch/x86/include/asm/futex.h 7619diff -urNp linux-2.6.38.2/arch/x86/include/asm/futex.h linux-2.6.38.2/arch/x86/include/asm/futex.h
7652--- linux-2.6.38.3/arch/x86/include/asm/futex.h 2011-03-14 21:20:32.000000000 -0400 7620--- linux-2.6.38.2/arch/x86/include/asm/futex.h 2011-03-14 21:20:32.000000000 -0400
7653+++ linux-2.6.38.3/arch/x86/include/asm/futex.h 2011-04-17 15:57:32.000000000 -0400 7621+++ linux-2.6.38.2/arch/x86/include/asm/futex.h 2011-03-21 18:31:35.000000000 -0400
7654@@ -12,16 +12,18 @@ 7622@@ -12,16 +12,18 @@
7655 #include <asm/system.h> 7623 #include <asm/system.h>
7656 7624
@@ -7726,9 +7694,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/futex.h linux-2.6.38.3/arch/x86/i
7726 : "i" (-EFAULT), "r" (newval), "0" (oldval) 7694 : "i" (-EFAULT), "r" (newval), "0" (oldval)
7727 : "memory" 7695 : "memory"
7728 ); 7696 );
7729diff -urNp linux-2.6.38.3/arch/x86/include/asm/i387.h linux-2.6.38.3/arch/x86/include/asm/i387.h 7697diff -urNp linux-2.6.38.2/arch/x86/include/asm/i387.h linux-2.6.38.2/arch/x86/include/asm/i387.h
7730--- linux-2.6.38.3/arch/x86/include/asm/i387.h 2011-03-14 21:20:32.000000000 -0400 7698--- linux-2.6.38.2/arch/x86/include/asm/i387.h 2011-03-14 21:20:32.000000000 -0400
7731+++ linux-2.6.38.3/arch/x86/include/asm/i387.h 2011-04-17 15:57:32.000000000 -0400 7699+++ linux-2.6.38.2/arch/x86/include/asm/i387.h 2011-03-21 18:31:35.000000000 -0400
7732@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struc 7700@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struc
7733 { 7701 {
7734 int err; 7702 int err;
@@ -7769,27 +7737,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/i387.h linux-2.6.38.3/arch/x86/in
7769 7737
7770 /* 7738 /*
7771 * These must be called with preempt disabled 7739 * These must be called with preempt disabled
7772@@ -237,7 +242,7 @@ static inline void fpu_save_init(struct 7740diff -urNp linux-2.6.38.2/arch/x86/include/asm/io.h linux-2.6.38.2/arch/x86/include/asm/io.h
7773 } else if (use_fxsr()) { 7741--- linux-2.6.38.2/arch/x86/include/asm/io.h 2011-03-14 21:20:32.000000000 -0400
7774 fpu_fxsave(fpu); 7742+++ linux-2.6.38.2/arch/x86/include/asm/io.h 2011-03-21 18:31:35.000000000 -0400
7775 } else {
7776- asm volatile("fsave %[fx]; fwait"
7777+ asm volatile("fnsave %[fx]; fwait"
7778 : [fx] "=m" (fpu->state->fsave));
7779 return;
7780 }
7781@@ -312,7 +317,7 @@ static inline void kernel_fpu_begin(void
7782 struct thread_info *me = current_thread_info();
7783 preempt_disable();
7784 if (me->status & TS_USEDFPU)
7785- __save_init_fpu(me->task);
7786+ __save_init_fpu(current);
7787 else
7788 clts();
7789 }
7790diff -urNp linux-2.6.38.3/arch/x86/include/asm/io.h linux-2.6.38.3/arch/x86/include/asm/io.h
7791--- linux-2.6.38.3/arch/x86/include/asm/io.h 2011-03-14 21:20:32.000000000 -0400
7792+++ linux-2.6.38.3/arch/x86/include/asm/io.h 2011-04-17 15:57:32.000000000 -0400
7793@@ -216,6 +216,17 @@ extern void set_iounmap_nonlazy(void); 7743@@ -216,6 +216,17 @@ extern void set_iounmap_nonlazy(void);
7794 7744
7795 #include <linux/vmalloc.h> 7745 #include <linux/vmalloc.h>
@@ -7808,9 +7758,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/io.h linux-2.6.38.3/arch/x86/incl
7808 /* 7758 /*
7809 * Convert a virtual cached pointer to an uncached pointer 7759 * Convert a virtual cached pointer to an uncached pointer
7810 */ 7760 */
7811diff -urNp linux-2.6.38.3/arch/x86/include/asm/iommu.h linux-2.6.38.3/arch/x86/include/asm/iommu.h 7761diff -urNp linux-2.6.38.2/arch/x86/include/asm/iommu.h linux-2.6.38.2/arch/x86/include/asm/iommu.h
7812--- linux-2.6.38.3/arch/x86/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400 7762--- linux-2.6.38.2/arch/x86/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400
7813+++ linux-2.6.38.3/arch/x86/include/asm/iommu.h 2011-04-17 15:57:32.000000000 -0400 7763+++ linux-2.6.38.2/arch/x86/include/asm/iommu.h 2011-03-21 18:31:35.000000000 -0400
7814@@ -1,7 +1,7 @@ 7764@@ -1,7 +1,7 @@
7815 #ifndef _ASM_X86_IOMMU_H 7765 #ifndef _ASM_X86_IOMMU_H
7816 #define _ASM_X86_IOMMU_H 7766 #define _ASM_X86_IOMMU_H
@@ -7820,9 +7770,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/iommu.h linux-2.6.38.3/arch/x86/i
7820 extern int force_iommu, no_iommu; 7770 extern int force_iommu, no_iommu;
7821 extern int iommu_detected; 7771 extern int iommu_detected;
7822 extern int iommu_pass_through; 7772 extern int iommu_pass_through;
7823diff -urNp linux-2.6.38.3/arch/x86/include/asm/irqflags.h linux-2.6.38.3/arch/x86/include/asm/irqflags.h 7773diff -urNp linux-2.6.38.2/arch/x86/include/asm/irqflags.h linux-2.6.38.2/arch/x86/include/asm/irqflags.h
7824--- linux-2.6.38.3/arch/x86/include/asm/irqflags.h 2011-03-14 21:20:32.000000000 -0400 7774--- linux-2.6.38.2/arch/x86/include/asm/irqflags.h 2011-03-14 21:20:32.000000000 -0400
7825+++ linux-2.6.38.3/arch/x86/include/asm/irqflags.h 2011-04-17 15:57:32.000000000 -0400 7775+++ linux-2.6.38.2/arch/x86/include/asm/irqflags.h 2011-03-21 18:31:35.000000000 -0400
7826@@ -140,6 +140,11 @@ static inline unsigned long arch_local_i 7776@@ -140,6 +140,11 @@ static inline unsigned long arch_local_i
7827 sti; \ 7777 sti; \
7828 sysexit 7778 sysexit
@@ -7835,9 +7785,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/irqflags.h linux-2.6.38.3/arch/x8
7835 #else 7785 #else
7836 #define INTERRUPT_RETURN iret 7786 #define INTERRUPT_RETURN iret
7837 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit 7787 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
7838diff -urNp linux-2.6.38.3/arch/x86/include/asm/kvm_host.h linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 7788diff -urNp linux-2.6.38.2/arch/x86/include/asm/kvm_host.h linux-2.6.38.2/arch/x86/include/asm/kvm_host.h
7839--- linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 2011-03-14 21:20:32.000000000 -0400 7789--- linux-2.6.38.2/arch/x86/include/asm/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
7840+++ linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 2011-04-17 15:57:32.000000000 -0400 7790+++ linux-2.6.38.2/arch/x86/include/asm/kvm_host.h 2011-03-21 18:31:35.000000000 -0400
7841@@ -603,7 +603,7 @@ struct kvm_arch_async_pf { 7791@@ -603,7 +603,7 @@ struct kvm_arch_async_pf {
7842 bool direct_map; 7792 bool direct_map;
7843 }; 7793 };
@@ -7847,9 +7797,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/kvm_host.h linux-2.6.38.3/arch/x8
7847 7797
7848 int kvm_mmu_module_init(void); 7798 int kvm_mmu_module_init(void);
7849 void kvm_mmu_module_exit(void); 7799 void kvm_mmu_module_exit(void);
7850diff -urNp linux-2.6.38.3/arch/x86/include/asm/local.h linux-2.6.38.3/arch/x86/include/asm/local.h 7800diff -urNp linux-2.6.38.2/arch/x86/include/asm/local.h linux-2.6.38.2/arch/x86/include/asm/local.h
7851--- linux-2.6.38.3/arch/x86/include/asm/local.h 2011-03-14 21:20:32.000000000 -0400 7801--- linux-2.6.38.2/arch/x86/include/asm/local.h 2011-03-14 21:20:32.000000000 -0400
7852+++ linux-2.6.38.3/arch/x86/include/asm/local.h 2011-04-17 15:57:32.000000000 -0400 7802+++ linux-2.6.38.2/arch/x86/include/asm/local.h 2011-03-21 18:31:35.000000000 -0400
7853@@ -18,26 +18,58 @@ typedef struct { 7803@@ -18,26 +18,58 @@ typedef struct {
7854 7804
7855 static inline void local_inc(local_t *l) 7805 static inline void local_inc(local_t *l)
@@ -8002,9 +7952,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/local.h linux-2.6.38.3/arch/x86/i
8002 : "+r" (i), "+m" (l->a.counter) 7952 : "+r" (i), "+m" (l->a.counter)
8003 : : "memory"); 7953 : : "memory");
8004 return i + __i; 7954 return i + __i;
8005diff -urNp linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 7955diff -urNp linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h
8006--- linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 2011-03-14 21:20:32.000000000 -0400 7956--- linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 2011-03-14 21:20:32.000000000 -0400
8007+++ linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 2011-04-17 15:57:32.000000000 -0400 7957+++ linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 2011-03-21 18:31:35.000000000 -0400
8008@@ -81,8 +81,8 @@ static inline unsigned char current_lock 7958@@ -81,8 +81,8 @@ static inline unsigned char current_lock
8009 #else 7959 #else
8010 #define lock_cmos_prefix(reg) do {} while (0) 7960 #define lock_cmos_prefix(reg) do {} while (0)
@@ -8016,9 +7966,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.3/arch
8016 #define do_i_have_lock_cmos() 0 7966 #define do_i_have_lock_cmos() 0
8017 #define current_lock_cmos_reg() 0 7967 #define current_lock_cmos_reg() 0
8018 #endif 7968 #endif
8019diff -urNp linux-2.6.38.3/arch/x86/include/asm/mce.h linux-2.6.38.3/arch/x86/include/asm/mce.h 7969diff -urNp linux-2.6.38.2/arch/x86/include/asm/mce.h linux-2.6.38.2/arch/x86/include/asm/mce.h
8020--- linux-2.6.38.3/arch/x86/include/asm/mce.h 2011-03-14 21:20:32.000000000 -0400 7970--- linux-2.6.38.2/arch/x86/include/asm/mce.h 2011-03-14 21:20:32.000000000 -0400
8021+++ linux-2.6.38.3/arch/x86/include/asm/mce.h 2011-04-17 15:57:32.000000000 -0400 7971+++ linux-2.6.38.2/arch/x86/include/asm/mce.h 2011-03-21 18:31:35.000000000 -0400
8022@@ -198,7 +198,7 @@ int mce_notify_irq(void); 7972@@ -198,7 +198,7 @@ int mce_notify_irq(void);
8023 void mce_notify_process(void); 7973 void mce_notify_process(void);
8024 7974
@@ -8028,9 +7978,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mce.h linux-2.6.38.3/arch/x86/inc
8028 7978
8029 /* 7979 /*
8030 * Exception handler 7980 * Exception handler
8031diff -urNp linux-2.6.38.3/arch/x86/include/asm/microcode.h linux-2.6.38.3/arch/x86/include/asm/microcode.h 7981diff -urNp linux-2.6.38.2/arch/x86/include/asm/microcode.h linux-2.6.38.2/arch/x86/include/asm/microcode.h
8032--- linux-2.6.38.3/arch/x86/include/asm/microcode.h 2011-03-14 21:20:32.000000000 -0400 7982--- linux-2.6.38.2/arch/x86/include/asm/microcode.h 2011-03-14 21:20:32.000000000 -0400
8033+++ linux-2.6.38.3/arch/x86/include/asm/microcode.h 2011-04-17 15:57:32.000000000 -0400 7983+++ linux-2.6.38.2/arch/x86/include/asm/microcode.h 2011-03-21 18:31:35.000000000 -0400
8034@@ -12,13 +12,13 @@ struct device; 7984@@ -12,13 +12,13 @@ struct device;
8035 enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND }; 7985 enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND };
8036 7986
@@ -8077,9 +8027,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/microcode.h linux-2.6.38.3/arch/x
8077 { 8027 {
8078 return NULL; 8028 return NULL;
8079 } 8029 }
8080diff -urNp linux-2.6.38.3/arch/x86/include/asm/mman.h linux-2.6.38.3/arch/x86/include/asm/mman.h 8030diff -urNp linux-2.6.38.2/arch/x86/include/asm/mman.h linux-2.6.38.2/arch/x86/include/asm/mman.h
8081--- linux-2.6.38.3/arch/x86/include/asm/mman.h 2011-03-14 21:20:32.000000000 -0400 8031--- linux-2.6.38.2/arch/x86/include/asm/mman.h 2011-03-14 21:20:32.000000000 -0400
8082+++ linux-2.6.38.3/arch/x86/include/asm/mman.h 2011-04-17 15:57:32.000000000 -0400 8032+++ linux-2.6.38.2/arch/x86/include/asm/mman.h 2011-03-21 18:31:35.000000000 -0400
8083@@ -5,4 +5,14 @@ 8033@@ -5,4 +5,14 @@
8084 8034
8085 #include <asm-generic/mman.h> 8035 #include <asm-generic/mman.h>
@@ -8095,9 +8045,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mman.h linux-2.6.38.3/arch/x86/in
8095+#endif 8045+#endif
8096+ 8046+
8097 #endif /* _ASM_X86_MMAN_H */ 8047 #endif /* _ASM_X86_MMAN_H */
8098diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu_context.h linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 8048diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu_context.h linux-2.6.38.2/arch/x86/include/asm/mmu_context.h
8099--- linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 2011-03-14 21:20:32.000000000 -0400 8049--- linux-2.6.38.2/arch/x86/include/asm/mmu_context.h 2011-03-14 21:20:32.000000000 -0400
8100+++ linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 2011-04-17 15:57:32.000000000 -0400 8050+++ linux-2.6.38.2/arch/x86/include/asm/mmu_context.h 2011-03-28 16:54:16.000000000 -0400
8101@@ -24,6 +24,21 @@ void destroy_context(struct mm_struct *m 8051@@ -24,6 +24,21 @@ void destroy_context(struct mm_struct *m
8102 8052
8103 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) 8053 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
@@ -8221,9 +8171,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu_context.h linux-2.6.38.3/arch
8221 } 8171 }
8222 8172
8223 #define activate_mm(prev, next) \ 8173 #define activate_mm(prev, next) \
8224diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu.h linux-2.6.38.3/arch/x86/include/asm/mmu.h 8174diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu.h linux-2.6.38.2/arch/x86/include/asm/mmu.h
8225--- linux-2.6.38.3/arch/x86/include/asm/mmu.h 2011-03-14 21:20:32.000000000 -0400 8175--- linux-2.6.38.2/arch/x86/include/asm/mmu.h 2011-03-14 21:20:32.000000000 -0400
8226+++ linux-2.6.38.3/arch/x86/include/asm/mmu.h 2011-04-17 15:57:32.000000000 -0400 8176+++ linux-2.6.38.2/arch/x86/include/asm/mmu.h 2011-03-21 18:31:35.000000000 -0400
8227@@ -9,10 +9,23 @@ 8177@@ -9,10 +9,23 @@
8228 * we put the segment information here. 8178 * we put the segment information here.
8229 */ 8179 */
@@ -8250,9 +8200,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu.h linux-2.6.38.3/arch/x86/inc
8250 } mm_context_t; 8200 } mm_context_t;
8251 8201
8252 #ifdef CONFIG_SMP 8202 #ifdef CONFIG_SMP
8253diff -urNp linux-2.6.38.3/arch/x86/include/asm/module.h linux-2.6.38.3/arch/x86/include/asm/module.h 8203diff -urNp linux-2.6.38.2/arch/x86/include/asm/module.h linux-2.6.38.2/arch/x86/include/asm/module.h
8254--- linux-2.6.38.3/arch/x86/include/asm/module.h 2011-03-14 21:20:32.000000000 -0400 8204--- linux-2.6.38.2/arch/x86/include/asm/module.h 2011-03-14 21:20:32.000000000 -0400
8255+++ linux-2.6.38.3/arch/x86/include/asm/module.h 2011-04-17 15:57:32.000000000 -0400 8205+++ linux-2.6.38.2/arch/x86/include/asm/module.h 2011-03-21 18:31:35.000000000 -0400
8256@@ -59,8 +59,26 @@ 8206@@ -59,8 +59,26 @@
8257 #error unknown processor family 8207 #error unknown processor family
8258 #endif 8208 #endif
@@ -8281,9 +8231,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/module.h linux-2.6.38.3/arch/x86/
8281 #endif 8231 #endif
8282 8232
8283 #endif /* _ASM_X86_MODULE_H */ 8233 #endif /* _ASM_X86_MODULE_H */
8284diff -urNp linux-2.6.38.3/arch/x86/include/asm/page_64_types.h linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 8234diff -urNp linux-2.6.38.2/arch/x86/include/asm/page_64_types.h linux-2.6.38.2/arch/x86/include/asm/page_64_types.h
8285--- linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 2011-03-14 21:20:32.000000000 -0400 8235--- linux-2.6.38.2/arch/x86/include/asm/page_64_types.h 2011-03-14 21:20:32.000000000 -0400
8286+++ linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 2011-04-17 15:57:32.000000000 -0400 8236+++ linux-2.6.38.2/arch/x86/include/asm/page_64_types.h 2011-03-21 18:31:35.000000000 -0400
8287@@ -56,7 +56,7 @@ void copy_page(void *to, void *from); 8237@@ -56,7 +56,7 @@ void copy_page(void *to, void *from);
8288 8238
8289 /* duplicated to the one in bootmem.h */ 8239 /* duplicated to the one in bootmem.h */
@@ -8293,9 +8243,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/page_64_types.h linux-2.6.38.3/ar
8293 8243
8294 extern unsigned long __phys_addr(unsigned long); 8244 extern unsigned long __phys_addr(unsigned long);
8295 #define __phys_reloc_hide(x) (x) 8245 #define __phys_reloc_hide(x) (x)
8296diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt.h linux-2.6.38.3/arch/x86/include/asm/paravirt.h 8246diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt.h linux-2.6.38.2/arch/x86/include/asm/paravirt.h
8297--- linux-2.6.38.3/arch/x86/include/asm/paravirt.h 2011-03-14 21:20:32.000000000 -0400 8247--- linux-2.6.38.2/arch/x86/include/asm/paravirt.h 2011-03-14 21:20:32.000000000 -0400
8298+++ linux-2.6.38.3/arch/x86/include/asm/paravirt.h 2011-04-17 15:57:32.000000000 -0400 8248+++ linux-2.6.38.2/arch/x86/include/asm/paravirt.h 2011-03-21 18:31:35.000000000 -0400
8299@@ -739,6 +739,21 @@ static inline void __set_fixmap(unsigned 8249@@ -739,6 +739,21 @@ static inline void __set_fixmap(unsigned
8300 pv_mmu_ops.set_fixmap(idx, phys, flags); 8250 pv_mmu_ops.set_fixmap(idx, phys, flags);
8301 } 8251 }
@@ -8349,9 +8299,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt.h linux-2.6.38.3/arch/x8
8349 #endif /* CONFIG_X86_32 */ 8299 #endif /* CONFIG_X86_32 */
8350 8300
8351 #endif /* __ASSEMBLY__ */ 8301 #endif /* __ASSEMBLY__ */
8352diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 8302diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h
8353--- linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 2011-03-14 21:20:32.000000000 -0400 8303--- linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h 2011-03-14 21:20:32.000000000 -0400
8354+++ linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 2011-04-17 15:57:32.000000000 -0400 8304+++ linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h 2011-03-21 18:31:35.000000000 -0400
8355@@ -317,6 +317,12 @@ struct pv_mmu_ops { 8305@@ -317,6 +317,12 @@ struct pv_mmu_ops {
8356 an mfn. We can tell which is which from the index. */ 8306 an mfn. We can tell which is which from the index. */
8357 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx, 8307 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
@@ -8365,9 +8315,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h linux-2.6.38.3/a
8365 }; 8315 };
8366 8316
8367 struct arch_spinlock; 8317 struct arch_spinlock;
8368diff -urNp linux-2.6.38.3/arch/x86/include/asm/pci_x86.h linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 8318diff -urNp linux-2.6.38.2/arch/x86/include/asm/pci_x86.h linux-2.6.38.2/arch/x86/include/asm/pci_x86.h
8369--- linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 2011-03-14 21:20:32.000000000 -0400 8319--- linux-2.6.38.2/arch/x86/include/asm/pci_x86.h 2011-03-14 21:20:32.000000000 -0400
8370+++ linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 2011-04-17 15:57:32.000000000 -0400 8320+++ linux-2.6.38.2/arch/x86/include/asm/pci_x86.h 2011-03-21 18:31:35.000000000 -0400
8371@@ -93,16 +93,16 @@ extern int (*pcibios_enable_irq)(struct 8321@@ -93,16 +93,16 @@ extern int (*pcibios_enable_irq)(struct
8372 extern void (*pcibios_disable_irq)(struct pci_dev *dev); 8322 extern void (*pcibios_disable_irq)(struct pci_dev *dev);
8373 8323
@@ -8390,9 +8340,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pci_x86.h linux-2.6.38.3/arch/x86
8390 extern bool port_cf9_safe; 8340 extern bool port_cf9_safe;
8391 8341
8392 /* arch_initcall level */ 8342 /* arch_initcall level */
8393diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgalloc.h linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 8343diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgalloc.h linux-2.6.38.2/arch/x86/include/asm/pgalloc.h
8394--- linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 2011-03-14 21:20:32.000000000 -0400 8344--- linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 2011-03-14 21:20:32.000000000 -0400
8395+++ linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 2011-04-17 15:57:32.000000000 -0400 8345+++ linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 2011-03-21 18:31:35.000000000 -0400
8396@@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(s 8346@@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(s
8397 pmd_t *pmd, pte_t *pte) 8347 pmd_t *pmd, pte_t *pte)
8398 { 8348 {
@@ -8407,9 +8357,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgalloc.h linux-2.6.38.3/arch/x86
8407 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); 8357 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
8408 } 8358 }
8409 8359
8410diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 8360diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h
8411--- linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 2011-03-14 21:20:32.000000000 -0400 8361--- linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h 2011-03-14 21:20:32.000000000 -0400
8412+++ linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 2011-04-17 15:57:32.000000000 -0400 8362+++ linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h 2011-03-21 18:31:35.000000000 -0400
8413@@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t 8363@@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t
8414 8364
8415 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) 8365 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -8420,9 +8370,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.3/a
8420 } 8370 }
8421 8371
8422 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) 8372 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
8423diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 8373diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h
8424--- linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400 8374--- linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400
8425+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 2011-04-17 15:57:32.000000000 -0400 8375+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h 2011-03-21 18:31:35.000000000 -0400
8426@@ -25,9 +25,6 @@ 8376@@ -25,9 +25,6 @@
8427 struct mm_struct; 8377 struct mm_struct;
8428 struct vm_area_struct; 8378 struct vm_area_struct;
@@ -8466,9 +8416,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h linux-2.6.38.3/arch/
8466 /* 8416 /*
8467 * kern_addr_valid() is (1) for FLATMEM and (0) for 8417 * kern_addr_valid() is (1) for FLATMEM and (0) for
8468 * SPARSEMEM and DISCONTIGMEM 8418 * SPARSEMEM and DISCONTIGMEM
8469diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 8419diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h
8470--- linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 2011-03-14 21:20:32.000000000 -0400 8420--- linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h 2011-03-14 21:20:32.000000000 -0400
8471+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 2011-04-17 15:57:32.000000000 -0400 8421+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h 2011-03-21 18:31:35.000000000 -0400
8472@@ -8,7 +8,7 @@ 8422@@ -8,7 +8,7 @@
8473 */ 8423 */
8474 #ifdef CONFIG_X86_PAE 8424 #ifdef CONFIG_X86_PAE
@@ -8498,9 +8448,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.3
8498 #define MODULES_VADDR VMALLOC_START 8448 #define MODULES_VADDR VMALLOC_START
8499 #define MODULES_END VMALLOC_END 8449 #define MODULES_END VMALLOC_END
8500 #define MODULES_LEN (MODULES_VADDR - MODULES_END) 8450 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
8501diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 8451diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h
8502--- linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 2011-04-18 17:27:13.000000000 -0400 8452--- linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h 2011-03-23 17:20:06.000000000 -0400
8503+++ linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 2011-04-17 15:57:32.000000000 -0400 8453+++ linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h 2011-03-23 17:21:43.000000000 -0400
8504@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic 8454@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic
8505 8455
8506 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) 8456 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -8518,9 +8468,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.3/a
8518 } 8468 }
8519 8469
8520 /* 8470 /*
8521diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 8471diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h
8522--- linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 2011-03-14 21:20:32.000000000 -0400 8472--- linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h 2011-03-14 21:20:32.000000000 -0400
8523+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 2011-04-17 15:57:32.000000000 -0400 8473+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h 2011-03-21 18:31:35.000000000 -0400
8524@@ -16,10 +16,13 @@ 8474@@ -16,10 +16,13 @@
8525 8475
8526 extern pud_t level3_kernel_pgt[512]; 8476 extern pud_t level3_kernel_pgt[512];
@@ -8557,9 +8507,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h linux-2.6.38.3/arch/
8557 } 8507 }
8558 8508
8559 static inline void native_pgd_clear(pgd_t *pgd) 8509 static inline void native_pgd_clear(pgd_t *pgd)
8560diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 8510diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h
8561--- linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 2011-03-14 21:20:32.000000000 -0400 8511--- linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h 2011-03-14 21:20:32.000000000 -0400
8562+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 2011-04-17 15:57:32.000000000 -0400 8512+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h 2011-03-21 18:31:35.000000000 -0400
8563@@ -59,5 +59,10 @@ typedef struct { pteval_t pte; } pte_t; 8513@@ -59,5 +59,10 @@ typedef struct { pteval_t pte; } pte_t;
8564 #define MODULES_VADDR _AC(0xffffffffa0000000, UL) 8514 #define MODULES_VADDR _AC(0xffffffffa0000000, UL)
8565 #define MODULES_END _AC(0xffffffffff000000, UL) 8515 #define MODULES_END _AC(0xffffffffff000000, UL)
@@ -8571,9 +8521,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.3
8571+#define ktva_ktla(addr) (addr) 8521+#define ktva_ktla(addr) (addr)
8572 8522
8573 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */ 8523 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
8574diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable.h linux-2.6.38.3/arch/x86/include/asm/pgtable.h 8524diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable.h linux-2.6.38.2/arch/x86/include/asm/pgtable.h
8575--- linux-2.6.38.3/arch/x86/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 8525--- linux-2.6.38.2/arch/x86/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
8576+++ linux-2.6.38.3/arch/x86/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 8526+++ linux-2.6.38.2/arch/x86/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
8577@@ -81,12 +81,51 @@ extern struct mm_struct *pgd_page_get_mm 8527@@ -81,12 +81,51 @@ extern struct mm_struct *pgd_page_get_mm
8578 8528
8579 #define arch_end_context_switch(prev) do {} while(0) 8529 #define arch_end_context_switch(prev) do {} while(0)
@@ -8743,9 +8693,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable.h linux-2.6.38.3/arch/x86
8743 8693
8744 #include <asm-generic/pgtable.h> 8694 #include <asm-generic/pgtable.h>
8745 #endif /* __ASSEMBLY__ */ 8695 #endif /* __ASSEMBLY__ */
8746diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 8696diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h
8747--- linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 2011-03-14 21:20:32.000000000 -0400 8697--- linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h 2011-03-14 21:20:32.000000000 -0400
8748+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 2011-04-17 15:57:32.000000000 -0400 8698+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h 2011-03-21 18:31:35.000000000 -0400
8749@@ -16,13 +16,12 @@ 8699@@ -16,13 +16,12 @@
8750 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ 8700 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
8751 #define _PAGE_BIT_PAT 7 /* on 4KB pages */ 8701 #define _PAGE_BIT_PAT 7 /* on 4KB pages */
@@ -8859,9 +8809,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h linux-2.6.38.3/ar
8859 8809
8860 #define pgprot_writecombine pgprot_writecombine 8810 #define pgprot_writecombine pgprot_writecombine
8861 extern pgprot_t pgprot_writecombine(pgprot_t prot); 8811 extern pgprot_t pgprot_writecombine(pgprot_t prot);
8862diff -urNp linux-2.6.38.3/arch/x86/include/asm/processor.h linux-2.6.38.3/arch/x86/include/asm/processor.h 8812diff -urNp linux-2.6.38.2/arch/x86/include/asm/processor.h linux-2.6.38.2/arch/x86/include/asm/processor.h
8863--- linux-2.6.38.3/arch/x86/include/asm/processor.h 2011-03-14 21:20:32.000000000 -0400 8813--- linux-2.6.38.2/arch/x86/include/asm/processor.h 2011-03-14 21:20:32.000000000 -0400
8864+++ linux-2.6.38.3/arch/x86/include/asm/processor.h 2011-04-17 15:57:32.000000000 -0400 8814+++ linux-2.6.38.2/arch/x86/include/asm/processor.h 2011-03-21 18:31:35.000000000 -0400
8865@@ -270,7 +270,7 @@ struct tss_struct { 8815@@ -270,7 +270,7 @@ struct tss_struct {
8866 8816
8867 } ____cacheline_aligned; 8817 } ____cacheline_aligned;
@@ -8946,9 +8896,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/processor.h linux-2.6.38.3/arch/x
8946 #define KSTK_EIP(task) (task_pt_regs(task)->ip) 8896 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
8947 8897
8948 /* Get/set a process' ability to use the timestamp counter instruction */ 8898 /* Get/set a process' ability to use the timestamp counter instruction */
8949diff -urNp linux-2.6.38.3/arch/x86/include/asm/ptrace.h linux-2.6.38.3/arch/x86/include/asm/ptrace.h 8899diff -urNp linux-2.6.38.2/arch/x86/include/asm/ptrace.h linux-2.6.38.2/arch/x86/include/asm/ptrace.h
8950--- linux-2.6.38.3/arch/x86/include/asm/ptrace.h 2011-03-14 21:20:32.000000000 -0400 8900--- linux-2.6.38.2/arch/x86/include/asm/ptrace.h 2011-03-14 21:20:32.000000000 -0400
8951+++ linux-2.6.38.3/arch/x86/include/asm/ptrace.h 2011-04-17 15:57:32.000000000 -0400 8901+++ linux-2.6.38.2/arch/x86/include/asm/ptrace.h 2011-03-21 18:31:35.000000000 -0400
8952@@ -152,28 +152,29 @@ static inline unsigned long regs_return_ 8902@@ -152,28 +152,29 @@ static inline unsigned long regs_return_
8953 } 8903 }
8954 8904
@@ -8985,9 +8935,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/ptrace.h linux-2.6.38.3/arch/x86/
8985 #endif 8935 #endif
8986 } 8936 }
8987 8937
8988diff -urNp linux-2.6.38.3/arch/x86/include/asm/reboot.h linux-2.6.38.3/arch/x86/include/asm/reboot.h 8938diff -urNp linux-2.6.38.2/arch/x86/include/asm/reboot.h linux-2.6.38.2/arch/x86/include/asm/reboot.h
8989--- linux-2.6.38.3/arch/x86/include/asm/reboot.h 2011-03-14 21:20:32.000000000 -0400 8939--- linux-2.6.38.2/arch/x86/include/asm/reboot.h 2011-03-14 21:20:32.000000000 -0400
8990+++ linux-2.6.38.3/arch/x86/include/asm/reboot.h 2011-04-17 15:57:32.000000000 -0400 8940+++ linux-2.6.38.2/arch/x86/include/asm/reboot.h 2011-03-21 18:31:35.000000000 -0400
8991@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops; 8941@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops;
8992 8942
8993 void native_machine_crash_shutdown(struct pt_regs *regs); 8943 void native_machine_crash_shutdown(struct pt_regs *regs);
@@ -8997,9 +8947,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/reboot.h linux-2.6.38.3/arch/x86/
8997 8947
8998 typedef void (*nmi_shootdown_cb)(int, struct die_args*); 8948 typedef void (*nmi_shootdown_cb)(int, struct die_args*);
8999 void nmi_shootdown_cpus(nmi_shootdown_cb callback); 8949 void nmi_shootdown_cpus(nmi_shootdown_cb callback);
9000diff -urNp linux-2.6.38.3/arch/x86/include/asm/rwsem.h linux-2.6.38.3/arch/x86/include/asm/rwsem.h 8950diff -urNp linux-2.6.38.2/arch/x86/include/asm/rwsem.h linux-2.6.38.2/arch/x86/include/asm/rwsem.h
9001--- linux-2.6.38.3/arch/x86/include/asm/rwsem.h 2011-03-14 21:20:32.000000000 -0400 8951--- linux-2.6.38.2/arch/x86/include/asm/rwsem.h 2011-03-14 21:20:32.000000000 -0400
9002+++ linux-2.6.38.3/arch/x86/include/asm/rwsem.h 2011-04-17 15:57:32.000000000 -0400 8952+++ linux-2.6.38.2/arch/x86/include/asm/rwsem.h 2011-03-21 18:31:35.000000000 -0400
9003@@ -118,6 +118,14 @@ static inline void __down_read(struct rw 8953@@ -118,6 +118,14 @@ static inline void __down_read(struct rw
9004 { 8954 {
9005 asm volatile("# beginning down_read\n\t" 8955 asm volatile("# beginning down_read\n\t"
@@ -9124,9 +9074,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/rwsem.h linux-2.6.38.3/arch/x86/i
9124 : "+r" (tmp), "+m" (sem->count) 9074 : "+r" (tmp), "+m" (sem->count)
9125 : : "memory"); 9075 : : "memory");
9126 9076
9127diff -urNp linux-2.6.38.3/arch/x86/include/asm/segment.h linux-2.6.38.3/arch/x86/include/asm/segment.h 9077diff -urNp linux-2.6.38.2/arch/x86/include/asm/segment.h linux-2.6.38.2/arch/x86/include/asm/segment.h
9128--- linux-2.6.38.3/arch/x86/include/asm/segment.h 2011-03-14 21:20:32.000000000 -0400 9078--- linux-2.6.38.2/arch/x86/include/asm/segment.h 2011-03-14 21:20:32.000000000 -0400
9129+++ linux-2.6.38.3/arch/x86/include/asm/segment.h 2011-04-17 15:57:32.000000000 -0400 9079+++ linux-2.6.38.2/arch/x86/include/asm/segment.h 2011-03-21 18:31:35.000000000 -0400
9130@@ -62,8 +62,8 @@ 9080@@ -62,8 +62,8 @@
9131 * 26 - ESPFIX small SS 9081 * 26 - ESPFIX small SS
9132 * 27 - per-cpu [ offset to per-cpu data area ] 9082 * 27 - per-cpu [ offset to per-cpu data area ]
@@ -9186,9 +9136,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/segment.h linux-2.6.38.3/arch/x86
9186 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8) 9136 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
9187 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3) 9137 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
9188 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3) 9138 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3)
9189diff -urNp linux-2.6.38.3/arch/x86/include/asm/smp.h linux-2.6.38.3/arch/x86/include/asm/smp.h 9139diff -urNp linux-2.6.38.2/arch/x86/include/asm/smp.h linux-2.6.38.2/arch/x86/include/asm/smp.h
9190--- linux-2.6.38.3/arch/x86/include/asm/smp.h 2011-03-14 21:20:32.000000000 -0400 9140--- linux-2.6.38.2/arch/x86/include/asm/smp.h 2011-03-14 21:20:32.000000000 -0400
9191+++ linux-2.6.38.3/arch/x86/include/asm/smp.h 2011-04-17 15:57:32.000000000 -0400 9141+++ linux-2.6.38.2/arch/x86/include/asm/smp.h 2011-03-21 18:31:35.000000000 -0400
9192@@ -24,7 +24,7 @@ extern unsigned int num_processors; 9142@@ -24,7 +24,7 @@ extern unsigned int num_processors;
9193 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map); 9143 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map);
9194 DECLARE_PER_CPU(cpumask_var_t, cpu_core_map); 9144 DECLARE_PER_CPU(cpumask_var_t, cpu_core_map);
@@ -9198,26 +9148,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/smp.h linux-2.6.38.3/arch/x86/inc
9198 9148
9199 static inline struct cpumask *cpu_sibling_mask(int cpu) 9149 static inline struct cpumask *cpu_sibling_mask(int cpu)
9200 { 9150 {
9201@@ -172,14 +172,8 @@ extern unsigned disabled_cpus __cpuinitd 9151diff -urNp linux-2.6.38.2/arch/x86/include/asm/spinlock.h linux-2.6.38.2/arch/x86/include/asm/spinlock.h
9202 extern int safe_smp_processor_id(void); 9152--- linux-2.6.38.2/arch/x86/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
9203 9153+++ linux-2.6.38.2/arch/x86/include/asm/spinlock.h 2011-03-21 18:31:35.000000000 -0400
9204 #elif defined(CONFIG_X86_64_SMP)
9205-#define raw_smp_processor_id() (percpu_read(cpu_number))
9206-
9207-#define stack_smp_processor_id() \
9208-({ \
9209- struct thread_info *ti; \
9210- __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \
9211- ti->cpu; \
9212-})
9213+#define raw_smp_processor_id() (percpu_read(cpu_number))
9214+#define stack_smp_processor_id() raw_smp_processor_id()
9215 #define safe_smp_processor_id() smp_processor_id()
9216
9217 #endif
9218diff -urNp linux-2.6.38.3/arch/x86/include/asm/spinlock.h linux-2.6.38.3/arch/x86/include/asm/spinlock.h
9219--- linux-2.6.38.3/arch/x86/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
9220+++ linux-2.6.38.3/arch/x86/include/asm/spinlock.h 2011-04-17 15:57:32.000000000 -0400
9221@@ -249,6 +249,14 @@ static inline int arch_write_can_lock(ar 9154@@ -249,6 +249,14 @@ static inline int arch_write_can_lock(ar
9222 static inline void arch_read_lock(arch_rwlock_t *rw) 9155 static inline void arch_read_lock(arch_rwlock_t *rw)
9223 { 9156 {
@@ -9280,9 +9213,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/spinlock.h linux-2.6.38.3/arch/x8
9280 : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory"); 9213 : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory");
9281 } 9214 }
9282 9215
9283diff -urNp linux-2.6.38.3/arch/x86/include/asm/stackprotector.h linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 9216diff -urNp linux-2.6.38.2/arch/x86/include/asm/stackprotector.h linux-2.6.38.2/arch/x86/include/asm/stackprotector.h
9284--- linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 2011-03-14 21:20:32.000000000 -0400 9217--- linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 2011-03-14 21:20:32.000000000 -0400
9285+++ linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 2011-04-17 15:57:32.000000000 -0400 9218+++ linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 2011-03-21 18:31:35.000000000 -0400
9286@@ -113,7 +113,7 @@ static inline void setup_stack_canary_se 9219@@ -113,7 +113,7 @@ static inline void setup_stack_canary_se
9287 9220
9288 static inline void load_stack_canary_segment(void) 9221 static inline void load_stack_canary_segment(void)
@@ -9292,80 +9225,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/stackprotector.h linux-2.6.38.3/a
9292 asm volatile ("mov %0, %%gs" : : "r" (0)); 9225 asm volatile ("mov %0, %%gs" : : "r" (0));
9293 #endif 9226 #endif
9294 } 9227 }
9295diff -urNp linux-2.6.38.3/arch/x86/include/asm/stacktrace.h linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 9228diff -urNp linux-2.6.38.2/arch/x86/include/asm/system.h linux-2.6.38.2/arch/x86/include/asm/system.h
9296--- linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 2011-03-14 21:20:32.000000000 -0400 9229--- linux-2.6.38.2/arch/x86/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
9297+++ linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 2011-04-17 15:57:32.000000000 -0400 9230+++ linux-2.6.38.2/arch/x86/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
9298@@ -11,28 +11,20 @@
9299
9300 extern int kstack_depth_to_print;
9301
9302-struct thread_info;
9303+struct task_struct;
9304 struct stacktrace_ops;
9305
9306-typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
9307- unsigned long *stack,
9308- unsigned long bp,
9309- const struct stacktrace_ops *ops,
9310- void *data,
9311- unsigned long *end,
9312- int *graph);
9313-
9314-extern unsigned long
9315-print_context_stack(struct thread_info *tinfo,
9316- unsigned long *stack, unsigned long bp,
9317- const struct stacktrace_ops *ops, void *data,
9318- unsigned long *end, int *graph);
9319-
9320-extern unsigned long
9321-print_context_stack_bp(struct thread_info *tinfo,
9322- unsigned long *stack, unsigned long bp,
9323- const struct stacktrace_ops *ops, void *data,
9324- unsigned long *end, int *graph);
9325+typedef unsigned long walk_stack_t(struct task_struct *task,
9326+ void *stack_start,
9327+ unsigned long *stack,
9328+ unsigned long bp,
9329+ const struct stacktrace_ops *ops,
9330+ void *data,
9331+ unsigned long *end,
9332+ int *graph);
9333+
9334+extern walk_stack_t print_context_stack;
9335+extern walk_stack_t print_context_stack_bp;
9336
9337 /* Generic stack tracer with callbacks */
9338
9339@@ -43,7 +35,7 @@ struct stacktrace_ops {
9340 void (*address)(void *data, unsigned long address, int reliable);
9341 /* On negative return stop dumping */
9342 int (*stack)(void *data, char *name);
9343- walk_stack_t walk_stack;
9344+ walk_stack_t *walk_stack;
9345 };
9346
9347 void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
9348diff -urNp linux-2.6.38.3/arch/x86/include/asm/system.h linux-2.6.38.3/arch/x86/include/asm/system.h
9349--- linux-2.6.38.3/arch/x86/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
9350+++ linux-2.6.38.3/arch/x86/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400
9351@@ -131,7 +131,7 @@ do { \
9352 "call __switch_to\n\t" \
9353 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
9354 __switch_canary \
9355- "movq %P[thread_info](%%rsi),%%r8\n\t" \
9356+ "movq "__percpu_arg([thread_info])",%%r8\n\t" \
9357 "movq %%rax,%%rdi\n\t" \
9358 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
9359 "jnz ret_from_fork\n\t" \
9360@@ -142,7 +142,7 @@ do { \
9361 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
9362 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
9363 [_tif_fork] "i" (_TIF_FORK), \
9364- [thread_info] "i" (offsetof(struct task_struct, stack)), \
9365+ [thread_info] "m" (current_tinfo), \
9366 [current_task] "m" (current_task) \
9367 __switch_canary_iparam \
9368 : "memory", "cc" __EXTRA_CLOBBER)
9369@@ -202,7 +202,7 @@ static inline unsigned long get_limit(un 9231@@ -202,7 +202,7 @@ static inline unsigned long get_limit(un
9370 { 9232 {
9371 unsigned long __limit; 9233 unsigned long __limit;
@@ -9384,156 +9246,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/system.h linux-2.6.38.3/arch/x86/
9384 extern void free_init_pages(char *what, unsigned long begin, unsigned long end); 9246 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
9385 9247
9386 void default_idle(void); 9248 void default_idle(void);
9387diff -urNp linux-2.6.38.3/arch/x86/include/asm/thread_info.h linux-2.6.38.3/arch/x86/include/asm/thread_info.h 9249diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h
9388--- linux-2.6.38.3/arch/x86/include/asm/thread_info.h 2011-03-14 21:20:32.000000000 -0400 9250--- linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
9389+++ linux-2.6.38.3/arch/x86/include/asm/thread_info.h 2011-04-17 15:57:32.000000000 -0400 9251+++ linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h 2011-03-21 18:31:35.000000000 -0400
9390@@ -10,6 +10,7 @@
9391 #include <linux/compiler.h>
9392 #include <asm/page.h>
9393 #include <asm/types.h>
9394+#include <asm/percpu.h>
9395
9396 /*
9397 * low level task data that entry.S needs immediate access to
9398@@ -24,7 +25,6 @@ struct exec_domain;
9399 #include <asm/atomic.h>
9400
9401 struct thread_info {
9402- struct task_struct *task; /* main task structure */
9403 struct exec_domain *exec_domain; /* execution domain */
9404 __u32 flags; /* low level flags */
9405 __u32 status; /* thread synchronous flags */
9406@@ -34,18 +34,11 @@ struct thread_info {
9407 mm_segment_t addr_limit;
9408 struct restart_block restart_block;
9409 void __user *sysenter_return;
9410-#ifdef CONFIG_X86_32
9411- unsigned long previous_esp; /* ESP of the previous stack in
9412- case of nested (IRQ) stacks
9413- */
9414- __u8 supervisor_stack[0];
9415-#endif
9416 int uaccess_err;
9417 };
9418
9419-#define INIT_THREAD_INFO(tsk) \
9420+#define INIT_THREAD_INFO \
9421 { \
9422- .task = &tsk, \
9423 .exec_domain = &default_exec_domain, \
9424 .flags = 0, \
9425 .cpu = 0, \
9426@@ -56,7 +49,7 @@ struct thread_info {
9427 }, \
9428 }
9429
9430-#define init_thread_info (init_thread_union.thread_info)
9431+#define init_thread_info (init_task.tinfo)
9432 #define init_stack (init_thread_union.stack)
9433
9434 #else /* !__ASSEMBLY__ */
9435@@ -164,6 +157,23 @@ struct thread_info {
9436 #define alloc_thread_info(tsk) \
9437 ((struct thread_info *)__get_free_pages(THREAD_FLAGS, THREAD_ORDER))
9438
9439+#ifdef __ASSEMBLY__
9440+/* how to get the thread information struct from ASM */
9441+#define GET_THREAD_INFO(reg) \
9442+ mov PER_CPU_VAR(current_tinfo), reg
9443+
9444+/* use this one if reg already contains %esp */
9445+#define GET_THREAD_INFO_WITH_ESP(reg) GET_THREAD_INFO(reg)
9446+#else
9447+/* how to get the thread information struct from C */
9448+DECLARE_PER_CPU(struct thread_info *, current_tinfo);
9449+
9450+static __always_inline struct thread_info *current_thread_info(void)
9451+{
9452+ return percpu_read_stable(current_tinfo);
9453+}
9454+#endif
9455+
9456 #ifdef CONFIG_X86_32
9457
9458 #define STACK_WARN (THREAD_SIZE/8)
9459@@ -174,35 +184,13 @@ struct thread_info {
9460 */
9461 #ifndef __ASSEMBLY__
9462
9463-
9464 /* how to get the current stack pointer from C */
9465 register unsigned long current_stack_pointer asm("esp") __used;
9466
9467-/* how to get the thread information struct from C */
9468-static inline struct thread_info *current_thread_info(void)
9469-{
9470- return (struct thread_info *)
9471- (current_stack_pointer & ~(THREAD_SIZE - 1));
9472-}
9473-
9474-#else /* !__ASSEMBLY__ */
9475-
9476-/* how to get the thread information struct from ASM */
9477-#define GET_THREAD_INFO(reg) \
9478- movl $-THREAD_SIZE, reg; \
9479- andl %esp, reg
9480-
9481-/* use this one if reg already contains %esp */
9482-#define GET_THREAD_INFO_WITH_ESP(reg) \
9483- andl $-THREAD_SIZE, reg
9484-
9485 #endif
9486
9487 #else /* X86_32 */
9488
9489-#include <asm/percpu.h>
9490-#define KERNEL_STACK_OFFSET (5*8)
9491-
9492 /*
9493 * macros/functions for gaining access to the thread information structure
9494 * preempt_count needs to be 1 initially, until the scheduler is functional.
9495@@ -210,21 +198,6 @@ static inline struct thread_info *curren
9496 #ifndef __ASSEMBLY__
9497 DECLARE_PER_CPU(unsigned long, kernel_stack);
9498
9499-static inline struct thread_info *current_thread_info(void)
9500-{
9501- struct thread_info *ti;
9502- ti = (void *)(percpu_read_stable(kernel_stack) +
9503- KERNEL_STACK_OFFSET - THREAD_SIZE);
9504- return ti;
9505-}
9506-
9507-#else /* !__ASSEMBLY__ */
9508-
9509-/* how to get the thread information struct from ASM */
9510-#define GET_THREAD_INFO(reg) \
9511- movq PER_CPU_VAR(kernel_stack),reg ; \
9512- subq $(THREAD_SIZE-KERNEL_STACK_OFFSET),reg
9513-
9514 #endif
9515
9516 #endif /* !X86_32 */
9517@@ -260,5 +233,16 @@ extern void arch_task_cache_init(void);
9518 extern void free_thread_info(struct thread_info *ti);
9519 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
9520 #define arch_task_cache_init arch_task_cache_init
9521+
9522+#define __HAVE_THREAD_FUNCTIONS
9523+#define task_thread_info(task) (&(task)->tinfo)
9524+#define task_stack_page(task) ((task)->stack)
9525+#define setup_thread_stack(p, org) do {} while (0)
9526+#define end_of_stack(p) ((unsigned long *)task_stack_page(p) + 1)
9527+
9528+#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
9529+extern struct task_struct *alloc_task_struct(void);
9530+extern void free_task_struct(struct task_struct *);
9531+
9532 #endif
9533 #endif /* _ASM_X86_THREAD_INFO_H */
9534diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h
9535--- linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
9536+++ linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h 2011-04-17 15:57:32.000000000 -0400
9537@@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u 9252@@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u
9538 static __always_inline unsigned long __must_check 9253 static __always_inline unsigned long __must_check
9539 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) 9254 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
@@ -9690,9 +9405,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h linux-2.6.38.3/arch/
9690 return n; 9405 return n;
9691 } 9406 }
9692 9407
9693diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 9408diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h
9694--- linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400 9409--- linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400
9695+++ linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 2011-04-17 15:57:32.000000000 -0400 9410+++ linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h 2011-03-21 18:31:35.000000000 -0400
9696@@ -11,6 +11,9 @@ 9411@@ -11,6 +11,9 @@
9697 #include <asm/alternative.h> 9412 #include <asm/alternative.h>
9698 #include <asm/cpufeature.h> 9413 #include <asm/cpufeature.h>
@@ -10065,9 +9780,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h linux-2.6.38.3/arch/
10065 copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); 9780 copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest);
10066 9781
10067 #endif /* _ASM_X86_UACCESS_64_H */ 9782 #endif /* _ASM_X86_UACCESS_64_H */
10068diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess.h linux-2.6.38.3/arch/x86/include/asm/uaccess.h 9783diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess.h linux-2.6.38.2/arch/x86/include/asm/uaccess.h
10069--- linux-2.6.38.3/arch/x86/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 9784--- linux-2.6.38.2/arch/x86/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
10070+++ linux-2.6.38.3/arch/x86/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 9785+++ linux-2.6.38.2/arch/x86/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
10071@@ -8,12 +8,15 @@ 9786@@ -8,12 +8,15 @@
10072 #include <linux/thread_info.h> 9787 #include <linux/thread_info.h>
10073 #include <linux/prefetch.h> 9788 #include <linux/prefetch.h>
@@ -10286,9 +10001,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess.h linux-2.6.38.3/arch/x86
10286 #ifdef CONFIG_X86_32 10001 #ifdef CONFIG_X86_32
10287 # include "uaccess_32.h" 10002 # include "uaccess_32.h"
10288 #else 10003 #else
10289diff -urNp linux-2.6.38.3/arch/x86/include/asm/vgtod.h linux-2.6.38.3/arch/x86/include/asm/vgtod.h 10004diff -urNp linux-2.6.38.2/arch/x86/include/asm/vgtod.h linux-2.6.38.2/arch/x86/include/asm/vgtod.h
10290--- linux-2.6.38.3/arch/x86/include/asm/vgtod.h 2011-03-14 21:20:32.000000000 -0400 10005--- linux-2.6.38.2/arch/x86/include/asm/vgtod.h 2011-03-14 21:20:32.000000000 -0400
10291+++ linux-2.6.38.3/arch/x86/include/asm/vgtod.h 2011-04-17 15:57:32.000000000 -0400 10006+++ linux-2.6.38.2/arch/x86/include/asm/vgtod.h 2011-03-21 18:31:35.000000000 -0400
10292@@ -14,6 +14,7 @@ struct vsyscall_gtod_data { 10007@@ -14,6 +14,7 @@ struct vsyscall_gtod_data {
10293 int sysctl_enabled; 10008 int sysctl_enabled;
10294 struct timezone sys_tz; 10009 struct timezone sys_tz;
@@ -10297,9 +10012,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/vgtod.h linux-2.6.38.3/arch/x86/i
10297 cycle_t (*vread)(void); 10012 cycle_t (*vread)(void);
10298 cycle_t cycle_last; 10013 cycle_t cycle_last;
10299 cycle_t mask; 10014 cycle_t mask;
10300diff -urNp linux-2.6.38.3/arch/x86/include/asm/vsyscall.h linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 10015diff -urNp linux-2.6.38.2/arch/x86/include/asm/vsyscall.h linux-2.6.38.2/arch/x86/include/asm/vsyscall.h
10301--- linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 2011-03-14 21:20:32.000000000 -0400 10016--- linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 2011-03-14 21:20:32.000000000 -0400
10302+++ linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 2011-04-17 15:57:32.000000000 -0400 10017+++ linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 2011-03-21 18:31:35.000000000 -0400
10303@@ -15,9 +15,10 @@ enum vsyscall_num { 10018@@ -15,9 +15,10 @@ enum vsyscall_num {
10304 10019
10305 #ifdef __KERNEL__ 10020 #ifdef __KERNEL__
@@ -10330,9 +10045,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/vsyscall.h linux-2.6.38.3/arch/x8
10330 #endif /* __KERNEL__ */ 10045 #endif /* __KERNEL__ */
10331 10046
10332 #endif /* _ASM_X86_VSYSCALL_H */ 10047 #endif /* _ASM_X86_VSYSCALL_H */
10333diff -urNp linux-2.6.38.3/arch/x86/include/asm/xsave.h linux-2.6.38.3/arch/x86/include/asm/xsave.h 10048diff -urNp linux-2.6.38.2/arch/x86/include/asm/xsave.h linux-2.6.38.2/arch/x86/include/asm/xsave.h
10334--- linux-2.6.38.3/arch/x86/include/asm/xsave.h 2011-03-14 21:20:32.000000000 -0400 10049--- linux-2.6.38.2/arch/x86/include/asm/xsave.h 2011-03-14 21:20:32.000000000 -0400
10335+++ linux-2.6.38.3/arch/x86/include/asm/xsave.h 2011-04-17 15:57:32.000000000 -0400 10050+++ linux-2.6.38.2/arch/x86/include/asm/xsave.h 2011-03-21 18:31:35.000000000 -0400
10336@@ -65,6 +65,11 @@ static inline int xsave_user(struct xsav 10051@@ -65,6 +65,11 @@ static inline int xsave_user(struct xsav
10337 { 10052 {
10338 int err; 10053 int err;
@@ -10357,9 +10072,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/xsave.h linux-2.6.38.3/arch/x86/i
10357 __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n" 10072 __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n"
10358 "2:\n" 10073 "2:\n"
10359 ".section .fixup,\"ax\"\n" 10074 ".section .fixup,\"ax\"\n"
10360diff -urNp linux-2.6.38.3/arch/x86/Kconfig linux-2.6.38.3/arch/x86/Kconfig 10075diff -urNp linux-2.6.38.2/arch/x86/Kconfig linux-2.6.38.2/arch/x86/Kconfig
10361--- linux-2.6.38.3/arch/x86/Kconfig 2011-03-14 21:20:32.000000000 -0400 10076--- linux-2.6.38.2/arch/x86/Kconfig 2011-03-14 21:20:32.000000000 -0400
10362+++ linux-2.6.38.3/arch/x86/Kconfig 2011-04-17 15:57:32.000000000 -0400 10077+++ linux-2.6.38.2/arch/x86/Kconfig 2011-03-21 18:31:35.000000000 -0400
10363@@ -223,7 +223,7 @@ config X86_TRAMPOLINE 10078@@ -223,7 +223,7 @@ config X86_TRAMPOLINE
10364 10079
10365 config X86_32_LAZY_GS 10080 config X86_32_LAZY_GS
@@ -10441,9 +10156,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Kconfig linux-2.6.38.3/arch/x86/Kconfig
10441 ---help--- 10156 ---help---
10442 Map the 32-bit VDSO to the predictable old-style address too. 10157 Map the 32-bit VDSO to the predictable old-style address too.
10443 10158
10444diff -urNp linux-2.6.38.3/arch/x86/Kconfig.cpu linux-2.6.38.3/arch/x86/Kconfig.cpu 10159diff -urNp linux-2.6.38.2/arch/x86/Kconfig.cpu linux-2.6.38.2/arch/x86/Kconfig.cpu
10445--- linux-2.6.38.3/arch/x86/Kconfig.cpu 2011-03-14 21:20:32.000000000 -0400 10160--- linux-2.6.38.2/arch/x86/Kconfig.cpu 2011-03-14 21:20:32.000000000 -0400
10446+++ linux-2.6.38.3/arch/x86/Kconfig.cpu 2011-04-17 15:57:32.000000000 -0400 10161+++ linux-2.6.38.2/arch/x86/Kconfig.cpu 2011-03-21 18:31:35.000000000 -0400
10447@@ -339,7 +339,7 @@ config X86_PPRO_FENCE 10162@@ -339,7 +339,7 @@ config X86_PPRO_FENCE
10448 10163
10449 config X86_F00F_BUG 10164 config X86_F00F_BUG
@@ -10471,9 +10186,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Kconfig.cpu linux-2.6.38.3/arch/x86/Kconfig.c
10471 10186
10472 config X86_MINIMUM_CPU_FAMILY 10187 config X86_MINIMUM_CPU_FAMILY
10473 int 10188 int
10474diff -urNp linux-2.6.38.3/arch/x86/Kconfig.debug linux-2.6.38.3/arch/x86/Kconfig.debug 10189diff -urNp linux-2.6.38.2/arch/x86/Kconfig.debug linux-2.6.38.2/arch/x86/Kconfig.debug
10475--- linux-2.6.38.3/arch/x86/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400 10190--- linux-2.6.38.2/arch/x86/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400
10476+++ linux-2.6.38.3/arch/x86/Kconfig.debug 2011-04-17 15:57:32.000000000 -0400 10191+++ linux-2.6.38.2/arch/x86/Kconfig.debug 2011-03-21 18:31:35.000000000 -0400
10477@@ -101,7 +101,7 @@ config X86_PTDUMP 10192@@ -101,7 +101,7 @@ config X86_PTDUMP
10478 config DEBUG_RODATA 10193 config DEBUG_RODATA
10479 bool "Write protect kernel read-only data structures" 10194 bool "Write protect kernel read-only data structures"
@@ -10492,9 +10207,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Kconfig.debug linux-2.6.38.3/arch/x86/Kconfig
10492 ---help--- 10207 ---help---
10493 This option helps catch unintended modifications to loadable 10208 This option helps catch unintended modifications to loadable
10494 kernel module's text and read-only data. It also prevents execution 10209 kernel module's text and read-only data. It also prevents execution
10495diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/boot.c linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 10210diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/boot.c linux-2.6.38.2/arch/x86/kernel/acpi/boot.c
10496--- linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 2011-03-14 21:20:32.000000000 -0400 10211--- linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 2011-03-14 21:20:32.000000000 -0400
10497+++ linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 2011-04-17 15:57:32.000000000 -0400 10212+++ linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 2011-03-21 18:31:35.000000000 -0400
10498@@ -1472,7 +1472,7 @@ static struct dmi_system_id __initdata a 10213@@ -1472,7 +1472,7 @@ static struct dmi_system_id __initdata a
10499 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), 10214 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
10500 }, 10215 },
@@ -10504,9 +10219,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/boot.c linux-2.6.38.3/arch/x86/ke
10504 }; 10219 };
10505 10220
10506 /* 10221 /*
10507diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 10222diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c
10508--- linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 2011-03-14 21:20:32.000000000 -0400 10223--- linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 2011-03-14 21:20:32.000000000 -0400
10509+++ linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 2011-04-17 15:57:32.000000000 -0400 10224+++ linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 2011-03-21 18:31:35.000000000 -0400
10510@@ -18,7 +18,7 @@ 10225@@ -18,7 +18,7 @@
10511 #include "realmode/wakeup.h" 10226 #include "realmode/wakeup.h"
10512 #include "sleep.h" 10227 #include "sleep.h"
@@ -10529,9 +10244,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c linux-2.6.38.3/arch/x86/k
10529 initial_gs = per_cpu_offset(smp_processor_id()); 10244 initial_gs = per_cpu_offset(smp_processor_id());
10530 #endif 10245 #endif
10531 initial_code = (unsigned long)wakeup_long64; 10246 initial_code = (unsigned long)wakeup_long64;
10532diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 10247diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S
10533--- linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 2011-03-14 21:20:32.000000000 -0400 10248--- linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S 2011-03-14 21:20:32.000000000 -0400
10534+++ linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 2011-04-17 15:57:32.000000000 -0400 10249+++ linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S 2011-03-21 18:31:35.000000000 -0400
10535@@ -30,13 +30,11 @@ wakeup_pmode_return: 10250@@ -30,13 +30,11 @@ wakeup_pmode_return:
10536 # and restore the stack ... but you need gdt for this to work 10251 # and restore the stack ... but you need gdt for this to work
10537 movl saved_context_esp, %esp 10252 movl saved_context_esp, %esp
@@ -10548,9 +10263,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.3/arch/x
10548 10263
10549 bogus_magic: 10264 bogus_magic:
10550 jmp bogus_magic 10265 jmp bogus_magic
10551diff -urNp linux-2.6.38.3/arch/x86/kernel/alternative.c linux-2.6.38.3/arch/x86/kernel/alternative.c 10266diff -urNp linux-2.6.38.2/arch/x86/kernel/alternative.c linux-2.6.38.2/arch/x86/kernel/alternative.c
10552--- linux-2.6.38.3/arch/x86/kernel/alternative.c 2011-04-18 17:27:13.000000000 -0400 10267--- linux-2.6.38.2/arch/x86/kernel/alternative.c 2011-03-23 17:20:06.000000000 -0400
10553+++ linux-2.6.38.3/arch/x86/kernel/alternative.c 2011-04-17 15:57:32.000000000 -0400 10268+++ linux-2.6.38.2/arch/x86/kernel/alternative.c 2011-03-28 16:55:19.000000000 -0400
10554@@ -248,7 +248,7 @@ static void alternatives_smp_lock(const 10269@@ -248,7 +248,7 @@ static void alternatives_smp_lock(const
10555 if (!*poff || ptr < text || ptr >= text_end) 10270 if (!*poff || ptr < text || ptr >= text_end)
10556 continue; 10271 continue;
@@ -10664,9 +10379,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/alternative.c linux-2.6.38.3/arch/x86/
10664 #endif 10379 #endif
10665 10380
10666 void __init arch_init_ideal_nop5(void) 10381 void __init arch_init_ideal_nop5(void)
10667diff -urNp linux-2.6.38.3/arch/x86/kernel/amd_iommu.c linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 10382diff -urNp linux-2.6.38.2/arch/x86/kernel/amd_iommu.c linux-2.6.38.2/arch/x86/kernel/amd_iommu.c
10668--- linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 2011-03-14 21:20:32.000000000 -0400 10383--- linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 2011-03-14 21:20:32.000000000 -0400
10669+++ linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 2011-04-17 15:57:32.000000000 -0400 10384+++ linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 2011-03-21 18:31:35.000000000 -0400
10670@@ -2286,7 +2286,7 @@ static void prealloc_protection_domains( 10385@@ -2286,7 +2286,7 @@ static void prealloc_protection_domains(
10671 } 10386 }
10672 } 10387 }
@@ -10676,9 +10391,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/amd_iommu.c linux-2.6.38.3/arch/x86/ke
10676 .alloc_coherent = alloc_coherent, 10391 .alloc_coherent = alloc_coherent,
10677 .free_coherent = free_coherent, 10392 .free_coherent = free_coherent,
10678 .map_page = map_page, 10393 .map_page = map_page,
10679diff -urNp linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 10394diff -urNp linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c
10680--- linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 2011-03-14 21:20:32.000000000 -0400 10395--- linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c 2011-03-14 21:20:32.000000000 -0400
10681+++ linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 2011-04-17 15:57:32.000000000 -0400 10396+++ linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c 2011-03-21 18:31:35.000000000 -0400
10682@@ -617,7 +617,7 @@ struct IO_APIC_route_entry **alloc_ioapi 10397@@ -617,7 +617,7 @@ struct IO_APIC_route_entry **alloc_ioapi
10683 ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics, 10398 ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics,
10684 GFP_KERNEL); 10399 GFP_KERNEL);
@@ -10715,9 +10430,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c linux-2.6.38.3/arch/x86
10715 { 10430 {
10716 raw_spin_unlock(&vector_lock); 10431 raw_spin_unlock(&vector_lock);
10717 } 10432 }
10718diff -urNp linux-2.6.38.3/arch/x86/kernel/apm_32.c linux-2.6.38.3/arch/x86/kernel/apm_32.c 10433diff -urNp linux-2.6.38.2/arch/x86/kernel/apm_32.c linux-2.6.38.2/arch/x86/kernel/apm_32.c
10719--- linux-2.6.38.3/arch/x86/kernel/apm_32.c 2011-03-14 21:20:32.000000000 -0400 10434--- linux-2.6.38.2/arch/x86/kernel/apm_32.c 2011-03-14 21:20:32.000000000 -0400
10720+++ linux-2.6.38.3/arch/x86/kernel/apm_32.c 2011-04-17 15:57:32.000000000 -0400 10435+++ linux-2.6.38.2/arch/x86/kernel/apm_32.c 2011-03-21 18:31:35.000000000 -0400
10721@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex); 10436@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex);
10722 * This is for buggy BIOS's that refer to (real mode) segment 0x40 10437 * This is for buggy BIOS's that refer to (real mode) segment 0x40
10723 * even though they are called in protected mode. 10438 * even though they are called in protected mode.
@@ -10819,18 +10534,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/apm_32.c linux-2.6.38.3/arch/x86/kerne
10819 10534
10820 proc_create("apm", 0, NULL, &apm_file_ops); 10535 proc_create("apm", 0, NULL, &apm_file_ops);
10821 10536
10822diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 10537diff -urNp linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c
10823--- linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 2011-03-14 21:20:32.000000000 -0400 10538--- linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c 2011-03-14 21:20:32.000000000 -0400
10824+++ linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 2011-04-17 15:57:32.000000000 -0400 10539+++ linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c 2011-03-21 18:31:35.000000000 -0400
10825@@ -51,7 +51,6 @@ void foo(void) 10540@@ -113,6 +113,11 @@ void foo(void)
10826 OFFSET(CPUINFO_x86_vendor_id, cpuinfo_x86, x86_vendor_id);
10827 BLANK();
10828
10829- OFFSET(TI_task, thread_info, task);
10830 OFFSET(TI_exec_domain, thread_info, exec_domain);
10831 OFFSET(TI_flags, thread_info, flags);
10832 OFFSET(TI_status, thread_info, status);
10833@@ -113,6 +112,11 @@ void foo(void)
10834 OFFSET(PV_CPU_iret, pv_cpu_ops, iret); 10541 OFFSET(PV_CPU_iret, pv_cpu_ops, iret);
10835 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 10542 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
10836 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); 10543 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
@@ -10842,9 +10549,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.3/arch/x
10842 #endif 10549 #endif
10843 10550
10844 #ifdef CONFIG_XEN 10551 #ifdef CONFIG_XEN
10845diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 10552diff -urNp linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c
10846--- linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 2011-03-14 21:20:32.000000000 -0400 10553--- linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c 2011-03-14 21:20:32.000000000 -0400
10847+++ linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 2011-04-17 15:57:32.000000000 -0400 10554+++ linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c 2011-03-21 18:31:35.000000000 -0400
10848@@ -63,6 +63,18 @@ int main(void) 10555@@ -63,6 +63,18 @@ int main(void)
10849 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 10556 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
10850 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs); 10557 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs);
@@ -10872,21 +10579,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.3/arch/x
10872 DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist)); 10579 DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist));
10873 BLANK(); 10580 BLANK();
10874 DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); 10581 DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
10875diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/amd.c linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 10582diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/kernel/cpu/common.c
10876--- linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 2011-03-14 21:20:32.000000000 -0400 10583--- linux-2.6.38.2/arch/x86/kernel/cpu/common.c 2011-03-14 21:20:32.000000000 -0400
10877+++ linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 2011-04-17 15:57:32.000000000 -0400 10584+++ linux-2.6.38.2/arch/x86/kernel/cpu/common.c 2011-03-21 18:31:35.000000000 -0400
10878@@ -601,7 +601,7 @@ static unsigned int __cpuinit amd_size_c
10879 unsigned int size)
10880 {
10881 /* AMD errata T13 (order #21922) */
10882- if ((c->x86 == 6)) {
10883+ if (c->x86 == 6) {
10884 /* Duron Rev A0 */
10885 if (c->x86_model == 3 && c->x86_mask == 0)
10886 size = 64;
10887diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/kernel/cpu/common.c
10888--- linux-2.6.38.3/arch/x86/kernel/cpu/common.c 2011-03-14 21:20:32.000000000 -0400
10889+++ linux-2.6.38.3/arch/x86/kernel/cpu/common.c 2011-04-17 15:57:32.000000000 -0400
10890@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitcon 10585@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitcon
10891 10586
10892 static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu; 10587 static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu;
@@ -10968,26 +10663,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
10968 /* If the model name is still unset, do table lookup. */ 10663 /* If the model name is still unset, do table lookup. */
10969 if (!c->x86_model_id[0]) { 10664 if (!c->x86_model_id[0]) {
10970 const char *p; 10665 const char *p;
10971@@ -1004,6 +954,9 @@ static __init int setup_disablecpuid(cha 10666@@ -1084,7 +1034,7 @@ struct pt_regs * __cpuinit idle_regs(str
10972 }
10973 __setup("clearcpuid=", setup_disablecpuid);
10974
10975+DEFINE_PER_CPU(struct thread_info *, current_tinfo) = &init_task.tinfo;
10976+EXPORT_PER_CPU_SYMBOL(current_tinfo);
10977+
10978 #ifdef CONFIG_X86_64
10979 struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
10980
10981@@ -1019,7 +972,7 @@ DEFINE_PER_CPU(struct task_struct *, cur
10982 EXPORT_PER_CPU_SYMBOL(current_task);
10983
10984 DEFINE_PER_CPU(unsigned long, kernel_stack) =
10985- (unsigned long)&init_thread_union - KERNEL_STACK_OFFSET + THREAD_SIZE;
10986+ (unsigned long)&init_thread_union - 8 + THREAD_SIZE;
10987 EXPORT_PER_CPU_SYMBOL(kernel_stack);
10988
10989 DEFINE_PER_CPU(char *, irq_stack_ptr) =
10990@@ -1084,7 +1037,7 @@ struct pt_regs * __cpuinit idle_regs(str
10991 { 10667 {
10992 memset(regs, 0, sizeof(struct pt_regs)); 10668 memset(regs, 0, sizeof(struct pt_regs));
10993 regs->fs = __KERNEL_PERCPU; 10669 regs->fs = __KERNEL_PERCPU;
@@ -10996,7 +10672,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
10996 10672
10997 return regs; 10673 return regs;
10998 } 10674 }
10999@@ -1139,7 +1092,7 @@ void __cpuinit cpu_init(void) 10675@@ -1139,7 +1089,7 @@ void __cpuinit cpu_init(void)
11000 int i; 10676 int i;
11001 10677
11002 cpu = stack_smp_processor_id(); 10678 cpu = stack_smp_processor_id();
@@ -11005,7 +10681,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11005 oist = &per_cpu(orig_ist, cpu); 10681 oist = &per_cpu(orig_ist, cpu);
11006 10682
11007 #ifdef CONFIG_NUMA 10683 #ifdef CONFIG_NUMA
11008@@ -1165,7 +1118,7 @@ void __cpuinit cpu_init(void) 10684@@ -1165,7 +1115,7 @@ void __cpuinit cpu_init(void)
11009 switch_to_new_gdt(cpu); 10685 switch_to_new_gdt(cpu);
11010 loadsegment(fs, 0); 10686 loadsegment(fs, 0);
11011 10687
@@ -11014,7 +10690,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11014 10690
11015 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8); 10691 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
11016 syscall_init(); 10692 syscall_init();
11017@@ -1174,7 +1127,6 @@ void __cpuinit cpu_init(void) 10693@@ -1174,7 +1124,6 @@ void __cpuinit cpu_init(void)
11018 wrmsrl(MSR_KERNEL_GS_BASE, 0); 10694 wrmsrl(MSR_KERNEL_GS_BASE, 0);
11019 barrier(); 10695 barrier();
11020 10696
@@ -11022,7 +10698,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11022 if (cpu != 0) 10698 if (cpu != 0)
11023 enable_x2apic(); 10699 enable_x2apic();
11024 10700
11025@@ -1228,7 +1180,7 @@ void __cpuinit cpu_init(void) 10701@@ -1228,7 +1177,7 @@ void __cpuinit cpu_init(void)
11026 { 10702 {
11027 int cpu = smp_processor_id(); 10703 int cpu = smp_processor_id();
11028 struct task_struct *curr = current; 10704 struct task_struct *curr = current;
@@ -11031,9 +10707,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11031 struct thread_struct *thread = &curr->thread; 10707 struct thread_struct *thread = &curr->thread;
11032 10708
11033 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) { 10709 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
11034diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 10710diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
11035--- linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-14 21:20:32.000000000 -0400 10711--- linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-14 21:20:32.000000000 -0400
11036+++ linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-04-17 15:57:32.000000000 -0400 10712+++ linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-21 18:31:35.000000000 -0400
11037@@ -481,7 +481,7 @@ static const struct dmi_system_id sw_any 10713@@ -481,7 +481,7 @@ static const struct dmi_system_id sw_any
11038 DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"), 10714 DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"),
11039 }, 10715 },
@@ -11043,9 +10719,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.3
11043 }; 10719 };
11044 10720
11045 static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c) 10721 static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c)
11046diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 10722diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
11047--- linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-14 21:20:32.000000000 -0400 10723--- linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-14 21:20:32.000000000 -0400
11048+++ linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-04-17 15:57:32.000000000 -0400 10724+++ linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-21 18:31:35.000000000 -0400
11049@@ -226,7 +226,7 @@ static struct cpu_model models[] = 10725@@ -226,7 +226,7 @@ static struct cpu_model models[] =
11050 { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL }, 10726 { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL },
11051 { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL }, 10727 { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL },
@@ -11055,9 +10731,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux
11055 }; 10731 };
11056 #undef _BANIAS 10732 #undef _BANIAS
11057 #undef BANIAS 10733 #undef BANIAS
11058diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/intel.c linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 10734diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/intel.c linux-2.6.38.2/arch/x86/kernel/cpu/intel.c
11059--- linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 2011-03-14 21:20:32.000000000 -0400 10735--- linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 2011-03-14 21:20:32.000000000 -0400
11060+++ linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 2011-04-17 15:57:32.000000000 -0400 10736+++ linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 2011-03-21 18:31:35.000000000 -0400
11061@@ -161,7 +161,7 @@ static void __cpuinit trap_init_f00f_bug 10737@@ -161,7 +161,7 @@ static void __cpuinit trap_init_f00f_bug
11062 * Update the IDT descriptor and reload the IDT so that 10738 * Update the IDT descriptor and reload the IDT so that
11063 * it uses the read-only mapped virtual address. 10739 * it uses the read-only mapped virtual address.
@@ -11067,9 +10743,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/intel.c linux-2.6.38.3/arch/x86/ke
11067 load_idt(&idt_descr); 10743 load_idt(&idt_descr);
11068 } 10744 }
11069 #endif 10745 #endif
11070diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/Makefile linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 10746diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/Makefile linux-2.6.38.2/arch/x86/kernel/cpu/Makefile
11071--- linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 2011-03-14 21:20:32.000000000 -0400 10747--- linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 2011-03-14 21:20:32.000000000 -0400
11072+++ linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 2011-04-17 15:57:32.000000000 -0400 10748+++ linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 2011-03-21 18:31:35.000000000 -0400
11073@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg 10749@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
11074 CFLAGS_REMOVE_perf_event.o = -pg 10750 CFLAGS_REMOVE_perf_event.o = -pg
11075 endif 10751 endif
@@ -11081,9 +10757,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/Makefile linux-2.6.38.3/arch/x86/k
11081 obj-y := intel_cacheinfo.o scattered.o topology.o 10757 obj-y := intel_cacheinfo.o scattered.o topology.o
11082 obj-y += proc.o capflags.o powerflags.o common.o 10758 obj-y += proc.o capflags.o powerflags.o common.o
11083 obj-y += vmware.o hypervisor.o sched.o mshyperv.o 10759 obj-y += vmware.o hypervisor.o sched.o mshyperv.o
11084diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 10760diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c
11085--- linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-14 21:20:32.000000000 -0400 10761--- linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-14 21:20:32.000000000 -0400
11086+++ linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 2011-04-17 15:57:32.000000000 -0400 10762+++ linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-21 18:31:35.000000000 -0400
11087@@ -45,6 +45,7 @@ 10763@@ -45,6 +45,7 @@
11088 #include <asm/ipi.h> 10764 #include <asm/ipi.h>
11089 #include <asm/mce.h> 10765 #include <asm/mce.h>
@@ -11154,9 +10830,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.3/arch/x
11154 }; 10830 };
11155 10831
11156 /* 10832 /*
11157diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 10833diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c
11158--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-14 21:20:32.000000000 -0400 10834--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-14 21:20:32.000000000 -0400
11159+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 2011-04-17 15:57:32.000000000 -0400 10835+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-21 18:31:35.000000000 -0400
11160@@ -28,7 +28,7 @@ static struct fixed_range_block fixed_ra 10836@@ -28,7 +28,7 @@ static struct fixed_range_block fixed_ra
11161 { MSR_MTRRfix64K_00000, 1 }, /* one 64k MTRR */ 10837 { MSR_MTRRfix64K_00000, 1 }, /* one 64k MTRR */
11162 { MSR_MTRRfix16K_80000, 2 }, /* two 16k MTRRs */ 10838 { MSR_MTRRfix16K_80000, 2 }, /* two 16k MTRRs */
@@ -11166,9 +10842,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.3/arch
11166 }; 10842 };
11167 10843
11168 static unsigned long smp_changes_mask; 10844 static unsigned long smp_changes_mask;
11169diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 10845diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c
11170--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 2011-04-18 17:27:18.000000000 -0400 10846--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c 2011-03-14 21:20:32.000000000 -0400
11171+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 2011-04-17 16:53:16.000000000 -0400 10847+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c 2011-03-21 18:31:35.000000000 -0400
11172@@ -61,7 +61,7 @@ static DEFINE_MUTEX(mtrr_mutex); 10848@@ -61,7 +61,7 @@ static DEFINE_MUTEX(mtrr_mutex);
11173 u64 size_or_mask, size_and_mask; 10849 u64 size_or_mask, size_and_mask;
11174 static bool mtrr_aps_delayed_init; 10850 static bool mtrr_aps_delayed_init;
@@ -11178,9 +10854,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.3/arch/x8
11178 10854
11179 const struct mtrr_ops *mtrr_if; 10855 const struct mtrr_ops *mtrr_if;
11180 10856
11181diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 10857diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h
11182--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-14 21:20:32.000000000 -0400 10858--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-14 21:20:32.000000000 -0400
11183+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-04-17 15:57:32.000000000 -0400 10859+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-21 18:31:35.000000000 -0400
11184@@ -12,19 +12,19 @@ 10860@@ -12,19 +12,19 @@
11185 extern unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES]; 10861 extern unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES];
11186 10862
@@ -11209,9 +10885,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.3/arch/x8
11209 }; 10885 };
11210 10886
11211 extern int generic_get_free_region(unsigned long base, unsigned long size, 10887 extern int generic_get_free_region(unsigned long base, unsigned long size,
11212diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 10888diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c
11213--- linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 2011-03-14 21:20:32.000000000 -0400 10889--- linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c 2011-03-14 21:20:32.000000000 -0400
11214+++ linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 2011-04-17 15:57:32.000000000 -0400 10890+++ linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c 2011-03-21 18:31:35.000000000 -0400
11215@@ -1781,7 +1781,7 @@ perf_callchain_user(struct perf_callchai 10891@@ -1781,7 +1781,7 @@ perf_callchain_user(struct perf_callchai
11216 break; 10892 break;
11217 10893
@@ -11221,9 +10897,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.3/arch/x
11221 } 10897 }
11222 } 10898 }
11223 10899
11224diff -urNp linux-2.6.38.3/arch/x86/kernel/crash.c linux-2.6.38.3/arch/x86/kernel/crash.c 10900diff -urNp linux-2.6.38.2/arch/x86/kernel/crash.c linux-2.6.38.2/arch/x86/kernel/crash.c
11225--- linux-2.6.38.3/arch/x86/kernel/crash.c 2011-03-14 21:20:32.000000000 -0400 10901--- linux-2.6.38.2/arch/x86/kernel/crash.c 2011-03-14 21:20:32.000000000 -0400
11226+++ linux-2.6.38.3/arch/x86/kernel/crash.c 2011-04-17 15:57:32.000000000 -0400 10902+++ linux-2.6.38.2/arch/x86/kernel/crash.c 2011-03-21 18:31:35.000000000 -0400
11227@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu, 10903@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu,
11228 regs = args->regs; 10904 regs = args->regs;
11229 10905
@@ -11233,9 +10909,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/crash.c linux-2.6.38.3/arch/x86/kernel
11233 crash_fixup_ss_esp(&fixed_regs, regs); 10909 crash_fixup_ss_esp(&fixed_regs, regs);
11234 regs = &fixed_regs; 10910 regs = &fixed_regs;
11235 } 10911 }
11236diff -urNp linux-2.6.38.3/arch/x86/kernel/doublefault_32.c linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 10912diff -urNp linux-2.6.38.2/arch/x86/kernel/doublefault_32.c linux-2.6.38.2/arch/x86/kernel/doublefault_32.c
11237--- linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 2011-03-14 21:20:32.000000000 -0400 10913--- linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 2011-03-14 21:20:32.000000000 -0400
11238+++ linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 2011-04-17 15:57:32.000000000 -0400 10914+++ linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 2011-03-21 18:31:35.000000000 -0400
11239@@ -11,7 +11,7 @@ 10915@@ -11,7 +11,7 @@
11240 10916
11241 #define DOUBLEFAULT_STACKSIZE (1024) 10917 #define DOUBLEFAULT_STACKSIZE (1024)
@@ -11267,30 +10943,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/doublefault_32.c linux-2.6.38.3/arch/x
11267 .fs = __KERNEL_PERCPU, 10943 .fs = __KERNEL_PERCPU,
11268 10944
11269 .__cr3 = __pa_nodebug(swapper_pg_dir), 10945 .__cr3 = __pa_nodebug(swapper_pg_dir),
11270diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 10946diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c
11271--- linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 2011-03-14 21:20:32.000000000 -0400 10947--- linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 2011-03-14 21:20:32.000000000 -0400
11272+++ linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 2011-04-17 15:57:32.000000000 -0400 10948+++ linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 2011-03-21 18:31:35.000000000 -0400
11273@@ -37,15 +37,12 @@ void dump_trace(struct task_struct *task 10949@@ -95,21 +95,22 @@ void show_registers(struct pt_regs *regs
11274
11275 bp = stack_frame(task, regs);
11276 for (;;) {
11277- struct thread_info *context;
11278+ void *stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
11279+ bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
11280
11281- context = (struct thread_info *)
11282- ((unsigned long)stack & (~(THREAD_SIZE - 1)));
11283- bp = ops->walk_stack(context, stack, bp, ops, data, NULL, &graph);
11284-
11285- stack = (unsigned long *)context->previous_esp;
11286- if (!stack)
11287+ if (stack_start == task_stack_page(task))
11288 break;
11289+ stack = *(unsigned long **)stack_start;
11290 if (ops->stack(data, "IRQ") < 0)
11291 break;
11292 touch_nmi_watchdog();
11293@@ -95,21 +92,22 @@ void show_registers(struct pt_regs *regs
11294 * When in-kernel, we also print out the stack and code at the 10950 * When in-kernel, we also print out the stack and code at the
11295 * time of the fault.. 10951 * time of the fault..
11296 */ 10952 */
@@ -11316,7 +10972,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86
11316 code_len = code_len - code_prologue + 1; 10972 code_len = code_len - code_prologue + 1;
11317 } 10973 }
11318 for (i = 0; i < code_len; i++, ip++) { 10974 for (i = 0; i < code_len; i++, ip++) {
11319@@ -118,7 +116,7 @@ void show_registers(struct pt_regs *regs 10975@@ -118,7 +119,7 @@ void show_registers(struct pt_regs *regs
11320 printk(" Bad EIP value."); 10976 printk(" Bad EIP value.");
11321 break; 10977 break;
11322 } 10978 }
@@ -11325,7 +10981,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86
11325 printk("<%02x> ", c); 10981 printk("<%02x> ", c);
11326 else 10982 else
11327 printk("%02x ", c); 10983 printk("%02x ", c);
11328@@ -131,6 +129,7 @@ int is_valid_bugaddr(unsigned long ip) 10984@@ -131,6 +132,7 @@ int is_valid_bugaddr(unsigned long ip)
11329 { 10985 {
11330 unsigned short ud2; 10986 unsigned short ud2;
11331 10987
@@ -11333,64 +10989,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86
11333 if (ip < PAGE_OFFSET) 10989 if (ip < PAGE_OFFSET)
11334 return 0; 10990 return 0;
11335 if (probe_kernel_address((unsigned short *)ip, ud2)) 10991 if (probe_kernel_address((unsigned short *)ip, ud2))
11336diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 10992diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/kernel/dumpstack.c
11337--- linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 2011-03-14 21:20:32.000000000 -0400 10993--- linux-2.6.38.2/arch/x86/kernel/dumpstack.c 2011-03-14 21:20:32.000000000 -0400
11338+++ linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 2011-04-17 15:57:32.000000000 -0400 10994+++ linux-2.6.38.2/arch/x86/kernel/dumpstack.c 2011-03-21 18:31:35.000000000 -0400
11339@@ -147,10 +147,10 @@ void dump_trace(struct task_struct *task
11340 unsigned long *irq_stack_end =
11341 (unsigned long *)per_cpu(irq_stack_ptr, cpu);
11342 unsigned used = 0;
11343- struct thread_info *tinfo;
11344 int graph = 0;
11345 unsigned long dummy;
11346 unsigned long bp;
11347+ void *stack_start;
11348
11349 if (!task)
11350 task = current;
11351@@ -167,10 +167,10 @@ void dump_trace(struct task_struct *task
11352 * current stack address. If the stacks consist of nested
11353 * exceptions
11354 */
11355- tinfo = task_thread_info(task);
11356 for (;;) {
11357 char *id;
11358 unsigned long *estack_end;
11359+
11360 estack_end = in_exception_stack(cpu, (unsigned long)stack,
11361 &used, &id);
11362
11363@@ -178,7 +178,7 @@ void dump_trace(struct task_struct *task
11364 if (ops->stack(data, id) < 0)
11365 break;
11366
11367- bp = ops->walk_stack(tinfo, stack, bp, ops,
11368+ bp = ops->walk_stack(task, estack_end - EXCEPTION_STKSZ, stack, bp, ops,
11369 data, estack_end, &graph);
11370 ops->stack(data, "<EOE>");
11371 /*
11372@@ -197,7 +197,7 @@ void dump_trace(struct task_struct *task
11373 if (in_irq_stack(stack, irq_stack, irq_stack_end)) {
11374 if (ops->stack(data, "IRQ") < 0)
11375 break;
11376- bp = ops->walk_stack(tinfo, stack, bp,
11377+ bp = ops->walk_stack(task, irq_stack, stack, bp,
11378 ops, data, irq_stack_end, &graph);
11379 /*
11380 * We link to the next stack (which would be
11381@@ -218,7 +218,8 @@ void dump_trace(struct task_struct *task
11382 /*
11383 * This handles the process stack:
11384 */
11385- bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
11386+ stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
11387+ bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
11388 put_cpu();
11389 }
11390 EXPORT_SYMBOL(dump_trace);
11391diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/kernel/dumpstack.c
11392--- linux-2.6.38.3/arch/x86/kernel/dumpstack.c 2011-03-14 21:20:32.000000000 -0400
11393+++ linux-2.6.38.3/arch/x86/kernel/dumpstack.c 2011-04-17 15:57:32.000000000 -0400
11394@@ -2,6 +2,9 @@ 10995@@ -2,6 +2,9 @@
11395 * Copyright (C) 1991, 1992 Linus Torvalds 10996 * Copyright (C) 1991, 1992 Linus Torvalds
11396 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 10997 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
@@ -11410,92 +11011,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11410 reliable ? "" : "? ", (void *) address); 11011 reliable ? "" : "? ", (void *) address);
11411 } 11012 }
11412 11013
11413@@ -35,9 +38,8 @@ void printk_address(unsigned long addres 11014@@ -200,7 +203,7 @@ void dump_stack(void)
11414 static void
11415 print_ftrace_graph_addr(unsigned long addr, void *data,
11416 const struct stacktrace_ops *ops,
11417- struct thread_info *tinfo, int *graph)
11418+ struct task_struct *task, int *graph)
11419 {
11420- struct task_struct *task = tinfo->task;
11421 unsigned long ret_addr;
11422 int index = task->curr_ret_stack;
11423
11424@@ -58,7 +60,7 @@ print_ftrace_graph_addr(unsigned long ad
11425 static inline void
11426 print_ftrace_graph_addr(unsigned long addr, void *data,
11427 const struct stacktrace_ops *ops,
11428- struct thread_info *tinfo, int *graph)
11429+ struct task_struct *task, int *graph)
11430 { }
11431 #endif
11432
11433@@ -69,10 +71,8 @@ print_ftrace_graph_addr(unsigned long ad
11434 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
11435 */
11436
11437-static inline int valid_stack_ptr(struct thread_info *tinfo,
11438- void *p, unsigned int size, void *end)
11439+static inline int valid_stack_ptr(void *t, void *p, unsigned int size, void *end)
11440 {
11441- void *t = tinfo;
11442 if (end) {
11443 if (p < end && p >= (end-THREAD_SIZE))
11444 return 1;
11445@@ -83,14 +83,14 @@ static inline int valid_stack_ptr(struct
11446 }
11447
11448 unsigned long
11449-print_context_stack(struct thread_info *tinfo,
11450+print_context_stack(struct task_struct *task, void *stack_start,
11451 unsigned long *stack, unsigned long bp,
11452 const struct stacktrace_ops *ops, void *data,
11453 unsigned long *end, int *graph)
11454 {
11455 struct stack_frame *frame = (struct stack_frame *)bp;
11456
11457- while (valid_stack_ptr(tinfo, stack, sizeof(*stack), end)) {
11458+ while (valid_stack_ptr(stack_start, stack, sizeof(*stack), end)) {
11459 unsigned long addr;
11460
11461 addr = *stack;
11462@@ -102,7 +102,7 @@ print_context_stack(struct thread_info *
11463 } else {
11464 ops->address(data, addr, 0);
11465 }
11466- print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
11467+ print_ftrace_graph_addr(addr, data, ops, task, graph);
11468 }
11469 stack++;
11470 }
11471@@ -111,7 +111,7 @@ print_context_stack(struct thread_info *
11472 EXPORT_SYMBOL_GPL(print_context_stack);
11473
11474 unsigned long
11475-print_context_stack_bp(struct thread_info *tinfo,
11476+print_context_stack_bp(struct task_struct *task, void *stack_start,
11477 unsigned long *stack, unsigned long bp,
11478 const struct stacktrace_ops *ops, void *data,
11479 unsigned long *end, int *graph)
11480@@ -119,7 +119,7 @@ print_context_stack_bp(struct thread_inf
11481 struct stack_frame *frame = (struct stack_frame *)bp;
11482 unsigned long *ret_addr = &frame->return_address;
11483
11484- while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) {
11485+ while (valid_stack_ptr(stack_start, ret_addr, sizeof(*ret_addr), end)) {
11486 unsigned long addr = *ret_addr;
11487
11488 if (!__kernel_text_address(addr))
11489@@ -128,7 +128,7 @@ print_context_stack_bp(struct thread_inf
11490 ops->address(data, addr, 1);
11491 frame = frame->next_frame;
11492 ret_addr = &frame->return_address;
11493- print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
11494+ print_ftrace_graph_addr(addr, data, ops, task, graph);
11495 }
11496
11497 return (unsigned long)frame;
11498@@ -200,7 +200,7 @@ void dump_stack(void)
11499 unsigned long stack; 11015 unsigned long stack;
11500 11016
11501 printk("Pid: %d, comm: %.20s %s %s %.*s\n", 11017 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
@@ -11504,28 +11020,16 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11504 init_utsname()->release, 11020 init_utsname()->release,
11505 (int)strcspn(init_utsname()->version, " "), 11021 (int)strcspn(init_utsname()->version, " "),
11506 init_utsname()->version); 11022 init_utsname()->version);
11507@@ -236,6 +236,8 @@ unsigned __kprobes long oops_begin(void) 11023@@ -257,7 +260,7 @@ void __kprobes oops_end(unsigned long fl
11508 }
11509 EXPORT_SYMBOL_GPL(oops_begin);
11510
11511+extern void gr_handle_kernel_exploit(void);
11512+
11513 void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
11514 {
11515 if (regs && kexec_should_crash(current))
11516@@ -257,7 +259,10 @@ void __kprobes oops_end(unsigned long fl
11517 panic("Fatal exception in interrupt"); 11024 panic("Fatal exception in interrupt");
11518 if (panic_on_oops) 11025 if (panic_on_oops)
11519 panic("Fatal exception"); 11026 panic("Fatal exception");
11520- do_exit(signr); 11027- do_exit(signr);
11521+
11522+ gr_handle_kernel_exploit();
11523+
11524+ do_group_exit(signr); 11028+ do_group_exit(signr);
11525 } 11029 }
11526 11030
11527 int __kprobes __die(const char *str, struct pt_regs *regs, long err) 11031 int __kprobes __die(const char *str, struct pt_regs *regs, long err)
11528@@ -284,7 +289,7 @@ int __kprobes __die(const char *str, str 11032@@ -284,7 +287,7 @@ int __kprobes __die(const char *str, str
11529 11033
11530 show_registers(regs); 11034 show_registers(regs);
11531 #ifdef CONFIG_X86_32 11035 #ifdef CONFIG_X86_32
@@ -11534,7 +11038,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11534 sp = regs->sp; 11038 sp = regs->sp;
11535 ss = regs->ss & 0xffff; 11039 ss = regs->ss & 0xffff;
11536 } else { 11040 } else {
11537@@ -312,7 +317,7 @@ void die(const char *str, struct pt_regs 11041@@ -312,7 +315,7 @@ void die(const char *str, struct pt_regs
11538 unsigned long flags = oops_begin(); 11042 unsigned long flags = oops_begin();
11539 int sig = SIGSEGV; 11043 int sig = SIGSEGV;
11540 11044
@@ -11543,9 +11047,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11543 report_bug(regs->ip, regs); 11047 report_bug(regs->ip, regs);
11544 11048
11545 if (__die(str, regs, err)) 11049 if (__die(str, regs, err))
11546diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/kernel/entry_32.S 11050diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/kernel/entry_32.S
11547--- linux-2.6.38.3/arch/x86/kernel/entry_32.S 2011-04-18 17:27:16.000000000 -0400 11051--- linux-2.6.38.2/arch/x86/kernel/entry_32.S 2011-03-28 17:42:40.000000000 -0400
11548+++ linux-2.6.38.3/arch/x86/kernel/entry_32.S 2011-04-17 15:57:32.000000000 -0400 11052+++ linux-2.6.38.2/arch/x86/kernel/entry_32.S 2011-03-28 17:42:53.000000000 -0400
11549@@ -183,13 +183,81 @@ 11053@@ -183,13 +183,81 @@
11550 /*CFI_REL_OFFSET gs, PT_GS*/ 11054 /*CFI_REL_OFFSET gs, PT_GS*/
11551 .endm 11055 .endm
@@ -11918,9 +11422,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11918 RESTORE_REGS 11422 RESTORE_REGS
11919 lss 12+4(%esp), %esp # back to espfix stack 11423 lss 12+4(%esp), %esp # back to espfix stack
11920 CFI_ADJUST_CFA_OFFSET -24 11424 CFI_ADJUST_CFA_OFFSET -24
11921diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/kernel/entry_64.S 11425diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/kernel/entry_64.S
11922--- linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-18 17:27:13.000000000 -0400 11426--- linux-2.6.38.2/arch/x86/kernel/entry_64.S 2011-03-23 17:20:06.000000000 -0400
11923+++ linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-17 15:57:32.000000000 -0400 11427+++ linux-2.6.38.2/arch/x86/kernel/entry_64.S 2011-03-23 17:21:49.000000000 -0400
11924@@ -53,6 +53,7 @@ 11428@@ -53,6 +53,7 @@
11925 #include <asm/paravirt.h> 11429 #include <asm/paravirt.h>
11926 #include <asm/ftrace.h> 11430 #include <asm/ftrace.h>
@@ -11929,7 +11433,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
11929 11433
11930 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 11434 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
11931 #include <linux/elf-em.h> 11435 #include <linux/elf-em.h>
11932@@ -174,6 +175,206 @@ ENTRY(native_usergs_sysret64) 11436@@ -174,6 +175,201 @@ ENTRY(native_usergs_sysret64)
11933 ENDPROC(native_usergs_sysret64) 11437 ENDPROC(native_usergs_sysret64)
11934 #endif /* CONFIG_PARAVIRT */ 11438 #endif /* CONFIG_PARAVIRT */
11935 11439
@@ -12021,11 +11525,6 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12021+#ifdef CONFIG_PAX_MEMORY_UDEREF 11525+#ifdef CONFIG_PAX_MEMORY_UDEREF
12022+ call pax_exit_kernel_user 11526+ call pax_exit_kernel_user
12023+#endif 11527+#endif
12024+#ifdef CONFIG_PAX_RANDKSTACK
12025+ push %rax
12026+ call pax_randomize_kstack
12027+ pop %rax
12028+#endif
12029+ .endm 11528+ .endm
12030+ 11529+
12031+#ifdef CONFIG_PAX_MEMORY_UDEREF 11530+#ifdef CONFIG_PAX_MEMORY_UDEREF
@@ -12136,7 +11635,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12136 11635
12137 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET 11636 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
12138 #ifdef CONFIG_TRACE_IRQFLAGS 11637 #ifdef CONFIG_TRACE_IRQFLAGS
12139@@ -316,7 +517,7 @@ ENTRY(save_args) 11638@@ -316,7 +512,7 @@ ENTRY(save_args)
12140 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */ 11639 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */
12141 movq_cfi rbp, 8 /* push %rbp */ 11640 movq_cfi rbp, 8 /* push %rbp */
12142 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */ 11641 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */
@@ -12145,7 +11644,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12145 je 1f 11644 je 1f
12146 SWAPGS 11645 SWAPGS
12147 /* 11646 /*
12148@@ -407,7 +608,7 @@ ENTRY(ret_from_fork) 11647@@ -407,7 +603,7 @@ ENTRY(ret_from_fork)
12149 11648
12150 RESTORE_REST 11649 RESTORE_REST
12151 11650
@@ -12154,16 +11653,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12154 je int_ret_from_sys_call 11653 je int_ret_from_sys_call
12155 11654
12156 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET 11655 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
12157@@ -453,7 +654,7 @@ END(ret_from_fork) 11656@@ -466,6 +662,7 @@ ENTRY(system_call_after_swapgs)
12158 ENTRY(system_call)
12159 CFI_STARTPROC simple
12160 CFI_SIGNAL_FRAME
12161- CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
12162+ CFI_DEF_CFA rsp,0
12163 CFI_REGISTER rip,rcx
12164 /*CFI_REGISTER rflags,r11*/
12165 SWAPGS_UNSAFE_STACK
12166@@ -466,12 +667,13 @@ ENTRY(system_call_after_swapgs)
12167 11657
12168 movq %rsp,PER_CPU_VAR(old_rsp) 11658 movq %rsp,PER_CPU_VAR(old_rsp)
12169 movq PER_CPU_VAR(kernel_stack),%rsp 11659 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -12171,14 +11661,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12171 /* 11661 /*
12172 * No need to follow this irqs off/on section - it's straight 11662 * No need to follow this irqs off/on section - it's straight
12173 * and short: 11663 * and short:
12174 */ 11664@@ -500,6 +697,7 @@ sysret_check:
12175 ENABLE_INTERRUPTS(CLBR_NONE)
12176- SAVE_ARGS 8,1
12177+ SAVE_ARGS 8*6,1
12178 movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
12179 movq %rcx,RIP-ARGOFFSET(%rsp)
12180 CFI_REL_OFFSET rip,RIP-ARGOFFSET
12181@@ -500,6 +702,7 @@ sysret_check:
12182 andl %edi,%edx 11665 andl %edi,%edx
12183 jnz sysret_careful 11666 jnz sysret_careful
12184 CFI_REMEMBER_STATE 11667 CFI_REMEMBER_STATE
@@ -12186,7 +11669,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12186 /* 11669 /*
12187 * sysretq will re-enable interrupts: 11670 * sysretq will re-enable interrupts:
12188 */ 11671 */
12189@@ -609,7 +812,7 @@ tracesys: 11672@@ -609,7 +807,7 @@ tracesys:
12190 GLOBAL(int_ret_from_sys_call) 11673 GLOBAL(int_ret_from_sys_call)
12191 DISABLE_INTERRUPTS(CLBR_NONE) 11674 DISABLE_INTERRUPTS(CLBR_NONE)
12192 TRACE_IRQS_OFF 11675 TRACE_IRQS_OFF
@@ -12195,7 +11678,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12195 je retint_restore_args 11678 je retint_restore_args
12196 movl $_TIF_ALLWORK_MASK,%edi 11679 movl $_TIF_ALLWORK_MASK,%edi
12197 /* edi: mask to check */ 11680 /* edi: mask to check */
12198@@ -791,6 +994,16 @@ END(interrupt) 11681@@ -791,6 +989,16 @@ END(interrupt)
12199 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP 11682 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
12200 call save_args 11683 call save_args
12201 PARTIAL_FRAME 0 11684 PARTIAL_FRAME 0
@@ -12212,7 +11695,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12212 call \func 11695 call \func
12213 .endm 11696 .endm
12214 11697
12215@@ -823,7 +1036,7 @@ ret_from_intr: 11698@@ -823,7 +1031,7 @@ ret_from_intr:
12216 CFI_ADJUST_CFA_OFFSET -8 11699 CFI_ADJUST_CFA_OFFSET -8
12217 exit_intr: 11700 exit_intr:
12218 GET_THREAD_INFO(%rcx) 11701 GET_THREAD_INFO(%rcx)
@@ -12221,7 +11704,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12221 je retint_kernel 11704 je retint_kernel
12222 11705
12223 /* Interrupt came from user space */ 11706 /* Interrupt came from user space */
12224@@ -845,12 +1058,14 @@ retint_swapgs: /* return to user-space 11707@@ -845,12 +1053,14 @@ retint_swapgs: /* return to user-space
12225 * The iretq could re-enable interrupts: 11708 * The iretq could re-enable interrupts:
12226 */ 11709 */
12227 DISABLE_INTERRUPTS(CLBR_ANY) 11710 DISABLE_INTERRUPTS(CLBR_ANY)
@@ -12236,7 +11719,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12236 /* 11719 /*
12237 * The iretq could re-enable interrupts: 11720 * The iretq could re-enable interrupts:
12238 */ 11721 */
12239@@ -1022,6 +1237,16 @@ ENTRY(\sym) 11722@@ -1022,6 +1232,16 @@ ENTRY(\sym)
12240 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11723 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12241 call error_entry 11724 call error_entry
12242 DEFAULT_FRAME 0 11725 DEFAULT_FRAME 0
@@ -12253,7 +11736,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12253 movq %rsp,%rdi /* pt_regs pointer */ 11736 movq %rsp,%rdi /* pt_regs pointer */
12254 xorl %esi,%esi /* no error code */ 11737 xorl %esi,%esi /* no error code */
12255 call \do_sym 11738 call \do_sym
12256@@ -1039,6 +1264,16 @@ ENTRY(\sym) 11739@@ -1039,6 +1259,16 @@ ENTRY(\sym)
12257 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11740 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12258 call save_paranoid 11741 call save_paranoid
12259 TRACE_IRQS_OFF 11742 TRACE_IRQS_OFF
@@ -12270,7 +11753,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12270 movq %rsp,%rdi /* pt_regs pointer */ 11753 movq %rsp,%rdi /* pt_regs pointer */
12271 xorl %esi,%esi /* no error code */ 11754 xorl %esi,%esi /* no error code */
12272 call \do_sym 11755 call \do_sym
12273@@ -1047,7 +1282,7 @@ ENTRY(\sym) 11756@@ -1047,7 +1277,7 @@ ENTRY(\sym)
12274 END(\sym) 11757 END(\sym)
12275 .endm 11758 .endm
12276 11759
@@ -12279,7 +11762,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12279 .macro paranoidzeroentry_ist sym do_sym ist 11762 .macro paranoidzeroentry_ist sym do_sym ist
12280 ENTRY(\sym) 11763 ENTRY(\sym)
12281 INTR_FRAME 11764 INTR_FRAME
12282@@ -1057,8 +1292,24 @@ ENTRY(\sym) 11765@@ -1057,8 +1287,24 @@ ENTRY(\sym)
12283 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11766 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12284 call save_paranoid 11767 call save_paranoid
12285 TRACE_IRQS_OFF 11768 TRACE_IRQS_OFF
@@ -12304,7 +11787,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12304 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 11787 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
12305 call \do_sym 11788 call \do_sym
12306 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 11789 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
12307@@ -1075,6 +1326,16 @@ ENTRY(\sym) 11790@@ -1075,6 +1321,16 @@ ENTRY(\sym)
12308 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11791 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12309 call error_entry 11792 call error_entry
12310 DEFAULT_FRAME 0 11793 DEFAULT_FRAME 0
@@ -12321,7 +11804,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12321 movq %rsp,%rdi /* pt_regs pointer */ 11804 movq %rsp,%rdi /* pt_regs pointer */
12322 movq ORIG_RAX(%rsp),%rsi /* get error code */ 11805 movq ORIG_RAX(%rsp),%rsi /* get error code */
12323 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 11806 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
12324@@ -1094,6 +1355,16 @@ ENTRY(\sym) 11807@@ -1094,6 +1350,16 @@ ENTRY(\sym)
12325 call save_paranoid 11808 call save_paranoid
12326 DEFAULT_FRAME 0 11809 DEFAULT_FRAME 0
12327 TRACE_IRQS_OFF 11810 TRACE_IRQS_OFF
@@ -12338,7 +11821,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12338 movq %rsp,%rdi /* pt_regs pointer */ 11821 movq %rsp,%rdi /* pt_regs pointer */
12339 movq ORIG_RAX(%rsp),%rsi /* get error code */ 11822 movq ORIG_RAX(%rsp),%rsi /* get error code */
12340 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 11823 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
12341@@ -1356,14 +1627,27 @@ ENTRY(paranoid_exit) 11824@@ -1356,14 +1622,27 @@ ENTRY(paranoid_exit)
12342 TRACE_IRQS_OFF 11825 TRACE_IRQS_OFF
12343 testl %ebx,%ebx /* swapgs needed? */ 11826 testl %ebx,%ebx /* swapgs needed? */
12344 jnz paranoid_restore 11827 jnz paranoid_restore
@@ -12367,7 +11850,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12367 TRACE_IRQS_IRETQ 0 11850 TRACE_IRQS_IRETQ 0
12368 RESTORE_ALL 8 11851 RESTORE_ALL 8
12369 jmp irq_return 11852 jmp irq_return
12370@@ -1421,7 +1705,7 @@ ENTRY(error_entry) 11853@@ -1421,7 +1700,7 @@ ENTRY(error_entry)
12371 movq_cfi r14, R14+8 11854 movq_cfi r14, R14+8
12372 movq_cfi r15, R15+8 11855 movq_cfi r15, R15+8
12373 xorl %ebx,%ebx 11856 xorl %ebx,%ebx
@@ -12376,7 +11859,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12376 je error_kernelspace 11859 je error_kernelspace
12377 error_swapgs: 11860 error_swapgs:
12378 SWAPGS 11861 SWAPGS
12379@@ -1485,6 +1769,16 @@ ENTRY(nmi) 11862@@ -1485,6 +1764,16 @@ ENTRY(nmi)
12380 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11863 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12381 call save_paranoid 11864 call save_paranoid
12382 DEFAULT_FRAME 0 11865 DEFAULT_FRAME 0
@@ -12393,7 +11876,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12393 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */ 11876 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
12394 movq %rsp,%rdi 11877 movq %rsp,%rdi
12395 movq $-1,%rsi 11878 movq $-1,%rsi
12396@@ -1495,11 +1789,25 @@ ENTRY(nmi) 11879@@ -1495,11 +1784,25 @@ ENTRY(nmi)
12397 DISABLE_INTERRUPTS(CLBR_NONE) 11880 DISABLE_INTERRUPTS(CLBR_NONE)
12398 testl %ebx,%ebx /* swapgs needed? */ 11881 testl %ebx,%ebx /* swapgs needed? */
12399 jnz nmi_restore 11882 jnz nmi_restore
@@ -12420,9 +11903,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12420 RESTORE_ALL 8 11903 RESTORE_ALL 8
12421 jmp irq_return 11904 jmp irq_return
12422 nmi_userspace: 11905 nmi_userspace:
12423diff -urNp linux-2.6.38.3/arch/x86/kernel/ftrace.c linux-2.6.38.3/arch/x86/kernel/ftrace.c 11906diff -urNp linux-2.6.38.2/arch/x86/kernel/ftrace.c linux-2.6.38.2/arch/x86/kernel/ftrace.c
12424--- linux-2.6.38.3/arch/x86/kernel/ftrace.c 2011-03-14 21:20:32.000000000 -0400 11907--- linux-2.6.38.2/arch/x86/kernel/ftrace.c 2011-03-14 21:20:32.000000000 -0400
12425+++ linux-2.6.38.3/arch/x86/kernel/ftrace.c 2011-04-17 15:57:32.000000000 -0400 11908+++ linux-2.6.38.2/arch/x86/kernel/ftrace.c 2011-03-21 18:31:35.000000000 -0400
12426@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void) 11909@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void)
12427 11910
12428 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) { 11911 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) {
@@ -12460,9 +11943,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ftrace.c linux-2.6.38.3/arch/x86/kerne
12460 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE)) 11943 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE))
12461 return -EFAULT; 11944 return -EFAULT;
12462 11945
12463diff -urNp linux-2.6.38.3/arch/x86/kernel/head32.c linux-2.6.38.3/arch/x86/kernel/head32.c 11946diff -urNp linux-2.6.38.2/arch/x86/kernel/head32.c linux-2.6.38.2/arch/x86/kernel/head32.c
12464--- linux-2.6.38.3/arch/x86/kernel/head32.c 2011-03-14 21:20:32.000000000 -0400 11947--- linux-2.6.38.2/arch/x86/kernel/head32.c 2011-03-14 21:20:32.000000000 -0400
12465+++ linux-2.6.38.3/arch/x86/kernel/head32.c 2011-04-17 15:57:32.000000000 -0400 11948+++ linux-2.6.38.2/arch/x86/kernel/head32.c 2011-03-21 18:31:35.000000000 -0400
12466@@ -19,6 +19,7 @@ 11949@@ -19,6 +19,7 @@
12467 #include <asm/io_apic.h> 11950 #include <asm/io_apic.h>
12468 #include <asm/bios_ebda.h> 11951 #include <asm/bios_ebda.h>
@@ -12480,9 +11963,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head32.c linux-2.6.38.3/arch/x86/kerne
12480 11963
12481 #ifdef CONFIG_BLK_DEV_INITRD 11964 #ifdef CONFIG_BLK_DEV_INITRD
12482 /* Reserve INITRD */ 11965 /* Reserve INITRD */
12483diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kernel/head_32.S 11966diff -urNp linux-2.6.38.2/arch/x86/kernel/head_32.S linux-2.6.38.2/arch/x86/kernel/head_32.S
12484--- linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-03-14 21:20:32.000000000 -0400 11967--- linux-2.6.38.2/arch/x86/kernel/head_32.S 2011-03-14 21:20:32.000000000 -0400
12485+++ linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-04-17 16:02:16.000000000 -0400 11968+++ linux-2.6.38.2/arch/x86/kernel/head_32.S 2011-03-21 18:31:35.000000000 -0400
12486@@ -25,6 +25,12 @@ 11969@@ -25,6 +25,12 @@
12487 /* Physical address */ 11970 /* Physical address */
12488 #define pa(X) ((X) - __PAGE_OFFSET) 11971 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -12800,7 +12283,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kern
12800 ENTRY(initial_page_table) 12283 ENTRY(initial_page_table)
12801 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ 12284 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
12802 # if KPMDS == 3 12285 # if KPMDS == 3
12803@@ -663,18 +758,27 @@ ENTRY(initial_page_table) 12286@@ -663,13 +758,22 @@ ENTRY(initial_page_table)
12804 # error "Kernel PMDs should be 1, 2 or 3" 12287 # error "Kernel PMDs should be 1, 2 or 3"
12805 # endif 12288 # endif
12806 .align PAGE_SIZE_asm /* needs to be page-sized too */ 12289 .align PAGE_SIZE_asm /* needs to be page-sized too */
@@ -12819,18 +12302,11 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kern
12819 ENTRY(stack_start) 12302 ENTRY(stack_start)
12820- .long init_thread_union+THREAD_SIZE 12303- .long init_thread_union+THREAD_SIZE
12821+ .long init_thread_union+THREAD_SIZE-8 12304+ .long init_thread_union+THREAD_SIZE-8
12822+
12823+ready: .byte 0
12824 12305
12825+.section .rodata,"a",@progbits 12306+.section .rodata,"a",@progbits
12826 early_recursion_flag: 12307 early_recursion_flag:
12827 .long 0 12308 .long 0
12828 12309
12829-ready: .byte 0
12830-
12831 int_msg:
12832 .asciz "Unknown interrupt or fault at: %p %p %p\n"
12833
12834@@ -707,7 +811,7 @@ fault_msg: 12310@@ -707,7 +811,7 @@ fault_msg:
12835 .word 0 # 32 bit align gdt_desc.address 12311 .word 0 # 32 bit align gdt_desc.address
12836 boot_gdt_descr: 12312 boot_gdt_descr:
@@ -12917,9 +12393,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kern
12917+ /* Be sure this is zeroed to avoid false validations in Xen */ 12393+ /* Be sure this is zeroed to avoid false validations in Xen */
12918+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0 12394+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0
12919+ .endr 12395+ .endr
12920diff -urNp linux-2.6.38.3/arch/x86/kernel/head_64.S linux-2.6.38.3/arch/x86/kernel/head_64.S 12396diff -urNp linux-2.6.38.2/arch/x86/kernel/head_64.S linux-2.6.38.2/arch/x86/kernel/head_64.S
12921--- linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-03-14 21:20:32.000000000 -0400 12397--- linux-2.6.38.2/arch/x86/kernel/head_64.S 2011-03-14 21:20:32.000000000 -0400
12922+++ linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-04-17 15:57:32.000000000 -0400 12398+++ linux-2.6.38.2/arch/x86/kernel/head_64.S 2011-03-21 18:31:35.000000000 -0400
12923@@ -19,6 +19,7 @@ 12399@@ -19,6 +19,7 @@
12924 #include <asm/cache.h> 12400 #include <asm/cache.h>
12925 #include <asm/processor-flags.h> 12401 #include <asm/processor-flags.h>
@@ -13189,9 +12665,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_64.S linux-2.6.38.3/arch/x86/kern
13189 12665
13190 __PAGE_ALIGNED_BSS 12666 __PAGE_ALIGNED_BSS
13191 .align PAGE_SIZE 12667 .align PAGE_SIZE
13192diff -urNp linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 12668diff -urNp linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c
13193--- linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 2011-03-14 21:20:32.000000000 -0400 12669--- linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c 2011-03-14 21:20:32.000000000 -0400
13194+++ linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 2011-04-17 15:57:32.000000000 -0400 12670+++ linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c 2011-03-21 18:31:35.000000000 -0400
13195@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void); 12671@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
13196 EXPORT_SYMBOL(cmpxchg8b_emu); 12672 EXPORT_SYMBOL(cmpxchg8b_emu);
13197 #endif 12673 #endif
@@ -13213,20 +12689,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c linux-2.6.38.3/arch/x8
13213+#ifdef CONFIG_PAX_KERNEXEC 12689+#ifdef CONFIG_PAX_KERNEXEC
13214+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR); 12690+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
13215+#endif 12691+#endif
13216diff -urNp linux-2.6.38.3/arch/x86/kernel/init_task.c linux-2.6.38.3/arch/x86/kernel/init_task.c 12692diff -urNp linux-2.6.38.2/arch/x86/kernel/init_task.c linux-2.6.38.2/arch/x86/kernel/init_task.c
13217--- linux-2.6.38.3/arch/x86/kernel/init_task.c 2011-03-14 21:20:32.000000000 -0400 12693--- linux-2.6.38.2/arch/x86/kernel/init_task.c 2011-03-14 21:20:32.000000000 -0400
13218+++ linux-2.6.38.3/arch/x86/kernel/init_task.c 2011-04-17 15:57:32.000000000 -0400 12694+++ linux-2.6.38.2/arch/x86/kernel/init_task.c 2011-03-21 18:31:35.000000000 -0400
13219@@ -20,8 +20,7 @@ static struct sighand_struct init_sighan 12695@@ -38,5 +38,5 @@ EXPORT_SYMBOL(init_task);
13220 * way process stacks are handled. This is done by having a special
13221 * "init_task" linker map entry..
13222 */
13223-union thread_union init_thread_union __init_task_data =
13224- { INIT_THREAD_INFO(init_task) };
13225+union thread_union init_thread_union __init_task_data;
13226
13227 /*
13228 * Initial task structure.
13229@@ -38,5 +37,5 @@ EXPORT_SYMBOL(init_task);
13230 * section. Since TSS's are completely CPU-local, we want them 12696 * section. Since TSS's are completely CPU-local, we want them
13231 * on exact cacheline boundaries, to eliminate cacheline ping-pong. 12697 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
13232 */ 12698 */
@@ -13234,9 +12700,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/init_task.c linux-2.6.38.3/arch/x86/ke
13234- 12700-
13235+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; 12701+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
13236+EXPORT_SYMBOL(init_tss); 12702+EXPORT_SYMBOL(init_tss);
13237diff -urNp linux-2.6.38.3/arch/x86/kernel/ioport.c linux-2.6.38.3/arch/x86/kernel/ioport.c 12703diff -urNp linux-2.6.38.2/arch/x86/kernel/ioport.c linux-2.6.38.2/arch/x86/kernel/ioport.c
13238--- linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400 12704--- linux-2.6.38.2/arch/x86/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400
13239+++ linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400 12705+++ linux-2.6.38.2/arch/x86/kernel/ioport.c 2011-03-21 18:31:35.000000000 -0400
13240@@ -6,6 +6,7 @@ 12706@@ -6,6 +6,7 @@
13241 #include <linux/sched.h> 12707 #include <linux/sched.h>
13242 #include <linux/kernel.h> 12708 #include <linux/kernel.h>
@@ -13280,153 +12746,64 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ioport.c linux-2.6.38.3/arch/x86/kerne
13280 if (!capable(CAP_SYS_RAWIO)) 12746 if (!capable(CAP_SYS_RAWIO))
13281 return -EPERM; 12747 return -EPERM;
13282 } 12748 }
13283diff -urNp linux-2.6.38.3/arch/x86/kernel/irq_32.c linux-2.6.38.3/arch/x86/kernel/irq_32.c 12749diff -urNp linux-2.6.38.2/arch/x86/kernel/irq_32.c linux-2.6.38.2/arch/x86/kernel/irq_32.c
13284--- linux-2.6.38.3/arch/x86/kernel/irq_32.c 2011-03-14 21:20:32.000000000 -0400 12750--- linux-2.6.38.2/arch/x86/kernel/irq_32.c 2011-03-14 21:20:32.000000000 -0400
13285+++ linux-2.6.38.3/arch/x86/kernel/irq_32.c 2011-04-17 15:57:32.000000000 -0400 12751+++ linux-2.6.38.2/arch/x86/kernel/irq_32.c 2011-03-21 18:31:35.000000000 -0400
13286@@ -36,7 +36,7 @@ static int check_stack_overflow(void) 12752@@ -91,7 +91,7 @@ execute_on_irq_stack(int overflow, struc
13287 __asm__ __volatile__("andl %%esp,%0" :
13288 "=r" (sp) : "0" (THREAD_SIZE - 1));
13289
13290- return sp < (sizeof(struct thread_info) + STACK_WARN);
13291+ return sp < STACK_WARN;
13292 }
13293
13294 static void print_stack_overflow(void)
13295@@ -54,8 +54,8 @@ static inline void print_stack_overflow(
13296 * per-CPU IRQ handling contexts (thread information and stack)
13297 */
13298 union irq_ctx {
13299- struct thread_info tinfo;
13300- u32 stack[THREAD_SIZE/sizeof(u32)];
13301+ unsigned long previous_esp;
13302+ u32 stack[THREAD_SIZE/sizeof(u32)];
13303 } __attribute__((aligned(THREAD_SIZE)));
13304
13305 static DEFINE_PER_CPU(union irq_ctx *, hardirq_ctx);
13306@@ -75,10 +75,9 @@ static void call_on_stack(void *func, vo
13307 static inline int
13308 execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
13309 {
13310- union irq_ctx *curctx, *irqctx;
13311+ union irq_ctx *irqctx;
13312 u32 *isp, arg1, arg2;
13313
13314- curctx = (union irq_ctx *) current_thread_info();
13315 irqctx = __this_cpu_read(hardirq_ctx);
13316
13317 /*
13318@@ -87,21 +86,17 @@ execute_on_irq_stack(int overflow, struc
13319 * handler) we can't do that and just have to keep using the
13320 * current stack (which is the irq stack already after all)
13321 */
13322- if (unlikely(curctx == irqctx))
13323+ if (unlikely((void *)current_stack_pointer - (void *)irqctx < THREAD_SIZE))
13324 return 0; 12753 return 0;
13325 12754
13326 /* build the stack frame on the IRQ stack */ 12755 /* build the stack frame on the IRQ stack */
13327- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 12756- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
13328- irqctx->tinfo.task = curctx->tinfo.task;
13329- irqctx->tinfo.previous_esp = current_stack_pointer;
13330+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 12757+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
13331+ irqctx->previous_esp = current_stack_pointer; 12758 irqctx->tinfo.task = curctx->tinfo.task;
13332+ add_preempt_count(HARDIRQ_OFFSET); 12759 irqctx->tinfo.previous_esp = current_stack_pointer;
12760
12761@@ -103,6 +103,10 @@ execute_on_irq_stack(int overflow, struc
12762 (irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) |
12763 (curctx->tinfo.preempt_count & SOFTIRQ_MASK);
13333 12764
13334- /*
13335- * Copy the softirq bits in preempt_count so that the
13336- * softirq checks work in the hardirq context.
13337- */
13338- irqctx->tinfo.preempt_count =
13339- (irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) |
13340- (curctx->tinfo.preempt_count & SOFTIRQ_MASK);
13341+#ifdef CONFIG_PAX_MEMORY_UDEREF 12765+#ifdef CONFIG_PAX_MEMORY_UDEREF
13342+ __set_fs(MAKE_MM_SEG(0)); 12766+ __set_fs(irqctx->tinfo.addr_limit);
13343+#endif 12767+#endif
13344 12768+
13345 if (unlikely(overflow)) 12769 if (unlikely(overflow))
13346 call_on_stack(print_stack_overflow, isp); 12770 call_on_stack(print_stack_overflow, isp);
13347@@ -113,6 +108,12 @@ execute_on_irq_stack(int overflow, struc 12771
12772@@ -113,6 +117,11 @@ execute_on_irq_stack(int overflow, struc
13348 : "0" (irq), "1" (desc), "2" (isp), 12773 : "0" (irq), "1" (desc), "2" (isp),
13349 "D" (desc->handle_irq) 12774 "D" (desc->handle_irq)
13350 : "memory", "cc", "ecx"); 12775 : "memory", "cc", "ecx");
13351+ 12776+
13352+#ifdef CONFIG_PAX_MEMORY_UDEREF 12777+#ifdef CONFIG_PAX_MEMORY_UDEREF
13353+ __set_fs(current_thread_info()->addr_limit); 12778+ __set_fs(curctx->tinfo.addr_limit);
13354+#endif 12779+#endif
13355+ 12780+
13356+ sub_preempt_count(HARDIRQ_OFFSET);
13357 return 1; 12781 return 1;
13358 } 12782 }
13359 12783
13360@@ -121,29 +122,11 @@ execute_on_irq_stack(int overflow, struc 12784@@ -168,9 +177,18 @@ asmlinkage void do_softirq(void)
13361 */ 12785 irqctx->tinfo.previous_esp = current_stack_pointer;
13362 void __cpuinit irq_ctx_init(int cpu)
13363 {
13364- union irq_ctx *irqctx;
13365-
13366 if (per_cpu(hardirq_ctx, cpu))
13367 return;
13368
13369- irqctx = page_address(alloc_pages_node(cpu_to_node(cpu),
13370- THREAD_FLAGS,
13371- THREAD_ORDER));
13372- memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
13373- irqctx->tinfo.cpu = cpu;
13374- irqctx->tinfo.preempt_count = HARDIRQ_OFFSET;
13375- irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
13376-
13377- per_cpu(hardirq_ctx, cpu) = irqctx;
13378-
13379- irqctx = page_address(alloc_pages_node(cpu_to_node(cpu),
13380- THREAD_FLAGS,
13381- THREAD_ORDER));
13382- memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
13383- irqctx->tinfo.cpu = cpu;
13384- irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
13385-
13386- per_cpu(softirq_ctx, cpu) = irqctx;
13387+ per_cpu(hardirq_ctx, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREAD_FLAGS, THREAD_ORDER));
13388+ per_cpu(softirq_ctx, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREAD_FLAGS, THREAD_ORDER));
13389
13390 printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
13391 cpu, per_cpu(hardirq_ctx, cpu), per_cpu(softirq_ctx, cpu));
13392@@ -152,7 +135,6 @@ void __cpuinit irq_ctx_init(int cpu)
13393 asmlinkage void do_softirq(void)
13394 {
13395 unsigned long flags;
13396- struct thread_info *curctx;
13397 union irq_ctx *irqctx;
13398 u32 *isp;
13399
13400@@ -162,15 +144,22 @@ asmlinkage void do_softirq(void)
13401 local_irq_save(flags);
13402
13403 if (local_softirq_pending()) {
13404- curctx = current_thread_info();
13405 irqctx = __this_cpu_read(softirq_ctx);
13406- irqctx->tinfo.task = curctx->task;
13407- irqctx->tinfo.previous_esp = current_stack_pointer;
13408+ irqctx->previous_esp = current_stack_pointer;
13409 12786
13410 /* build the stack frame on the softirq stack */ 12787 /* build the stack frame on the softirq stack */
13411- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 12788- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
13412+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 12789+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
13413+ 12790+
13414+#ifdef CONFIG_PAX_MEMORY_UDEREF 12791+#ifdef CONFIG_PAX_MEMORY_UDEREF
13415+ __set_fs(MAKE_MM_SEG(0)); 12792+ __set_fs(irqctx->tinfo.addr_limit);
13416+#endif 12793+#endif
13417 12794
13418 call_on_stack(__do_softirq, isp); 12795 call_on_stack(__do_softirq, isp);
13419+ 12796+
13420+#ifdef CONFIG_PAX_MEMORY_UDEREF 12797+#ifdef CONFIG_PAX_MEMORY_UDEREF
13421+ __set_fs(current_thread_info()->addr_limit); 12798+ __set_fs(curctx->addr_limit);
13422+#endif 12799+#endif
13423+ 12800+
13424 /* 12801 /*
13425 * Shouldnt happen, we returned above if in_interrupt(): 12802 * Shouldnt happen, we returned above if in_interrupt():
13426 */ 12803 */
13427diff -urNp linux-2.6.38.3/arch/x86/kernel/kgdb.c linux-2.6.38.3/arch/x86/kernel/kgdb.c 12804diff -urNp linux-2.6.38.2/arch/x86/kernel/kgdb.c linux-2.6.38.2/arch/x86/kernel/kgdb.c
13428--- linux-2.6.38.3/arch/x86/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 12805--- linux-2.6.38.2/arch/x86/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
13429+++ linux-2.6.38.3/arch/x86/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 12806+++ linux-2.6.38.2/arch/x86/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
13430@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem, 12807@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem,
13431 switch (regno) { 12808 switch (regno) {
13432 #ifdef CONFIG_X86_32 12809 #ifdef CONFIG_X86_32
@@ -13450,9 +12827,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/kgdb.c linux-2.6.38.3/arch/x86/kernel/
13450 /* Breakpoint instruction: */ 12827 /* Breakpoint instruction: */
13451 .gdb_bpt_instr = { 0xcc }, 12828 .gdb_bpt_instr = { 0xcc },
13452 .flags = KGDB_HW_BREAKPOINT, 12829 .flags = KGDB_HW_BREAKPOINT,
13453diff -urNp linux-2.6.38.3/arch/x86/kernel/kprobes.c linux-2.6.38.3/arch/x86/kernel/kprobes.c 12830diff -urNp linux-2.6.38.2/arch/x86/kernel/kprobes.c linux-2.6.38.2/arch/x86/kernel/kprobes.c
13454--- linux-2.6.38.3/arch/x86/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400 12831--- linux-2.6.38.2/arch/x86/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
13455+++ linux-2.6.38.3/arch/x86/kernel/kprobes.c 2011-04-17 15:57:32.000000000 -0400 12832+++ linux-2.6.38.2/arch/x86/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400
13456@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat 12833@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat
13457 } __attribute__((packed)) *insn; 12834 } __attribute__((packed)) *insn;
13458 12835
@@ -13586,9 +12963,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/kprobes.c linux-2.6.38.3/arch/x86/kern
13586 RELATIVE_ADDR_SIZE); 12963 RELATIVE_ADDR_SIZE);
13587 12964
13588 insn_buf[0] = RELATIVEJUMP_OPCODE; 12965 insn_buf[0] = RELATIVEJUMP_OPCODE;
13589diff -urNp linux-2.6.38.3/arch/x86/kernel/ldt.c linux-2.6.38.3/arch/x86/kernel/ldt.c 12966diff -urNp linux-2.6.38.2/arch/x86/kernel/ldt.c linux-2.6.38.2/arch/x86/kernel/ldt.c
13590--- linux-2.6.38.3/arch/x86/kernel/ldt.c 2011-03-14 21:20:32.000000000 -0400 12967--- linux-2.6.38.2/arch/x86/kernel/ldt.c 2011-03-14 21:20:32.000000000 -0400
13591+++ linux-2.6.38.3/arch/x86/kernel/ldt.c 2011-04-17 15:57:32.000000000 -0400 12968+++ linux-2.6.38.2/arch/x86/kernel/ldt.c 2011-03-21 18:31:35.000000000 -0400
13592@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i 12969@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i
13593 if (reload) { 12970 if (reload) {
13594 #ifdef CONFIG_SMP 12971 #ifdef CONFIG_SMP
@@ -13653,9 +13030,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ldt.c linux-2.6.38.3/arch/x86/kernel/l
13653 fill_ldt(&ldt, &ldt_info); 13030 fill_ldt(&ldt, &ldt_info);
13654 if (oldmode) 13031 if (oldmode)
13655 ldt.avl = 0; 13032 ldt.avl = 0;
13656diff -urNp linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 13033diff -urNp linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c
13657--- linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 2011-03-14 21:20:32.000000000 -0400 13034--- linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c 2011-03-14 21:20:32.000000000 -0400
13658+++ linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 2011-04-17 15:57:32.000000000 -0400 13035+++ linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c 2011-03-21 18:31:35.000000000 -0400
13659@@ -27,7 +27,7 @@ 13036@@ -27,7 +27,7 @@
13660 #include <asm/cacheflush.h> 13037 #include <asm/cacheflush.h>
13661 #include <asm/debugreg.h> 13038 #include <asm/debugreg.h>
@@ -13683,9 +13060,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c linux-2.6.38.3/arch
13683 13060
13684 relocate_kernel_ptr = control_page; 13061 relocate_kernel_ptr = control_page;
13685 page_list[PA_CONTROL_PAGE] = __pa(control_page); 13062 page_list[PA_CONTROL_PAGE] = __pa(control_page);
13686diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_amd.c linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 13063diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_amd.c linux-2.6.38.2/arch/x86/kernel/microcode_amd.c
13687--- linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 2011-03-14 21:20:32.000000000 -0400 13064--- linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 2011-03-14 21:20:32.000000000 -0400
13688+++ linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 2011-04-17 15:57:32.000000000 -0400 13065+++ linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 2011-03-21 18:31:35.000000000 -0400
13689@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c 13066@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c
13690 uci->mc = NULL; 13067 uci->mc = NULL;
13691 } 13068 }
@@ -13704,9 +13081,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_amd.c linux-2.6.38.3/arch/x8
13704 { 13081 {
13705 return &microcode_amd_ops; 13082 return &microcode_amd_ops;
13706 } 13083 }
13707diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_core.c linux-2.6.38.3/arch/x86/kernel/microcode_core.c 13084diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_core.c linux-2.6.38.2/arch/x86/kernel/microcode_core.c
13708--- linux-2.6.38.3/arch/x86/kernel/microcode_core.c 2011-03-14 21:20:32.000000000 -0400 13085--- linux-2.6.38.2/arch/x86/kernel/microcode_core.c 2011-03-14 21:20:32.000000000 -0400
13709+++ linux-2.6.38.3/arch/x86/kernel/microcode_core.c 2011-04-17 15:57:32.000000000 -0400 13086+++ linux-2.6.38.2/arch/x86/kernel/microcode_core.c 2011-03-21 18:31:35.000000000 -0400
13710@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL"); 13087@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL");
13711 13088
13712 #define MICROCODE_VERSION "2.00" 13089 #define MICROCODE_VERSION "2.00"
@@ -13716,9 +13093,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_core.c linux-2.6.38.3/arch/x
13716 13093
13717 /* 13094 /*
13718 * Synchronization. 13095 * Synchronization.
13719diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_intel.c linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 13096diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_intel.c linux-2.6.38.2/arch/x86/kernel/microcode_intel.c
13720--- linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 2011-03-14 21:20:32.000000000 -0400 13097--- linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 2011-03-14 21:20:32.000000000 -0400
13721+++ linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 2011-04-17 15:57:32.000000000 -0400 13098+++ linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 2011-03-21 18:31:35.000000000 -0400
13722@@ -440,13 +440,13 @@ static enum ucode_state request_microcod 13099@@ -440,13 +440,13 @@ static enum ucode_state request_microcod
13723 13100
13724 static int get_ucode_user(void *to, const void *from, size_t n) 13101 static int get_ucode_user(void *to, const void *from, size_t n)
@@ -13753,9 +13130,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_intel.c linux-2.6.38.3/arch/
13753 { 13130 {
13754 return &microcode_intel_ops; 13131 return &microcode_intel_ops;
13755 } 13132 }
13756diff -urNp linux-2.6.38.3/arch/x86/kernel/module.c linux-2.6.38.3/arch/x86/kernel/module.c 13133diff -urNp linux-2.6.38.2/arch/x86/kernel/module.c linux-2.6.38.2/arch/x86/kernel/module.c
13757--- linux-2.6.38.3/arch/x86/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 13134--- linux-2.6.38.2/arch/x86/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
13758+++ linux-2.6.38.3/arch/x86/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 13135+++ linux-2.6.38.2/arch/x86/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
13759@@ -35,21 +35,66 @@ 13136@@ -35,21 +35,66 @@
13760 #define DEBUGP(fmt...) 13137 #define DEBUGP(fmt...)
13761 #endif 13138 #endif
@@ -13894,9 +13271,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/module.c linux-2.6.38.3/arch/x86/kerne
13894 #if 0 13271 #if 0
13895 if ((s64)val != *(s32 *)loc) 13272 if ((s64)val != *(s32 *)loc)
13896 goto overflow; 13273 goto overflow;
13897diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt.c linux-2.6.38.3/arch/x86/kernel/paravirt.c 13274diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt.c linux-2.6.38.2/arch/x86/kernel/paravirt.c
13898--- linux-2.6.38.3/arch/x86/kernel/paravirt.c 2011-03-14 21:20:32.000000000 -0400 13275--- linux-2.6.38.2/arch/x86/kernel/paravirt.c 2011-03-14 21:20:32.000000000 -0400
13899+++ linux-2.6.38.3/arch/x86/kernel/paravirt.c 2011-04-17 15:57:32.000000000 -0400 13276+++ linux-2.6.38.2/arch/x86/kernel/paravirt.c 2011-03-21 18:31:35.000000000 -0400
13900@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu 13277@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu
13901 * corresponding structure. */ 13278 * corresponding structure. */
13902 static void *get_call_destination(u8 type) 13279 static void *get_call_destination(u8 type)
@@ -14000,9 +13377,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt.c linux-2.6.38.3/arch/x86/ker
14000 }; 13377 };
14001 13378
14002 EXPORT_SYMBOL_GPL(pv_time_ops); 13379 EXPORT_SYMBOL_GPL(pv_time_ops);
14003diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 13380diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c
14004--- linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 2011-03-14 21:20:32.000000000 -0400 13381--- linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 2011-03-14 21:20:32.000000000 -0400
14005+++ linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 2011-04-17 15:57:32.000000000 -0400 13382+++ linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 2011-03-21 18:31:35.000000000 -0400
14006@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t 13383@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t
14007 arch_spin_lock(lock); 13384 arch_spin_lock(lock);
14008 } 13385 }
@@ -14012,9 +13389,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.3/ar
14012 #ifdef CONFIG_SMP 13389 #ifdef CONFIG_SMP
14013 .spin_is_locked = __ticket_spin_is_locked, 13390 .spin_is_locked = __ticket_spin_is_locked,
14014 .spin_is_contended = __ticket_spin_is_contended, 13391 .spin_is_contended = __ticket_spin_is_contended,
14015diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 13392diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c
14016--- linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 2011-03-14 21:20:32.000000000 -0400 13393--- linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c 2011-03-14 21:20:32.000000000 -0400
14017+++ linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 2011-04-17 15:57:32.000000000 -0400 13394+++ linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c 2011-03-21 18:31:35.000000000 -0400
14018@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct 13395@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct
14019 free_pages((unsigned long)vaddr, get_order(size)); 13396 free_pages((unsigned long)vaddr, get_order(size));
14020 } 13397 }
@@ -14024,9 +13401,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c linux-2.6.38.3/arch/x
14024 .alloc_coherent = calgary_alloc_coherent, 13401 .alloc_coherent = calgary_alloc_coherent,
14025 .free_coherent = calgary_free_coherent, 13402 .free_coherent = calgary_free_coherent,
14026 .map_sg = calgary_map_sg, 13403 .map_sg = calgary_map_sg,
14027diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-dma.c linux-2.6.38.3/arch/x86/kernel/pci-dma.c 13404diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-dma.c linux-2.6.38.2/arch/x86/kernel/pci-dma.c
14028--- linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400 13405--- linux-2.6.38.2/arch/x86/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400
14029+++ linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-04-17 15:57:32.000000000 -0400 13406+++ linux-2.6.38.2/arch/x86/kernel/pci-dma.c 2011-03-21 18:31:35.000000000 -0400
14030@@ -16,7 +16,7 @@ 13407@@ -16,7 +16,7 @@
14031 13408
14032 static int forbid_dac __read_mostly; 13409 static int forbid_dac __read_mostly;
@@ -14045,9 +13422,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-dma.c linux-2.6.38.3/arch/x86/kern
14045 13422
14046 #ifdef CONFIG_PCI 13423 #ifdef CONFIG_PCI
14047 if (mask > 0xffffffff && forbid_dac > 0) { 13424 if (mask > 0xffffffff && forbid_dac > 0) {
14048diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 13425diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c
14049--- linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 2011-03-14 21:20:32.000000000 -0400 13426--- linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c 2011-03-14 21:20:32.000000000 -0400
14050+++ linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 2011-04-17 15:57:32.000000000 -0400 13427+++ linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c 2011-03-21 18:31:35.000000000 -0400
14051@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a 13428@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a
14052 return -1; 13429 return -1;
14053 } 13430 }
@@ -14057,9 +13434,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c linux-2.6.38.3/arch/x86/
14057 .map_sg = gart_map_sg, 13434 .map_sg = gart_map_sg,
14058 .unmap_sg = gart_unmap_sg, 13435 .unmap_sg = gart_unmap_sg,
14059 .map_page = gart_map_page, 13436 .map_page = gart_map_page,
14060diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-nommu.c linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 13437diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-nommu.c linux-2.6.38.2/arch/x86/kernel/pci-nommu.c
14061--- linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 2011-03-14 21:20:32.000000000 -0400 13438--- linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 2011-03-14 21:20:32.000000000 -0400
14062+++ linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 2011-04-17 15:57:32.000000000 -0400 13439+++ linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 2011-03-21 18:31:35.000000000 -0400
14063@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str 13440@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str
14064 flush_write_buffers(); 13441 flush_write_buffers();
14065 } 13442 }
@@ -14069,9 +13446,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-nommu.c linux-2.6.38.3/arch/x86/ke
14069 .alloc_coherent = dma_generic_alloc_coherent, 13446 .alloc_coherent = dma_generic_alloc_coherent,
14070 .free_coherent = nommu_free_coherent, 13447 .free_coherent = nommu_free_coherent,
14071 .map_sg = nommu_map_sg, 13448 .map_sg = nommu_map_sg,
14072diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 13449diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c
14073--- linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 13450--- linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
14074+++ linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 2011-04-17 15:57:32.000000000 -0400 13451+++ linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 2011-03-21 18:31:35.000000000 -0400
14075@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent( 13452@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent(
14076 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags); 13453 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags);
14077 } 13454 }
@@ -14081,9 +13458,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.3/arch/x86/
14081 .mapping_error = swiotlb_dma_mapping_error, 13458 .mapping_error = swiotlb_dma_mapping_error,
14082 .alloc_coherent = x86_swiotlb_alloc_coherent, 13459 .alloc_coherent = x86_swiotlb_alloc_coherent,
14083 .free_coherent = swiotlb_free_coherent, 13460 .free_coherent = swiotlb_free_coherent,
14084diff -urNp linux-2.6.38.3/arch/x86/kernel/process_32.c linux-2.6.38.3/arch/x86/kernel/process_32.c 13461diff -urNp linux-2.6.38.2/arch/x86/kernel/process_32.c linux-2.6.38.2/arch/x86/kernel/process_32.c
14085--- linux-2.6.38.3/arch/x86/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400 13462--- linux-2.6.38.2/arch/x86/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400
14086+++ linux-2.6.38.3/arch/x86/kernel/process_32.c 2011-04-17 15:57:32.000000000 -0400 13463+++ linux-2.6.38.2/arch/x86/kernel/process_32.c 2011-03-21 18:31:35.000000000 -0400
14087@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as 13464@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as
14088 unsigned long thread_saved_pc(struct task_struct *tsk) 13465 unsigned long thread_saved_pc(struct task_struct *tsk)
14089 { 13466 {
@@ -14139,33 +13516,37 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_32.c linux-2.6.38.3/arch/x86/k
14139 /* 13516 /*
14140 * Load the per-thread Thread-Local Storage descriptor. 13517 * Load the per-thread Thread-Local Storage descriptor.
14141 */ 13518 */
14142@@ -363,6 +367,9 @@ __switch_to(struct task_struct *prev_p, 13519@@ -404,3 +408,27 @@ unsigned long get_wchan(struct task_stru
14143 */
14144 arch_end_context_switch(next_p);
14145
14146+ percpu_write(current_task, next_p);
14147+ percpu_write(current_tinfo, &next_p->tinfo);
14148+
14149 if (preload_fpu)
14150 __math_state_restore();
14151
14152@@ -372,8 +379,6 @@ __switch_to(struct task_struct *prev_p,
14153 if (prev->gs | next->gs)
14154 lazy_load_gs(next->gs);
14155
14156- percpu_write(current_task, next_p);
14157-
14158 return prev_p;
14159 }
14160
14161@@ -403,4 +408,3 @@ unsigned long get_wchan(struct task_stru
14162 } while (count++ < 16);
14163 return 0; 13520 return 0;
14164 } 13521 }
14165- 13522
14166diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/kernel/process_64.c 13523+#ifdef CONFIG_PAX_RANDKSTACK
14167--- linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 13524+asmlinkage void pax_randomize_kstack(void)
14168+++ linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400 13525+{
13526+ struct thread_struct *thread = &current->thread;
13527+ unsigned long time;
13528+
13529+ if (!randomize_va_space)
13530+ return;
13531+
13532+ rdtscl(time);
13533+
13534+ /* P4 seems to return a 0 LSB, ignore it */
13535+#ifdef CONFIG_MPENTIUM4
13536+ time &= 0x1EUL;
13537+ time <<= 2;
13538+#else
13539+ time &= 0xFUL;
13540+ time <<= 3;
13541+#endif
13542+
13543+ thread->sp0 ^= time;
13544+ load_sp0(init_tss + smp_processor_id(), thread);
13545+}
13546+#endif
13547diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/kernel/process_64.c
13548--- linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
13549+++ linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400
14169@@ -87,7 +87,7 @@ static void __exit_idle(void) 13550@@ -87,7 +87,7 @@ static void __exit_idle(void)
14170 void exit_idle(void) 13551 void exit_idle(void)
14171 { 13552 {
@@ -14175,17 +13556,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/k
14175 return; 13556 return;
14176 __exit_idle(); 13557 __exit_idle();
14177 } 13558 }
14178@@ -260,8 +260,7 @@ int copy_thread(unsigned long clone_flag 13559@@ -376,7 +376,7 @@ __switch_to(struct task_struct *prev_p,
14179 struct pt_regs *childregs;
14180 struct task_struct *me = current;
14181
14182- childregs = ((struct pt_regs *)
14183- (THREAD_SIZE + task_stack_page(p))) - 1;
14184+ childregs = task_stack_page(p) + THREAD_SIZE - sizeof(struct pt_regs) - 8;
14185 *childregs = *regs;
14186
14187 childregs->ax = 0;
14188@@ -376,7 +375,7 @@ __switch_to(struct task_struct *prev_p,
14189 struct thread_struct *prev = &prev_p->thread; 13560 struct thread_struct *prev = &prev_p->thread;
14190 struct thread_struct *next = &next_p->thread; 13561 struct thread_struct *next = &next_p->thread;
14191 int cpu = smp_processor_id(); 13562 int cpu = smp_processor_id();
@@ -14194,20 +13565,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/k
14194 unsigned fsindex, gsindex; 13565 unsigned fsindex, gsindex;
14195 bool preload_fpu; 13566 bool preload_fpu;
14196 13567
14197@@ -472,10 +471,9 @@ __switch_to(struct task_struct *prev_p, 13568@@ -529,12 +529,11 @@ unsigned long get_wchan(struct task_stru
14198 prev->usersp = percpu_read(old_rsp);
14199 percpu_write(old_rsp, next->usersp);
14200 percpu_write(current_task, next_p);
14201+ percpu_write(current_tinfo, &next_p->tinfo);
14202
14203- percpu_write(kernel_stack,
14204- (unsigned long)task_stack_page(next_p) +
14205- THREAD_SIZE - KERNEL_STACK_OFFSET);
14206+ percpu_write(kernel_stack, next->sp0);
14207
14208 /*
14209 * Now maybe reload the debug registers and handle I/O bitmaps
14210@@ -529,12 +527,11 @@ unsigned long get_wchan(struct task_stru
14211 if (!p || p == current || p->state == TASK_RUNNING) 13569 if (!p || p == current || p->state == TASK_RUNNING)
14212 return 0; 13570 return 0;
14213 stack = (unsigned long)task_stack_page(p); 13571 stack = (unsigned long)task_stack_page(p);
@@ -14222,48 +13580,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/k
14222 return 0; 13580 return 0;
14223 ip = *(u64 *)(fp+8); 13581 ip = *(u64 *)(fp+8);
14224 if (!in_sched_functions(ip)) 13582 if (!in_sched_functions(ip))
14225diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kernel/process.c 13583diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kernel/process.c
14226--- linux-2.6.38.3/arch/x86/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 13584--- linux-2.6.38.2/arch/x86/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
14227+++ linux-2.6.38.3/arch/x86/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 13585+++ linux-2.6.38.2/arch/x86/kernel/process.c 2011-03-28 16:56:19.000000000 -0400
14228@@ -48,16 +48,33 @@ void free_thread_xstate(struct task_stru 13586@@ -70,7 +70,7 @@ void exit_thread(void)
14229
14230 void free_thread_info(struct thread_info *ti)
14231 {
14232- free_thread_xstate(ti->task);
14233 free_pages((unsigned long)ti, get_order(THREAD_SIZE));
14234 }
14235
14236+static struct kmem_cache *task_struct_cachep;
14237+
14238 void arch_task_cache_init(void)
14239 {
14240- task_xstate_cachep =
14241- kmem_cache_create("task_xstate", xstate_size,
14242+ /* create a slab on which task_structs can be allocated */
14243+ task_struct_cachep =
14244+ kmem_cache_create("task_struct", sizeof(struct task_struct),
14245+ ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK, NULL);
14246+
14247+ task_xstate_cachep =
14248+ kmem_cache_create("task_xstate", xstate_size,
14249 __alignof__(union thread_xstate),
14250- SLAB_PANIC | SLAB_NOTRACK, NULL);
14251+ SLAB_PANIC | SLAB_NOTRACK | SLAB_USERCOPY, NULL);
14252+}
14253+
14254+struct task_struct *alloc_task_struct(void)
14255+{
14256+ return kmem_cache_alloc(task_struct_cachep, GFP_KERNEL);
14257+}
14258+
14259+void free_task_struct(struct task_struct *task)
14260+{
14261+ free_thread_xstate(task);
14262+ kmem_cache_free(task_struct_cachep, task);
14263 }
14264
14265 /*
14266@@ -70,7 +87,7 @@ void exit_thread(void)
14267 unsigned long *bp = t->io_bitmap_ptr; 13587 unsigned long *bp = t->io_bitmap_ptr;
14268 13588
14269 if (bp) { 13589 if (bp) {
@@ -14272,7 +13592,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14272 13592
14273 t->io_bitmap_ptr = NULL; 13593 t->io_bitmap_ptr = NULL;
14274 clear_thread_flag(TIF_IO_BITMAP); 13594 clear_thread_flag(TIF_IO_BITMAP);
14275@@ -106,7 +123,7 @@ void show_regs_common(void) 13595@@ -106,7 +106,7 @@ void show_regs_common(void)
14276 13596
14277 printk(KERN_CONT "\n"); 13597 printk(KERN_CONT "\n");
14278 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s", 13598 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s",
@@ -14281,7 +13601,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14281 init_utsname()->release, 13601 init_utsname()->release,
14282 (int)strcspn(init_utsname()->version, " "), 13602 (int)strcspn(init_utsname()->version, " "),
14283 init_utsname()->version); 13603 init_utsname()->version);
14284@@ -123,6 +140,9 @@ void flush_thread(void) 13604@@ -123,6 +123,9 @@ void flush_thread(void)
14285 { 13605 {
14286 struct task_struct *tsk = current; 13606 struct task_struct *tsk = current;
14287 13607
@@ -14291,7 +13611,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14291 flush_ptrace_hw_breakpoint(tsk); 13611 flush_ptrace_hw_breakpoint(tsk);
14292 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); 13612 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
14293 /* 13613 /*
14294@@ -285,10 +305,10 @@ int kernel_thread(int (*fn)(void *), voi 13614@@ -285,10 +288,10 @@ int kernel_thread(int (*fn)(void *), voi
14295 regs.di = (unsigned long) arg; 13615 regs.di = (unsigned long) arg;
14296 13616
14297 #ifdef CONFIG_X86_32 13617 #ifdef CONFIG_X86_32
@@ -14305,51 +13625,27 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14305 #else 13625 #else
14306 regs.ss = __KERNEL_DS; 13626 regs.ss = __KERNEL_DS;
14307 #endif 13627 #endif
14308@@ -668,16 +688,31 @@ static int __init idle_setup(char *str) 13628@@ -667,17 +670,3 @@ static int __init idle_setup(char *str)
13629 return 0;
14309 } 13630 }
14310 early_param("idle", idle_setup); 13631 early_param("idle", idle_setup);
14311 13632-
14312-unsigned long arch_align_stack(unsigned long sp) 13633-unsigned long arch_align_stack(unsigned long sp)
14313+#ifdef CONFIG_PAX_RANDKSTACK 13634-{
14314+asmlinkage void pax_randomize_kstack(void)
14315 {
14316- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) 13635- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
14317- sp -= get_random_int() % 8192; 13636- sp -= get_random_int() % 8192;
14318- return sp & ~0xf; 13637- return sp & ~0xf;
14319-} 13638-}
14320+ struct thread_struct *thread = &current->thread; 13639-
14321+ unsigned long time;
14322
14323-unsigned long arch_randomize_brk(struct mm_struct *mm) 13640-unsigned long arch_randomize_brk(struct mm_struct *mm)
14324-{ 13641-{
14325- unsigned long range_end = mm->brk + 0x02000000; 13642- unsigned long range_end = mm->brk + 0x02000000;
14326- return randomize_range(mm->brk, range_end, 0) ? : mm->brk; 13643- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
14327-} 13644-}
14328+ if (!randomize_va_space) 13645-
14329+ return; 13646diff -urNp linux-2.6.38.2/arch/x86/kernel/ptrace.c linux-2.6.38.2/arch/x86/kernel/ptrace.c
14330+ 13647--- linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
14331+ rdtscl(time); 13648+++ linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-21 18:31:35.000000000 -0400
14332+
14333+ /* P4 seems to return a 0 LSB, ignore it */
14334+#ifdef CONFIG_MPENTIUM4
14335+ time &= 0x1EUL;
14336+ time <<= 2;
14337+#else
14338+ time &= 0xFUL;
14339+ time <<= 3;
14340+#endif
14341+
14342+ thread->sp0 ^= time;
14343+ load_sp0(init_tss + smp_processor_id(), thread);
14344
14345+#ifdef CONFIG_X86_64
14346+ percpu_write(kernel_stack, thread->sp0);
14347+#endif
14348+}
14349+#endif
14350diff -urNp linux-2.6.38.3/arch/x86/kernel/ptrace.c linux-2.6.38.3/arch/x86/kernel/ptrace.c
14351--- linux-2.6.38.3/arch/x86/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
14352+++ linux-2.6.38.3/arch/x86/kernel/ptrace.c 2011-04-17 15:57:32.000000000 -0400
14353@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi 13649@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi
14354 unsigned long addr, unsigned long data) 13650 unsigned long addr, unsigned long data)
14355 { 13651 {
@@ -14403,9 +13699,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ptrace.c linux-2.6.38.3/arch/x86/kerne
14403 { 13699 {
14404 bool step; 13700 bool step;
14405 13701
14406diff -urNp linux-2.6.38.3/arch/x86/kernel/reboot.c linux-2.6.38.3/arch/x86/kernel/reboot.c 13702diff -urNp linux-2.6.38.2/arch/x86/kernel/reboot.c linux-2.6.38.2/arch/x86/kernel/reboot.c
14407--- linux-2.6.38.3/arch/x86/kernel/reboot.c 2011-03-14 21:20:32.000000000 -0400 13703--- linux-2.6.38.2/arch/x86/kernel/reboot.c 2011-03-14 21:20:32.000000000 -0400
14408+++ linux-2.6.38.3/arch/x86/kernel/reboot.c 2011-04-17 15:57:32.000000000 -0400 13704+++ linux-2.6.38.2/arch/x86/kernel/reboot.c 2011-03-21 18:31:35.000000000 -0400
14409@@ -34,7 +34,7 @@ void (*pm_power_off)(void); 13705@@ -34,7 +34,7 @@ void (*pm_power_off)(void);
14410 EXPORT_SYMBOL(pm_power_off); 13706 EXPORT_SYMBOL(pm_power_off);
14411 13707
@@ -14471,10 +13767,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/reboot.c linux-2.6.38.3/arch/x86/kerne
14471 13767
14472 /* Set up the IDT for real mode. */ 13768 /* Set up the IDT for real mode. */
14473 load_idt(&real_mode_idt); 13769 load_idt(&real_mode_idt);
14474diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel/setup.c 13770diff -urNp linux-2.6.38.2/arch/x86/kernel/setup.c linux-2.6.38.2/arch/x86/kernel/setup.c
14475--- linux-2.6.38.3/arch/x86/kernel/setup.c 2011-04-18 17:27:18.000000000 -0400 13771--- linux-2.6.38.2/arch/x86/kernel/setup.c 2011-03-28 17:42:40.000000000 -0400
14476+++ linux-2.6.38.3/arch/x86/kernel/setup.c 2011-04-17 16:53:16.000000000 -0400 13772+++ linux-2.6.38.2/arch/x86/kernel/setup.c 2011-03-28 17:42:53.000000000 -0400
14477@@ -654,7 +654,7 @@ static void __init trim_bios_range(void) 13773@@ -657,7 +657,7 @@ static void __init trim_bios_range(void)
14478 * area (640->1Mb) as ram even though it is not. 13774 * area (640->1Mb) as ram even though it is not.
14479 * take them out. 13775 * take them out.
14480 */ 13776 */
@@ -14483,7 +13779,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel
14483 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 13779 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
14484 } 13780 }
14485 13781
14486@@ -790,14 +790,14 @@ void __init setup_arch(char **cmdline_p) 13782@@ -793,14 +793,14 @@ void __init setup_arch(char **cmdline_p)
14487 13783
14488 if (!boot_params.hdr.root_flags) 13784 if (!boot_params.hdr.root_flags)
14489 root_mountflags &= ~MS_RDONLY; 13785 root_mountflags &= ~MS_RDONLY;
@@ -14503,9 +13799,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel
14503 data_resource.end = virt_to_phys(_edata)-1; 13799 data_resource.end = virt_to_phys(_edata)-1;
14504 bss_resource.start = virt_to_phys(&__bss_start); 13800 bss_resource.start = virt_to_phys(&__bss_start);
14505 bss_resource.end = virt_to_phys(&__bss_stop)-1; 13801 bss_resource.end = virt_to_phys(&__bss_stop)-1;
14506diff -urNp linux-2.6.38.3/arch/x86/kernel/setup_percpu.c linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 13802diff -urNp linux-2.6.38.2/arch/x86/kernel/setup_percpu.c linux-2.6.38.2/arch/x86/kernel/setup_percpu.c
14507--- linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-03-14 21:20:32.000000000 -0400 13803--- linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 2011-03-14 21:20:32.000000000 -0400
14508+++ linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-04-17 15:57:32.000000000 -0400 13804+++ linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 2011-03-21 18:31:35.000000000 -0400
14509@@ -21,19 +21,17 @@ 13805@@ -21,19 +21,17 @@
14510 #include <asm/cpu.h> 13806 #include <asm/cpu.h>
14511 #include <asm/stackprotector.h> 13807 #include <asm/stackprotector.h>
@@ -14569,9 +13865,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/setup_percpu.c linux-2.6.38.3/arch/x86
14569 /* 13865 /*
14570 * Up to this point, the boot CPU has been using .init.data 13866 * Up to this point, the boot CPU has been using .init.data
14571 * area. Reload any changed state for the boot CPU. 13867 * area. Reload any changed state for the boot CPU.
14572diff -urNp linux-2.6.38.3/arch/x86/kernel/signal.c linux-2.6.38.3/arch/x86/kernel/signal.c 13868diff -urNp linux-2.6.38.2/arch/x86/kernel/signal.c linux-2.6.38.2/arch/x86/kernel/signal.c
14573--- linux-2.6.38.3/arch/x86/kernel/signal.c 2011-03-14 21:20:32.000000000 -0400 13869--- linux-2.6.38.2/arch/x86/kernel/signal.c 2011-03-14 21:20:32.000000000 -0400
14574+++ linux-2.6.38.3/arch/x86/kernel/signal.c 2011-04-17 15:57:32.000000000 -0400 13870+++ linux-2.6.38.2/arch/x86/kernel/signal.c 2011-03-21 18:31:35.000000000 -0400
14575@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi 13871@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi
14576 * Align the stack pointer according to the i386 ABI, 13872 * Align the stack pointer according to the i386 ABI,
14577 * i.e. so that on function entry ((sp + 4) & 15) == 0. 13873 * i.e. so that on function entry ((sp + 4) & 15) == 0.
@@ -14646,24 +13942,12 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/signal.c linux-2.6.38.3/arch/x86/kerne
14646 return; 13942 return;
14647 13943
14648 if (current_thread_info()->status & TS_RESTORE_SIGMASK) 13944 if (current_thread_info()->status & TS_RESTORE_SIGMASK)
14649diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kernel/smpboot.c 13945diff -urNp linux-2.6.38.2/arch/x86/kernel/smpboot.c linux-2.6.38.2/arch/x86/kernel/smpboot.c
14650--- linux-2.6.38.3/arch/x86/kernel/smpboot.c 2011-03-14 21:20:32.000000000 -0400 13946--- linux-2.6.38.2/arch/x86/kernel/smpboot.c 2011-03-14 21:20:32.000000000 -0400
14651+++ linux-2.6.38.3/arch/x86/kernel/smpboot.c 2011-04-17 15:57:32.000000000 -0400 13947+++ linux-2.6.38.2/arch/x86/kernel/smpboot.c 2011-03-21 18:31:35.000000000 -0400
14652@@ -773,17 +773,20 @@ static int __cpuinit do_boot_cpu(int api 13948@@ -783,7 +783,11 @@ do_rest:
14653 set_idle_for_cpu(cpu, c_idle.idle); 13949 (unsigned long)task_stack_page(c_idle.idle) -
14654 do_rest: 13950 KERNEL_STACK_OFFSET + THREAD_SIZE;
14655 per_cpu(current_task, cpu) = c_idle.idle;
14656+ per_cpu(current_tinfo, cpu) = &c_idle.idle->tinfo;
14657 #ifdef CONFIG_X86_32
14658 /* Stack for startup_32 can be just as for start_secondary onwards */
14659 irq_ctx_init(cpu);
14660 #else
14661 clear_tsk_thread_flag(c_idle.idle, TIF_FORK);
14662 initial_gs = per_cpu_offset(cpu);
14663- per_cpu(kernel_stack, cpu) =
14664- (unsigned long)task_stack_page(c_idle.idle) -
14665- KERNEL_STACK_OFFSET + THREAD_SIZE;
14666+ per_cpu(kernel_stack, cpu) = (unsigned long)task_stack_page(c_idle.idle) - 8 + THREAD_SIZE;
14667 #endif 13951 #endif
14668+ 13952+
14669+ pax_open_kernel(); 13953+ pax_open_kernel();
@@ -14673,7 +13957,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kern
14673 initial_code = (unsigned long)start_secondary; 13957 initial_code = (unsigned long)start_secondary;
14674 stack_start = c_idle.idle->thread.sp; 13958 stack_start = c_idle.idle->thread.sp;
14675 13959
14676@@ -923,6 +926,12 @@ int __cpuinit native_cpu_up(unsigned int 13960@@ -923,6 +927,12 @@ int __cpuinit native_cpu_up(unsigned int
14677 13961
14678 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; 13962 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
14679 13963
@@ -14686,9 +13970,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kern
14686 err = do_boot_cpu(apicid, cpu); 13970 err = do_boot_cpu(apicid, cpu);
14687 if (err) { 13971 if (err) {
14688 pr_debug("do_boot_cpu failed %d\n", err); 13972 pr_debug("do_boot_cpu failed %d\n", err);
14689diff -urNp linux-2.6.38.3/arch/x86/kernel/step.c linux-2.6.38.3/arch/x86/kernel/step.c 13973diff -urNp linux-2.6.38.2/arch/x86/kernel/step.c linux-2.6.38.2/arch/x86/kernel/step.c
14690--- linux-2.6.38.3/arch/x86/kernel/step.c 2011-03-14 21:20:32.000000000 -0400 13974--- linux-2.6.38.2/arch/x86/kernel/step.c 2011-03-14 21:20:32.000000000 -0400
14691+++ linux-2.6.38.3/arch/x86/kernel/step.c 2011-04-17 15:57:32.000000000 -0400 13975+++ linux-2.6.38.2/arch/x86/kernel/step.c 2011-03-21 18:31:35.000000000 -0400
14692@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc 13976@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc
14693 struct desc_struct *desc; 13977 struct desc_struct *desc;
14694 unsigned long base; 13978 unsigned long base;
@@ -14731,17 +14015,17 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/step.c linux-2.6.38.3/arch/x86/kernel/
14731 /* 32-bit mode: register increment */ 14015 /* 32-bit mode: register increment */
14732 return 0; 14016 return 0;
14733 /* 64-bit mode: REX prefix */ 14017 /* 64-bit mode: REX prefix */
14734diff -urNp linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 14018diff -urNp linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S
14735--- linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 2011-03-14 21:20:32.000000000 -0400 14019--- linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S 2011-03-14 21:20:32.000000000 -0400
14736+++ linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 2011-04-17 15:57:32.000000000 -0400 14020+++ linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S 2011-03-21 18:31:35.000000000 -0400
14737@@ -1,3 +1,4 @@ 14021@@ -1,3 +1,4 @@
14738+.section .rodata,"a",@progbits 14022+.section .rodata,"a",@progbits
14739 ENTRY(sys_call_table) 14023 ENTRY(sys_call_table)
14740 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ 14024 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
14741 .long sys_exit 14025 .long sys_exit
14742diff -urNp linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 14026diff -urNp linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c
14743--- linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 2011-03-14 21:20:32.000000000 -0400 14027--- linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c 2011-03-14 21:20:32.000000000 -0400
14744+++ linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 2011-04-17 15:57:32.000000000 -0400 14028+++ linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c 2011-03-21 23:47:41.000000000 -0400
14745@@ -24,17 +24,224 @@ 14029@@ -24,17 +24,224 @@
14746 14030
14747 #include <asm/syscalls.h> 14031 #include <asm/syscalls.h>
@@ -14979,9 +14263,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c linux-2.6.38.3/arch/x86/
14979+ 14263+
14980+ return addr; 14264+ return addr;
14981 } 14265 }
14982diff -urNp linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 14266diff -urNp linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c
14983--- linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 2011-03-14 21:20:32.000000000 -0400 14267--- linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c 2011-03-14 21:20:32.000000000 -0400
14984+++ linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 2011-04-17 15:57:32.000000000 -0400 14268+++ linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c 2011-03-21 23:47:41.000000000 -0400
14985@@ -32,8 +32,8 @@ out: 14269@@ -32,8 +32,8 @@ out:
14986 return error; 14270 return error;
14987 } 14271 }
@@ -15119,9 +14403,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c linux-2.6.38.3/arch/x86/k
15119 mm->cached_hole_size = ~0UL; 14403 mm->cached_hole_size = ~0UL;
15120 14404
15121 return addr; 14405 return addr;
15122diff -urNp linux-2.6.38.3/arch/x86/kernel/time.c linux-2.6.38.3/arch/x86/kernel/time.c 14406diff -urNp linux-2.6.38.2/arch/x86/kernel/time.c linux-2.6.38.2/arch/x86/kernel/time.c
15123--- linux-2.6.38.3/arch/x86/kernel/time.c 2011-03-14 21:20:32.000000000 -0400 14407--- linux-2.6.38.2/arch/x86/kernel/time.c 2011-03-14 21:20:32.000000000 -0400
15124+++ linux-2.6.38.3/arch/x86/kernel/time.c 2011-04-17 15:57:32.000000000 -0400 14408+++ linux-2.6.38.2/arch/x86/kernel/time.c 2011-03-21 18:31:35.000000000 -0400
15125@@ -22,17 +22,13 @@ 14409@@ -22,17 +22,13 @@
15126 #include <asm/hpet.h> 14410 #include <asm/hpet.h>
15127 #include <asm/time.h> 14411 #include <asm/time.h>
@@ -15160,9 +14444,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/time.c linux-2.6.38.3/arch/x86/kernel/
15160 } 14444 }
15161 return pc; 14445 return pc;
15162 } 14446 }
15163diff -urNp linux-2.6.38.3/arch/x86/kernel/tls.c linux-2.6.38.3/arch/x86/kernel/tls.c 14447diff -urNp linux-2.6.38.2/arch/x86/kernel/tls.c linux-2.6.38.2/arch/x86/kernel/tls.c
15164--- linux-2.6.38.3/arch/x86/kernel/tls.c 2011-03-14 21:20:32.000000000 -0400 14448--- linux-2.6.38.2/arch/x86/kernel/tls.c 2011-03-14 21:20:32.000000000 -0400
15165+++ linux-2.6.38.3/arch/x86/kernel/tls.c 2011-04-17 15:57:32.000000000 -0400 14449+++ linux-2.6.38.2/arch/x86/kernel/tls.c 2011-03-21 18:31:35.000000000 -0400
15166@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc 14450@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc
15167 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) 14451 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
15168 return -EINVAL; 14452 return -EINVAL;
@@ -15175,9 +14459,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/tls.c linux-2.6.38.3/arch/x86/kernel/t
15175 set_tls_desc(p, idx, &info, 1); 14459 set_tls_desc(p, idx, &info, 1);
15176 14460
15177 return 0; 14461 return 0;
15178diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_32.S linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 14462diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_32.S linux-2.6.38.2/arch/x86/kernel/trampoline_32.S
15179--- linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-03-14 21:20:32.000000000 -0400 14463--- linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 2011-03-14 21:20:32.000000000 -0400
15180+++ linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-04-17 15:57:32.000000000 -0400 14464+++ linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 2011-03-21 18:31:35.000000000 -0400
15181@@ -32,6 +32,12 @@ 14465@@ -32,6 +32,12 @@
15182 #include <asm/segment.h> 14466 #include <asm/segment.h>
15183 #include <asm/page_types.h> 14467 #include <asm/page_types.h>
@@ -15200,9 +14484,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_32.S linux-2.6.38.3/arch/x8
15200 14484
15201 # These need to be in the same 64K segment as the above; 14485 # These need to be in the same 64K segment as the above;
15202 # hence we don't use the boot_gdt_descr defined in head.S 14486 # hence we don't use the boot_gdt_descr defined in head.S
15203diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_64.S linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 14487diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_64.S linux-2.6.38.2/arch/x86/kernel/trampoline_64.S
15204--- linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 2011-03-14 21:20:32.000000000 -0400 14488--- linux-2.6.38.2/arch/x86/kernel/trampoline_64.S 2011-03-14 21:20:32.000000000 -0400
15205+++ linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 2011-04-17 15:57:32.000000000 -0400 14489+++ linux-2.6.38.2/arch/x86/kernel/trampoline_64.S 2011-03-21 18:31:35.000000000 -0400
15206@@ -91,7 +91,7 @@ startup_32: 14490@@ -91,7 +91,7 @@ startup_32:
15207 movl $__KERNEL_DS, %eax # Initialize the %ds segment register 14491 movl $__KERNEL_DS, %eax # Initialize the %ds segment register
15208 movl %eax, %ds 14492 movl %eax, %ds
@@ -15221,9 +14505,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_64.S linux-2.6.38.3/arch/x8
15221 .long tgdt - r_base 14505 .long tgdt - r_base
15222 .short 0 14506 .short 0
15223 .quad 0x00cf9b000000ffff # __KERNEL32_CS 14507 .quad 0x00cf9b000000ffff # __KERNEL32_CS
15224diff -urNp linux-2.6.38.3/arch/x86/kernel/traps.c linux-2.6.38.3/arch/x86/kernel/traps.c 14508diff -urNp linux-2.6.38.2/arch/x86/kernel/traps.c linux-2.6.38.2/arch/x86/kernel/traps.c
15225--- linux-2.6.38.3/arch/x86/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400 14509--- linux-2.6.38.2/arch/x86/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400
15226+++ linux-2.6.38.3/arch/x86/kernel/traps.c 2011-04-17 15:57:32.000000000 -0400 14510+++ linux-2.6.38.2/arch/x86/kernel/traps.c 2011-03-21 18:31:35.000000000 -0400
15227@@ -70,12 +70,6 @@ asmlinkage int system_call(void); 14511@@ -70,12 +70,6 @@ asmlinkage int system_call(void);
15228 14512
15229 /* Do we ignore FPU interrupts ? */ 14513 /* Do we ignore FPU interrupts ? */
@@ -15366,28 +14650,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/traps.c linux-2.6.38.3/arch/x86/kernel
15366 { 14650 {
15367 if (!fixup_exception(regs)) { 14651 if (!fixup_exception(regs)) {
15368 task->thread.error_code = error_code; 14652 task->thread.error_code = error_code;
15369@@ -723,7 +752,7 @@ asmlinkage void __attribute__((weak)) sm 14653diff -urNp linux-2.6.38.2/arch/x86/kernel/tsc.c linux-2.6.38.2/arch/x86/kernel/tsc.c
15370 void __math_state_restore(void) 14654--- linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-14 21:20:32.000000000 -0400
15371 { 14655+++ linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-21 18:31:35.000000000 -0400
15372 struct thread_info *thread = current_thread_info();
15373- struct task_struct *tsk = thread->task;
15374+ struct task_struct *tsk = current;
15375
15376 /*
15377 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
15378@@ -750,8 +779,7 @@ void __math_state_restore(void)
15379 */
15380 asmlinkage void math_state_restore(void)
15381 {
15382- struct thread_info *thread = current_thread_info();
15383- struct task_struct *tsk = thread->task;
15384+ struct task_struct *tsk = current;
15385
15386 if (!tsk_used_math(tsk)) {
15387 local_irq_enable();
15388diff -urNp linux-2.6.38.3/arch/x86/kernel/tsc.c linux-2.6.38.3/arch/x86/kernel/tsc.c
15389--- linux-2.6.38.3/arch/x86/kernel/tsc.c 2011-03-14 21:20:32.000000000 -0400
15390+++ linux-2.6.38.3/arch/x86/kernel/tsc.c 2011-04-17 15:57:32.000000000 -0400
15391@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b 14656@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b
15392 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"), 14657 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"),
15393 }, 14658 },
@@ -15397,9 +14662,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/tsc.c linux-2.6.38.3/arch/x86/kernel/t
15397 }; 14662 };
15398 14663
15399 static void __init check_system_tsc_reliable(void) 14664 static void __init check_system_tsc_reliable(void)
15400diff -urNp linux-2.6.38.3/arch/x86/kernel/vm86_32.c linux-2.6.38.3/arch/x86/kernel/vm86_32.c 14665diff -urNp linux-2.6.38.2/arch/x86/kernel/vm86_32.c linux-2.6.38.2/arch/x86/kernel/vm86_32.c
15401--- linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-03-14 21:20:32.000000000 -0400 14666--- linux-2.6.38.2/arch/x86/kernel/vm86_32.c 2011-03-14 21:20:32.000000000 -0400
15402+++ linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-04-17 15:57:32.000000000 -0400 14667+++ linux-2.6.38.2/arch/x86/kernel/vm86_32.c 2011-03-21 18:31:35.000000000 -0400
15403@@ -41,6 +41,7 @@ 14668@@ -41,6 +41,7 @@
15404 #include <linux/ptrace.h> 14669 #include <linux/ptrace.h>
15405 #include <linux/audit.h> 14670 #include <linux/audit.h>
@@ -15464,9 +14729,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/vm86_32.c linux-2.6.38.3/arch/x86/kern
15464 if (get_user(segoffs, intr_ptr)) 14729 if (get_user(segoffs, intr_ptr))
15465 goto cannot_handle; 14730 goto cannot_handle;
15466 if ((segoffs >> 16) == BIOSSEG) 14731 if ((segoffs >> 16) == BIOSSEG)
15467diff -urNp linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 14732diff -urNp linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S
15468--- linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400 14733--- linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400
15469+++ linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-04-17 15:57:32.000000000 -0400 14734+++ linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 2011-03-21 18:31:35.000000000 -0400
15470@@ -26,6 +26,13 @@ 14735@@ -26,6 +26,13 @@
15471 #include <asm/page_types.h> 14736 #include <asm/page_types.h>
15472 #include <asm/cache.h> 14737 #include <asm/cache.h>
@@ -15763,9 +15028,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.3/arch/x86/
15763 "kernel image bigger than KERNEL_IMAGE_SIZE"); 15028 "kernel image bigger than KERNEL_IMAGE_SIZE");
15764 15029
15765 #ifdef CONFIG_SMP 15030 #ifdef CONFIG_SMP
15766diff -urNp linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 15031diff -urNp linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c
15767--- linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 2011-03-14 21:20:32.000000000 -0400 15032--- linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 2011-03-14 21:20:32.000000000 -0400
15768+++ linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 2011-04-17 15:57:32.000000000 -0400 15033+++ linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 2011-03-21 18:31:35.000000000 -0400
15769@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa 15034@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa
15770 15035
15771 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags); 15036 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
@@ -15783,9 +15048,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c linux-2.6.38.3/arch/x86/
15783 p = tcache->blob[1]; 15048 p = tcache->blob[1];
15784 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) { 15049 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) {
15785 /* Load per CPU data from RDTSCP */ 15050 /* Load per CPU data from RDTSCP */
15786diff -urNp linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 15051diff -urNp linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c
15787--- linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 2011-03-14 21:20:32.000000000 -0400 15052--- linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c 2011-03-14 21:20:32.000000000 -0400
15788+++ linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 2011-04-17 15:57:32.000000000 -0400 15053+++ linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c 2011-03-21 18:31:35.000000000 -0400
15789@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8); 15054@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8);
15790 EXPORT_SYMBOL(copy_user_generic_string); 15055 EXPORT_SYMBOL(copy_user_generic_string);
15791 EXPORT_SYMBOL(copy_user_generic_unrolled); 15056 EXPORT_SYMBOL(copy_user_generic_unrolled);
@@ -15795,9 +15060,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.38.3/arch/x
15795 15060
15796 EXPORT_SYMBOL(copy_page); 15061 EXPORT_SYMBOL(copy_page);
15797 EXPORT_SYMBOL(clear_page); 15062 EXPORT_SYMBOL(clear_page);
15798diff -urNp linux-2.6.38.3/arch/x86/kernel/xsave.c linux-2.6.38.3/arch/x86/kernel/xsave.c 15063diff -urNp linux-2.6.38.2/arch/x86/kernel/xsave.c linux-2.6.38.2/arch/x86/kernel/xsave.c
15799--- linux-2.6.38.3/arch/x86/kernel/xsave.c 2011-03-14 21:20:32.000000000 -0400 15064--- linux-2.6.38.2/arch/x86/kernel/xsave.c 2011-03-14 21:20:32.000000000 -0400
15800+++ linux-2.6.38.3/arch/x86/kernel/xsave.c 2011-04-17 15:57:32.000000000 -0400 15065+++ linux-2.6.38.2/arch/x86/kernel/xsave.c 2011-03-21 18:31:35.000000000 -0400
15801@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_ 15066@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_
15802 fx_sw_user->xstate_size > fx_sw_user->extended_size) 15067 fx_sw_user->xstate_size > fx_sw_user->extended_size)
15803 return -EINVAL; 15068 return -EINVAL;
@@ -15825,9 +15090,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/xsave.c linux-2.6.38.3/arch/x86/kernel
15825 buf); 15090 buf);
15826 if (unlikely(err)) { 15091 if (unlikely(err)) {
15827 /* 15092 /*
15828diff -urNp linux-2.6.38.3/arch/x86/kvm/emulate.c linux-2.6.38.3/arch/x86/kvm/emulate.c 15093diff -urNp linux-2.6.38.2/arch/x86/kvm/emulate.c linux-2.6.38.2/arch/x86/kvm/emulate.c
15829--- linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-03-14 21:20:32.000000000 -0400 15094--- linux-2.6.38.2/arch/x86/kvm/emulate.c 2011-03-14 21:20:32.000000000 -0400
15830+++ linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-04-17 15:57:32.000000000 -0400 15095+++ linux-2.6.38.2/arch/x86/kvm/emulate.c 2011-03-21 18:31:35.000000000 -0400
15831@@ -88,7 +88,7 @@ 15096@@ -88,7 +88,7 @@
15832 #define Src2ImmByte (2<<29) 15097 #define Src2ImmByte (2<<29)
15833 #define Src2One (3<<29) 15098 #define Src2One (3<<29)
@@ -15862,9 +15127,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/emulate.c linux-2.6.38.3/arch/x86/kvm/emu
15862 switch ((_dst).bytes) { \ 15127 switch ((_dst).bytes) { \
15863 case 1: \ 15128 case 1: \
15864 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \ 15129 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \
15865diff -urNp linux-2.6.38.3/arch/x86/kvm/lapic.c linux-2.6.38.3/arch/x86/kvm/lapic.c 15130diff -urNp linux-2.6.38.2/arch/x86/kvm/lapic.c linux-2.6.38.2/arch/x86/kvm/lapic.c
15866--- linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-03-14 21:20:32.000000000 -0400 15131--- linux-2.6.38.2/arch/x86/kvm/lapic.c 2011-03-14 21:20:32.000000000 -0400
15867+++ linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-04-17 15:57:32.000000000 -0400 15132+++ linux-2.6.38.2/arch/x86/kvm/lapic.c 2011-03-21 18:31:35.000000000 -0400
15868@@ -53,7 +53,7 @@ 15133@@ -53,7 +53,7 @@
15869 #define APIC_BUS_CYCLE_NS 1 15134 #define APIC_BUS_CYCLE_NS 1
15870 15135
@@ -15874,9 +15139,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/lapic.c linux-2.6.38.3/arch/x86/kvm/lapic
15874 15139
15875 #define APIC_LVT_NUM 6 15140 #define APIC_LVT_NUM 6
15876 /* 14 is the version for Xeon and Pentium 8.4.8*/ 15141 /* 14 is the version for Xeon and Pentium 8.4.8*/
15877diff -urNp linux-2.6.38.3/arch/x86/kvm/svm.c linux-2.6.38.3/arch/x86/kvm/svm.c 15142diff -urNp linux-2.6.38.2/arch/x86/kvm/svm.c linux-2.6.38.2/arch/x86/kvm/svm.c
15878--- linux-2.6.38.3/arch/x86/kvm/svm.c 2011-03-14 21:20:32.000000000 -0400 15143--- linux-2.6.38.2/arch/x86/kvm/svm.c 2011-03-14 21:20:32.000000000 -0400
15879+++ linux-2.6.38.3/arch/x86/kvm/svm.c 2011-04-17 15:57:32.000000000 -0400 15144+++ linux-2.6.38.2/arch/x86/kvm/svm.c 2011-03-21 18:31:35.000000000 -0400
15880@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu * 15145@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu *
15881 int cpu = raw_smp_processor_id(); 15146 int cpu = raw_smp_processor_id();
15882 15147
@@ -15898,9 +15163,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/svm.c linux-2.6.38.3/arch/x86/kvm/svm.c
15898 .cpu_has_kvm_support = has_svm, 15163 .cpu_has_kvm_support = has_svm,
15899 .disabled_by_bios = is_disabled, 15164 .disabled_by_bios = is_disabled,
15900 .hardware_setup = svm_hardware_setup, 15165 .hardware_setup = svm_hardware_setup,
15901diff -urNp linux-2.6.38.3/arch/x86/kvm/vmx.c linux-2.6.38.3/arch/x86/kvm/vmx.c 15166diff -urNp linux-2.6.38.2/arch/x86/kvm/vmx.c linux-2.6.38.2/arch/x86/kvm/vmx.c
15902--- linux-2.6.38.3/arch/x86/kvm/vmx.c 2011-03-14 21:20:32.000000000 -0400 15167--- linux-2.6.38.2/arch/x86/kvm/vmx.c 2011-03-14 21:20:32.000000000 -0400
15903+++ linux-2.6.38.3/arch/x86/kvm/vmx.c 2011-04-17 15:57:32.000000000 -0400 15168+++ linux-2.6.38.2/arch/x86/kvm/vmx.c 2011-03-21 18:31:35.000000000 -0400
15904@@ -725,7 +725,11 @@ static void reload_tss(void) 15169@@ -725,7 +725,11 @@ static void reload_tss(void)
15905 struct desc_struct *descs; 15170 struct desc_struct *descs;
15906 15171
@@ -15979,9 +15244,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/vmx.c linux-2.6.38.3/arch/x86/kvm/vmx.c
15979 .cpu_has_kvm_support = cpu_has_kvm_support, 15244 .cpu_has_kvm_support = cpu_has_kvm_support,
15980 .disabled_by_bios = vmx_disabled_by_bios, 15245 .disabled_by_bios = vmx_disabled_by_bios,
15981 .hardware_setup = hardware_setup, 15246 .hardware_setup = hardware_setup,
15982diff -urNp linux-2.6.38.3/arch/x86/kvm/x86.c linux-2.6.38.3/arch/x86/kvm/x86.c 15247diff -urNp linux-2.6.38.2/arch/x86/kvm/x86.c linux-2.6.38.2/arch/x86/kvm/x86.c
15983--- linux-2.6.38.3/arch/x86/kvm/x86.c 2011-03-14 21:20:32.000000000 -0400 15248--- linux-2.6.38.2/arch/x86/kvm/x86.c 2011-03-14 21:20:32.000000000 -0400
15984+++ linux-2.6.38.3/arch/x86/kvm/x86.c 2011-04-17 15:57:32.000000000 -0400 15249+++ linux-2.6.38.2/arch/x86/kvm/x86.c 2011-03-21 18:31:35.000000000 -0400
15985@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct 15250@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct
15986 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, 15251 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
15987 struct kvm_cpuid_entry2 __user *entries); 15252 struct kvm_cpuid_entry2 __user *entries);
@@ -16093,9 +15358,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/x86.c linux-2.6.38.3/arch/x86/kvm/x86.c
16093 15358
16094 if (kvm_x86_ops) { 15359 if (kvm_x86_ops) {
16095 printk(KERN_ERR "kvm: already loaded the other module\n"); 15360 printk(KERN_ERR "kvm: already loaded the other module\n");
16096diff -urNp linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 15361diff -urNp linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S
16097--- linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 2011-03-14 21:20:32.000000000 -0400 15362--- linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S 2011-03-14 21:20:32.000000000 -0400
16098+++ linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 2011-04-17 15:57:32.000000000 -0400 15363+++ linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S 2011-03-21 18:31:35.000000000 -0400
16099@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8) 15364@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8)
16100 movl %edx, %ecx 15365 movl %edx, %ecx
16101 \ins\()l %esi, %ebx 15366 \ins\()l %esi, %ebx
@@ -16176,9 +15441,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S linux-2.6.38.3/arch/x86
16176 LOCK_PREFIX 15441 LOCK_PREFIX
16177 cmpxchg8b (%esi) 15442 cmpxchg8b (%esi)
16178 jne 1b 15443 jne 1b
16179diff -urNp linux-2.6.38.3/arch/x86/lib/checksum_32.S linux-2.6.38.3/arch/x86/lib/checksum_32.S 15444diff -urNp linux-2.6.38.2/arch/x86/lib/checksum_32.S linux-2.6.38.2/arch/x86/lib/checksum_32.S
16180--- linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-03-14 21:20:32.000000000 -0400 15445--- linux-2.6.38.2/arch/x86/lib/checksum_32.S 2011-03-14 21:20:32.000000000 -0400
16181+++ linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-04-17 15:57:32.000000000 -0400 15446+++ linux-2.6.38.2/arch/x86/lib/checksum_32.S 2011-03-21 18:31:35.000000000 -0400
16182@@ -28,7 +28,8 @@ 15447@@ -28,7 +28,8 @@
16183 #include <linux/linkage.h> 15448 #include <linux/linkage.h>
16184 #include <asm/dwarf2.h> 15449 #include <asm/dwarf2.h>
@@ -16439,9 +15704,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/checksum_32.S linux-2.6.38.3/arch/x86/lib
16439 15704
16440 #undef ROUND 15705 #undef ROUND
16441 #undef ROUND1 15706 #undef ROUND1
16442diff -urNp linux-2.6.38.3/arch/x86/lib/clear_page_64.S linux-2.6.38.3/arch/x86/lib/clear_page_64.S 15707diff -urNp linux-2.6.38.2/arch/x86/lib/clear_page_64.S linux-2.6.38.2/arch/x86/lib/clear_page_64.S
16443--- linux-2.6.38.3/arch/x86/lib/clear_page_64.S 2011-03-14 21:20:32.000000000 -0400 15708--- linux-2.6.38.2/arch/x86/lib/clear_page_64.S 2011-03-14 21:20:32.000000000 -0400
16444+++ linux-2.6.38.3/arch/x86/lib/clear_page_64.S 2011-04-17 15:57:32.000000000 -0400 15709+++ linux-2.6.38.2/arch/x86/lib/clear_page_64.S 2011-03-21 18:31:35.000000000 -0400
16445@@ -43,7 +43,7 @@ ENDPROC(clear_page) 15710@@ -43,7 +43,7 @@ ENDPROC(clear_page)
16446 15711
16447 #include <asm/cpufeature.h> 15712 #include <asm/cpufeature.h>
@@ -16451,9 +15716,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/clear_page_64.S linux-2.6.38.3/arch/x86/l
16451 1: .byte 0xeb /* jmp <disp8> */ 15716 1: .byte 0xeb /* jmp <disp8> */
16452 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ 15717 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */
16453 2: 15718 2:
16454diff -urNp linux-2.6.38.3/arch/x86/lib/copy_page_64.S linux-2.6.38.3/arch/x86/lib/copy_page_64.S 15719diff -urNp linux-2.6.38.2/arch/x86/lib/copy_page_64.S linux-2.6.38.2/arch/x86/lib/copy_page_64.S
16455--- linux-2.6.38.3/arch/x86/lib/copy_page_64.S 2011-03-14 21:20:32.000000000 -0400 15720--- linux-2.6.38.2/arch/x86/lib/copy_page_64.S 2011-03-14 21:20:32.000000000 -0400
16456+++ linux-2.6.38.3/arch/x86/lib/copy_page_64.S 2011-04-17 15:57:32.000000000 -0400 15721+++ linux-2.6.38.2/arch/x86/lib/copy_page_64.S 2011-03-21 18:31:35.000000000 -0400
16457@@ -104,7 +104,7 @@ ENDPROC(copy_page) 15722@@ -104,7 +104,7 @@ ENDPROC(copy_page)
16458 15723
16459 #include <asm/cpufeature.h> 15724 #include <asm/cpufeature.h>
@@ -16463,9 +15728,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/copy_page_64.S linux-2.6.38.3/arch/x86/li
16463 1: .byte 0xeb /* jmp <disp8> */ 15728 1: .byte 0xeb /* jmp <disp8> */
16464 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */ 15729 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */
16465 2: 15730 2:
16466diff -urNp linux-2.6.38.3/arch/x86/lib/copy_user_64.S linux-2.6.38.3/arch/x86/lib/copy_user_64.S 15731diff -urNp linux-2.6.38.2/arch/x86/lib/copy_user_64.S linux-2.6.38.2/arch/x86/lib/copy_user_64.S
16467--- linux-2.6.38.3/arch/x86/lib/copy_user_64.S 2011-03-14 21:20:32.000000000 -0400 15732--- linux-2.6.38.2/arch/x86/lib/copy_user_64.S 2011-03-14 21:20:32.000000000 -0400
16468+++ linux-2.6.38.3/arch/x86/lib/copy_user_64.S 2011-04-17 15:57:32.000000000 -0400 15733+++ linux-2.6.38.2/arch/x86/lib/copy_user_64.S 2011-03-21 18:31:35.000000000 -0400
16469@@ -15,13 +15,14 @@ 15734@@ -15,13 +15,14 @@
16470 #include <asm/asm-offsets.h> 15735 #include <asm/asm-offsets.h>
16471 #include <asm/thread_info.h> 15736 #include <asm/thread_info.h>
@@ -16522,9 +15787,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/copy_user_64.S linux-2.6.38.3/arch/x86/li
16522 movl %edx,%ecx 15787 movl %edx,%ecx
16523 xorl %eax,%eax 15788 xorl %eax,%eax
16524 rep 15789 rep
16525diff -urNp linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 15790diff -urNp linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S
16526--- linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 2011-03-14 21:20:32.000000000 -0400 15791--- linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S 2011-03-14 21:20:32.000000000 -0400
16527+++ linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 2011-04-17 15:57:32.000000000 -0400 15792+++ linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S 2011-03-21 18:31:35.000000000 -0400
16528@@ -14,6 +14,7 @@ 15793@@ -14,6 +14,7 @@
16529 #include <asm/current.h> 15794 #include <asm/current.h>
16530 #include <asm/asm-offsets.h> 15795 #include <asm/asm-offsets.h>
@@ -16549,9 +15814,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S linux-2.6.38.3/arc
16549 cmpl $8,%edx 15814 cmpl $8,%edx
16550 jb 20f /* less then 8 bytes, go to byte copy loop */ 15815 jb 20f /* less then 8 bytes, go to byte copy loop */
16551 ALIGN_DESTINATION 15816 ALIGN_DESTINATION
16552diff -urNp linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 15817diff -urNp linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c
16553--- linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 2011-03-14 21:20:32.000000000 -0400 15818--- linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c 2011-03-14 21:20:32.000000000 -0400
16554+++ linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 2011-04-17 15:57:32.000000000 -0400 15819+++ linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c 2011-03-21 18:31:35.000000000 -0400
16555@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _ 15820@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _
16556 len -= 2; 15821 len -= 2;
16557 } 15822 }
@@ -16570,9 +15835,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c linux-2.6.38.3/arch/x8
16570 return csum_partial_copy_generic(src, (void __force *)dst, 15835 return csum_partial_copy_generic(src, (void __force *)dst,
16571 len, isum, NULL, errp); 15836 len, isum, NULL, errp);
16572 } 15837 }
16573diff -urNp linux-2.6.38.3/arch/x86/lib/getuser.S linux-2.6.38.3/arch/x86/lib/getuser.S 15838diff -urNp linux-2.6.38.2/arch/x86/lib/getuser.S linux-2.6.38.2/arch/x86/lib/getuser.S
16574--- linux-2.6.38.3/arch/x86/lib/getuser.S 2011-03-14 21:20:32.000000000 -0400 15839--- linux-2.6.38.2/arch/x86/lib/getuser.S 2011-03-14 21:20:32.000000000 -0400
16575+++ linux-2.6.38.3/arch/x86/lib/getuser.S 2011-04-17 15:57:32.000000000 -0400 15840+++ linux-2.6.38.2/arch/x86/lib/getuser.S 2011-03-21 18:31:35.000000000 -0400
16576@@ -33,14 +33,35 @@ 15841@@ -33,14 +33,35 @@
16577 #include <asm/asm-offsets.h> 15842 #include <asm/asm-offsets.h>
16578 #include <asm/thread_info.h> 15843 #include <asm/thread_info.h>
@@ -16678,9 +15943,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/getuser.S linux-2.6.38.3/arch/x86/lib/get
16678 4: movq -7(%_ASM_AX),%_ASM_DX 15943 4: movq -7(%_ASM_AX),%_ASM_DX
16679 xor %eax,%eax 15944 xor %eax,%eax
16680 ret 15945 ret
16681diff -urNp linux-2.6.38.3/arch/x86/lib/insn.c linux-2.6.38.3/arch/x86/lib/insn.c 15946diff -urNp linux-2.6.38.2/arch/x86/lib/insn.c linux-2.6.38.2/arch/x86/lib/insn.c
16682--- linux-2.6.38.3/arch/x86/lib/insn.c 2011-03-14 21:20:32.000000000 -0400 15947--- linux-2.6.38.2/arch/x86/lib/insn.c 2011-03-14 21:20:32.000000000 -0400
16683+++ linux-2.6.38.3/arch/x86/lib/insn.c 2011-04-17 15:57:32.000000000 -0400 15948+++ linux-2.6.38.2/arch/x86/lib/insn.c 2011-03-21 18:31:35.000000000 -0400
16684@@ -21,6 +21,11 @@ 15949@@ -21,6 +21,11 @@
16685 #include <linux/string.h> 15950 #include <linux/string.h>
16686 #include <asm/inat.h> 15951 #include <asm/inat.h>
@@ -16704,9 +15969,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/insn.c linux-2.6.38.3/arch/x86/lib/insn.c
16704 insn->x86_64 = x86_64 ? 1 : 0; 15969 insn->x86_64 = x86_64 ? 1 : 0;
16705 insn->opnd_bytes = 4; 15970 insn->opnd_bytes = 4;
16706 if (x86_64) 15971 if (x86_64)
16707diff -urNp linux-2.6.38.3/arch/x86/lib/mmx_32.c linux-2.6.38.3/arch/x86/lib/mmx_32.c 15972diff -urNp linux-2.6.38.2/arch/x86/lib/mmx_32.c linux-2.6.38.2/arch/x86/lib/mmx_32.c
16708--- linux-2.6.38.3/arch/x86/lib/mmx_32.c 2011-03-14 21:20:32.000000000 -0400 15973--- linux-2.6.38.2/arch/x86/lib/mmx_32.c 2011-03-14 21:20:32.000000000 -0400
16709+++ linux-2.6.38.3/arch/x86/lib/mmx_32.c 2011-04-17 15:57:32.000000000 -0400 15974+++ linux-2.6.38.2/arch/x86/lib/mmx_32.c 2011-03-21 18:31:35.000000000 -0400
16710@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void * 15975@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *
16711 { 15976 {
16712 void *p; 15977 void *p;
@@ -17022,9 +16287,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/mmx_32.c linux-2.6.38.3/arch/x86/lib/mmx_
17022 16287
17023 from += 64; 16288 from += 64;
17024 to += 64; 16289 to += 64;
17025diff -urNp linux-2.6.38.3/arch/x86/lib/putuser.S linux-2.6.38.3/arch/x86/lib/putuser.S 16290diff -urNp linux-2.6.38.2/arch/x86/lib/putuser.S linux-2.6.38.2/arch/x86/lib/putuser.S
17026--- linux-2.6.38.3/arch/x86/lib/putuser.S 2011-03-14 21:20:32.000000000 -0400 16291--- linux-2.6.38.2/arch/x86/lib/putuser.S 2011-03-14 21:20:32.000000000 -0400
17027+++ linux-2.6.38.3/arch/x86/lib/putuser.S 2011-04-17 15:57:32.000000000 -0400 16292+++ linux-2.6.38.2/arch/x86/lib/putuser.S 2011-03-21 18:31:35.000000000 -0400
17028@@ -15,7 +15,8 @@ 16293@@ -15,7 +15,8 @@
17029 #include <asm/thread_info.h> 16294 #include <asm/thread_info.h>
17030 #include <asm/errno.h> 16295 #include <asm/errno.h>
@@ -17162,9 +16427,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/putuser.S linux-2.6.38.3/arch/x86/lib/put
17162 #endif 16427 #endif
17163 xor %eax,%eax 16428 xor %eax,%eax
17164 EXIT 16429 EXIT
17165diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_32.c linux-2.6.38.3/arch/x86/lib/usercopy_32.c 16430diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_32.c linux-2.6.38.2/arch/x86/lib/usercopy_32.c
17166--- linux-2.6.38.3/arch/x86/lib/usercopy_32.c 2011-03-14 21:20:32.000000000 -0400 16431--- linux-2.6.38.2/arch/x86/lib/usercopy_32.c 2011-03-14 21:20:32.000000000 -0400
17167+++ linux-2.6.38.3/arch/x86/lib/usercopy_32.c 2011-04-17 15:57:32.000000000 -0400 16432+++ linux-2.6.38.2/arch/x86/lib/usercopy_32.c 2011-03-21 18:31:35.000000000 -0400
17168@@ -43,7 +43,7 @@ do { \ 16433@@ -43,7 +43,7 @@ do { \
17169 __asm__ __volatile__( \ 16434 __asm__ __volatile__( \
17170 " testl %1,%1\n" \ 16435 " testl %1,%1\n" \
@@ -17784,9 +17049,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_32.c linux-2.6.38.3/arch/x86/lib
17784+} 17049+}
17785+EXPORT_SYMBOL(set_fs); 17050+EXPORT_SYMBOL(set_fs);
17786+#endif 17051+#endif
17787diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_64.c linux-2.6.38.3/arch/x86/lib/usercopy_64.c 17052diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_64.c linux-2.6.38.2/arch/x86/lib/usercopy_64.c
17788--- linux-2.6.38.3/arch/x86/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400 17053--- linux-2.6.38.2/arch/x86/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400
17789+++ linux-2.6.38.3/arch/x86/lib/usercopy_64.c 2011-04-17 15:57:32.000000000 -0400 17054+++ linux-2.6.38.2/arch/x86/lib/usercopy_64.c 2011-03-21 18:31:35.000000000 -0400
17790@@ -42,6 +42,8 @@ long 17055@@ -42,6 +42,8 @@ long
17791 __strncpy_from_user(char *dst, const char __user *src, long count) 17056 __strncpy_from_user(char *dst, const char __user *src, long count)
17792 { 17057 {
@@ -17823,9 +17088,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_64.c linux-2.6.38.3/arch/x86/lib
17823 } 17088 }
17824 EXPORT_SYMBOL(copy_in_user); 17089 EXPORT_SYMBOL(copy_in_user);
17825 17090
17826diff -urNp linux-2.6.38.3/arch/x86/Makefile linux-2.6.38.3/arch/x86/Makefile 17091diff -urNp linux-2.6.38.2/arch/x86/Makefile linux-2.6.38.2/arch/x86/Makefile
17827--- linux-2.6.38.3/arch/x86/Makefile 2011-03-14 21:20:32.000000000 -0400 17092--- linux-2.6.38.2/arch/x86/Makefile 2011-03-14 21:20:32.000000000 -0400
17828+++ linux-2.6.38.3/arch/x86/Makefile 2011-04-17 15:57:32.000000000 -0400 17093+++ linux-2.6.38.2/arch/x86/Makefile 2011-03-21 18:31:35.000000000 -0400
17829@@ -195,3 +195,12 @@ define archhelp 17094@@ -195,3 +195,12 @@ define archhelp
17830 echo ' FDARGS="..." arguments for the booted kernel' 17095 echo ' FDARGS="..." arguments for the booted kernel'
17831 echo ' FDINITRD=file initrd for the booted kernel' 17096 echo ' FDINITRD=file initrd for the booted kernel'
@@ -17839,9 +17104,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Makefile linux-2.6.38.3/arch/x86/Makefile
17839+ 17104+
17840+archprepare: 17105+archprepare:
17841+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) 17106+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
17842diff -urNp linux-2.6.38.3/arch/x86/mm/extable.c linux-2.6.38.3/arch/x86/mm/extable.c 17107diff -urNp linux-2.6.38.2/arch/x86/mm/extable.c linux-2.6.38.2/arch/x86/mm/extable.c
17843--- linux-2.6.38.3/arch/x86/mm/extable.c 2011-03-14 21:20:32.000000000 -0400 17108--- linux-2.6.38.2/arch/x86/mm/extable.c 2011-03-14 21:20:32.000000000 -0400
17844+++ linux-2.6.38.3/arch/x86/mm/extable.c 2011-04-17 15:57:32.000000000 -0400 17109+++ linux-2.6.38.2/arch/x86/mm/extable.c 2011-03-21 18:31:35.000000000 -0400
17845@@ -1,14 +1,71 @@ 17110@@ -1,14 +1,71 @@
17846 #include <linux/module.h> 17111 #include <linux/module.h>
17847 #include <linux/spinlock.h> 17112 #include <linux/spinlock.h>
@@ -17915,9 +17180,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/extable.c linux-2.6.38.3/arch/x86/mm/extab
17915 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; 17180 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
17916 extern u32 pnp_bios_is_utter_crap; 17181 extern u32 pnp_bios_is_utter_crap;
17917 pnp_bios_is_utter_crap = 1; 17182 pnp_bios_is_utter_crap = 1;
17918diff -urNp linux-2.6.38.3/arch/x86/mm/fault.c linux-2.6.38.3/arch/x86/mm/fault.c 17183diff -urNp linux-2.6.38.2/arch/x86/mm/fault.c linux-2.6.38.2/arch/x86/mm/fault.c
17919--- linux-2.6.38.3/arch/x86/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 17184--- linux-2.6.38.2/arch/x86/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
17920+++ linux-2.6.38.3/arch/x86/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 17185+++ linux-2.6.38.2/arch/x86/mm/fault.c 2011-03-21 23:48:53.000000000 -0400
17921@@ -12,10 +12,18 @@ 17186@@ -12,10 +12,18 @@
17922 #include <linux/mmiotrace.h> /* kmmio_handler, ... */ 17187 #include <linux/mmiotrace.h> /* kmmio_handler, ... */
17923 #include <linux/perf_event.h> /* perf_sw_event */ 17188 #include <linux/perf_event.h> /* perf_sw_event */
@@ -18587,9 +17852,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/fault.c linux-2.6.38.3/arch/x86/mm/fault.c
18587+ 17852+
18588+ return ret ? -EFAULT : 0; 17853+ return ret ? -EFAULT : 0;
18589+} 17854+}
18590diff -urNp linux-2.6.38.3/arch/x86/mm/gup.c linux-2.6.38.3/arch/x86/mm/gup.c 17855diff -urNp linux-2.6.38.2/arch/x86/mm/gup.c linux-2.6.38.2/arch/x86/mm/gup.c
18591--- linux-2.6.38.3/arch/x86/mm/gup.c 2011-03-14 21:20:32.000000000 -0400 17856--- linux-2.6.38.2/arch/x86/mm/gup.c 2011-03-14 21:20:32.000000000 -0400
18592+++ linux-2.6.38.3/arch/x86/mm/gup.c 2011-04-17 15:57:32.000000000 -0400 17857+++ linux-2.6.38.2/arch/x86/mm/gup.c 2011-03-21 18:31:35.000000000 -0400
18593@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long 17858@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long
18594 addr = start; 17859 addr = start;
18595 len = (unsigned long) nr_pages << PAGE_SHIFT; 17860 len = (unsigned long) nr_pages << PAGE_SHIFT;
@@ -18599,9 +17864,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/gup.c linux-2.6.38.3/arch/x86/mm/gup.c
18599 (void __user *)start, len))) 17864 (void __user *)start, len)))
18600 return 0; 17865 return 0;
18601 17866
18602diff -urNp linux-2.6.38.3/arch/x86/mm/highmem_32.c linux-2.6.38.3/arch/x86/mm/highmem_32.c 17867diff -urNp linux-2.6.38.2/arch/x86/mm/highmem_32.c linux-2.6.38.2/arch/x86/mm/highmem_32.c
18603--- linux-2.6.38.3/arch/x86/mm/highmem_32.c 2011-03-14 21:20:32.000000000 -0400 17868--- linux-2.6.38.2/arch/x86/mm/highmem_32.c 2011-03-14 21:20:32.000000000 -0400
18604+++ linux-2.6.38.3/arch/x86/mm/highmem_32.c 2011-04-17 15:57:32.000000000 -0400 17869+++ linux-2.6.38.2/arch/x86/mm/highmem_32.c 2011-03-21 18:31:35.000000000 -0400
18605@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page 17870@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page
18606 idx = type + KM_TYPE_NR*smp_processor_id(); 17871 idx = type + KM_TYPE_NR*smp_processor_id();
18607 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 17872 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
@@ -18613,9 +17878,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/highmem_32.c linux-2.6.38.3/arch/x86/mm/hi
18613 17878
18614 return (void *)vaddr; 17879 return (void *)vaddr;
18615 } 17880 }
18616diff -urNp linux-2.6.38.3/arch/x86/mm/hugetlbpage.c linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 17881diff -urNp linux-2.6.38.2/arch/x86/mm/hugetlbpage.c linux-2.6.38.2/arch/x86/mm/hugetlbpage.c
18617--- linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 17882--- linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
18618+++ linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400 17883+++ linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 2011-03-21 23:47:41.000000000 -0400
18619@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe 17884@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe
18620 struct hstate *h = hstate_file(file); 17885 struct hstate *h = hstate_file(file);
18621 struct mm_struct *mm = current->mm; 17886 struct mm_struct *mm = current->mm;
@@ -18823,9 +18088,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/hugetlbpage.c linux-2.6.38.3/arch/x86/mm/h
18823 return addr; 18088 return addr;
18824 } 18089 }
18825 if (mm->get_unmapped_area == arch_get_unmapped_area) 18090 if (mm->get_unmapped_area == arch_get_unmapped_area)
18826diff -urNp linux-2.6.38.3/arch/x86/mm/init_32.c linux-2.6.38.3/arch/x86/mm/init_32.c 18091diff -urNp linux-2.6.38.2/arch/x86/mm/init_32.c linux-2.6.38.2/arch/x86/mm/init_32.c
18827--- linux-2.6.38.3/arch/x86/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400 18092--- linux-2.6.38.2/arch/x86/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400
18828+++ linux-2.6.38.3/arch/x86/mm/init_32.c 2011-04-17 15:57:32.000000000 -0400 18093+++ linux-2.6.38.2/arch/x86/mm/init_32.c 2011-03-21 18:31:35.000000000 -0400
18829@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void) 18094@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void)
18830 } 18095 }
18831 18096
@@ -19100,10 +18365,10 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_32.c linux-2.6.38.3/arch/x86/mm/init_
19100 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT); 18365 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
19101 printk(KERN_INFO "Write protecting the kernel text: %luk\n", 18366 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
19102 size >> 10); 18367 size >> 10);
19103diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_64.c 18368diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_64.c
19104--- linux-2.6.38.3/arch/x86/mm/init_64.c 2011-04-18 17:27:18.000000000 -0400 18369--- linux-2.6.38.2/arch/x86/mm/init_64.c 2011-03-28 17:42:40.000000000 -0400
19105+++ linux-2.6.38.3/arch/x86/mm/init_64.c 2011-04-17 16:53:16.000000000 -0400 18370+++ linux-2.6.38.2/arch/x86/mm/init_64.c 2011-03-28 17:42:53.000000000 -0400
19106@@ -72,7 +72,7 @@ early_param("gbpages", parse_direct_gbpa 18371@@ -73,7 +73,7 @@ early_param("gbpages", parse_direct_gbpa
19107 * around without checking the pgd every time. 18372 * around without checking the pgd every time.
19108 */ 18373 */
19109 18374
@@ -19112,7 +18377,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19112 EXPORT_SYMBOL_GPL(__supported_pte_mask); 18377 EXPORT_SYMBOL_GPL(__supported_pte_mask);
19113 18378
19114 int force_personality32; 18379 int force_personality32;
19115@@ -105,12 +105,22 @@ void sync_global_pgds(unsigned long star 18380@@ -106,12 +106,22 @@ void sync_global_pgds(unsigned long star
19116 18381
19117 for (address = start; address <= end; address += PGDIR_SIZE) { 18382 for (address = start; address <= end; address += PGDIR_SIZE) {
19118 const pgd_t *pgd_ref = pgd_offset_k(address); 18383 const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -19135,7 +18400,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19135 list_for_each_entry(page, &pgd_list, lru) { 18400 list_for_each_entry(page, &pgd_list, lru) {
19136 pgd_t *pgd; 18401 pgd_t *pgd;
19137 spinlock_t *pgt_lock; 18402 spinlock_t *pgt_lock;
19138@@ -119,6 +129,7 @@ void sync_global_pgds(unsigned long star 18403@@ -120,6 +130,7 @@ void sync_global_pgds(unsigned long star
19139 /* the pgt_lock only for Xen */ 18404 /* the pgt_lock only for Xen */
19140 pgt_lock = &pgd_page_get_mm(page)->page_table_lock; 18405 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
19141 spin_lock(pgt_lock); 18406 spin_lock(pgt_lock);
@@ -19143,7 +18408,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19143 18408
19144 if (pgd_none(*pgd)) 18409 if (pgd_none(*pgd))
19145 set_pgd(pgd, *pgd_ref); 18410 set_pgd(pgd, *pgd_ref);
19146@@ -126,7 +137,10 @@ void sync_global_pgds(unsigned long star 18411@@ -127,7 +138,10 @@ void sync_global_pgds(unsigned long star
19147 BUG_ON(pgd_page_vaddr(*pgd) 18412 BUG_ON(pgd_page_vaddr(*pgd)
19148 != pgd_page_vaddr(*pgd_ref)); 18413 != pgd_page_vaddr(*pgd_ref));
19149 18414
@@ -19154,7 +18419,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19154 } 18419 }
19155 spin_unlock(&pgd_lock); 18420 spin_unlock(&pgd_lock);
19156 } 18421 }
19157@@ -200,7 +214,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, 18422@@ -201,7 +215,9 @@ void set_pte_vaddr_pud(pud_t *pud_page,
19158 pmd = fill_pmd(pud, vaddr); 18423 pmd = fill_pmd(pud, vaddr);
19159 pte = fill_pte(pmd, vaddr); 18424 pte = fill_pte(pmd, vaddr);
19160 18425
@@ -19164,7 +18429,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19164 18429
19165 /* 18430 /*
19166 * It's enough to flush this one mapping. 18431 * It's enough to flush this one mapping.
19167@@ -259,14 +275,12 @@ static void __init __init_extra_mapping( 18432@@ -260,14 +276,12 @@ static void __init __init_extra_mapping(
19168 pgd = pgd_offset_k((unsigned long)__va(phys)); 18433 pgd = pgd_offset_k((unsigned long)__va(phys));
19169 if (pgd_none(*pgd)) { 18434 if (pgd_none(*pgd)) {
19170 pud = (pud_t *) spp_getpage(); 18435 pud = (pud_t *) spp_getpage();
@@ -19181,7 +18446,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19181 } 18446 }
19182 pmd = pmd_offset(pud, phys); 18447 pmd = pmd_offset(pud, phys);
19183 BUG_ON(!pmd_none(*pmd)); 18448 BUG_ON(!pmd_none(*pmd));
19184@@ -706,6 +720,12 @@ void __init mem_init(void) 18449@@ -707,6 +721,12 @@ void __init mem_init(void)
19185 18450
19186 pci_iommu_alloc(); 18451 pci_iommu_alloc();
19187 18452
@@ -19194,7 +18459,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19194 /* clear_bss() already clear the empty_zero_page */ 18459 /* clear_bss() already clear the empty_zero_page */
19195 18460
19196 reservedpages = 0; 18461 reservedpages = 0;
19197@@ -866,8 +886,8 @@ int kern_addr_valid(unsigned long addr) 18462@@ -867,8 +887,8 @@ int kern_addr_valid(unsigned long addr)
19198 static struct vm_area_struct gate_vma = { 18463 static struct vm_area_struct gate_vma = {
19199 .vm_start = VSYSCALL_START, 18464 .vm_start = VSYSCALL_START,
19200 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), 18465 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE),
@@ -19205,7 +18470,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19205 }; 18470 };
19206 18471
19207 struct vm_area_struct *get_gate_vma(struct task_struct *tsk) 18472 struct vm_area_struct *get_gate_vma(struct task_struct *tsk)
19208@@ -901,7 +921,7 @@ int in_gate_area_no_task(unsigned long a 18473@@ -902,7 +922,7 @@ int in_gate_area_no_task(unsigned long a
19209 18474
19210 const char *arch_vma_name(struct vm_area_struct *vma) 18475 const char *arch_vma_name(struct vm_area_struct *vma)
19211 { 18476 {
@@ -19214,9 +18479,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19214 return "[vdso]"; 18479 return "[vdso]";
19215 if (vma == &gate_vma) 18480 if (vma == &gate_vma)
19216 return "[vsyscall]"; 18481 return "[vsyscall]";
19217diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c 18482diff -urNp linux-2.6.38.2/arch/x86/mm/init.c linux-2.6.38.2/arch/x86/mm/init.c
19218--- linux-2.6.38.3/arch/x86/mm/init.c 2011-04-18 17:27:18.000000000 -0400 18483--- linux-2.6.38.2/arch/x86/mm/init.c 2011-03-28 17:42:40.000000000 -0400
19219+++ linux-2.6.38.3/arch/x86/mm/init.c 2011-04-17 16:53:16.000000000 -0400 18484+++ linux-2.6.38.2/arch/x86/mm/init.c 2011-03-28 17:42:53.000000000 -0400
19220@@ -72,11 +72,7 @@ static void __init find_early_table_spac 18485@@ -72,11 +72,7 @@ static void __init find_early_table_spac
19221 * cause a hotspot and fill up ZONE_DMA. The page tables 18486 * cause a hotspot and fill up ZONE_DMA. The page tables
19222 * need roughly 0.5KB per GB. 18487 * need roughly 0.5KB per GB.
@@ -19230,25 +18495,22 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c
19230 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT, 18495 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT,
19231 tables, PAGE_SIZE); 18496 tables, PAGE_SIZE);
19232 if (base == MEMBLOCK_ERROR) 18497 if (base == MEMBLOCK_ERROR)
19233@@ -323,7 +319,16 @@ unsigned long __init_refok init_memory_m 18498@@ -304,7 +300,13 @@ unsigned long __init_refok init_memory_m
19234 */ 18499 */
19235 int devmem_is_allowed(unsigned long pagenr) 18500 int devmem_is_allowed(unsigned long pagenr)
19236 { 18501 {
19237- if (pagenr <= 256) 18502- if (pagenr <= 256)
19238+#ifndef CONFIG_GRKERNSEC_KMEM
19239+ if (!pagenr) 18503+ if (!pagenr)
19240+ return 1; 18504+ return 1;
19241+#ifdef CONFIG_VM86 18505+#ifdef CONFIG_VM86
19242+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT)) 18506+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
19243+ return 1; 18507+ return 1;
19244+#endif 18508+#endif
19245+#endif
19246+
19247+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) 18509+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
19248 return 1; 18510 return 1;
19249 if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) 18511 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
19250 return 0; 18512 return 0;
19251@@ -383,6 +388,86 @@ void free_init_pages(char *what, unsigne 18513@@ -364,6 +366,86 @@ void free_init_pages(char *what, unsigne
19252 18514
19253 void free_initmem(void) 18515 void free_initmem(void)
19254 { 18516 {
@@ -19335,9 +18597,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c
19335 free_init_pages("unused kernel memory", 18597 free_init_pages("unused kernel memory",
19336 (unsigned long)(&__init_begin), 18598 (unsigned long)(&__init_begin),
19337 (unsigned long)(&__init_end)); 18599 (unsigned long)(&__init_end));
19338diff -urNp linux-2.6.38.3/arch/x86/mm/iomap_32.c linux-2.6.38.3/arch/x86/mm/iomap_32.c 18600diff -urNp linux-2.6.38.2/arch/x86/mm/iomap_32.c linux-2.6.38.2/arch/x86/mm/iomap_32.c
19339--- linux-2.6.38.3/arch/x86/mm/iomap_32.c 2011-03-14 21:20:32.000000000 -0400 18601--- linux-2.6.38.2/arch/x86/mm/iomap_32.c 2011-03-14 21:20:32.000000000 -0400
19340+++ linux-2.6.38.3/arch/x86/mm/iomap_32.c 2011-04-17 15:57:32.000000000 -0400 18602+++ linux-2.6.38.2/arch/x86/mm/iomap_32.c 2011-03-21 18:31:35.000000000 -0400
19341@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long 18603@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long
19342 type = kmap_atomic_idx_push(); 18604 type = kmap_atomic_idx_push();
19343 idx = type + KM_TYPE_NR * smp_processor_id(); 18605 idx = type + KM_TYPE_NR * smp_processor_id();
@@ -19350,9 +18612,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/iomap_32.c linux-2.6.38.3/arch/x86/mm/ioma
19350 arch_flush_lazy_mmu_mode(); 18612 arch_flush_lazy_mmu_mode();
19351 18613
19352 return (void *)vaddr; 18614 return (void *)vaddr;
19353diff -urNp linux-2.6.38.3/arch/x86/mm/ioremap.c linux-2.6.38.3/arch/x86/mm/ioremap.c 18615diff -urNp linux-2.6.38.2/arch/x86/mm/ioremap.c linux-2.6.38.2/arch/x86/mm/ioremap.c
19354--- linux-2.6.38.3/arch/x86/mm/ioremap.c 2011-03-14 21:20:32.000000000 -0400 18616--- linux-2.6.38.2/arch/x86/mm/ioremap.c 2011-03-14 21:20:32.000000000 -0400
19355+++ linux-2.6.38.3/arch/x86/mm/ioremap.c 2011-04-17 15:57:32.000000000 -0400 18617+++ linux-2.6.38.2/arch/x86/mm/ioremap.c 2011-03-21 18:31:35.000000000 -0400
19356@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re 18618@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re
19357 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) { 18619 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) {
19358 int is_ram = page_is_ram(pfn); 18620 int is_ram = page_is_ram(pfn);
@@ -19381,9 +18643,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/ioremap.c linux-2.6.38.3/arch/x86/mm/iorem
19381 18643
19382 /* 18644 /*
19383 * The boot-ioremap range spans multiple pmds, for which 18645 * The boot-ioremap range spans multiple pmds, for which
19384diff -urNp linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 18646diff -urNp linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c
19385--- linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-14 21:20:32.000000000 -0400 18647--- linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-14 21:20:32.000000000 -0400
19386+++ linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 2011-04-17 15:57:32.000000000 -0400 18648+++ linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-21 18:31:35.000000000 -0400
19387@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg 18649@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg
19388 * memory (e.g. tracked pages)? For now, we need this to avoid 18650 * memory (e.g. tracked pages)? For now, we need this to avoid
19389 * invoking kmemcheck for PnP BIOS calls. 18651 * invoking kmemcheck for PnP BIOS calls.
@@ -19396,9 +18658,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.3/arch/
19396 return false; 18658 return false;
19397 18659
19398 pte = kmemcheck_pte_lookup(address); 18660 pte = kmemcheck_pte_lookup(address);
19399diff -urNp linux-2.6.38.3/arch/x86/mm/mmap.c linux-2.6.38.3/arch/x86/mm/mmap.c 18661diff -urNp linux-2.6.38.2/arch/x86/mm/mmap.c linux-2.6.38.2/arch/x86/mm/mmap.c
19400--- linux-2.6.38.3/arch/x86/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 18662--- linux-2.6.38.2/arch/x86/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
19401+++ linux-2.6.38.3/arch/x86/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 18663+++ linux-2.6.38.2/arch/x86/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400
19402@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size 18664@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size
19403 * Leave an at least ~128 MB hole with possible stack randomization. 18665 * Leave an at least ~128 MB hole with possible stack randomization.
19404 */ 18666 */
@@ -19480,9 +18742,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/mmap.c linux-2.6.38.3/arch/x86/mm/mmap.c
19480 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 18742 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
19481 mm->unmap_area = arch_unmap_area_topdown; 18743 mm->unmap_area = arch_unmap_area_topdown;
19482 } 18744 }
19483diff -urNp linux-2.6.38.3/arch/x86/mm/numa_32.c linux-2.6.38.3/arch/x86/mm/numa_32.c 18745diff -urNp linux-2.6.38.2/arch/x86/mm/numa_32.c linux-2.6.38.2/arch/x86/mm/numa_32.c
19484--- linux-2.6.38.3/arch/x86/mm/numa_32.c 2011-03-14 21:20:32.000000000 -0400 18746--- linux-2.6.38.2/arch/x86/mm/numa_32.c 2011-03-14 21:20:32.000000000 -0400
19485+++ linux-2.6.38.3/arch/x86/mm/numa_32.c 2011-04-17 15:57:32.000000000 -0400 18747+++ linux-2.6.38.2/arch/x86/mm/numa_32.c 2011-03-21 18:31:35.000000000 -0400
19486@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int 18748@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int
19487 } 18749 }
19488 #endif 18750 #endif
@@ -19491,9 +18753,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/numa_32.c linux-2.6.38.3/arch/x86/mm/numa_
19491 extern unsigned long highend_pfn, highstart_pfn; 18753 extern unsigned long highend_pfn, highstart_pfn;
19492 18754
19493 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) 18755 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE)
19494diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr.c linux-2.6.38.3/arch/x86/mm/pageattr.c 18756diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr.c linux-2.6.38.2/arch/x86/mm/pageattr.c
19495--- linux-2.6.38.3/arch/x86/mm/pageattr.c 2011-03-14 21:20:32.000000000 -0400 18757--- linux-2.6.38.2/arch/x86/mm/pageattr.c 2011-03-14 21:20:32.000000000 -0400
19496+++ linux-2.6.38.3/arch/x86/mm/pageattr.c 2011-04-17 15:57:32.000000000 -0400 18758+++ linux-2.6.38.2/arch/x86/mm/pageattr.c 2011-03-21 18:31:35.000000000 -0400
19497@@ -261,7 +261,7 @@ static inline pgprot_t static_protection 18759@@ -261,7 +261,7 @@ static inline pgprot_t static_protection
19498 */ 18760 */
19499 #ifdef CONFIG_PCI_BIOS 18761 #ifdef CONFIG_PCI_BIOS
@@ -19578,9 +18840,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr.c linux-2.6.38.3/arch/x86/mm/page
19578 } 18840 }
19579 18841
19580 static int 18842 static int
19581diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr-test.c linux-2.6.38.3/arch/x86/mm/pageattr-test.c 18843diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr-test.c linux-2.6.38.2/arch/x86/mm/pageattr-test.c
19582--- linux-2.6.38.3/arch/x86/mm/pageattr-test.c 2011-03-14 21:20:32.000000000 -0400 18844--- linux-2.6.38.2/arch/x86/mm/pageattr-test.c 2011-03-14 21:20:32.000000000 -0400
19583+++ linux-2.6.38.3/arch/x86/mm/pageattr-test.c 2011-04-17 15:57:32.000000000 -0400 18845+++ linux-2.6.38.2/arch/x86/mm/pageattr-test.c 2011-03-21 18:31:35.000000000 -0400
19584@@ -36,7 +36,7 @@ enum { 18846@@ -36,7 +36,7 @@ enum {
19585 18847
19586 static int pte_testbit(pte_t pte) 18848 static int pte_testbit(pte_t pte)
@@ -19590,9 +18852,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr-test.c linux-2.6.38.3/arch/x86/mm
19590 } 18852 }
19591 18853
19592 struct split_state { 18854 struct split_state {
19593diff -urNp linux-2.6.38.3/arch/x86/mm/pat.c linux-2.6.38.3/arch/x86/mm/pat.c 18855diff -urNp linux-2.6.38.2/arch/x86/mm/pat.c linux-2.6.38.2/arch/x86/mm/pat.c
19594--- linux-2.6.38.3/arch/x86/mm/pat.c 2011-03-14 21:20:32.000000000 -0400 18856--- linux-2.6.38.2/arch/x86/mm/pat.c 2011-03-14 21:20:32.000000000 -0400
19595+++ linux-2.6.38.3/arch/x86/mm/pat.c 2011-04-17 15:57:32.000000000 -0400 18857+++ linux-2.6.38.2/arch/x86/mm/pat.c 2011-03-21 18:31:35.000000000 -0400
19596@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end) 18858@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end)
19597 18859
19598 if (!entry) { 18860 if (!entry) {
@@ -19640,9 +18902,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pat.c linux-2.6.38.3/arch/x86/mm/pat.c
19640 cattr_name(want_flags), 18902 cattr_name(want_flags),
19641 (unsigned long long)paddr, 18903 (unsigned long long)paddr,
19642 (unsigned long long)(paddr + size), 18904 (unsigned long long)(paddr + size),
19643diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable_32.c linux-2.6.38.3/arch/x86/mm/pgtable_32.c 18905diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable_32.c linux-2.6.38.2/arch/x86/mm/pgtable_32.c
19644--- linux-2.6.38.3/arch/x86/mm/pgtable_32.c 2011-03-14 21:20:32.000000000 -0400 18906--- linux-2.6.38.2/arch/x86/mm/pgtable_32.c 2011-03-14 21:20:32.000000000 -0400
19645+++ linux-2.6.38.3/arch/x86/mm/pgtable_32.c 2011-04-17 15:57:32.000000000 -0400 18907+++ linux-2.6.38.2/arch/x86/mm/pgtable_32.c 2011-03-21 18:31:35.000000000 -0400
19646@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr, 18908@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr,
19647 return; 18909 return;
19648 } 18910 }
@@ -19657,9 +18919,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable_32.c linux-2.6.38.3/arch/x86/mm/pg
19657 18919
19658 /* 18920 /*
19659 * It's enough to flush this one mapping. 18921 * It's enough to flush this one mapping.
19660diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable.c linux-2.6.38.3/arch/x86/mm/pgtable.c 18922diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable.c linux-2.6.38.2/arch/x86/mm/pgtable.c
19661--- linux-2.6.38.3/arch/x86/mm/pgtable.c 2011-04-18 17:27:13.000000000 -0400 18923--- linux-2.6.38.2/arch/x86/mm/pgtable.c 2011-03-23 17:20:06.000000000 -0400
19662+++ linux-2.6.38.3/arch/x86/mm/pgtable.c 2011-04-17 15:57:32.000000000 -0400 18924+++ linux-2.6.38.2/arch/x86/mm/pgtable.c 2011-03-24 23:22:14.000000000 -0400
19663@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p 18925@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p
19664 list_del(&page->lru); 18926 list_del(&page->lru);
19665 } 18927 }
@@ -19911,9 +19173,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable.c linux-2.6.38.3/arch/x86/mm/pgtab
19911 pgd_dtor(pgd); 19173 pgd_dtor(pgd);
19912 paravirt_pgd_free(mm, pgd); 19174 paravirt_pgd_free(mm, pgd);
19913 free_page((unsigned long)pgd); 19175 free_page((unsigned long)pgd);
19914diff -urNp linux-2.6.38.3/arch/x86/mm/setup_nx.c linux-2.6.38.3/arch/x86/mm/setup_nx.c 19176diff -urNp linux-2.6.38.2/arch/x86/mm/setup_nx.c linux-2.6.38.2/arch/x86/mm/setup_nx.c
19915--- linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-03-14 21:20:32.000000000 -0400 19177--- linux-2.6.38.2/arch/x86/mm/setup_nx.c 2011-03-14 21:20:32.000000000 -0400
19916+++ linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-04-17 15:57:32.000000000 -0400 19178+++ linux-2.6.38.2/arch/x86/mm/setup_nx.c 2011-03-21 18:31:35.000000000 -0400
19917@@ -5,8 +5,10 @@ 19179@@ -5,8 +5,10 @@
19918 #include <asm/pgtable.h> 19180 #include <asm/pgtable.h>
19919 #include <asm/proto.h> 19181 #include <asm/proto.h>
@@ -19943,9 +19205,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/setup_nx.c linux-2.6.38.3/arch/x86/mm/setu
19943 __supported_pte_mask &= ~_PAGE_NX; 19205 __supported_pte_mask &= ~_PAGE_NX;
19944 } 19206 }
19945 19207
19946diff -urNp linux-2.6.38.3/arch/x86/mm/tlb.c linux-2.6.38.3/arch/x86/mm/tlb.c 19208diff -urNp linux-2.6.38.2/arch/x86/mm/tlb.c linux-2.6.38.2/arch/x86/mm/tlb.c
19947--- linux-2.6.38.3/arch/x86/mm/tlb.c 2011-03-14 21:20:32.000000000 -0400 19209--- linux-2.6.38.2/arch/x86/mm/tlb.c 2011-03-14 21:20:32.000000000 -0400
19948+++ linux-2.6.38.3/arch/x86/mm/tlb.c 2011-04-17 15:57:32.000000000 -0400 19210+++ linux-2.6.38.2/arch/x86/mm/tlb.c 2011-03-21 18:31:35.000000000 -0400
19949@@ -14,7 +14,7 @@ 19211@@ -14,7 +14,7 @@
19950 #include <asm/uv/uv.h> 19212 #include <asm/uv/uv.h>
19951 19213
@@ -19967,9 +19229,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/tlb.c linux-2.6.38.3/arch/x86/mm/tlb.c
19967 } 19229 }
19968 EXPORT_SYMBOL_GPL(leave_mm); 19230 EXPORT_SYMBOL_GPL(leave_mm);
19969 19231
19970diff -urNp linux-2.6.38.3/arch/x86/oprofile/backtrace.c linux-2.6.38.3/arch/x86/oprofile/backtrace.c 19232diff -urNp linux-2.6.38.2/arch/x86/oprofile/backtrace.c linux-2.6.38.2/arch/x86/oprofile/backtrace.c
19971--- linux-2.6.38.3/arch/x86/oprofile/backtrace.c 2011-03-14 21:20:32.000000000 -0400 19233--- linux-2.6.38.2/arch/x86/oprofile/backtrace.c 2011-03-14 21:20:32.000000000 -0400
19972+++ linux-2.6.38.3/arch/x86/oprofile/backtrace.c 2011-04-17 15:57:32.000000000 -0400 19234+++ linux-2.6.38.2/arch/x86/oprofile/backtrace.c 2011-03-21 18:31:35.000000000 -0400
19973@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram 19235@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram
19974 struct stack_frame_ia32 *fp; 19236 struct stack_frame_ia32 *fp;
19975 19237
@@ -19988,9 +19250,9 @@ diff -urNp linux-2.6.38.3/arch/x86/oprofile/backtrace.c linux-2.6.38.3/arch/x86/
19988 unsigned long stack = kernel_stack_pointer(regs); 19250 unsigned long stack = kernel_stack_pointer(regs);
19989 if (depth) 19251 if (depth)
19990 dump_trace(NULL, regs, (unsigned long *)stack, 19252 dump_trace(NULL, regs, (unsigned long *)stack,
19991diff -urNp linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 19253diff -urNp linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c
19992--- linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 2011-03-14 21:20:32.000000000 -0400 19254--- linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c 2011-03-14 21:20:32.000000000 -0400
19993+++ linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 2011-04-17 15:57:32.000000000 -0400 19255+++ linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c 2011-03-21 18:31:35.000000000 -0400
19994@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo 19256@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo
19995 #endif 19257 #endif
19996 } 19258 }
@@ -20000,9 +19262,9 @@ diff -urNp linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c linux-2.6.38.3/arch/x8
20000 { 19262 {
20001 #ifdef CONFIG_SMP 19263 #ifdef CONFIG_SMP
20002 return smp_num_siblings == 2 ? 2 : 1; 19264 return smp_num_siblings == 2 ? 2 : 1;
20003diff -urNp linux-2.6.38.3/arch/x86/pci/ce4100.c linux-2.6.38.3/arch/x86/pci/ce4100.c 19265diff -urNp linux-2.6.38.2/arch/x86/pci/ce4100.c linux-2.6.38.2/arch/x86/pci/ce4100.c
20004--- linux-2.6.38.3/arch/x86/pci/ce4100.c 2011-03-14 21:20:32.000000000 -0400 19266--- linux-2.6.38.2/arch/x86/pci/ce4100.c 2011-03-14 21:20:32.000000000 -0400
20005+++ linux-2.6.38.3/arch/x86/pci/ce4100.c 2011-04-17 15:57:32.000000000 -0400 19267+++ linux-2.6.38.2/arch/x86/pci/ce4100.c 2011-03-21 18:31:35.000000000 -0400
20006@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in 19268@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in
20007 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value); 19269 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value);
20008 } 19270 }
@@ -20012,9 +19274,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/ce4100.c linux-2.6.38.3/arch/x86/pci/ce41
20012 .read = ce4100_conf_read, 19274 .read = ce4100_conf_read,
20013 .write = ce4100_conf_write, 19275 .write = ce4100_conf_write,
20014 }; 19276 };
20015diff -urNp linux-2.6.38.3/arch/x86/pci/common.c linux-2.6.38.3/arch/x86/pci/common.c 19277diff -urNp linux-2.6.38.2/arch/x86/pci/common.c linux-2.6.38.2/arch/x86/pci/common.c
20016--- linux-2.6.38.3/arch/x86/pci/common.c 2011-03-14 21:20:32.000000000 -0400 19278--- linux-2.6.38.2/arch/x86/pci/common.c 2011-03-14 21:20:32.000000000 -0400
20017+++ linux-2.6.38.3/arch/x86/pci/common.c 2011-04-17 15:57:32.000000000 -0400 19279+++ linux-2.6.38.2/arch/x86/pci/common.c 2011-03-21 18:31:35.000000000 -0400
20018@@ -33,8 +33,8 @@ int noioapicreroute = 1; 19280@@ -33,8 +33,8 @@ int noioapicreroute = 1;
20019 int pcibios_last_bus = -1; 19281 int pcibios_last_bus = -1;
20020 unsigned long pirq_table_addr; 19282 unsigned long pirq_table_addr;
@@ -20035,9 +19297,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/common.c linux-2.6.38.3/arch/x86/pci/comm
20035 }; 19297 };
20036 19298
20037 void __init dmi_check_pciprobe(void) 19299 void __init dmi_check_pciprobe(void)
20038diff -urNp linux-2.6.38.3/arch/x86/pci/direct.c linux-2.6.38.3/arch/x86/pci/direct.c 19300diff -urNp linux-2.6.38.2/arch/x86/pci/direct.c linux-2.6.38.2/arch/x86/pci/direct.c
20039--- linux-2.6.38.3/arch/x86/pci/direct.c 2011-03-14 21:20:32.000000000 -0400 19301--- linux-2.6.38.2/arch/x86/pci/direct.c 2011-03-14 21:20:32.000000000 -0400
20040+++ linux-2.6.38.3/arch/x86/pci/direct.c 2011-04-17 15:57:32.000000000 -0400 19302+++ linux-2.6.38.2/arch/x86/pci/direct.c 2011-03-21 18:31:35.000000000 -0400
20041@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int 19303@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int
20042 19304
20043 #undef PCI_CONF1_ADDRESS 19305 #undef PCI_CONF1_ADDRESS
@@ -20065,9 +19327,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/direct.c linux-2.6.38.3/arch/x86/pci/dire
20065 { 19327 {
20066 u32 x = 0; 19328 u32 x = 0;
20067 int year, devfn; 19329 int year, devfn;
20068diff -urNp linux-2.6.38.3/arch/x86/pci/fixup.c linux-2.6.38.3/arch/x86/pci/fixup.c 19330diff -urNp linux-2.6.38.2/arch/x86/pci/fixup.c linux-2.6.38.2/arch/x86/pci/fixup.c
20069--- linux-2.6.38.3/arch/x86/pci/fixup.c 2011-03-14 21:20:32.000000000 -0400 19331--- linux-2.6.38.2/arch/x86/pci/fixup.c 2011-03-14 21:20:32.000000000 -0400
20070+++ linux-2.6.38.3/arch/x86/pci/fixup.c 2011-04-17 15:57:32.000000000 -0400 19332+++ linux-2.6.38.2/arch/x86/pci/fixup.c 2011-03-21 18:31:35.000000000 -0400
20071@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi 19333@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi
20072 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"), 19334 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"),
20073 }, 19335 },
@@ -20086,9 +19348,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/fixup.c linux-2.6.38.3/arch/x86/pci/fixup
20086 }; 19348 };
20087 19349
20088 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) 19350 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev)
20089diff -urNp linux-2.6.38.3/arch/x86/pci/irq.c linux-2.6.38.3/arch/x86/pci/irq.c 19351diff -urNp linux-2.6.38.2/arch/x86/pci/irq.c linux-2.6.38.2/arch/x86/pci/irq.c
20090--- linux-2.6.38.3/arch/x86/pci/irq.c 2011-03-14 21:20:32.000000000 -0400 19352--- linux-2.6.38.2/arch/x86/pci/irq.c 2011-03-14 21:20:32.000000000 -0400
20091+++ linux-2.6.38.3/arch/x86/pci/irq.c 2011-04-17 15:57:32.000000000 -0400 19353+++ linux-2.6.38.2/arch/x86/pci/irq.c 2011-03-21 18:31:35.000000000 -0400
20092@@ -542,7 +542,7 @@ static __init int intel_router_probe(str 19354@@ -542,7 +542,7 @@ static __init int intel_router_probe(str
20093 static struct pci_device_id __initdata pirq_440gx[] = { 19355 static struct pci_device_id __initdata pirq_440gx[] = {
20094 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) }, 19356 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) },
@@ -20107,9 +19369,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/irq.c linux-2.6.38.3/arch/x86/pci/irq.c
20107 }; 19369 };
20108 19370
20109 void __init pcibios_irq_init(void) 19371 void __init pcibios_irq_init(void)
20110diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_32.c linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 19372diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_32.c linux-2.6.38.2/arch/x86/pci/mmconfig_32.c
20111--- linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 2011-03-14 21:20:32.000000000 -0400 19373--- linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 2011-03-14 21:20:32.000000000 -0400
20112+++ linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 2011-04-17 15:57:32.000000000 -0400 19374+++ linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 2011-03-21 18:31:35.000000000 -0400
20113@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int 19375@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int
20114 return 0; 19376 return 0;
20115 } 19377 }
@@ -20119,9 +19381,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_32.c linux-2.6.38.3/arch/x86/pci
20119 .read = pci_mmcfg_read, 19381 .read = pci_mmcfg_read,
20120 .write = pci_mmcfg_write, 19382 .write = pci_mmcfg_write,
20121 }; 19383 };
20122diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_64.c linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 19384diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_64.c linux-2.6.38.2/arch/x86/pci/mmconfig_64.c
20123--- linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 2011-03-14 21:20:32.000000000 -0400 19385--- linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 2011-03-14 21:20:32.000000000 -0400
20124+++ linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 2011-04-17 15:57:32.000000000 -0400 19386+++ linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 2011-03-21 18:31:35.000000000 -0400
20125@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int 19387@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int
20126 return 0; 19388 return 0;
20127 } 19389 }
@@ -20131,9 +19393,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_64.c linux-2.6.38.3/arch/x86/pci
20131 .read = pci_mmcfg_read, 19393 .read = pci_mmcfg_read,
20132 .write = pci_mmcfg_write, 19394 .write = pci_mmcfg_write,
20133 }; 19395 };
20134diff -urNp linux-2.6.38.3/arch/x86/pci/numaq_32.c linux-2.6.38.3/arch/x86/pci/numaq_32.c 19396diff -urNp linux-2.6.38.2/arch/x86/pci/numaq_32.c linux-2.6.38.2/arch/x86/pci/numaq_32.c
20135--- linux-2.6.38.3/arch/x86/pci/numaq_32.c 2011-03-14 21:20:32.000000000 -0400 19397--- linux-2.6.38.2/arch/x86/pci/numaq_32.c 2011-03-14 21:20:32.000000000 -0400
20136+++ linux-2.6.38.3/arch/x86/pci/numaq_32.c 2011-04-17 15:57:32.000000000 -0400 19398+++ linux-2.6.38.2/arch/x86/pci/numaq_32.c 2011-03-21 18:31:35.000000000 -0400
20137@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i 19399@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i
20138 19400
20139 #undef PCI_CONF1_MQ_ADDRESS 19401 #undef PCI_CONF1_MQ_ADDRESS
@@ -20143,9 +19405,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/numaq_32.c linux-2.6.38.3/arch/x86/pci/nu
20143 .read = pci_conf1_mq_read, 19405 .read = pci_conf1_mq_read,
20144 .write = pci_conf1_mq_write 19406 .write = pci_conf1_mq_write
20145 }; 19407 };
20146diff -urNp linux-2.6.38.3/arch/x86/pci/olpc.c linux-2.6.38.3/arch/x86/pci/olpc.c 19408diff -urNp linux-2.6.38.2/arch/x86/pci/olpc.c linux-2.6.38.2/arch/x86/pci/olpc.c
20147--- linux-2.6.38.3/arch/x86/pci/olpc.c 2011-03-14 21:20:32.000000000 -0400 19409--- linux-2.6.38.2/arch/x86/pci/olpc.c 2011-03-14 21:20:32.000000000 -0400
20148+++ linux-2.6.38.3/arch/x86/pci/olpc.c 2011-04-17 15:57:32.000000000 -0400 19410+++ linux-2.6.38.2/arch/x86/pci/olpc.c 2011-03-21 18:31:35.000000000 -0400
20149@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s 19411@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s
20150 return 0; 19412 return 0;
20151 } 19413 }
@@ -20155,9 +19417,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/olpc.c linux-2.6.38.3/arch/x86/pci/olpc.c
20155 .read = pci_olpc_read, 19417 .read = pci_olpc_read,
20156 .write = pci_olpc_write, 19418 .write = pci_olpc_write,
20157 }; 19419 };
20158diff -urNp linux-2.6.38.3/arch/x86/pci/pcbios.c linux-2.6.38.3/arch/x86/pci/pcbios.c 19420diff -urNp linux-2.6.38.2/arch/x86/pci/pcbios.c linux-2.6.38.2/arch/x86/pci/pcbios.c
20159--- linux-2.6.38.3/arch/x86/pci/pcbios.c 2011-03-14 21:20:32.000000000 -0400 19421--- linux-2.6.38.2/arch/x86/pci/pcbios.c 2011-03-14 21:20:32.000000000 -0400
20160+++ linux-2.6.38.3/arch/x86/pci/pcbios.c 2011-04-17 15:57:32.000000000 -0400 19422+++ linux-2.6.38.2/arch/x86/pci/pcbios.c 2011-03-21 18:31:35.000000000 -0400
20161@@ -79,50 +79,93 @@ union bios32 { 19423@@ -79,50 +79,93 @@ union bios32 {
20162 static struct { 19424 static struct {
20163 unsigned long address; 19425 unsigned long address;
@@ -20480,9 +19742,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/pcbios.c linux-2.6.38.3/arch/x86/pci/pcbi
20480 return !(ret & 0xff00); 19742 return !(ret & 0xff00);
20481 } 19743 }
20482 EXPORT_SYMBOL(pcibios_set_irq_routing); 19744 EXPORT_SYMBOL(pcibios_set_irq_routing);
20483diff -urNp linux-2.6.38.3/arch/x86/platform/efi/efi_32.c linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 19745diff -urNp linux-2.6.38.2/arch/x86/platform/efi/efi_32.c linux-2.6.38.2/arch/x86/platform/efi/efi_32.c
20484--- linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 2011-03-14 21:20:32.000000000 -0400 19746--- linux-2.6.38.2/arch/x86/platform/efi/efi_32.c 2011-03-14 21:20:32.000000000 -0400
20485+++ linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 2011-04-17 15:57:32.000000000 -0400 19747+++ linux-2.6.38.2/arch/x86/platform/efi/efi_32.c 2011-03-21 18:31:35.000000000 -0400
20486@@ -38,70 +38,37 @@ 19748@@ -38,70 +38,37 @@
20487 */ 19749 */
20488 19750
@@ -20563,9 +19825,9 @@ diff -urNp linux-2.6.38.3/arch/x86/platform/efi/efi_32.c linux-2.6.38.3/arch/x86
20563 19825
20564 /* 19826 /*
20565 * After the lock is released, the original page table is restored. 19827 * After the lock is released, the original page table is restored.
20566diff -urNp linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 19828diff -urNp linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S
20567--- linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 2011-03-14 21:20:32.000000000 -0400 19829--- linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S 2011-03-14 21:20:32.000000000 -0400
20568+++ linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 2011-04-17 15:57:32.000000000 -0400 19830+++ linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S 2011-03-21 18:31:35.000000000 -0400
20569@@ -6,6 +6,7 @@ 19831@@ -6,6 +6,7 @@
20570 */ 19832 */
20571 19833
@@ -20664,9 +19926,9 @@ diff -urNp linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S linux-2.6.38.3/arc
20664 saved_return_addr: 19926 saved_return_addr:
20665 .long 0 19927 .long 0
20666 efi_rt_function_ptr: 19928 efi_rt_function_ptr:
20667diff -urNp linux-2.6.38.3/arch/x86/power/cpu.c linux-2.6.38.3/arch/x86/power/cpu.c 19929diff -urNp linux-2.6.38.2/arch/x86/power/cpu.c linux-2.6.38.2/arch/x86/power/cpu.c
20668--- linux-2.6.38.3/arch/x86/power/cpu.c 2011-03-14 21:20:32.000000000 -0400 19930--- linux-2.6.38.2/arch/x86/power/cpu.c 2011-03-14 21:20:32.000000000 -0400
20669+++ linux-2.6.38.3/arch/x86/power/cpu.c 2011-04-17 15:57:32.000000000 -0400 19931+++ linux-2.6.38.2/arch/x86/power/cpu.c 2011-03-21 18:31:35.000000000 -0400
20670@@ -130,7 +130,7 @@ static void do_fpu_end(void) 19932@@ -130,7 +130,7 @@ static void do_fpu_end(void)
20671 static void fix_processor_context(void) 19933 static void fix_processor_context(void)
20672 { 19934 {
@@ -20686,21 +19948,21 @@ diff -urNp linux-2.6.38.3/arch/x86/power/cpu.c linux-2.6.38.3/arch/x86/power/cpu
20686 19948
20687 syscall_init(); /* This sets MSR_*STAR and related */ 19949 syscall_init(); /* This sets MSR_*STAR and related */
20688 #endif 19950 #endif
20689diff -urNp linux-2.6.38.3/arch/x86/vdso/Makefile linux-2.6.38.3/arch/x86/vdso/Makefile 19951diff -urNp linux-2.6.38.2/arch/x86/vdso/Makefile linux-2.6.38.2/arch/x86/vdso/Makefile
20690--- linux-2.6.38.3/arch/x86/vdso/Makefile 2011-03-14 21:20:32.000000000 -0400 19952--- linux-2.6.38.2/arch/x86/vdso/Makefile 2011-03-14 21:20:32.000000000 -0400
20691+++ linux-2.6.38.3/arch/x86/vdso/Makefile 2011-04-17 15:57:32.000000000 -0400 19953+++ linux-2.6.38.2/arch/x86/vdso/Makefile 2011-03-21 18:31:35.000000000 -0400
20692@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@ 19954@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@
20693 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \ 19955 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
20694 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' 19956 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
20695 19957
20696-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 19958-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
20697+VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 19959+VDSO_LDFLAGS = -fPIC -shared --no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
20698 GCOV_PROFILE := n 19960 GCOV_PROFILE := n
20699 19961
20700 # 19962 #
20701diff -urNp linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 19963diff -urNp linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c
20702--- linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-03-14 21:20:32.000000000 -0400 19964--- linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 2011-03-14 21:20:32.000000000 -0400
20703+++ linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-04-17 15:57:32.000000000 -0400 19965+++ linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 2011-03-21 18:31:35.000000000 -0400
20704@@ -22,24 +22,48 @@ 19966@@ -22,24 +22,48 @@
20705 #include <asm/hpet.h> 19967 #include <asm/hpet.h>
20706 #include <asm/unistd.h> 19968 #include <asm/unistd.h>
@@ -20799,9 +20061,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c linux-2.6.38.3/arch/x86
20799 } 20061 }
20800 int gettimeofday(struct timeval *, struct timezone *) 20062 int gettimeofday(struct timeval *, struct timezone *)
20801 __attribute__((weak, alias("__vdso_gettimeofday"))); 20063 __attribute__((weak, alias("__vdso_gettimeofday")));
20802diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 20064diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c
20803--- linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-03-14 21:20:32.000000000 -0400 20065--- linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 2011-03-14 21:20:32.000000000 -0400
20804+++ linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-04-17 15:57:32.000000000 -0400 20066+++ linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 2011-03-21 18:31:35.000000000 -0400
20805@@ -25,6 +25,7 @@ 20067@@ -25,6 +25,7 @@
20806 #include <asm/tlbflush.h> 20068 #include <asm/tlbflush.h>
20807 #include <asm/vdso.h> 20069 #include <asm/vdso.h>
@@ -20884,9 +20146,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c linux-2.6.38.3/arch/x86/v
20884 return &gate_vma; 20146 return &gate_vma;
20885 return NULL; 20147 return NULL;
20886 } 20148 }
20887diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso.lds.S linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 20149diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso.lds.S linux-2.6.38.2/arch/x86/vdso/vdso.lds.S
20888--- linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 2011-03-14 21:20:32.000000000 -0400 20150--- linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 2011-03-14 21:20:32.000000000 -0400
20889+++ linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 2011-04-17 15:57:32.000000000 -0400 20151+++ linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 2011-03-21 18:31:35.000000000 -0400
20890@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK; 20152@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK;
20891 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x; 20153 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
20892 #include "vextern.h" 20154 #include "vextern.h"
@@ -20897,9 +20159,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso.lds.S linux-2.6.38.3/arch/x86/vdso/
20897+VEXTERN(fallback_time) 20159+VEXTERN(fallback_time)
20898+VEXTERN(getcpu) 20160+VEXTERN(getcpu)
20899+#undef VEXTERN 20161+#undef VEXTERN
20900diff -urNp linux-2.6.38.3/arch/x86/vdso/vextern.h linux-2.6.38.3/arch/x86/vdso/vextern.h 20162diff -urNp linux-2.6.38.2/arch/x86/vdso/vextern.h linux-2.6.38.2/arch/x86/vdso/vextern.h
20901--- linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-03-14 21:20:32.000000000 -0400 20163--- linux-2.6.38.2/arch/x86/vdso/vextern.h 2011-03-14 21:20:32.000000000 -0400
20902+++ linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-04-17 15:57:32.000000000 -0400 20164+++ linux-2.6.38.2/arch/x86/vdso/vextern.h 2011-03-21 18:31:35.000000000 -0400
20903@@ -11,6 +11,5 @@ 20165@@ -11,6 +11,5 @@
20904 put into vextern.h and be referenced as a pointer with vdso prefix. 20166 put into vextern.h and be referenced as a pointer with vdso prefix.
20905 The main kernel later fills in the values. */ 20167 The main kernel later fills in the values. */
@@ -20907,9 +20169,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vextern.h linux-2.6.38.3/arch/x86/vdso/v
20907-VEXTERN(jiffies) 20169-VEXTERN(jiffies)
20908 VEXTERN(vgetcpu_mode) 20170 VEXTERN(vgetcpu_mode)
20909 VEXTERN(vsyscall_gtod_data) 20171 VEXTERN(vsyscall_gtod_data)
20910diff -urNp linux-2.6.38.3/arch/x86/vdso/vma.c linux-2.6.38.3/arch/x86/vdso/vma.c 20172diff -urNp linux-2.6.38.2/arch/x86/vdso/vma.c linux-2.6.38.2/arch/x86/vdso/vma.c
20911--- linux-2.6.38.3/arch/x86/vdso/vma.c 2011-03-14 21:20:32.000000000 -0400 20173--- linux-2.6.38.2/arch/x86/vdso/vma.c 2011-03-14 21:20:32.000000000 -0400
20912+++ linux-2.6.38.3/arch/x86/vdso/vma.c 2011-04-17 15:57:32.000000000 -0400 20174+++ linux-2.6.38.2/arch/x86/vdso/vma.c 2011-03-21 18:31:35.000000000 -0400
20913@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void) 20175@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void)
20914 if (!vbase) 20176 if (!vbase)
20915 goto oom; 20177 goto oom;
@@ -20948,9 +20210,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vma.c linux-2.6.38.3/arch/x86/vdso/vma.c
20948- return 0; 20210- return 0;
20949-} 20211-}
20950-__setup("vdso=", vdso_setup); 20212-__setup("vdso=", vdso_setup);
20951diff -urNp linux-2.6.38.3/arch/x86/xen/enlighten.c linux-2.6.38.3/arch/x86/xen/enlighten.c 20213diff -urNp linux-2.6.38.2/arch/x86/xen/enlighten.c linux-2.6.38.2/arch/x86/xen/enlighten.c
20952--- linux-2.6.38.3/arch/x86/xen/enlighten.c 2011-03-14 21:20:32.000000000 -0400 20214--- linux-2.6.38.2/arch/x86/xen/enlighten.c 2011-03-14 21:20:32.000000000 -0400
20953+++ linux-2.6.38.3/arch/x86/xen/enlighten.c 2011-04-17 15:57:32.000000000 -0400 20215+++ linux-2.6.38.2/arch/x86/xen/enlighten.c 2011-03-21 18:31:35.000000000 -0400
20954@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info); 20216@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
20955 20217
20956 struct shared_info xen_dummy_shared_info; 20218 struct shared_info xen_dummy_shared_info;
@@ -20993,9 +20255,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/enlighten.c linux-2.6.38.3/arch/x86/xen/e
20993 xen_smp_init(); 20255 xen_smp_init();
20994 20256
20995 #ifdef CONFIG_ACPI_NUMA 20257 #ifdef CONFIG_ACPI_NUMA
20996diff -urNp linux-2.6.38.3/arch/x86/xen/mmu.c linux-2.6.38.3/arch/x86/xen/mmu.c 20258diff -urNp linux-2.6.38.2/arch/x86/xen/mmu.c linux-2.6.38.2/arch/x86/xen/mmu.c
20997--- linux-2.6.38.3/arch/x86/xen/mmu.c 2011-04-18 17:27:16.000000000 -0400 20259--- linux-2.6.38.2/arch/x86/xen/mmu.c 2011-03-28 17:42:40.000000000 -0400
20998+++ linux-2.6.38.3/arch/x86/xen/mmu.c 2011-04-17 15:57:32.000000000 -0400 20260+++ linux-2.6.38.2/arch/x86/xen/mmu.c 2011-03-28 17:42:53.000000000 -0400
20999@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable 20261@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable
21000 convert_pfn_mfn(init_level4_pgt); 20262 convert_pfn_mfn(init_level4_pgt);
21001 convert_pfn_mfn(level3_ident_pgt); 20263 convert_pfn_mfn(level3_ident_pgt);
@@ -21016,9 +20278,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/mmu.c linux-2.6.38.3/arch/x86/xen/mmu.c
21016 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO); 20278 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
21017 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO); 20279 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
21018 20280
21019diff -urNp linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 20281diff -urNp linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c
21020--- linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 2011-03-14 21:20:32.000000000 -0400 20282--- linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c 2011-03-14 21:20:32.000000000 -0400
21021+++ linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 2011-04-17 15:57:32.000000000 -0400 20283+++ linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c 2011-03-21 18:31:35.000000000 -0400
21022@@ -10,7 +10,7 @@ 20284@@ -10,7 +10,7 @@
21023 20285
21024 int xen_swiotlb __read_mostly; 20286 int xen_swiotlb __read_mostly;
@@ -21028,9 +20290,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c linux-2.6.38.3/arch/x86
21028 .mapping_error = xen_swiotlb_dma_mapping_error, 20290 .mapping_error = xen_swiotlb_dma_mapping_error,
21029 .alloc_coherent = xen_swiotlb_alloc_coherent, 20291 .alloc_coherent = xen_swiotlb_alloc_coherent,
21030 .free_coherent = xen_swiotlb_free_coherent, 20292 .free_coherent = xen_swiotlb_free_coherent,
21031diff -urNp linux-2.6.38.3/arch/x86/xen/smp.c linux-2.6.38.3/arch/x86/xen/smp.c 20293diff -urNp linux-2.6.38.2/arch/x86/xen/smp.c linux-2.6.38.2/arch/x86/xen/smp.c
21032--- linux-2.6.38.3/arch/x86/xen/smp.c 2011-03-14 21:20:32.000000000 -0400 20294--- linux-2.6.38.2/arch/x86/xen/smp.c 2011-03-14 21:20:32.000000000 -0400
21033+++ linux-2.6.38.3/arch/x86/xen/smp.c 2011-04-17 15:57:32.000000000 -0400 20295+++ linux-2.6.38.2/arch/x86/xen/smp.c 2011-03-21 18:31:35.000000000 -0400
21034@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_ 20296@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_
21035 { 20297 {
21036 BUG_ON(smp_processor_id() != 0); 20298 BUG_ON(smp_processor_id() != 0);
@@ -21059,25 +20321,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/smp.c linux-2.6.38.3/arch/x86/xen/smp.c
21059 #else 20321 #else
21060 ctxt->gs_base_kernel = per_cpu_offset(cpu); 20322 ctxt->gs_base_kernel = per_cpu_offset(cpu);
21061 #endif 20323 #endif
21062@@ -315,13 +310,12 @@ static int __cpuinit xen_cpu_up(unsigned 20324diff -urNp linux-2.6.38.2/arch/x86/xen/xen-head.S linux-2.6.38.2/arch/x86/xen/xen-head.S
21063 int rc; 20325--- linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-14 21:20:32.000000000 -0400
21064 20326+++ linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-21 18:31:35.000000000 -0400
21065 per_cpu(current_task, cpu) = idle;
21066+ per_cpu(current_tinfo, cpu) = &idle->tinfo;
21067 #ifdef CONFIG_X86_32
21068 irq_ctx_init(cpu);
21069 #else
21070 clear_tsk_thread_flag(idle, TIF_FORK);
21071- per_cpu(kernel_stack, cpu) =
21072- (unsigned long)task_stack_page(idle) -
21073- KERNEL_STACK_OFFSET + THREAD_SIZE;
21074+ per_cpu(kernel_stack, cpu) = (unsigned long)task_stack_page(idle) - 8 + THREAD_SIZE;
21075 #endif
21076 xen_setup_runstate_info(cpu);
21077 xen_setup_timer(cpu);
21078diff -urNp linux-2.6.38.3/arch/x86/xen/xen-head.S linux-2.6.38.3/arch/x86/xen/xen-head.S
21079--- linux-2.6.38.3/arch/x86/xen/xen-head.S 2011-03-14 21:20:32.000000000 -0400
21080+++ linux-2.6.38.3/arch/x86/xen/xen-head.S 2011-04-17 15:57:32.000000000 -0400
21081@@ -19,6 +19,17 @@ ENTRY(startup_xen) 20327@@ -19,6 +19,17 @@ ENTRY(startup_xen)
21082 #ifdef CONFIG_X86_32 20328 #ifdef CONFIG_X86_32
21083 mov %esi,xen_start_info 20329 mov %esi,xen_start_info
@@ -21096,9 +20342,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/xen-head.S linux-2.6.38.3/arch/x86/xen/xe
21096 #else 20342 #else
21097 mov %rsi,xen_start_info 20343 mov %rsi,xen_start_info
21098 mov $init_thread_union+THREAD_SIZE,%rsp 20344 mov $init_thread_union+THREAD_SIZE,%rsp
21099diff -urNp linux-2.6.38.3/arch/x86/xen/xen-ops.h linux-2.6.38.3/arch/x86/xen/xen-ops.h 20345diff -urNp linux-2.6.38.2/arch/x86/xen/xen-ops.h linux-2.6.38.2/arch/x86/xen/xen-ops.h
21100--- linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-03-14 21:20:32.000000000 -0400 20346--- linux-2.6.38.2/arch/x86/xen/xen-ops.h 2011-03-14 21:20:32.000000000 -0400
21101+++ linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-04-17 15:57:32.000000000 -0400 20347+++ linux-2.6.38.2/arch/x86/xen/xen-ops.h 2011-03-21 18:31:35.000000000 -0400
21102@@ -10,8 +10,6 @@ 20348@@ -10,8 +10,6 @@
21103 extern const char xen_hypervisor_callback[]; 20349 extern const char xen_hypervisor_callback[];
21104 extern const char xen_failsafe_callback[]; 20350 extern const char xen_failsafe_callback[];
@@ -21108,9 +20354,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/xen-ops.h linux-2.6.38.3/arch/x86/xen/xen
21108 struct trap_info; 20354 struct trap_info;
21109 void xen_copy_trap_info(struct trap_info *traps); 20355 void xen_copy_trap_info(struct trap_info *traps);
21110 20356
21111diff -urNp linux-2.6.38.3/block/blk-iopoll.c linux-2.6.38.3/block/blk-iopoll.c 20357diff -urNp linux-2.6.38.2/block/blk-iopoll.c linux-2.6.38.2/block/blk-iopoll.c
21112--- linux-2.6.38.3/block/blk-iopoll.c 2011-03-14 21:20:32.000000000 -0400 20358--- linux-2.6.38.2/block/blk-iopoll.c 2011-03-14 21:20:32.000000000 -0400
21113+++ linux-2.6.38.3/block/blk-iopoll.c 2011-04-17 15:57:32.000000000 -0400 20359+++ linux-2.6.38.2/block/blk-iopoll.c 2011-03-21 18:31:35.000000000 -0400
21114@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo 20360@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo
21115 } 20361 }
21116 EXPORT_SYMBOL(blk_iopoll_complete); 20362 EXPORT_SYMBOL(blk_iopoll_complete);
@@ -21120,9 +20366,9 @@ diff -urNp linux-2.6.38.3/block/blk-iopoll.c linux-2.6.38.3/block/blk-iopoll.c
21120 { 20366 {
21121 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll); 20367 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
21122 int rearm = 0, budget = blk_iopoll_budget; 20368 int rearm = 0, budget = blk_iopoll_budget;
21123diff -urNp linux-2.6.38.3/block/blk-map.c linux-2.6.38.3/block/blk-map.c 20369diff -urNp linux-2.6.38.2/block/blk-map.c linux-2.6.38.2/block/blk-map.c
21124--- linux-2.6.38.3/block/blk-map.c 2011-03-14 21:20:32.000000000 -0400 20370--- linux-2.6.38.2/block/blk-map.c 2011-03-14 21:20:32.000000000 -0400
21125+++ linux-2.6.38.3/block/blk-map.c 2011-04-17 15:57:32.000000000 -0400 20371+++ linux-2.6.38.2/block/blk-map.c 2011-03-21 18:31:35.000000000 -0400
21126@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue 20372@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue
21127 if (!len || !kbuf) 20373 if (!len || !kbuf)
21128 return -EINVAL; 20374 return -EINVAL;
@@ -21132,9 +20378,9 @@ diff -urNp linux-2.6.38.3/block/blk-map.c linux-2.6.38.3/block/blk-map.c
21132 if (do_copy) 20378 if (do_copy)
21133 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading); 20379 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
21134 else 20380 else
21135diff -urNp linux-2.6.38.3/block/blk-softirq.c linux-2.6.38.3/block/blk-softirq.c 20381diff -urNp linux-2.6.38.2/block/blk-softirq.c linux-2.6.38.2/block/blk-softirq.c
21136--- linux-2.6.38.3/block/blk-softirq.c 2011-03-14 21:20:32.000000000 -0400 20382--- linux-2.6.38.2/block/blk-softirq.c 2011-03-14 21:20:32.000000000 -0400
21137+++ linux-2.6.38.3/block/blk-softirq.c 2011-04-17 15:57:32.000000000 -0400 20383+++ linux-2.6.38.2/block/blk-softirq.c 2011-03-21 18:31:35.000000000 -0400
21138@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head, 20384@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head,
21139 * Softirq action handler - move entries to local list and loop over them 20385 * Softirq action handler - move entries to local list and loop over them
21140 * while passing them to the queue registered handler. 20386 * while passing them to the queue registered handler.
@@ -21144,93 +20390,9 @@ diff -urNp linux-2.6.38.3/block/blk-softirq.c linux-2.6.38.3/block/blk-softirq.c
21144 { 20390 {
21145 struct list_head *cpu_list, local_list; 20391 struct list_head *cpu_list, local_list;
21146 20392
21147diff -urNp linux-2.6.38.3/block/bsg.c linux-2.6.38.3/block/bsg.c 20393diff -urNp linux-2.6.38.2/crypto/lrw.c linux-2.6.38.2/crypto/lrw.c
21148--- linux-2.6.38.3/block/bsg.c 2011-03-14 21:20:32.000000000 -0400 20394--- linux-2.6.38.2/crypto/lrw.c 2011-03-14 21:20:32.000000000 -0400
21149+++ linux-2.6.38.3/block/bsg.c 2011-04-17 15:57:32.000000000 -0400 20395+++ linux-2.6.38.2/crypto/lrw.c 2011-03-21 18:31:35.000000000 -0400
21150@@ -176,16 +176,24 @@ static int blk_fill_sgv4_hdr_rq(struct r
21151 struct sg_io_v4 *hdr, struct bsg_device *bd,
21152 fmode_t has_write_perm)
21153 {
21154+ unsigned char tmpcmd[sizeof(rq->__cmd)];
21155+ unsigned char *cmdptr;
21156+
21157 if (hdr->request_len > BLK_MAX_CDB) {
21158 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
21159 if (!rq->cmd)
21160 return -ENOMEM;
21161- }
21162+ cmdptr = rq->cmd;
21163+ } else
21164+ cmdptr = tmpcmd;
21165
21166- if (copy_from_user(rq->cmd, (void *)(unsigned long)hdr->request,
21167+ if (copy_from_user(cmdptr, (void *)(unsigned long)hdr->request,
21168 hdr->request_len))
21169 return -EFAULT;
21170
21171+ if (cmdptr != rq->cmd)
21172+ memcpy(rq->cmd, cmdptr, hdr->request_len);
21173+
21174 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
21175 if (blk_verify_command(rq->cmd, has_write_perm))
21176 return -EPERM;
21177diff -urNp linux-2.6.38.3/block/scsi_ioctl.c linux-2.6.38.3/block/scsi_ioctl.c
21178--- linux-2.6.38.3/block/scsi_ioctl.c 2011-03-14 21:20:32.000000000 -0400
21179+++ linux-2.6.38.3/block/scsi_ioctl.c 2011-04-17 15:57:32.000000000 -0400
21180@@ -222,8 +222,20 @@ EXPORT_SYMBOL(blk_verify_command);
21181 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
21182 struct sg_io_hdr *hdr, fmode_t mode)
21183 {
21184- if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
21185+ unsigned char tmpcmd[sizeof(rq->__cmd)];
21186+ unsigned char *cmdptr;
21187+
21188+ if (rq->cmd != rq->__cmd)
21189+ cmdptr = rq->cmd;
21190+ else
21191+ cmdptr = tmpcmd;
21192+
21193+ if (copy_from_user(cmdptr, hdr->cmdp, hdr->cmd_len))
21194 return -EFAULT;
21195+
21196+ if (cmdptr != rq->cmd)
21197+ memcpy(rq->cmd, cmdptr, hdr->cmd_len);
21198+
21199 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
21200 return -EPERM;
21201
21202@@ -432,6 +444,8 @@ int sg_scsi_ioctl(struct request_queue *
21203 int err;
21204 unsigned int in_len, out_len, bytes, opcode, cmdlen;
21205 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
21206+ unsigned char tmpcmd[sizeof(rq->__cmd)];
21207+ unsigned char *cmdptr;
21208
21209 if (!sic)
21210 return -EINVAL;
21211@@ -465,9 +479,18 @@ int sg_scsi_ioctl(struct request_queue *
21212 */
21213 err = -EFAULT;
21214 rq->cmd_len = cmdlen;
21215- if (copy_from_user(rq->cmd, sic->data, cmdlen))
21216+
21217+ if (rq->cmd != rq->__cmd)
21218+ cmdptr = rq->cmd;
21219+ else
21220+ cmdptr = tmpcmd;
21221+
21222+ if (copy_from_user(cmdptr, sic->data, cmdlen))
21223 goto error;
21224
21225+ if (rq->cmd != cmdptr)
21226+ memcpy(rq->cmd, cmdptr, cmdlen);
21227+
21228 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
21229 goto error;
21230
21231diff -urNp linux-2.6.38.3/crypto/lrw.c linux-2.6.38.3/crypto/lrw.c
21232--- linux-2.6.38.3/crypto/lrw.c 2011-03-14 21:20:32.000000000 -0400
21233+++ linux-2.6.38.3/crypto/lrw.c 2011-04-17 15:57:32.000000000 -0400
21234@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par 20396@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par
21235 struct priv *ctx = crypto_tfm_ctx(parent); 20397 struct priv *ctx = crypto_tfm_ctx(parent);
21236 struct crypto_cipher *child = ctx->child; 20398 struct crypto_cipher *child = ctx->child;
@@ -21240,9 +20402,9 @@ diff -urNp linux-2.6.38.3/crypto/lrw.c linux-2.6.38.3/crypto/lrw.c
21240 int bsize = crypto_cipher_blocksize(child); 20402 int bsize = crypto_cipher_blocksize(child);
21241 20403
21242 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); 20404 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
21243diff -urNp linux-2.6.38.3/Documentation/dontdiff linux-2.6.38.3/Documentation/dontdiff 20405diff -urNp linux-2.6.38.2/Documentation/dontdiff linux-2.6.38.2/Documentation/dontdiff
21244--- linux-2.6.38.3/Documentation/dontdiff 2011-03-14 21:20:32.000000000 -0400 20406--- linux-2.6.38.2/Documentation/dontdiff 2011-03-14 21:20:32.000000000 -0400
21245+++ linux-2.6.38.3/Documentation/dontdiff 2011-04-17 15:57:32.000000000 -0400 20407+++ linux-2.6.38.2/Documentation/dontdiff 2011-03-21 18:31:35.000000000 -0400
21246@@ -3,6 +3,7 @@ 20408@@ -3,6 +3,7 @@
21247 *.bin 20409 *.bin
21248 *.cpio 20410 *.cpio
@@ -21368,9 +20530,9 @@ diff -urNp linux-2.6.38.3/Documentation/dontdiff linux-2.6.38.3/Documentation/do
21368 wakeup.bin 20530 wakeup.bin
21369 wakeup.elf 20531 wakeup.elf
21370 wakeup.lds 20532 wakeup.lds
21371diff -urNp linux-2.6.38.3/Documentation/filesystems/sysfs.txt linux-2.6.38.3/Documentation/filesystems/sysfs.txt 20533diff -urNp linux-2.6.38.2/Documentation/filesystems/sysfs.txt linux-2.6.38.2/Documentation/filesystems/sysfs.txt
21372--- linux-2.6.38.3/Documentation/filesystems/sysfs.txt 2011-03-14 21:20:32.000000000 -0400 20534--- linux-2.6.38.2/Documentation/filesystems/sysfs.txt 2011-03-14 21:20:32.000000000 -0400
21373+++ linux-2.6.38.3/Documentation/filesystems/sysfs.txt 2011-04-17 15:57:32.000000000 -0400 20535+++ linux-2.6.38.2/Documentation/filesystems/sysfs.txt 2011-03-21 18:31:35.000000000 -0400
21374@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r 20536@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r
21375 show and store methods of the attribute owners. 20537 show and store methods of the attribute owners.
21376 20538
@@ -21382,9 +20544,9 @@ diff -urNp linux-2.6.38.3/Documentation/filesystems/sysfs.txt linux-2.6.38.3/Doc
21382 }; 20544 };
21383 20545
21384 [ Subsystems should have already defined a struct kobj_type as a 20546 [ Subsystems should have already defined a struct kobj_type as a
21385diff -urNp linux-2.6.38.3/Documentation/kernel-parameters.txt linux-2.6.38.3/Documentation/kernel-parameters.txt 20547diff -urNp linux-2.6.38.2/Documentation/kernel-parameters.txt linux-2.6.38.2/Documentation/kernel-parameters.txt
21386--- linux-2.6.38.3/Documentation/kernel-parameters.txt 2011-03-14 21:20:32.000000000 -0400 20548--- linux-2.6.38.2/Documentation/kernel-parameters.txt 2011-03-14 21:20:32.000000000 -0400
21387+++ linux-2.6.38.3/Documentation/kernel-parameters.txt 2011-04-17 15:57:32.000000000 -0400 20549+++ linux-2.6.38.2/Documentation/kernel-parameters.txt 2011-03-21 18:31:35.000000000 -0400
21388@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes 20550@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes
21389 the specified number of seconds. This is to be used if 20551 the specified number of seconds. This is to be used if
21390 your oopses keep scrolling off the screen. 20552 your oopses keep scrolling off the screen.
@@ -21399,9 +20561,9 @@ diff -urNp linux-2.6.38.3/Documentation/kernel-parameters.txt linux-2.6.38.3/Doc
21399 pcbit= [HW,ISDN] 20561 pcbit= [HW,ISDN]
21400 20562
21401 pcd. [PARIDE] 20563 pcd. [PARIDE]
21402diff -urNp linux-2.6.38.3/drivers/acpi/battery.c linux-2.6.38.3/drivers/acpi/battery.c 20564diff -urNp linux-2.6.38.2/drivers/acpi/battery.c linux-2.6.38.2/drivers/acpi/battery.c
21403--- linux-2.6.38.3/drivers/acpi/battery.c 2011-03-14 21:20:32.000000000 -0400 20565--- linux-2.6.38.2/drivers/acpi/battery.c 2011-03-14 21:20:32.000000000 -0400
21404+++ linux-2.6.38.3/drivers/acpi/battery.c 2011-04-17 15:57:32.000000000 -0400 20566+++ linux-2.6.38.2/drivers/acpi/battery.c 2011-03-21 18:31:35.000000000 -0400
21405@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm); 20567@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm);
21406 } 20568 }
21407 20569
@@ -21411,9 +20573,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/battery.c linux-2.6.38.3/drivers/acpi/bat
21411 mode_t mode; 20573 mode_t mode;
21412 const char *name; 20574 const char *name;
21413 } acpi_battery_file[] = { 20575 } acpi_battery_file[] = {
21414diff -urNp linux-2.6.38.3/drivers/acpi/blacklist.c linux-2.6.38.3/drivers/acpi/blacklist.c 20576diff -urNp linux-2.6.38.2/drivers/acpi/blacklist.c linux-2.6.38.2/drivers/acpi/blacklist.c
21415--- linux-2.6.38.3/drivers/acpi/blacklist.c 2011-03-14 21:20:32.000000000 -0400 20577--- linux-2.6.38.2/drivers/acpi/blacklist.c 2011-03-14 21:20:32.000000000 -0400
21416+++ linux-2.6.38.3/drivers/acpi/blacklist.c 2011-04-17 15:57:32.000000000 -0400 20578+++ linux-2.6.38.2/drivers/acpi/blacklist.c 2011-03-21 18:31:35.000000000 -0400
21417@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b 20579@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b
21418 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal, 20580 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal,
21419 "Incorrect _ADR", 1}, 20581 "Incorrect _ADR", 1},
@@ -21423,9 +20585,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/blacklist.c linux-2.6.38.3/drivers/acpi/b
21423 }; 20585 };
21424 20586
21425 #if CONFIG_ACPI_BLACKLIST_YEAR 20587 #if CONFIG_ACPI_BLACKLIST_YEAR
21426diff -urNp linux-2.6.38.3/drivers/acpi/dock.c linux-2.6.38.3/drivers/acpi/dock.c 20588diff -urNp linux-2.6.38.2/drivers/acpi/dock.c linux-2.6.38.2/drivers/acpi/dock.c
21427--- linux-2.6.38.3/drivers/acpi/dock.c 2011-03-14 21:20:32.000000000 -0400 20589--- linux-2.6.38.2/drivers/acpi/dock.c 2011-03-14 21:20:32.000000000 -0400
21428+++ linux-2.6.38.3/drivers/acpi/dock.c 2011-04-17 15:57:32.000000000 -0400 20590+++ linux-2.6.38.2/drivers/acpi/dock.c 2011-03-21 18:31:35.000000000 -0400
21429@@ -77,7 +77,7 @@ struct dock_dependent_device { 20591@@ -77,7 +77,7 @@ struct dock_dependent_device {
21430 struct list_head list; 20592 struct list_head list;
21431 struct list_head hotplug_list; 20593 struct list_head hotplug_list;
@@ -21444,9 +20606,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/dock.c linux-2.6.38.3/drivers/acpi/dock.c
21444 void *context) 20606 void *context)
21445 { 20607 {
21446 struct dock_dependent_device *dd; 20608 struct dock_dependent_device *dd;
21447diff -urNp linux-2.6.38.3/drivers/acpi/ec_sys.c linux-2.6.38.3/drivers/acpi/ec_sys.c 20609diff -urNp linux-2.6.38.2/drivers/acpi/ec_sys.c linux-2.6.38.2/drivers/acpi/ec_sys.c
21448--- linux-2.6.38.3/drivers/acpi/ec_sys.c 2011-03-14 21:20:32.000000000 -0400 20610--- linux-2.6.38.2/drivers/acpi/ec_sys.c 2011-03-14 21:20:32.000000000 -0400
21449+++ linux-2.6.38.3/drivers/acpi/ec_sys.c 2011-04-17 15:57:32.000000000 -0400 20611+++ linux-2.6.38.2/drivers/acpi/ec_sys.c 2011-03-21 18:31:35.000000000 -0400
21450@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f 20612@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f
21451 return count; 20613 return count;
21452 } 20614 }
@@ -21456,9 +20618,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/ec_sys.c linux-2.6.38.3/drivers/acpi/ec_s
21456 .owner = THIS_MODULE, 20618 .owner = THIS_MODULE,
21457 .open = acpi_ec_open_io, 20619 .open = acpi_ec_open_io,
21458 .read = acpi_ec_read_io, 20620 .read = acpi_ec_read_io,
21459diff -urNp linux-2.6.38.3/drivers/acpi/power_meter.c linux-2.6.38.3/drivers/acpi/power_meter.c 20621diff -urNp linux-2.6.38.2/drivers/acpi/power_meter.c linux-2.6.38.2/drivers/acpi/power_meter.c
21460--- linux-2.6.38.3/drivers/acpi/power_meter.c 2011-03-14 21:20:32.000000000 -0400 20622--- linux-2.6.38.2/drivers/acpi/power_meter.c 2011-03-14 21:20:32.000000000 -0400
21461+++ linux-2.6.38.3/drivers/acpi/power_meter.c 2011-04-17 15:57:32.000000000 -0400 20623+++ linux-2.6.38.2/drivers/acpi/power_meter.c 2011-03-21 18:31:35.000000000 -0400
21462@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d 20624@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d
21463 return res; 20625 return res;
21464 20626
@@ -21468,9 +20630,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/power_meter.c linux-2.6.38.3/drivers/acpi
21468 20630
21469 mutex_lock(&resource->lock); 20631 mutex_lock(&resource->lock);
21470 resource->trip[attr->index - 7] = temp; 20632 resource->trip[attr->index - 7] = temp;
21471diff -urNp linux-2.6.38.3/drivers/acpi/proc.c linux-2.6.38.3/drivers/acpi/proc.c 20633diff -urNp linux-2.6.38.2/drivers/acpi/proc.c linux-2.6.38.2/drivers/acpi/proc.c
21472--- linux-2.6.38.3/drivers/acpi/proc.c 2011-03-14 21:20:32.000000000 -0400 20634--- linux-2.6.38.2/drivers/acpi/proc.c 2011-03-14 21:20:32.000000000 -0400
21473+++ linux-2.6.38.3/drivers/acpi/proc.c 2011-04-17 15:57:32.000000000 -0400 20635+++ linux-2.6.38.2/drivers/acpi/proc.c 2011-03-21 18:31:35.000000000 -0400
21474@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f 20636@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f
21475 size_t count, loff_t * ppos) 20637 size_t count, loff_t * ppos)
21476 { 20638 {
@@ -21505,9 +20667,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/proc.c linux-2.6.38.3/drivers/acpi/proc.c
21505 if (device_can_wakeup(&dev->dev)) { 20667 if (device_can_wakeup(&dev->dev)) {
21506 bool enable = !device_may_wakeup(&dev->dev); 20668 bool enable = !device_may_wakeup(&dev->dev);
21507 device_set_wakeup_enable(&dev->dev, enable); 20669 device_set_wakeup_enable(&dev->dev, enable);
21508diff -urNp linux-2.6.38.3/drivers/acpi/processor_driver.c linux-2.6.38.3/drivers/acpi/processor_driver.c 20670diff -urNp linux-2.6.38.2/drivers/acpi/processor_driver.c linux-2.6.38.2/drivers/acpi/processor_driver.c
21509--- linux-2.6.38.3/drivers/acpi/processor_driver.c 2011-03-14 21:20:32.000000000 -0400 20671--- linux-2.6.38.2/drivers/acpi/processor_driver.c 2011-03-14 21:20:32.000000000 -0400
21510+++ linux-2.6.38.3/drivers/acpi/processor_driver.c 2011-04-17 15:57:32.000000000 -0400 20672+++ linux-2.6.38.2/drivers/acpi/processor_driver.c 2011-03-21 18:31:35.000000000 -0400
21511@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add( 20673@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add(
21512 return 0; 20674 return 0;
21513 #endif 20675 #endif
@@ -21517,9 +20679,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/processor_driver.c linux-2.6.38.3/drivers
21517 20679
21518 /* 20680 /*
21519 * Buggy BIOS check 20681 * Buggy BIOS check
21520diff -urNp linux-2.6.38.3/drivers/acpi/processor_idle.c linux-2.6.38.3/drivers/acpi/processor_idle.c 20682diff -urNp linux-2.6.38.2/drivers/acpi/processor_idle.c linux-2.6.38.2/drivers/acpi/processor_idle.c
21521--- linux-2.6.38.3/drivers/acpi/processor_idle.c 2011-03-14 21:20:32.000000000 -0400 20683--- linux-2.6.38.2/drivers/acpi/processor_idle.c 2011-03-14 21:20:32.000000000 -0400
21522+++ linux-2.6.38.3/drivers/acpi/processor_idle.c 2011-04-17 15:57:32.000000000 -0400 20684+++ linux-2.6.38.2/drivers/acpi/processor_idle.c 2011-03-21 18:31:35.000000000 -0400
21523@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat 20685@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat
21524 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), 20686 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
21525 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")}, 20687 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")},
@@ -21529,9 +20691,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/processor_idle.c linux-2.6.38.3/drivers/a
21529 }; 20691 };
21530 20692
21531 20693
21532diff -urNp linux-2.6.38.3/drivers/ata/acard-ahci.c linux-2.6.38.3/drivers/ata/acard-ahci.c 20694diff -urNp linux-2.6.38.2/drivers/ata/acard-ahci.c linux-2.6.38.2/drivers/ata/acard-ahci.c
21533--- linux-2.6.38.3/drivers/ata/acard-ahci.c 2011-03-14 21:20:32.000000000 -0400 20695--- linux-2.6.38.2/drivers/ata/acard-ahci.c 2011-03-14 21:20:32.000000000 -0400
21534+++ linux-2.6.38.3/drivers/ata/acard-ahci.c 2011-04-17 15:57:32.000000000 -0400 20696+++ linux-2.6.38.2/drivers/ata/acard-ahci.c 2011-03-21 18:31:35.000000000 -0400
21535@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a 20697@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a
21536 AHCI_SHT("acard-ahci"), 20698 AHCI_SHT("acard-ahci"),
21537 }; 20699 };
@@ -21541,9 +20703,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/acard-ahci.c linux-2.6.38.3/drivers/ata/ac
21541 .inherits = &ahci_ops, 20703 .inherits = &ahci_ops,
21542 .qc_prep = acard_ahci_qc_prep, 20704 .qc_prep = acard_ahci_qc_prep,
21543 .qc_fill_rtf = acard_ahci_qc_fill_rtf, 20705 .qc_fill_rtf = acard_ahci_qc_fill_rtf,
21544diff -urNp linux-2.6.38.3/drivers/ata/ahci.c linux-2.6.38.3/drivers/ata/ahci.c 20706diff -urNp linux-2.6.38.2/drivers/ata/ahci.c linux-2.6.38.2/drivers/ata/ahci.c
21545--- linux-2.6.38.3/drivers/ata/ahci.c 2011-04-18 17:27:13.000000000 -0400 20707--- linux-2.6.38.2/drivers/ata/ahci.c 2011-03-23 17:20:06.000000000 -0400
21546+++ linux-2.6.38.3/drivers/ata/ahci.c 2011-04-17 15:57:32.000000000 -0400 20708+++ linux-2.6.38.2/drivers/ata/ahci.c 2011-03-23 17:21:49.000000000 -0400
21547@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh 20709@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh
21548 AHCI_SHT("ahci"), 20710 AHCI_SHT("ahci"),
21549 }; 20711 };
@@ -21574,9 +20736,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ahci.c linux-2.6.38.3/drivers/ata/ahci.c
21574 }; 20736 };
21575 20737
21576 20738
21577diff -urNp linux-2.6.38.3/drivers/ata/ahci.h linux-2.6.38.3/drivers/ata/ahci.h 20739diff -urNp linux-2.6.38.2/drivers/ata/ahci.h linux-2.6.38.2/drivers/ata/ahci.h
21578--- linux-2.6.38.3/drivers/ata/ahci.h 2011-03-14 21:20:32.000000000 -0400 20740--- linux-2.6.38.2/drivers/ata/ahci.h 2011-03-14 21:20:32.000000000 -0400
21579+++ linux-2.6.38.3/drivers/ata/ahci.h 2011-04-17 15:57:32.000000000 -0400 20741+++ linux-2.6.38.2/drivers/ata/ahci.h 2011-03-21 18:31:35.000000000 -0400
21580@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde 20742@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde
21581 .shost_attrs = ahci_shost_attrs, \ 20743 .shost_attrs = ahci_shost_attrs, \
21582 .sdev_attrs = ahci_sdev_attrs 20744 .sdev_attrs = ahci_sdev_attrs
@@ -21586,9 +20748,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ahci.h linux-2.6.38.3/drivers/ata/ahci.h
21586 20748
21587 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 20749 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
21588 u32 opts); 20750 u32 opts);
21589diff -urNp linux-2.6.38.3/drivers/ata/ata_generic.c linux-2.6.38.3/drivers/ata/ata_generic.c 20751diff -urNp linux-2.6.38.2/drivers/ata/ata_generic.c linux-2.6.38.2/drivers/ata/ata_generic.c
21590--- linux-2.6.38.3/drivers/ata/ata_generic.c 2011-03-14 21:20:32.000000000 -0400 20752--- linux-2.6.38.2/drivers/ata/ata_generic.c 2011-03-14 21:20:32.000000000 -0400
21591+++ linux-2.6.38.3/drivers/ata/ata_generic.c 2011-04-17 15:57:32.000000000 -0400 20753+++ linux-2.6.38.2/drivers/ata/ata_generic.c 2011-03-21 18:31:35.000000000 -0400
21592@@ -101,7 +101,7 @@ static struct scsi_host_template generic 20754@@ -101,7 +101,7 @@ static struct scsi_host_template generic
21593 ATA_BMDMA_SHT(DRV_NAME), 20755 ATA_BMDMA_SHT(DRV_NAME),
21594 }; 20756 };
@@ -21598,9 +20760,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ata_generic.c linux-2.6.38.3/drivers/ata/a
21598 .inherits = &ata_bmdma_port_ops, 20760 .inherits = &ata_bmdma_port_ops,
21599 .cable_detect = ata_cable_unknown, 20761 .cable_detect = ata_cable_unknown,
21600 .set_mode = generic_set_mode, 20762 .set_mode = generic_set_mode,
21601diff -urNp linux-2.6.38.3/drivers/ata/ata_piix.c linux-2.6.38.3/drivers/ata/ata_piix.c 20763diff -urNp linux-2.6.38.2/drivers/ata/ata_piix.c linux-2.6.38.2/drivers/ata/ata_piix.c
21602--- linux-2.6.38.3/drivers/ata/ata_piix.c 2011-03-14 21:20:32.000000000 -0400 20764--- linux-2.6.38.2/drivers/ata/ata_piix.c 2011-03-14 21:20:32.000000000 -0400
21603+++ linux-2.6.38.3/drivers/ata/ata_piix.c 2011-04-17 15:57:32.000000000 -0400 20765+++ linux-2.6.38.2/drivers/ata/ata_piix.c 2011-03-21 18:31:35.000000000 -0400
21604@@ -309,7 +309,7 @@ static const struct pci_device_id piix_p 20766@@ -309,7 +309,7 @@ static const struct pci_device_id piix_p
21605 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, 20767 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
21606 /* SATA Controller IDE (PBG) */ 20768 /* SATA Controller IDE (PBG) */
@@ -21667,9 +20829,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ata_piix.c linux-2.6.38.3/drivers/ata/ata_
21667 }; 20829 };
21668 static const char *oemstrs[] = { 20830 static const char *oemstrs[] = {
21669 "Tecra M3,", 20831 "Tecra M3,",
21670diff -urNp linux-2.6.38.3/drivers/ata/libahci.c linux-2.6.38.3/drivers/ata/libahci.c 20832diff -urNp linux-2.6.38.2/drivers/ata/libahci.c linux-2.6.38.2/drivers/ata/libahci.c
21671--- linux-2.6.38.3/drivers/ata/libahci.c 2011-03-14 21:20:32.000000000 -0400 20833--- linux-2.6.38.2/drivers/ata/libahci.c 2011-03-14 21:20:32.000000000 -0400
21672+++ linux-2.6.38.3/drivers/ata/libahci.c 2011-04-17 15:57:32.000000000 -0400 20834+++ linux-2.6.38.2/drivers/ata/libahci.c 2011-03-21 18:31:35.000000000 -0400
21673@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs 20835@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs
21674 }; 20836 };
21675 EXPORT_SYMBOL_GPL(ahci_sdev_attrs); 20837 EXPORT_SYMBOL_GPL(ahci_sdev_attrs);
@@ -21679,9 +20841,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libahci.c linux-2.6.38.3/drivers/ata/libah
21679 .inherits = &sata_pmp_port_ops, 20841 .inherits = &sata_pmp_port_ops,
21680 20842
21681 .qc_defer = ahci_pmp_qc_defer, 20843 .qc_defer = ahci_pmp_qc_defer,
21682diff -urNp linux-2.6.38.3/drivers/ata/libata-acpi.c linux-2.6.38.3/drivers/ata/libata-acpi.c 20844diff -urNp linux-2.6.38.2/drivers/ata/libata-acpi.c linux-2.6.38.2/drivers/ata/libata-acpi.c
21683--- linux-2.6.38.3/drivers/ata/libata-acpi.c 2011-03-14 21:20:32.000000000 -0400 20845--- linux-2.6.38.2/drivers/ata/libata-acpi.c 2011-03-14 21:20:32.000000000 -0400
21684+++ linux-2.6.38.3/drivers/ata/libata-acpi.c 2011-04-17 15:57:32.000000000 -0400 20846+++ linux-2.6.38.2/drivers/ata/libata-acpi.c 2011-03-21 18:31:35.000000000 -0400
21685@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han 20847@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han
21686 ata_acpi_uevent(dev->link->ap, dev, event); 20848 ata_acpi_uevent(dev->link->ap, dev, event);
21687 } 20849 }
@@ -21697,9 +20859,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-acpi.c linux-2.6.38.3/drivers/ata/l
21697 .handler = ata_acpi_ap_notify_dock, 20859 .handler = ata_acpi_ap_notify_dock,
21698 .uevent = ata_acpi_ap_uevent, 20860 .uevent = ata_acpi_ap_uevent,
21699 }; 20861 };
21700diff -urNp linux-2.6.38.3/drivers/ata/libata-core.c linux-2.6.38.3/drivers/ata/libata-core.c 20862diff -urNp linux-2.6.38.2/drivers/ata/libata-core.c linux-2.6.38.2/drivers/ata/libata-core.c
21701--- linux-2.6.38.3/drivers/ata/libata-core.c 2011-03-14 21:20:32.000000000 -0400 20863--- linux-2.6.38.2/drivers/ata/libata-core.c 2011-03-14 21:20:32.000000000 -0400
21702+++ linux-2.6.38.3/drivers/ata/libata-core.c 2011-04-17 15:57:32.000000000 -0400 20864+++ linux-2.6.38.2/drivers/ata/libata-core.c 2011-03-21 18:31:35.000000000 -0400
21703@@ -897,7 +897,7 @@ static const struct ata_xfer_ent { 20865@@ -897,7 +897,7 @@ static const struct ata_xfer_ent {
21704 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 }, 20866 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 },
21705 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 }, 20867 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 },
@@ -21791,9 +20953,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-core.c linux-2.6.38.3/drivers/ata/l
21791 .qc_prep = ata_noop_qc_prep, 20953 .qc_prep = ata_noop_qc_prep,
21792 .qc_issue = ata_dummy_qc_issue, 20954 .qc_issue = ata_dummy_qc_issue,
21793 .error_handler = ata_dummy_error_handler, 20955 .error_handler = ata_dummy_error_handler,
21794diff -urNp linux-2.6.38.3/drivers/ata/libata-eh.c linux-2.6.38.3/drivers/ata/libata-eh.c 20956diff -urNp linux-2.6.38.2/drivers/ata/libata-eh.c linux-2.6.38.2/drivers/ata/libata-eh.c
21795--- linux-2.6.38.3/drivers/ata/libata-eh.c 2011-04-18 17:27:13.000000000 -0400 20957--- linux-2.6.38.2/drivers/ata/libata-eh.c 2011-03-23 17:20:06.000000000 -0400
21796+++ linux-2.6.38.3/drivers/ata/libata-eh.c 2011-04-17 15:57:32.000000000 -0400 20958+++ linux-2.6.38.2/drivers/ata/libata-eh.c 2011-03-23 17:21:49.000000000 -0400
21797@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_ 20959@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_
21798 */ 20960 */
21799 void ata_std_error_handler(struct ata_port *ap) 20961 void ata_std_error_handler(struct ata_port *ap)
@@ -21803,9 +20965,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-eh.c linux-2.6.38.3/drivers/ata/lib
21803 ata_reset_fn_t hardreset = ops->hardreset; 20965 ata_reset_fn_t hardreset = ops->hardreset;
21804 20966
21805 /* ignore built-in hardreset if SCR access is not available */ 20967 /* ignore built-in hardreset if SCR access is not available */
21806diff -urNp linux-2.6.38.3/drivers/ata/libata-pmp.c linux-2.6.38.3/drivers/ata/libata-pmp.c 20968diff -urNp linux-2.6.38.2/drivers/ata/libata-pmp.c linux-2.6.38.2/drivers/ata/libata-pmp.c
21807--- linux-2.6.38.3/drivers/ata/libata-pmp.c 2011-03-14 21:20:32.000000000 -0400 20969--- linux-2.6.38.2/drivers/ata/libata-pmp.c 2011-03-14 21:20:32.000000000 -0400
21808+++ linux-2.6.38.3/drivers/ata/libata-pmp.c 2011-04-17 15:57:32.000000000 -0400 20970+++ linux-2.6.38.2/drivers/ata/libata-pmp.c 2011-03-21 18:31:35.000000000 -0400
21809@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str 20971@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str
21810 */ 20972 */
21811 static int sata_pmp_eh_recover(struct ata_port *ap) 20973 static int sata_pmp_eh_recover(struct ata_port *ap)
@@ -21815,9 +20977,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-pmp.c linux-2.6.38.3/drivers/ata/li
21815 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS]; 20977 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS];
21816 struct ata_link *pmp_link = &ap->link; 20978 struct ata_link *pmp_link = &ap->link;
21817 struct ata_device *pmp_dev = pmp_link->device; 20979 struct ata_device *pmp_dev = pmp_link->device;
21818diff -urNp linux-2.6.38.3/drivers/ata/pata_acpi.c linux-2.6.38.3/drivers/ata/pata_acpi.c 20980diff -urNp linux-2.6.38.2/drivers/ata/pata_acpi.c linux-2.6.38.2/drivers/ata/pata_acpi.c
21819--- linux-2.6.38.3/drivers/ata/pata_acpi.c 2011-03-14 21:20:32.000000000 -0400 20981--- linux-2.6.38.2/drivers/ata/pata_acpi.c 2011-03-14 21:20:32.000000000 -0400
21820+++ linux-2.6.38.3/drivers/ata/pata_acpi.c 2011-04-17 15:57:32.000000000 -0400 20982+++ linux-2.6.38.2/drivers/ata/pata_acpi.c 2011-03-21 18:31:35.000000000 -0400
21821@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s 20983@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s
21822 ATA_BMDMA_SHT(DRV_NAME), 20984 ATA_BMDMA_SHT(DRV_NAME),
21823 }; 20985 };
@@ -21827,9 +20989,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_acpi.c linux-2.6.38.3/drivers/ata/pat
21827 .inherits = &ata_bmdma_port_ops, 20989 .inherits = &ata_bmdma_port_ops,
21828 .qc_issue = pacpi_qc_issue, 20990 .qc_issue = pacpi_qc_issue,
21829 .cable_detect = pacpi_cable_detect, 20991 .cable_detect = pacpi_cable_detect,
21830diff -urNp linux-2.6.38.3/drivers/ata/pata_ali.c linux-2.6.38.3/drivers/ata/pata_ali.c 20992diff -urNp linux-2.6.38.2/drivers/ata/pata_ali.c linux-2.6.38.2/drivers/ata/pata_ali.c
21831--- linux-2.6.38.3/drivers/ata/pata_ali.c 2011-03-14 21:20:32.000000000 -0400 20993--- linux-2.6.38.2/drivers/ata/pata_ali.c 2011-03-14 21:20:32.000000000 -0400
21832+++ linux-2.6.38.3/drivers/ata/pata_ali.c 2011-04-17 15:57:32.000000000 -0400 20994+++ linux-2.6.38.2/drivers/ata/pata_ali.c 2011-03-21 18:31:35.000000000 -0400
21833@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht 20995@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht
21834 * Port operations for PIO only ALi 20996 * Port operations for PIO only ALi
21835 */ 20997 */
@@ -21875,9 +21037,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ali.c linux-2.6.38.3/drivers/ata/pata
21875 .inherits = &ali_dma_base_ops, 21037 .inherits = &ali_dma_base_ops,
21876 .check_atapi_dma = ali_check_atapi_dma, 21038 .check_atapi_dma = ali_check_atapi_dma,
21877 .dev_config = ali_warn_atapi_dma, 21039 .dev_config = ali_warn_atapi_dma,
21878diff -urNp linux-2.6.38.3/drivers/ata/pata_amd.c linux-2.6.38.3/drivers/ata/pata_amd.c 21040diff -urNp linux-2.6.38.2/drivers/ata/pata_amd.c linux-2.6.38.2/drivers/ata/pata_amd.c
21879--- linux-2.6.38.3/drivers/ata/pata_amd.c 2011-03-14 21:20:32.000000000 -0400 21041--- linux-2.6.38.2/drivers/ata/pata_amd.c 2011-03-14 21:20:32.000000000 -0400
21880+++ linux-2.6.38.3/drivers/ata/pata_amd.c 2011-04-17 15:57:32.000000000 -0400 21042+++ linux-2.6.38.2/drivers/ata/pata_amd.c 2011-03-21 18:31:35.000000000 -0400
21881@@ -397,28 +397,28 @@ static const struct ata_port_operations 21043@@ -397,28 +397,28 @@ static const struct ata_port_operations
21882 .prereset = amd_pre_reset, 21044 .prereset = amd_pre_reset,
21883 }; 21045 };
@@ -21927,9 +21089,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_amd.c linux-2.6.38.3/drivers/ata/pata
21927 .inherits = &nv_base_port_ops, 21089 .inherits = &nv_base_port_ops,
21928 .set_piomode = nv133_set_piomode, 21090 .set_piomode = nv133_set_piomode,
21929 .set_dmamode = nv133_set_dmamode, 21091 .set_dmamode = nv133_set_dmamode,
21930diff -urNp linux-2.6.38.3/drivers/ata/pata_artop.c linux-2.6.38.3/drivers/ata/pata_artop.c 21092diff -urNp linux-2.6.38.2/drivers/ata/pata_artop.c linux-2.6.38.2/drivers/ata/pata_artop.c
21931--- linux-2.6.38.3/drivers/ata/pata_artop.c 2011-03-14 21:20:32.000000000 -0400 21093--- linux-2.6.38.2/drivers/ata/pata_artop.c 2011-03-14 21:20:32.000000000 -0400
21932+++ linux-2.6.38.3/drivers/ata/pata_artop.c 2011-04-17 15:57:32.000000000 -0400 21094+++ linux-2.6.38.2/drivers/ata/pata_artop.c 2011-03-21 18:31:35.000000000 -0400
21933@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s 21095@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s
21934 ATA_BMDMA_SHT(DRV_NAME), 21096 ATA_BMDMA_SHT(DRV_NAME),
21935 }; 21097 };
@@ -21948,9 +21110,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_artop.c linux-2.6.38.3/drivers/ata/pa
21948 .inherits = &ata_bmdma_port_ops, 21110 .inherits = &ata_bmdma_port_ops,
21949 .cable_detect = artop6260_cable_detect, 21111 .cable_detect = artop6260_cable_detect,
21950 .set_piomode = artop6260_set_piomode, 21112 .set_piomode = artop6260_set_piomode,
21951diff -urNp linux-2.6.38.3/drivers/ata/pata_at32.c linux-2.6.38.3/drivers/ata/pata_at32.c 21113diff -urNp linux-2.6.38.2/drivers/ata/pata_at32.c linux-2.6.38.2/drivers/ata/pata_at32.c
21952--- linux-2.6.38.3/drivers/ata/pata_at32.c 2011-03-14 21:20:32.000000000 -0400 21114--- linux-2.6.38.2/drivers/ata/pata_at32.c 2011-03-14 21:20:32.000000000 -0400
21953+++ linux-2.6.38.3/drivers/ata/pata_at32.c 2011-04-17 15:57:32.000000000 -0400 21115+++ linux-2.6.38.2/drivers/ata/pata_at32.c 2011-03-21 18:31:35.000000000 -0400
21954@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh 21116@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh
21955 ATA_PIO_SHT(DRV_NAME), 21117 ATA_PIO_SHT(DRV_NAME),
21956 }; 21118 };
@@ -21960,9 +21122,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_at32.c linux-2.6.38.3/drivers/ata/pat
21960 .inherits = &ata_sff_port_ops, 21122 .inherits = &ata_sff_port_ops,
21961 .cable_detect = ata_cable_40wire, 21123 .cable_detect = ata_cable_40wire,
21962 .set_piomode = pata_at32_set_piomode, 21124 .set_piomode = pata_at32_set_piomode,
21963diff -urNp linux-2.6.38.3/drivers/ata/pata_at91.c linux-2.6.38.3/drivers/ata/pata_at91.c 21125diff -urNp linux-2.6.38.2/drivers/ata/pata_at91.c linux-2.6.38.2/drivers/ata/pata_at91.c
21964--- linux-2.6.38.3/drivers/ata/pata_at91.c 2011-03-14 21:20:32.000000000 -0400 21126--- linux-2.6.38.2/drivers/ata/pata_at91.c 2011-03-14 21:20:32.000000000 -0400
21965+++ linux-2.6.38.3/drivers/ata/pata_at91.c 2011-04-17 15:57:32.000000000 -0400 21127+++ linux-2.6.38.2/drivers/ata/pata_at91.c 2011-03-21 18:31:35.000000000 -0400
21966@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at 21128@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at
21967 ATA_PIO_SHT(DRV_NAME), 21129 ATA_PIO_SHT(DRV_NAME),
21968 }; 21130 };
@@ -21972,9 +21134,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_at91.c linux-2.6.38.3/drivers/ata/pat
21972 .inherits = &ata_sff_port_ops, 21134 .inherits = &ata_sff_port_ops,
21973 21135
21974 .sff_data_xfer = pata_at91_data_xfer_noirq, 21136 .sff_data_xfer = pata_at91_data_xfer_noirq,
21975diff -urNp linux-2.6.38.3/drivers/ata/pata_atiixp.c linux-2.6.38.3/drivers/ata/pata_atiixp.c 21137diff -urNp linux-2.6.38.2/drivers/ata/pata_atiixp.c linux-2.6.38.2/drivers/ata/pata_atiixp.c
21976--- linux-2.6.38.3/drivers/ata/pata_atiixp.c 2011-03-14 21:20:32.000000000 -0400 21138--- linux-2.6.38.2/drivers/ata/pata_atiixp.c 2011-03-14 21:20:32.000000000 -0400
21977+++ linux-2.6.38.3/drivers/ata/pata_atiixp.c 2011-04-17 15:57:32.000000000 -0400 21139+++ linux-2.6.38.2/drivers/ata/pata_atiixp.c 2011-03-21 18:31:35.000000000 -0400
21978@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_ 21140@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_
21979 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21141 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21980 }; 21142 };
@@ -21984,9 +21146,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_atiixp.c linux-2.6.38.3/drivers/ata/p
21984 .inherits = &ata_bmdma_port_ops, 21146 .inherits = &ata_bmdma_port_ops,
21985 21147
21986 .qc_prep = ata_bmdma_dumb_qc_prep, 21148 .qc_prep = ata_bmdma_dumb_qc_prep,
21987diff -urNp linux-2.6.38.3/drivers/ata/pata_atp867x.c linux-2.6.38.3/drivers/ata/pata_atp867x.c 21149diff -urNp linux-2.6.38.2/drivers/ata/pata_atp867x.c linux-2.6.38.2/drivers/ata/pata_atp867x.c
21988--- linux-2.6.38.3/drivers/ata/pata_atp867x.c 2011-03-14 21:20:32.000000000 -0400 21150--- linux-2.6.38.2/drivers/ata/pata_atp867x.c 2011-03-14 21:20:32.000000000 -0400
21989+++ linux-2.6.38.3/drivers/ata/pata_atp867x.c 2011-04-17 15:57:32.000000000 -0400 21151+++ linux-2.6.38.2/drivers/ata/pata_atp867x.c 2011-03-21 18:31:35.000000000 -0400
21990@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x 21152@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x
21991 ATA_BMDMA_SHT(DRV_NAME), 21153 ATA_BMDMA_SHT(DRV_NAME),
21992 }; 21154 };
@@ -21996,9 +21158,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_atp867x.c linux-2.6.38.3/drivers/ata/
21996 .inherits = &ata_bmdma_port_ops, 21158 .inherits = &ata_bmdma_port_ops,
21997 .cable_detect = atp867x_cable_detect, 21159 .cable_detect = atp867x_cable_detect,
21998 .set_piomode = atp867x_set_piomode, 21160 .set_piomode = atp867x_set_piomode,
21999diff -urNp linux-2.6.38.3/drivers/ata/pata_bf54x.c linux-2.6.38.3/drivers/ata/pata_bf54x.c 21161diff -urNp linux-2.6.38.2/drivers/ata/pata_bf54x.c linux-2.6.38.2/drivers/ata/pata_bf54x.c
22000--- linux-2.6.38.3/drivers/ata/pata_bf54x.c 2011-03-14 21:20:32.000000000 -0400 21162--- linux-2.6.38.2/drivers/ata/pata_bf54x.c 2011-03-14 21:20:32.000000000 -0400
22001+++ linux-2.6.38.3/drivers/ata/pata_bf54x.c 2011-04-17 15:57:32.000000000 -0400 21163+++ linux-2.6.38.2/drivers/ata/pata_bf54x.c 2011-03-21 18:31:35.000000000 -0400
22002@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh 21164@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh
22003 .dma_boundary = ATA_DMA_BOUNDARY, 21165 .dma_boundary = ATA_DMA_BOUNDARY,
22004 }; 21166 };
@@ -22008,9 +21170,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_bf54x.c linux-2.6.38.3/drivers/ata/pa
22008 .inherits = &ata_bmdma_port_ops, 21170 .inherits = &ata_bmdma_port_ops,
22009 21171
22010 .set_piomode = bfin_set_piomode, 21172 .set_piomode = bfin_set_piomode,
22011diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd640.c linux-2.6.38.3/drivers/ata/pata_cmd640.c 21173diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd640.c linux-2.6.38.2/drivers/ata/pata_cmd640.c
22012--- linux-2.6.38.3/drivers/ata/pata_cmd640.c 2011-03-14 21:20:32.000000000 -0400 21174--- linux-2.6.38.2/drivers/ata/pata_cmd640.c 2011-03-14 21:20:32.000000000 -0400
22013+++ linux-2.6.38.3/drivers/ata/pata_cmd640.c 2011-04-17 15:57:32.000000000 -0400 21175+++ linux-2.6.38.2/drivers/ata/pata_cmd640.c 2011-03-21 18:31:35.000000000 -0400
22014@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_ 21176@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_
22015 ATA_PIO_SHT(DRV_NAME), 21177 ATA_PIO_SHT(DRV_NAME),
22016 }; 21178 };
@@ -22020,9 +21182,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd640.c linux-2.6.38.3/drivers/ata/p
22020 .inherits = &ata_sff_port_ops, 21182 .inherits = &ata_sff_port_ops,
22021 /* In theory xfer_noirq is not needed once we kill the prefetcher */ 21183 /* In theory xfer_noirq is not needed once we kill the prefetcher */
22022 .sff_data_xfer = ata_sff_data_xfer_noirq, 21184 .sff_data_xfer = ata_sff_data_xfer_noirq,
22023diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd64x.c linux-2.6.38.3/drivers/ata/pata_cmd64x.c 21185diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd64x.c linux-2.6.38.2/drivers/ata/pata_cmd64x.c
22024--- linux-2.6.38.3/drivers/ata/pata_cmd64x.c 2011-03-14 21:20:32.000000000 -0400 21186--- linux-2.6.38.2/drivers/ata/pata_cmd64x.c 2011-03-14 21:20:32.000000000 -0400
22025+++ linux-2.6.38.3/drivers/ata/pata_cmd64x.c 2011-04-17 15:57:32.000000000 -0400 21187+++ linux-2.6.38.2/drivers/ata/pata_cmd64x.c 2011-03-21 18:31:35.000000000 -0400
22026@@ -268,18 +268,18 @@ static const struct ata_port_operations 21188@@ -268,18 +268,18 @@ static const struct ata_port_operations
22027 .set_dmamode = cmd64x_set_dmamode, 21189 .set_dmamode = cmd64x_set_dmamode,
22028 }; 21190 };
@@ -22045,9 +21207,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd64x.c linux-2.6.38.3/drivers/ata/p
22045 .inherits = &cmd64x_base_ops, 21207 .inherits = &cmd64x_base_ops,
22046 .bmdma_stop = cmd648_bmdma_stop, 21208 .bmdma_stop = cmd648_bmdma_stop,
22047 .cable_detect = cmd648_cable_detect, 21209 .cable_detect = cmd648_cable_detect,
22048diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5520.c linux-2.6.38.3/drivers/ata/pata_cs5520.c 21210diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5520.c linux-2.6.38.2/drivers/ata/pata_cs5520.c
22049--- linux-2.6.38.3/drivers/ata/pata_cs5520.c 2011-03-14 21:20:32.000000000 -0400 21211--- linux-2.6.38.2/drivers/ata/pata_cs5520.c 2011-03-14 21:20:32.000000000 -0400
22050+++ linux-2.6.38.3/drivers/ata/pata_cs5520.c 2011-04-17 15:57:32.000000000 -0400 21212+++ linux-2.6.38.2/drivers/ata/pata_cs5520.c 2011-03-21 18:31:35.000000000 -0400
22051@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_ 21213@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_
22052 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21214 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
22053 }; 21215 };
@@ -22057,9 +21219,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5520.c linux-2.6.38.3/drivers/ata/p
22057 .inherits = &ata_bmdma_port_ops, 21219 .inherits = &ata_bmdma_port_ops,
22058 .qc_prep = ata_bmdma_dumb_qc_prep, 21220 .qc_prep = ata_bmdma_dumb_qc_prep,
22059 .cable_detect = ata_cable_40wire, 21221 .cable_detect = ata_cable_40wire,
22060diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5530.c linux-2.6.38.3/drivers/ata/pata_cs5530.c 21222diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5530.c linux-2.6.38.2/drivers/ata/pata_cs5530.c
22061--- linux-2.6.38.3/drivers/ata/pata_cs5530.c 2011-03-14 21:20:32.000000000 -0400 21223--- linux-2.6.38.2/drivers/ata/pata_cs5530.c 2011-03-14 21:20:32.000000000 -0400
22062+++ linux-2.6.38.3/drivers/ata/pata_cs5530.c 2011-04-17 15:57:32.000000000 -0400 21224+++ linux-2.6.38.2/drivers/ata/pata_cs5530.c 2011-03-21 18:31:35.000000000 -0400
22063@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_ 21225@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_
22064 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21226 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
22065 }; 21227 };
@@ -22069,9 +21231,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5530.c linux-2.6.38.3/drivers/ata/p
22069 .inherits = &ata_bmdma_port_ops, 21231 .inherits = &ata_bmdma_port_ops,
22070 21232
22071 .qc_prep = ata_bmdma_dumb_qc_prep, 21233 .qc_prep = ata_bmdma_dumb_qc_prep,
22072diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5535.c linux-2.6.38.3/drivers/ata/pata_cs5535.c 21234diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5535.c linux-2.6.38.2/drivers/ata/pata_cs5535.c
22073--- linux-2.6.38.3/drivers/ata/pata_cs5535.c 2011-03-14 21:20:32.000000000 -0400 21235--- linux-2.6.38.2/drivers/ata/pata_cs5535.c 2011-03-14 21:20:32.000000000 -0400
22074+++ linux-2.6.38.3/drivers/ata/pata_cs5535.c 2011-04-17 15:57:32.000000000 -0400 21236+++ linux-2.6.38.2/drivers/ata/pata_cs5535.c 2011-03-21 18:31:35.000000000 -0400
22075@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_ 21237@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_
22076 ATA_BMDMA_SHT(DRV_NAME), 21238 ATA_BMDMA_SHT(DRV_NAME),
22077 }; 21239 };
@@ -22081,9 +21243,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5535.c linux-2.6.38.3/drivers/ata/p
22081 .inherits = &ata_bmdma_port_ops, 21243 .inherits = &ata_bmdma_port_ops,
22082 .cable_detect = cs5535_cable_detect, 21244 .cable_detect = cs5535_cable_detect,
22083 .set_piomode = cs5535_set_piomode, 21245 .set_piomode = cs5535_set_piomode,
22084diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5536.c linux-2.6.38.3/drivers/ata/pata_cs5536.c 21246diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5536.c linux-2.6.38.2/drivers/ata/pata_cs5536.c
22085--- linux-2.6.38.3/drivers/ata/pata_cs5536.c 2011-03-14 21:20:32.000000000 -0400 21247--- linux-2.6.38.2/drivers/ata/pata_cs5536.c 2011-03-14 21:20:32.000000000 -0400
22086+++ linux-2.6.38.3/drivers/ata/pata_cs5536.c 2011-04-17 15:57:32.000000000 -0400 21248+++ linux-2.6.38.2/drivers/ata/pata_cs5536.c 2011-03-21 18:31:35.000000000 -0400
22087@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_ 21249@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_
22088 ATA_BMDMA_SHT(DRV_NAME), 21250 ATA_BMDMA_SHT(DRV_NAME),
22089 }; 21251 };
@@ -22093,9 +21255,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5536.c linux-2.6.38.3/drivers/ata/p
22093 .inherits = &ata_bmdma32_port_ops, 21255 .inherits = &ata_bmdma32_port_ops,
22094 .cable_detect = cs5536_cable_detect, 21256 .cable_detect = cs5536_cable_detect,
22095 .set_piomode = cs5536_set_piomode, 21257 .set_piomode = cs5536_set_piomode,
22096diff -urNp linux-2.6.38.3/drivers/ata/pata_cypress.c linux-2.6.38.3/drivers/ata/pata_cypress.c 21258diff -urNp linux-2.6.38.2/drivers/ata/pata_cypress.c linux-2.6.38.2/drivers/ata/pata_cypress.c
22097--- linux-2.6.38.3/drivers/ata/pata_cypress.c 2011-03-14 21:20:32.000000000 -0400 21259--- linux-2.6.38.2/drivers/ata/pata_cypress.c 2011-03-14 21:20:32.000000000 -0400
22098+++ linux-2.6.38.3/drivers/ata/pata_cypress.c 2011-04-17 15:57:32.000000000 -0400 21260+++ linux-2.6.38.2/drivers/ata/pata_cypress.c 2011-03-21 18:31:35.000000000 -0400
22099@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69 21261@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69
22100 ATA_BMDMA_SHT(DRV_NAME), 21262 ATA_BMDMA_SHT(DRV_NAME),
22101 }; 21263 };
@@ -22105,9 +21267,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cypress.c linux-2.6.38.3/drivers/ata/
22105 .inherits = &ata_bmdma_port_ops, 21267 .inherits = &ata_bmdma_port_ops,
22106 .cable_detect = ata_cable_40wire, 21268 .cable_detect = ata_cable_40wire,
22107 .set_piomode = cy82c693_set_piomode, 21269 .set_piomode = cy82c693_set_piomode,
22108diff -urNp linux-2.6.38.3/drivers/ata/pata_efar.c linux-2.6.38.3/drivers/ata/pata_efar.c 21270diff -urNp linux-2.6.38.2/drivers/ata/pata_efar.c linux-2.6.38.2/drivers/ata/pata_efar.c
22109--- linux-2.6.38.3/drivers/ata/pata_efar.c 2011-03-14 21:20:32.000000000 -0400 21271--- linux-2.6.38.2/drivers/ata/pata_efar.c 2011-03-14 21:20:32.000000000 -0400
22110+++ linux-2.6.38.3/drivers/ata/pata_efar.c 2011-04-17 15:57:32.000000000 -0400 21272+++ linux-2.6.38.2/drivers/ata/pata_efar.c 2011-03-21 18:31:35.000000000 -0400
22111@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh 21273@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh
22112 ATA_BMDMA_SHT(DRV_NAME), 21274 ATA_BMDMA_SHT(DRV_NAME),
22113 }; 21275 };
@@ -22117,9 +21279,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_efar.c linux-2.6.38.3/drivers/ata/pat
22117 .inherits = &ata_bmdma_port_ops, 21279 .inherits = &ata_bmdma_port_ops,
22118 .cable_detect = efar_cable_detect, 21280 .cable_detect = efar_cable_detect,
22119 .set_piomode = efar_set_piomode, 21281 .set_piomode = efar_set_piomode,
22120diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt366.c linux-2.6.38.3/drivers/ata/pata_hpt366.c 21282diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt366.c linux-2.6.38.2/drivers/ata/pata_hpt366.c
22121--- linux-2.6.38.3/drivers/ata/pata_hpt366.c 2011-03-14 21:20:32.000000000 -0400 21283--- linux-2.6.38.2/drivers/ata/pata_hpt366.c 2011-03-14 21:20:32.000000000 -0400
22122+++ linux-2.6.38.3/drivers/ata/pata_hpt366.c 2011-04-17 15:57:32.000000000 -0400 21284+++ linux-2.6.38.2/drivers/ata/pata_hpt366.c 2011-03-21 18:31:35.000000000 -0400
22123@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_ 21285@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_
22124 * Configuration for HPT366/68 21286 * Configuration for HPT366/68
22125 */ 21287 */
@@ -22129,9 +21291,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt366.c linux-2.6.38.3/drivers/ata/p
22129 .inherits = &ata_bmdma_port_ops, 21291 .inherits = &ata_bmdma_port_ops,
22130 .cable_detect = hpt36x_cable_detect, 21292 .cable_detect = hpt36x_cable_detect,
22131 .mode_filter = hpt366_filter, 21293 .mode_filter = hpt366_filter,
22132diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt37x.c linux-2.6.38.3/drivers/ata/pata_hpt37x.c 21294diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt37x.c linux-2.6.38.2/drivers/ata/pata_hpt37x.c
22133--- linux-2.6.38.3/drivers/ata/pata_hpt37x.c 2011-03-14 21:20:32.000000000 -0400 21295--- linux-2.6.38.2/drivers/ata/pata_hpt37x.c 2011-03-14 21:20:32.000000000 -0400
22134+++ linux-2.6.38.3/drivers/ata/pata_hpt37x.c 2011-04-17 15:57:32.000000000 -0400 21296+++ linux-2.6.38.2/drivers/ata/pata_hpt37x.c 2011-03-21 18:31:35.000000000 -0400
22135@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_ 21297@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_
22136 * Configuration for HPT370 21298 * Configuration for HPT370
22137 */ 21299 */
@@ -22177,9 +21339,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt37x.c linux-2.6.38.3/drivers/ata/p
22177 .inherits = &hpt372_port_ops, 21339 .inherits = &hpt372_port_ops,
22178 .cable_detect = hpt374_fn1_cable_detect, 21340 .cable_detect = hpt374_fn1_cable_detect,
22179 }; 21341 };
22180diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 21342diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c
22181--- linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 2011-03-14 21:20:32.000000000 -0400 21343--- linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 2011-03-14 21:20:32.000000000 -0400
22182+++ linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 2011-04-17 15:57:32.000000000 -0400 21344+++ linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 2011-03-21 18:31:35.000000000 -0400
22183@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n 21345@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n
22184 * Configuration for HPT302N/371N. 21346 * Configuration for HPT302N/371N.
22185 */ 21347 */
@@ -22198,9 +21360,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c linux-2.6.38.3/drivers/ata/
22198 .inherits = &hpt3xxn_port_ops, 21360 .inherits = &hpt3xxn_port_ops,
22199 .mode_filter = &hpt372n_filter, 21361 .mode_filter = &hpt372n_filter,
22200 }; 21362 };
22201diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x3.c linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 21363diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x3.c linux-2.6.38.2/drivers/ata/pata_hpt3x3.c
22202--- linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 2011-03-14 21:20:32.000000000 -0400 21364--- linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 2011-03-14 21:20:32.000000000 -0400
22203+++ linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 2011-04-17 15:57:32.000000000 -0400 21365+++ linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 2011-03-21 18:31:35.000000000 -0400
22204@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_ 21366@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_
22205 ATA_BMDMA_SHT(DRV_NAME), 21367 ATA_BMDMA_SHT(DRV_NAME),
22206 }; 21368 };
@@ -22210,9 +21372,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x3.c linux-2.6.38.3/drivers/ata/p
22210 .inherits = &ata_bmdma_port_ops, 21372 .inherits = &ata_bmdma_port_ops,
22211 .cable_detect = ata_cable_40wire, 21373 .cable_detect = ata_cable_40wire,
22212 .set_piomode = hpt3x3_set_piomode, 21374 .set_piomode = hpt3x3_set_piomode,
22213diff -urNp linux-2.6.38.3/drivers/ata/pata_icside.c linux-2.6.38.3/drivers/ata/pata_icside.c 21375diff -urNp linux-2.6.38.2/drivers/ata/pata_icside.c linux-2.6.38.2/drivers/ata/pata_icside.c
22214--- linux-2.6.38.3/drivers/ata/pata_icside.c 2011-03-14 21:20:32.000000000 -0400 21376--- linux-2.6.38.2/drivers/ata/pata_icside.c 2011-03-14 21:20:32.000000000 -0400
22215+++ linux-2.6.38.3/drivers/ata/pata_icside.c 2011-04-17 15:57:32.000000000 -0400 21377+++ linux-2.6.38.2/drivers/ata/pata_icside.c 2011-03-21 18:31:35.000000000 -0400
22216@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct 21378@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct
22217 } 21379 }
22218 } 21380 }
@@ -22222,9 +21384,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_icside.c linux-2.6.38.3/drivers/ata/p
22222 .inherits = &ata_bmdma_port_ops, 21384 .inherits = &ata_bmdma_port_ops,
22223 /* no need to build any PRD tables for DMA */ 21385 /* no need to build any PRD tables for DMA */
22224 .qc_prep = ata_noop_qc_prep, 21386 .qc_prep = ata_noop_qc_prep,
22225diff -urNp linux-2.6.38.3/drivers/ata/pata_isapnp.c linux-2.6.38.3/drivers/ata/pata_isapnp.c 21387diff -urNp linux-2.6.38.2/drivers/ata/pata_isapnp.c linux-2.6.38.2/drivers/ata/pata_isapnp.c
22226--- linux-2.6.38.3/drivers/ata/pata_isapnp.c 2011-03-14 21:20:32.000000000 -0400 21388--- linux-2.6.38.2/drivers/ata/pata_isapnp.c 2011-03-14 21:20:32.000000000 -0400
22227+++ linux-2.6.38.3/drivers/ata/pata_isapnp.c 2011-04-17 15:57:32.000000000 -0400 21389+++ linux-2.6.38.2/drivers/ata/pata_isapnp.c 2011-03-21 18:31:35.000000000 -0400
22228@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_ 21390@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_
22229 ATA_PIO_SHT(DRV_NAME), 21391 ATA_PIO_SHT(DRV_NAME),
22230 }; 21392 };
@@ -22240,9 +21402,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_isapnp.c linux-2.6.38.3/drivers/ata/p
22240 .inherits = &ata_sff_port_ops, 21402 .inherits = &ata_sff_port_ops,
22241 .cable_detect = ata_cable_40wire, 21403 .cable_detect = ata_cable_40wire,
22242 /* No altstatus so we don't want to use the lost interrupt poll */ 21404 /* No altstatus so we don't want to use the lost interrupt poll */
22243diff -urNp linux-2.6.38.3/drivers/ata/pata_it8213.c linux-2.6.38.3/drivers/ata/pata_it8213.c 21405diff -urNp linux-2.6.38.2/drivers/ata/pata_it8213.c linux-2.6.38.2/drivers/ata/pata_it8213.c
22244--- linux-2.6.38.3/drivers/ata/pata_it8213.c 2011-03-14 21:20:32.000000000 -0400 21406--- linux-2.6.38.2/drivers/ata/pata_it8213.c 2011-03-14 21:20:32.000000000 -0400
22245+++ linux-2.6.38.3/drivers/ata/pata_it8213.c 2011-04-17 15:57:32.000000000 -0400 21407+++ linux-2.6.38.2/drivers/ata/pata_it8213.c 2011-03-21 18:31:35.000000000 -0400
22246@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_ 21408@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_
22247 }; 21409 };
22248 21410
@@ -22252,9 +21414,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_it8213.c linux-2.6.38.3/drivers/ata/p
22252 .inherits = &ata_bmdma_port_ops, 21414 .inherits = &ata_bmdma_port_ops,
22253 .cable_detect = it8213_cable_detect, 21415 .cable_detect = it8213_cable_detect,
22254 .set_piomode = it8213_set_piomode, 21416 .set_piomode = it8213_set_piomode,
22255diff -urNp linux-2.6.38.3/drivers/ata/pata_it821x.c linux-2.6.38.3/drivers/ata/pata_it821x.c 21417diff -urNp linux-2.6.38.2/drivers/ata/pata_it821x.c linux-2.6.38.2/drivers/ata/pata_it821x.c
22256--- linux-2.6.38.3/drivers/ata/pata_it821x.c 2011-03-14 21:20:32.000000000 -0400 21418--- linux-2.6.38.2/drivers/ata/pata_it821x.c 2011-03-14 21:20:32.000000000 -0400
22257+++ linux-2.6.38.3/drivers/ata/pata_it821x.c 2011-04-17 15:57:32.000000000 -0400 21419+++ linux-2.6.38.2/drivers/ata/pata_it821x.c 2011-03-21 18:31:35.000000000 -0400
22258@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_ 21420@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_
22259 ATA_BMDMA_SHT(DRV_NAME), 21421 ATA_BMDMA_SHT(DRV_NAME),
22260 }; 21422 };
@@ -22282,9 +21444,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_it821x.c linux-2.6.38.3/drivers/ata/p
22282 .inherits = &ata_bmdma_port_ops, 21444 .inherits = &ata_bmdma_port_ops,
22283 21445
22284 .check_atapi_dma= it821x_check_atapi_dma, 21446 .check_atapi_dma= it821x_check_atapi_dma,
22285diff -urNp linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 21447diff -urNp linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c
22286--- linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 2011-03-14 21:20:32.000000000 -0400 21448--- linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 2011-03-14 21:20:32.000000000 -0400
22287+++ linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 2011-04-17 15:57:32.000000000 -0400 21449+++ linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 2011-03-21 18:31:35.000000000 -0400
22288@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_ 21450@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_
22289 ATA_PIO_SHT(DRV_NAME), 21451 ATA_PIO_SHT(DRV_NAME),
22290 }; 21452 };
@@ -22294,9 +21456,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.3/drivers/at
22294 .inherits = &ata_sff_port_ops, 21456 .inherits = &ata_sff_port_ops,
22295 .sff_data_xfer = ixp4xx_mmio_data_xfer, 21457 .sff_data_xfer = ixp4xx_mmio_data_xfer,
22296 .cable_detect = ata_cable_40wire, 21458 .cable_detect = ata_cable_40wire,
22297diff -urNp linux-2.6.38.3/drivers/ata/pata_jmicron.c linux-2.6.38.3/drivers/ata/pata_jmicron.c 21459diff -urNp linux-2.6.38.2/drivers/ata/pata_jmicron.c linux-2.6.38.2/drivers/ata/pata_jmicron.c
22298--- linux-2.6.38.3/drivers/ata/pata_jmicron.c 2011-03-14 21:20:32.000000000 -0400 21460--- linux-2.6.38.2/drivers/ata/pata_jmicron.c 2011-03-14 21:20:32.000000000 -0400
22299+++ linux-2.6.38.3/drivers/ata/pata_jmicron.c 2011-04-17 15:57:32.000000000 -0400 21461+++ linux-2.6.38.2/drivers/ata/pata_jmicron.c 2011-03-21 18:31:35.000000000 -0400
22300@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron 21462@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron
22301 ATA_BMDMA_SHT(DRV_NAME), 21463 ATA_BMDMA_SHT(DRV_NAME),
22302 }; 21464 };
@@ -22306,9 +21468,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_jmicron.c linux-2.6.38.3/drivers/ata/
22306 .inherits = &ata_bmdma_port_ops, 21468 .inherits = &ata_bmdma_port_ops,
22307 .prereset = jmicron_pre_reset, 21469 .prereset = jmicron_pre_reset,
22308 }; 21470 };
22309diff -urNp linux-2.6.38.3/drivers/ata/pata_legacy.c linux-2.6.38.3/drivers/ata/pata_legacy.c 21471diff -urNp linux-2.6.38.2/drivers/ata/pata_legacy.c linux-2.6.38.2/drivers/ata/pata_legacy.c
22310--- linux-2.6.38.3/drivers/ata/pata_legacy.c 2011-03-14 21:20:32.000000000 -0400 21472--- linux-2.6.38.2/drivers/ata/pata_legacy.c 2011-03-14 21:20:32.000000000 -0400
22311+++ linux-2.6.38.3/drivers/ata/pata_legacy.c 2011-04-17 15:57:32.000000000 -0400 21473+++ linux-2.6.38.2/drivers/ata/pata_legacy.c 2011-03-21 18:31:35.000000000 -0400
22312@@ -116,7 +116,7 @@ struct legacy_probe { 21474@@ -116,7 +116,7 @@ struct legacy_probe {
22313 21475
22314 struct legacy_controller { 21476 struct legacy_controller {
@@ -22420,9 +21582,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_legacy.c linux-2.6.38.3/drivers/ata/p
22420 struct legacy_data *ld = &legacy_data[probe->slot]; 21582 struct legacy_data *ld = &legacy_data[probe->slot];
22421 struct ata_host *host = NULL; 21583 struct ata_host *host = NULL;
22422 struct ata_port *ap; 21584 struct ata_port *ap;
22423diff -urNp linux-2.6.38.3/drivers/ata/pata_macio.c linux-2.6.38.3/drivers/ata/pata_macio.c 21585diff -urNp linux-2.6.38.2/drivers/ata/pata_macio.c linux-2.6.38.2/drivers/ata/pata_macio.c
22424--- linux-2.6.38.3/drivers/ata/pata_macio.c 2011-03-14 21:20:32.000000000 -0400 21586--- linux-2.6.38.2/drivers/ata/pata_macio.c 2011-03-14 21:20:32.000000000 -0400
22425+++ linux-2.6.38.3/drivers/ata/pata_macio.c 2011-04-17 15:57:32.000000000 -0400 21587+++ linux-2.6.38.2/drivers/ata/pata_macio.c 2011-03-21 18:31:35.000000000 -0400
22426@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma 21588@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma
22427 .slave_configure = pata_macio_slave_config, 21589 .slave_configure = pata_macio_slave_config,
22428 }; 21590 };
@@ -22434,9 +21596,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_macio.c linux-2.6.38.3/drivers/ata/pa
22434 .freeze = pata_macio_freeze, 21596 .freeze = pata_macio_freeze,
22435 .set_piomode = pata_macio_set_timings, 21597 .set_piomode = pata_macio_set_timings,
22436 .set_dmamode = pata_macio_set_timings, 21598 .set_dmamode = pata_macio_set_timings,
22437diff -urNp linux-2.6.38.3/drivers/ata/pata_marvell.c linux-2.6.38.3/drivers/ata/pata_marvell.c 21599diff -urNp linux-2.6.38.2/drivers/ata/pata_marvell.c linux-2.6.38.2/drivers/ata/pata_marvell.c
22438--- linux-2.6.38.3/drivers/ata/pata_marvell.c 2011-03-14 21:20:32.000000000 -0400 21600--- linux-2.6.38.2/drivers/ata/pata_marvell.c 2011-03-14 21:20:32.000000000 -0400
22439+++ linux-2.6.38.3/drivers/ata/pata_marvell.c 2011-04-17 15:57:32.000000000 -0400 21601+++ linux-2.6.38.2/drivers/ata/pata_marvell.c 2011-03-21 18:31:35.000000000 -0400
22440@@ -100,7 +100,7 @@ static struct scsi_host_template marvell 21602@@ -100,7 +100,7 @@ static struct scsi_host_template marvell
22441 ATA_BMDMA_SHT(DRV_NAME), 21603 ATA_BMDMA_SHT(DRV_NAME),
22442 }; 21604 };
@@ -22446,9 +21608,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_marvell.c linux-2.6.38.3/drivers/ata/
22446 .inherits = &ata_bmdma_port_ops, 21608 .inherits = &ata_bmdma_port_ops,
22447 .cable_detect = marvell_cable_detect, 21609 .cable_detect = marvell_cable_detect,
22448 .prereset = marvell_pre_reset, 21610 .prereset = marvell_pre_reset,
22449diff -urNp linux-2.6.38.3/drivers/ata/pata_mpc52xx.c linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 21611diff -urNp linux-2.6.38.2/drivers/ata/pata_mpc52xx.c linux-2.6.38.2/drivers/ata/pata_mpc52xx.c
22450--- linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 2011-03-14 21:20:32.000000000 -0400 21612--- linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 2011-03-14 21:20:32.000000000 -0400
22451+++ linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 2011-04-17 15:57:32.000000000 -0400 21613+++ linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 2011-03-21 18:31:35.000000000 -0400
22452@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx 21614@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx
22453 ATA_PIO_SHT(DRV_NAME), 21615 ATA_PIO_SHT(DRV_NAME),
22454 }; 21616 };
@@ -22458,9 +21620,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_mpc52xx.c linux-2.6.38.3/drivers/ata/
22458 .inherits = &ata_bmdma_port_ops, 21620 .inherits = &ata_bmdma_port_ops,
22459 .sff_dev_select = mpc52xx_ata_dev_select, 21621 .sff_dev_select = mpc52xx_ata_dev_select,
22460 .set_piomode = mpc52xx_ata_set_piomode, 21622 .set_piomode = mpc52xx_ata_set_piomode,
22461diff -urNp linux-2.6.38.3/drivers/ata/pata_mpiix.c linux-2.6.38.3/drivers/ata/pata_mpiix.c 21623diff -urNp linux-2.6.38.2/drivers/ata/pata_mpiix.c linux-2.6.38.2/drivers/ata/pata_mpiix.c
22462--- linux-2.6.38.3/drivers/ata/pata_mpiix.c 2011-03-14 21:20:32.000000000 -0400 21624--- linux-2.6.38.2/drivers/ata/pata_mpiix.c 2011-03-14 21:20:32.000000000 -0400
22463+++ linux-2.6.38.3/drivers/ata/pata_mpiix.c 2011-04-17 15:57:32.000000000 -0400 21625+++ linux-2.6.38.2/drivers/ata/pata_mpiix.c 2011-03-21 18:31:35.000000000 -0400
22464@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s 21626@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s
22465 ATA_PIO_SHT(DRV_NAME), 21627 ATA_PIO_SHT(DRV_NAME),
22466 }; 21628 };
@@ -22470,9 +21632,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_mpiix.c linux-2.6.38.3/drivers/ata/pa
22470 .inherits = &ata_sff_port_ops, 21632 .inherits = &ata_sff_port_ops,
22471 .qc_issue = mpiix_qc_issue, 21633 .qc_issue = mpiix_qc_issue,
22472 .cable_detect = ata_cable_40wire, 21634 .cable_detect = ata_cable_40wire,
22473diff -urNp linux-2.6.38.3/drivers/ata/pata_netcell.c linux-2.6.38.3/drivers/ata/pata_netcell.c 21635diff -urNp linux-2.6.38.2/drivers/ata/pata_netcell.c linux-2.6.38.2/drivers/ata/pata_netcell.c
22474--- linux-2.6.38.3/drivers/ata/pata_netcell.c 2011-03-14 21:20:32.000000000 -0400 21636--- linux-2.6.38.2/drivers/ata/pata_netcell.c 2011-03-14 21:20:32.000000000 -0400
22475+++ linux-2.6.38.3/drivers/ata/pata_netcell.c 2011-04-17 15:57:32.000000000 -0400 21637+++ linux-2.6.38.2/drivers/ata/pata_netcell.c 2011-03-21 18:31:35.000000000 -0400
22476@@ -34,7 +34,7 @@ static struct scsi_host_template netcell 21638@@ -34,7 +34,7 @@ static struct scsi_host_template netcell
22477 ATA_BMDMA_SHT(DRV_NAME), 21639 ATA_BMDMA_SHT(DRV_NAME),
22478 }; 21640 };
@@ -22482,9 +21644,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_netcell.c linux-2.6.38.3/drivers/ata/
22482 .inherits = &ata_bmdma_port_ops, 21644 .inherits = &ata_bmdma_port_ops,
22483 .cable_detect = ata_cable_80wire, 21645 .cable_detect = ata_cable_80wire,
22484 .read_id = netcell_read_id, 21646 .read_id = netcell_read_id,
22485diff -urNp linux-2.6.38.3/drivers/ata/pata_ninja32.c linux-2.6.38.3/drivers/ata/pata_ninja32.c 21647diff -urNp linux-2.6.38.2/drivers/ata/pata_ninja32.c linux-2.6.38.2/drivers/ata/pata_ninja32.c
22486--- linux-2.6.38.3/drivers/ata/pata_ninja32.c 2011-03-14 21:20:32.000000000 -0400 21648--- linux-2.6.38.2/drivers/ata/pata_ninja32.c 2011-03-14 21:20:32.000000000 -0400
22487+++ linux-2.6.38.3/drivers/ata/pata_ninja32.c 2011-04-17 15:57:32.000000000 -0400 21649+++ linux-2.6.38.2/drivers/ata/pata_ninja32.c 2011-03-21 18:31:35.000000000 -0400
22488@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32 21650@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32
22489 ATA_BMDMA_SHT(DRV_NAME), 21651 ATA_BMDMA_SHT(DRV_NAME),
22490 }; 21652 };
@@ -22494,9 +21656,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ninja32.c linux-2.6.38.3/drivers/ata/
22494 .inherits = &ata_bmdma_port_ops, 21656 .inherits = &ata_bmdma_port_ops,
22495 .sff_dev_select = ninja32_dev_select, 21657 .sff_dev_select = ninja32_dev_select,
22496 .cable_detect = ata_cable_40wire, 21658 .cable_detect = ata_cable_40wire,
22497diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87410.c linux-2.6.38.3/drivers/ata/pata_ns87410.c 21659diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87410.c linux-2.6.38.2/drivers/ata/pata_ns87410.c
22498--- linux-2.6.38.3/drivers/ata/pata_ns87410.c 2011-03-14 21:20:32.000000000 -0400 21660--- linux-2.6.38.2/drivers/ata/pata_ns87410.c 2011-03-14 21:20:32.000000000 -0400
22499+++ linux-2.6.38.3/drivers/ata/pata_ns87410.c 2011-04-17 15:57:32.000000000 -0400 21661+++ linux-2.6.38.2/drivers/ata/pata_ns87410.c 2011-03-21 18:31:35.000000000 -0400
22500@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410 21662@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410
22501 ATA_PIO_SHT(DRV_NAME), 21663 ATA_PIO_SHT(DRV_NAME),
22502 }; 21664 };
@@ -22506,9 +21668,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87410.c linux-2.6.38.3/drivers/ata/
22506 .inherits = &ata_sff_port_ops, 21668 .inherits = &ata_sff_port_ops,
22507 .qc_issue = ns87410_qc_issue, 21669 .qc_issue = ns87410_qc_issue,
22508 .cable_detect = ata_cable_40wire, 21670 .cable_detect = ata_cable_40wire,
22509diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87415.c linux-2.6.38.3/drivers/ata/pata_ns87415.c 21671diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87415.c linux-2.6.38.2/drivers/ata/pata_ns87415.c
22510--- linux-2.6.38.3/drivers/ata/pata_ns87415.c 2011-03-14 21:20:32.000000000 -0400 21672--- linux-2.6.38.2/drivers/ata/pata_ns87415.c 2011-03-14 21:20:32.000000000 -0400
22511+++ linux-2.6.38.3/drivers/ata/pata_ns87415.c 2011-04-17 15:57:32.000000000 -0400 21673+++ linux-2.6.38.2/drivers/ata/pata_ns87415.c 2011-03-21 18:31:35.000000000 -0400
22512@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at 21674@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at
22513 } 21675 }
22514 #endif /* 87560 SuperIO Support */ 21676 #endif /* 87560 SuperIO Support */
@@ -22527,9 +21689,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87415.c linux-2.6.38.3/drivers/ata/
22527 .inherits = &ns87415_pata_ops, 21689 .inherits = &ns87415_pata_ops,
22528 .sff_tf_read = ns87560_tf_read, 21690 .sff_tf_read = ns87560_tf_read,
22529 .sff_check_status = ns87560_check_status, 21691 .sff_check_status = ns87560_check_status,
22530diff -urNp linux-2.6.38.3/drivers/ata/pata_octeon_cf.c linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 21692diff -urNp linux-2.6.38.2/drivers/ata/pata_octeon_cf.c linux-2.6.38.2/drivers/ata/pata_octeon_cf.c
22531--- linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 2011-03-14 21:20:32.000000000 -0400 21693--- linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 2011-03-14 21:20:32.000000000 -0400
22532+++ linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 2011-04-17 15:57:32.000000000 -0400 21694+++ linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 2011-03-21 18:31:35.000000000 -0400
22533@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s 21695@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s
22534 return 0; 21696 return 0;
22535 } 21697 }
@@ -22539,9 +21701,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_octeon_cf.c linux-2.6.38.3/drivers/at
22539 .inherits = &ata_sff_port_ops, 21701 .inherits = &ata_sff_port_ops,
22540 .check_atapi_dma = octeon_cf_check_atapi_dma, 21702 .check_atapi_dma = octeon_cf_check_atapi_dma,
22541 .qc_prep = ata_noop_qc_prep, 21703 .qc_prep = ata_noop_qc_prep,
22542diff -urNp linux-2.6.38.3/drivers/ata/pata_oldpiix.c linux-2.6.38.3/drivers/ata/pata_oldpiix.c 21704diff -urNp linux-2.6.38.2/drivers/ata/pata_oldpiix.c linux-2.6.38.2/drivers/ata/pata_oldpiix.c
22543--- linux-2.6.38.3/drivers/ata/pata_oldpiix.c 2011-03-14 21:20:32.000000000 -0400 21705--- linux-2.6.38.2/drivers/ata/pata_oldpiix.c 2011-03-14 21:20:32.000000000 -0400
22544+++ linux-2.6.38.3/drivers/ata/pata_oldpiix.c 2011-04-17 15:57:32.000000000 -0400 21706+++ linux-2.6.38.2/drivers/ata/pata_oldpiix.c 2011-03-21 18:31:35.000000000 -0400
22545@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix 21707@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix
22546 ATA_BMDMA_SHT(DRV_NAME), 21708 ATA_BMDMA_SHT(DRV_NAME),
22547 }; 21709 };
@@ -22551,9 +21713,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_oldpiix.c linux-2.6.38.3/drivers/ata/
22551 .inherits = &ata_bmdma_port_ops, 21713 .inherits = &ata_bmdma_port_ops,
22552 .qc_issue = oldpiix_qc_issue, 21714 .qc_issue = oldpiix_qc_issue,
22553 .cable_detect = ata_cable_40wire, 21715 .cable_detect = ata_cable_40wire,
22554diff -urNp linux-2.6.38.3/drivers/ata/pata_opti.c linux-2.6.38.3/drivers/ata/pata_opti.c 21716diff -urNp linux-2.6.38.2/drivers/ata/pata_opti.c linux-2.6.38.2/drivers/ata/pata_opti.c
22555--- linux-2.6.38.3/drivers/ata/pata_opti.c 2011-03-14 21:20:32.000000000 -0400 21717--- linux-2.6.38.2/drivers/ata/pata_opti.c 2011-03-14 21:20:32.000000000 -0400
22556+++ linux-2.6.38.3/drivers/ata/pata_opti.c 2011-04-17 15:57:32.000000000 -0400 21718+++ linux-2.6.38.2/drivers/ata/pata_opti.c 2011-03-21 18:31:35.000000000 -0400
22557@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh 21719@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh
22558 ATA_PIO_SHT(DRV_NAME), 21720 ATA_PIO_SHT(DRV_NAME),
22559 }; 21721 };
@@ -22563,9 +21725,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_opti.c linux-2.6.38.3/drivers/ata/pat
22563 .inherits = &ata_sff_port_ops, 21725 .inherits = &ata_sff_port_ops,
22564 .cable_detect = ata_cable_40wire, 21726 .cable_detect = ata_cable_40wire,
22565 .set_piomode = opti_set_piomode, 21727 .set_piomode = opti_set_piomode,
22566diff -urNp linux-2.6.38.3/drivers/ata/pata_optidma.c linux-2.6.38.3/drivers/ata/pata_optidma.c 21728diff -urNp linux-2.6.38.2/drivers/ata/pata_optidma.c linux-2.6.38.2/drivers/ata/pata_optidma.c
22567--- linux-2.6.38.3/drivers/ata/pata_optidma.c 2011-03-14 21:20:32.000000000 -0400 21729--- linux-2.6.38.2/drivers/ata/pata_optidma.c 2011-03-14 21:20:32.000000000 -0400
22568+++ linux-2.6.38.3/drivers/ata/pata_optidma.c 2011-04-17 15:57:32.000000000 -0400 21730+++ linux-2.6.38.2/drivers/ata/pata_optidma.c 2011-03-21 18:31:35.000000000 -0400
22569@@ -337,7 +337,7 @@ static struct scsi_host_template optidma 21731@@ -337,7 +337,7 @@ static struct scsi_host_template optidma
22570 ATA_BMDMA_SHT(DRV_NAME), 21732 ATA_BMDMA_SHT(DRV_NAME),
22571 }; 21733 };
@@ -22584,9 +21746,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_optidma.c linux-2.6.38.3/drivers/ata/
22584 .inherits = &optidma_port_ops, 21746 .inherits = &optidma_port_ops,
22585 .set_piomode = optiplus_set_pio_mode, 21747 .set_piomode = optiplus_set_pio_mode,
22586 .set_dmamode = optiplus_set_dma_mode, 21748 .set_dmamode = optiplus_set_dma_mode,
22587diff -urNp linux-2.6.38.3/drivers/ata/pata_palmld.c linux-2.6.38.3/drivers/ata/pata_palmld.c 21749diff -urNp linux-2.6.38.2/drivers/ata/pata_palmld.c linux-2.6.38.2/drivers/ata/pata_palmld.c
22588--- linux-2.6.38.3/drivers/ata/pata_palmld.c 2011-03-14 21:20:32.000000000 -0400 21750--- linux-2.6.38.2/drivers/ata/pata_palmld.c 2011-03-14 21:20:32.000000000 -0400
22589+++ linux-2.6.38.3/drivers/ata/pata_palmld.c 2011-04-17 15:57:32.000000000 -0400 21751+++ linux-2.6.38.2/drivers/ata/pata_palmld.c 2011-03-21 18:31:35.000000000 -0400
22590@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_ 21752@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_
22591 ATA_PIO_SHT(DRV_NAME), 21753 ATA_PIO_SHT(DRV_NAME),
22592 }; 21754 };
@@ -22596,9 +21758,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_palmld.c linux-2.6.38.3/drivers/ata/p
22596 .inherits = &ata_sff_port_ops, 21758 .inherits = &ata_sff_port_ops,
22597 .sff_data_xfer = ata_sff_data_xfer_noirq, 21759 .sff_data_xfer = ata_sff_data_xfer_noirq,
22598 .cable_detect = ata_cable_40wire, 21760 .cable_detect = ata_cable_40wire,
22599diff -urNp linux-2.6.38.3/drivers/ata/pata_pcmcia.c linux-2.6.38.3/drivers/ata/pata_pcmcia.c 21761diff -urNp linux-2.6.38.2/drivers/ata/pata_pcmcia.c linux-2.6.38.2/drivers/ata/pata_pcmcia.c
22600--- linux-2.6.38.3/drivers/ata/pata_pcmcia.c 2011-03-14 21:20:32.000000000 -0400 21762--- linux-2.6.38.2/drivers/ata/pata_pcmcia.c 2011-03-14 21:20:32.000000000 -0400
22601+++ linux-2.6.38.3/drivers/ata/pata_pcmcia.c 2011-04-17 15:57:32.000000000 -0400 21763+++ linux-2.6.38.2/drivers/ata/pata_pcmcia.c 2011-03-21 18:31:35.000000000 -0400
22602@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_ 21764@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_
22603 ATA_PIO_SHT(DRV_NAME), 21765 ATA_PIO_SHT(DRV_NAME),
22604 }; 21766 };
@@ -22625,9 +21787,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pcmcia.c linux-2.6.38.3/drivers/ata/p
22625 21787
22626 /* Set up attributes in order to probe card and get resources */ 21788 /* Set up attributes in order to probe card and get resources */
22627 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO | 21789 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO |
22628diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc2027x.c linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 21790diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc2027x.c linux-2.6.38.2/drivers/ata/pata_pdc2027x.c
22629--- linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 2011-03-14 21:20:32.000000000 -0400 21791--- linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 2011-03-14 21:20:32.000000000 -0400
22630+++ linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 2011-04-17 15:57:32.000000000 -0400 21792+++ linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 2011-03-21 18:31:35.000000000 -0400
22631@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027 21793@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027
22632 ATA_BMDMA_SHT(DRV_NAME), 21794 ATA_BMDMA_SHT(DRV_NAME),
22633 }; 21795 };
@@ -22645,9 +21807,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc2027x.c linux-2.6.38.3/drivers/ata
22645 .inherits = &pdc2027x_pata100_ops, 21807 .inherits = &pdc2027x_pata100_ops,
22646 .mode_filter = pdc2027x_mode_filter, 21808 .mode_filter = pdc2027x_mode_filter,
22647 .set_piomode = pdc2027x_set_piomode, 21809 .set_piomode = pdc2027x_set_piomode,
22648diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 21810diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c
22649--- linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 2011-03-14 21:20:32.000000000 -0400 21811--- linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 2011-03-14 21:20:32.000000000 -0400
22650+++ linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 2011-04-17 15:57:32.000000000 -0400 21812+++ linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 2011-03-21 18:31:35.000000000 -0400
22651@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x 21813@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x
22652 ATA_BMDMA_SHT(DRV_NAME), 21814 ATA_BMDMA_SHT(DRV_NAME),
22653 }; 21815 };
@@ -22666,9 +21828,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.3/drivers
22666 .inherits = &pdc2024x_port_ops, 21828 .inherits = &pdc2024x_port_ops,
22667 21829
22668 .check_atapi_dma = pdc2026x_check_atapi_dma, 21830 .check_atapi_dma = pdc2026x_check_atapi_dma,
22669diff -urNp linux-2.6.38.3/drivers/ata/pata_piccolo.c linux-2.6.38.3/drivers/ata/pata_piccolo.c 21831diff -urNp linux-2.6.38.2/drivers/ata/pata_piccolo.c linux-2.6.38.2/drivers/ata/pata_piccolo.c
22670--- linux-2.6.38.3/drivers/ata/pata_piccolo.c 2011-03-14 21:20:32.000000000 -0400 21832--- linux-2.6.38.2/drivers/ata/pata_piccolo.c 2011-03-14 21:20:32.000000000 -0400
22671+++ linux-2.6.38.3/drivers/ata/pata_piccolo.c 2011-04-17 15:57:32.000000000 -0400 21833+++ linux-2.6.38.2/drivers/ata/pata_piccolo.c 2011-03-21 18:31:35.000000000 -0400
22672@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh 21834@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh
22673 ATA_BMDMA_SHT(DRV_NAME), 21835 ATA_BMDMA_SHT(DRV_NAME),
22674 }; 21836 };
@@ -22678,9 +21840,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_piccolo.c linux-2.6.38.3/drivers/ata/
22678 .inherits = &ata_bmdma_port_ops, 21840 .inherits = &ata_bmdma_port_ops,
22679 .cable_detect = ata_cable_unknown, 21841 .cable_detect = ata_cable_unknown,
22680 .set_piomode = tosh_set_piomode, 21842 .set_piomode = tosh_set_piomode,
22681diff -urNp linux-2.6.38.3/drivers/ata/pata_platform.c linux-2.6.38.3/drivers/ata/pata_platform.c 21843diff -urNp linux-2.6.38.2/drivers/ata/pata_platform.c linux-2.6.38.2/drivers/ata/pata_platform.c
22682--- linux-2.6.38.3/drivers/ata/pata_platform.c 2011-03-14 21:20:32.000000000 -0400 21844--- linux-2.6.38.2/drivers/ata/pata_platform.c 2011-03-14 21:20:32.000000000 -0400
22683+++ linux-2.6.38.3/drivers/ata/pata_platform.c 2011-04-17 15:57:32.000000000 -0400 21845+++ linux-2.6.38.2/drivers/ata/pata_platform.c 2011-03-21 18:31:35.000000000 -0400
22684@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl 21846@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl
22685 ATA_PIO_SHT(DRV_NAME), 21847 ATA_PIO_SHT(DRV_NAME),
22686 }; 21848 };
@@ -22690,9 +21852,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_platform.c linux-2.6.38.3/drivers/ata
22690 .inherits = &ata_sff_port_ops, 21852 .inherits = &ata_sff_port_ops,
22691 .sff_data_xfer = ata_sff_data_xfer_noirq, 21853 .sff_data_xfer = ata_sff_data_xfer_noirq,
22692 .cable_detect = ata_cable_unknown, 21854 .cable_detect = ata_cable_unknown,
22693diff -urNp linux-2.6.38.3/drivers/ata/pata_pxa.c linux-2.6.38.3/drivers/ata/pata_pxa.c 21855diff -urNp linux-2.6.38.2/drivers/ata/pata_pxa.c linux-2.6.38.2/drivers/ata/pata_pxa.c
22694--- linux-2.6.38.3/drivers/ata/pata_pxa.c 2011-03-14 21:20:32.000000000 -0400 21856--- linux-2.6.38.2/drivers/ata/pata_pxa.c 2011-03-14 21:20:32.000000000 -0400
22695+++ linux-2.6.38.3/drivers/ata/pata_pxa.c 2011-04-17 15:57:32.000000000 -0400 21857+++ linux-2.6.38.2/drivers/ata/pata_pxa.c 2011-03-21 18:31:35.000000000 -0400
22696@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata 21858@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata
22697 ATA_BMDMA_SHT(DRV_NAME), 21859 ATA_BMDMA_SHT(DRV_NAME),
22698 }; 21860 };
@@ -22702,9 +21864,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pxa.c linux-2.6.38.3/drivers/ata/pata
22702 .inherits = &ata_bmdma_port_ops, 21864 .inherits = &ata_bmdma_port_ops,
22703 .cable_detect = ata_cable_40wire, 21865 .cable_detect = ata_cable_40wire,
22704 21866
22705diff -urNp linux-2.6.38.3/drivers/ata/pata_qdi.c linux-2.6.38.3/drivers/ata/pata_qdi.c 21867diff -urNp linux-2.6.38.2/drivers/ata/pata_qdi.c linux-2.6.38.2/drivers/ata/pata_qdi.c
22706--- linux-2.6.38.3/drivers/ata/pata_qdi.c 2011-03-14 21:20:32.000000000 -0400 21868--- linux-2.6.38.2/drivers/ata/pata_qdi.c 2011-03-14 21:20:32.000000000 -0400
22707+++ linux-2.6.38.3/drivers/ata/pata_qdi.c 2011-04-17 15:57:32.000000000 -0400 21869+++ linux-2.6.38.2/drivers/ata/pata_qdi.c 2011-03-21 18:31:35.000000000 -0400
22708@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht 21870@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht
22709 ATA_PIO_SHT(DRV_NAME), 21871 ATA_PIO_SHT(DRV_NAME),
22710 }; 21872 };
@@ -22723,9 +21885,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_qdi.c linux-2.6.38.3/drivers/ata/pata
22723 .inherits = &qdi6500_port_ops, 21885 .inherits = &qdi6500_port_ops,
22724 .set_piomode = qdi6580_set_piomode, 21886 .set_piomode = qdi6580_set_piomode,
22725 }; 21887 };
22726diff -urNp linux-2.6.38.3/drivers/ata/pata_radisys.c linux-2.6.38.3/drivers/ata/pata_radisys.c 21888diff -urNp linux-2.6.38.2/drivers/ata/pata_radisys.c linux-2.6.38.2/drivers/ata/pata_radisys.c
22727--- linux-2.6.38.3/drivers/ata/pata_radisys.c 2011-03-14 21:20:32.000000000 -0400 21889--- linux-2.6.38.2/drivers/ata/pata_radisys.c 2011-03-14 21:20:32.000000000 -0400
22728+++ linux-2.6.38.3/drivers/ata/pata_radisys.c 2011-04-17 15:57:32.000000000 -0400 21890+++ linux-2.6.38.2/drivers/ata/pata_radisys.c 2011-03-21 18:31:35.000000000 -0400
22729@@ -187,7 +187,7 @@ static struct scsi_host_template radisys 21891@@ -187,7 +187,7 @@ static struct scsi_host_template radisys
22730 ATA_BMDMA_SHT(DRV_NAME), 21892 ATA_BMDMA_SHT(DRV_NAME),
22731 }; 21893 };
@@ -22735,9 +21897,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_radisys.c linux-2.6.38.3/drivers/ata/
22735 .inherits = &ata_bmdma_port_ops, 21897 .inherits = &ata_bmdma_port_ops,
22736 .qc_issue = radisys_qc_issue, 21898 .qc_issue = radisys_qc_issue,
22737 .cable_detect = ata_cable_unknown, 21899 .cable_detect = ata_cable_unknown,
22738diff -urNp linux-2.6.38.3/drivers/ata/pata_rb532_cf.c linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 21900diff -urNp linux-2.6.38.2/drivers/ata/pata_rb532_cf.c linux-2.6.38.2/drivers/ata/pata_rb532_cf.c
22739--- linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 2011-03-14 21:20:32.000000000 -0400 21901--- linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 2011-03-14 21:20:32.000000000 -0400
22740+++ linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 2011-04-17 15:57:32.000000000 -0400 21902+++ linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 2011-03-21 18:31:35.000000000 -0400
22741@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle 21903@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle
22742 return IRQ_HANDLED; 21904 return IRQ_HANDLED;
22743 } 21905 }
@@ -22747,9 +21909,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_rb532_cf.c linux-2.6.38.3/drivers/ata
22747 .inherits = &ata_sff_port_ops, 21909 .inherits = &ata_sff_port_ops,
22748 .sff_data_xfer = ata_sff_data_xfer32, 21910 .sff_data_xfer = ata_sff_data_xfer32,
22749 }; 21911 };
22750diff -urNp linux-2.6.38.3/drivers/ata/pata_rdc.c linux-2.6.38.3/drivers/ata/pata_rdc.c 21912diff -urNp linux-2.6.38.2/drivers/ata/pata_rdc.c linux-2.6.38.2/drivers/ata/pata_rdc.c
22751--- linux-2.6.38.3/drivers/ata/pata_rdc.c 2011-03-14 21:20:32.000000000 -0400 21913--- linux-2.6.38.2/drivers/ata/pata_rdc.c 2011-03-14 21:20:32.000000000 -0400
22752+++ linux-2.6.38.3/drivers/ata/pata_rdc.c 2011-04-17 15:57:32.000000000 -0400 21914+++ linux-2.6.38.2/drivers/ata/pata_rdc.c 2011-03-21 18:31:35.000000000 -0400
22753@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p 21915@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p
22754 pci_write_config_byte(dev, 0x48, udma_enable); 21916 pci_write_config_byte(dev, 0x48, udma_enable);
22755 } 21917 }
@@ -22759,9 +21921,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_rdc.c linux-2.6.38.3/drivers/ata/pata
22759 .inherits = &ata_bmdma32_port_ops, 21921 .inherits = &ata_bmdma32_port_ops,
22760 .cable_detect = rdc_pata_cable_detect, 21922 .cable_detect = rdc_pata_cable_detect,
22761 .set_piomode = rdc_set_piomode, 21923 .set_piomode = rdc_set_piomode,
22762diff -urNp linux-2.6.38.3/drivers/ata/pata_rz1000.c linux-2.6.38.3/drivers/ata/pata_rz1000.c 21924diff -urNp linux-2.6.38.2/drivers/ata/pata_rz1000.c linux-2.6.38.2/drivers/ata/pata_rz1000.c
22763--- linux-2.6.38.3/drivers/ata/pata_rz1000.c 2011-03-14 21:20:32.000000000 -0400 21925--- linux-2.6.38.2/drivers/ata/pata_rz1000.c 2011-03-14 21:20:32.000000000 -0400
22764+++ linux-2.6.38.3/drivers/ata/pata_rz1000.c 2011-04-17 15:57:32.000000000 -0400 21926+++ linux-2.6.38.2/drivers/ata/pata_rz1000.c 2011-03-21 18:31:35.000000000 -0400
22765@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_ 21927@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_
22766 ATA_PIO_SHT(DRV_NAME), 21928 ATA_PIO_SHT(DRV_NAME),
22767 }; 21929 };
@@ -22771,9 +21933,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_rz1000.c linux-2.6.38.3/drivers/ata/p
22771 .inherits = &ata_sff_port_ops, 21933 .inherits = &ata_sff_port_ops,
22772 .cable_detect = ata_cable_40wire, 21934 .cable_detect = ata_cable_40wire,
22773 .set_mode = rz1000_set_mode, 21935 .set_mode = rz1000_set_mode,
22774diff -urNp linux-2.6.38.3/drivers/ata/pata_samsung_cf.c linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 21936diff -urNp linux-2.6.38.2/drivers/ata/pata_samsung_cf.c linux-2.6.38.2/drivers/ata/pata_samsung_cf.c
22775--- linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 2011-03-14 21:20:32.000000000 -0400 21937--- linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 2011-03-14 21:20:32.000000000 -0400
22776+++ linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 2011-04-17 15:57:32.000000000 -0400 21938+++ linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 2011-03-21 18:31:35.000000000 -0400
22777@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3 21939@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3
22778 ATA_PIO_SHT(DRV_NAME), 21940 ATA_PIO_SHT(DRV_NAME),
22779 }; 21941 };
@@ -22792,9 +21954,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_samsung_cf.c linux-2.6.38.3/drivers/a
22792 .inherits = &ata_sff_port_ops, 21954 .inherits = &ata_sff_port_ops,
22793 .set_piomode = pata_s3c_set_piomode, 21955 .set_piomode = pata_s3c_set_piomode,
22794 }; 21956 };
22795diff -urNp linux-2.6.38.3/drivers/ata/pata_sc1200.c linux-2.6.38.3/drivers/ata/pata_sc1200.c 21957diff -urNp linux-2.6.38.2/drivers/ata/pata_sc1200.c linux-2.6.38.2/drivers/ata/pata_sc1200.c
22796--- linux-2.6.38.3/drivers/ata/pata_sc1200.c 2011-03-14 21:20:32.000000000 -0400 21958--- linux-2.6.38.2/drivers/ata/pata_sc1200.c 2011-03-14 21:20:32.000000000 -0400
22797+++ linux-2.6.38.3/drivers/ata/pata_sc1200.c 2011-04-17 15:57:32.000000000 -0400 21959+++ linux-2.6.38.2/drivers/ata/pata_sc1200.c 2011-03-21 18:31:35.000000000 -0400
22798@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_ 21960@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_
22799 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21961 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
22800 }; 21962 };
@@ -22804,9 +21966,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sc1200.c linux-2.6.38.3/drivers/ata/p
22804 .inherits = &ata_bmdma_port_ops, 21966 .inherits = &ata_bmdma_port_ops,
22805 .qc_prep = ata_bmdma_dumb_qc_prep, 21967 .qc_prep = ata_bmdma_dumb_qc_prep,
22806 .qc_issue = sc1200_qc_issue, 21968 .qc_issue = sc1200_qc_issue,
22807diff -urNp linux-2.6.38.3/drivers/ata/pata_scc.c linux-2.6.38.3/drivers/ata/pata_scc.c 21969diff -urNp linux-2.6.38.2/drivers/ata/pata_scc.c linux-2.6.38.2/drivers/ata/pata_scc.c
22808--- linux-2.6.38.3/drivers/ata/pata_scc.c 2011-03-14 21:20:32.000000000 -0400 21970--- linux-2.6.38.2/drivers/ata/pata_scc.c 2011-03-14 21:20:32.000000000 -0400
22809+++ linux-2.6.38.3/drivers/ata/pata_scc.c 2011-04-17 15:57:32.000000000 -0400 21971+++ linux-2.6.38.2/drivers/ata/pata_scc.c 2011-03-21 18:31:35.000000000 -0400
22810@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht 21972@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht
22811 ATA_BMDMA_SHT(DRV_NAME), 21973 ATA_BMDMA_SHT(DRV_NAME),
22812 }; 21974 };
@@ -22816,9 +21978,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_scc.c linux-2.6.38.3/drivers/ata/pata
22816 .inherits = &ata_bmdma_port_ops, 21978 .inherits = &ata_bmdma_port_ops,
22817 21979
22818 .set_piomode = scc_set_piomode, 21980 .set_piomode = scc_set_piomode,
22819diff -urNp linux-2.6.38.3/drivers/ata/pata_sch.c linux-2.6.38.3/drivers/ata/pata_sch.c 21981diff -urNp linux-2.6.38.2/drivers/ata/pata_sch.c linux-2.6.38.2/drivers/ata/pata_sch.c
22820--- linux-2.6.38.3/drivers/ata/pata_sch.c 2011-03-14 21:20:32.000000000 -0400 21982--- linux-2.6.38.2/drivers/ata/pata_sch.c 2011-03-14 21:20:32.000000000 -0400
22821+++ linux-2.6.38.3/drivers/ata/pata_sch.c 2011-04-17 15:57:32.000000000 -0400 21983+++ linux-2.6.38.2/drivers/ata/pata_sch.c 2011-03-21 18:31:35.000000000 -0400
22822@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht 21984@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht
22823 ATA_BMDMA_SHT(DRV_NAME), 21985 ATA_BMDMA_SHT(DRV_NAME),
22824 }; 21986 };
@@ -22828,9 +21990,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sch.c linux-2.6.38.3/drivers/ata/pata
22828 .inherits = &ata_bmdma_port_ops, 21990 .inherits = &ata_bmdma_port_ops,
22829 .cable_detect = ata_cable_unknown, 21991 .cable_detect = ata_cable_unknown,
22830 .set_piomode = sch_set_piomode, 21992 .set_piomode = sch_set_piomode,
22831diff -urNp linux-2.6.38.3/drivers/ata/pata_serverworks.c linux-2.6.38.3/drivers/ata/pata_serverworks.c 21993diff -urNp linux-2.6.38.2/drivers/ata/pata_serverworks.c linux-2.6.38.2/drivers/ata/pata_serverworks.c
22832--- linux-2.6.38.3/drivers/ata/pata_serverworks.c 2011-03-14 21:20:32.000000000 -0400 21994--- linux-2.6.38.2/drivers/ata/pata_serverworks.c 2011-03-14 21:20:32.000000000 -0400
22833+++ linux-2.6.38.3/drivers/ata/pata_serverworks.c 2011-04-17 15:57:32.000000000 -0400 21995+++ linux-2.6.38.2/drivers/ata/pata_serverworks.c 2011-03-21 18:31:35.000000000 -0400
22834@@ -300,7 +300,7 @@ static struct scsi_host_template serverw 21996@@ -300,7 +300,7 @@ static struct scsi_host_template serverw
22835 ATA_BMDMA_SHT(DRV_NAME), 21997 ATA_BMDMA_SHT(DRV_NAME),
22836 }; 21998 };
@@ -22849,9 +22011,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_serverworks.c linux-2.6.38.3/drivers/
22849 .inherits = &serverworks_osb4_port_ops, 22011 .inherits = &serverworks_osb4_port_ops,
22850 .mode_filter = serverworks_csb_filter, 22012 .mode_filter = serverworks_csb_filter,
22851 }; 22013 };
22852diff -urNp linux-2.6.38.3/drivers/ata/pata_sil680.c linux-2.6.38.3/drivers/ata/pata_sil680.c 22014diff -urNp linux-2.6.38.2/drivers/ata/pata_sil680.c linux-2.6.38.2/drivers/ata/pata_sil680.c
22853--- linux-2.6.38.3/drivers/ata/pata_sil680.c 2011-03-14 21:20:32.000000000 -0400 22015--- linux-2.6.38.2/drivers/ata/pata_sil680.c 2011-03-14 21:20:32.000000000 -0400
22854+++ linux-2.6.38.3/drivers/ata/pata_sil680.c 2011-04-17 15:57:32.000000000 -0400 22016+++ linux-2.6.38.2/drivers/ata/pata_sil680.c 2011-03-21 18:31:35.000000000 -0400
22855@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_ 22017@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_
22856 ATA_BMDMA_SHT(DRV_NAME), 22018 ATA_BMDMA_SHT(DRV_NAME),
22857 }; 22019 };
@@ -22862,9 +22024,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sil680.c linux-2.6.38.3/drivers/ata/p
22862 .inherits = &ata_bmdma32_port_ops, 22024 .inherits = &ata_bmdma32_port_ops,
22863 .sff_exec_command = sil680_sff_exec_command, 22025 .sff_exec_command = sil680_sff_exec_command,
22864 .sff_irq_check = sil680_sff_irq_check, 22026 .sff_irq_check = sil680_sff_irq_check,
22865diff -urNp linux-2.6.38.3/drivers/ata/pata_sis.c linux-2.6.38.3/drivers/ata/pata_sis.c 22027diff -urNp linux-2.6.38.2/drivers/ata/pata_sis.c linux-2.6.38.2/drivers/ata/pata_sis.c
22866--- linux-2.6.38.3/drivers/ata/pata_sis.c 2011-03-14 21:20:32.000000000 -0400 22028--- linux-2.6.38.2/drivers/ata/pata_sis.c 2011-03-14 21:20:32.000000000 -0400
22867+++ linux-2.6.38.3/drivers/ata/pata_sis.c 2011-04-17 15:57:32.000000000 -0400 22029+++ linux-2.6.38.2/drivers/ata/pata_sis.c 2011-03-21 18:31:35.000000000 -0400
22868@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht 22030@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht
22869 ATA_BMDMA_SHT(DRV_NAME), 22031 ATA_BMDMA_SHT(DRV_NAME),
22870 }; 22032 };
@@ -22920,9 +22082,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sis.c linux-2.6.38.3/drivers/ata/pata
22920 .inherits = &sis_base_ops, 22082 .inherits = &sis_base_ops,
22921 .set_piomode = sis_old_set_piomode, 22083 .set_piomode = sis_old_set_piomode,
22922 .set_dmamode = sis_old_set_dmamode, 22084 .set_dmamode = sis_old_set_dmamode,
22923diff -urNp linux-2.6.38.3/drivers/ata/pata_sl82c105.c linux-2.6.38.3/drivers/ata/pata_sl82c105.c 22085diff -urNp linux-2.6.38.2/drivers/ata/pata_sl82c105.c linux-2.6.38.2/drivers/ata/pata_sl82c105.c
22924--- linux-2.6.38.3/drivers/ata/pata_sl82c105.c 2011-03-14 21:20:32.000000000 -0400 22086--- linux-2.6.38.2/drivers/ata/pata_sl82c105.c 2011-03-14 21:20:32.000000000 -0400
22925+++ linux-2.6.38.3/drivers/ata/pata_sl82c105.c 2011-04-17 15:57:32.000000000 -0400 22087+++ linux-2.6.38.2/drivers/ata/pata_sl82c105.c 2011-03-21 18:31:35.000000000 -0400
22926@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10 22088@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10
22927 ATA_BMDMA_SHT(DRV_NAME), 22089 ATA_BMDMA_SHT(DRV_NAME),
22928 }; 22090 };
@@ -22932,9 +22094,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sl82c105.c linux-2.6.38.3/drivers/ata
22932 .inherits = &ata_bmdma_port_ops, 22094 .inherits = &ata_bmdma_port_ops,
22933 .qc_defer = sl82c105_qc_defer, 22095 .qc_defer = sl82c105_qc_defer,
22934 .bmdma_start = sl82c105_bmdma_start, 22096 .bmdma_start = sl82c105_bmdma_start,
22935diff -urNp linux-2.6.38.3/drivers/ata/pata_triflex.c linux-2.6.38.3/drivers/ata/pata_triflex.c 22097diff -urNp linux-2.6.38.2/drivers/ata/pata_triflex.c linux-2.6.38.2/drivers/ata/pata_triflex.c
22936--- linux-2.6.38.3/drivers/ata/pata_triflex.c 2011-03-14 21:20:32.000000000 -0400 22098--- linux-2.6.38.2/drivers/ata/pata_triflex.c 2011-03-14 21:20:32.000000000 -0400
22937+++ linux-2.6.38.3/drivers/ata/pata_triflex.c 2011-04-17 15:57:32.000000000 -0400 22099+++ linux-2.6.38.2/drivers/ata/pata_triflex.c 2011-03-21 18:31:35.000000000 -0400
22938@@ -178,7 +178,7 @@ static struct scsi_host_template triflex 22100@@ -178,7 +178,7 @@ static struct scsi_host_template triflex
22939 ATA_BMDMA_SHT(DRV_NAME), 22101 ATA_BMDMA_SHT(DRV_NAME),
22940 }; 22102 };
@@ -22944,9 +22106,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_triflex.c linux-2.6.38.3/drivers/ata/
22944 .inherits = &ata_bmdma_port_ops, 22106 .inherits = &ata_bmdma_port_ops,
22945 .bmdma_start = triflex_bmdma_start, 22107 .bmdma_start = triflex_bmdma_start,
22946 .bmdma_stop = triflex_bmdma_stop, 22108 .bmdma_stop = triflex_bmdma_stop,
22947diff -urNp linux-2.6.38.3/drivers/ata/pata_via.c linux-2.6.38.3/drivers/ata/pata_via.c 22109diff -urNp linux-2.6.38.2/drivers/ata/pata_via.c linux-2.6.38.2/drivers/ata/pata_via.c
22948--- linux-2.6.38.3/drivers/ata/pata_via.c 2011-03-14 21:20:32.000000000 -0400 22110--- linux-2.6.38.2/drivers/ata/pata_via.c 2011-03-14 21:20:32.000000000 -0400
22949+++ linux-2.6.38.3/drivers/ata/pata_via.c 2011-04-17 15:57:32.000000000 -0400 22111+++ linux-2.6.38.2/drivers/ata/pata_via.c 2011-03-21 18:31:35.000000000 -0400
22950@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht 22112@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht
22951 ATA_BMDMA_SHT(DRV_NAME), 22113 ATA_BMDMA_SHT(DRV_NAME),
22952 }; 22114 };
@@ -22965,9 +22127,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_via.c linux-2.6.38.3/drivers/ata/pata
22965 .inherits = &via_port_ops, 22127 .inherits = &via_port_ops,
22966 .sff_data_xfer = ata_sff_data_xfer_noirq, 22128 .sff_data_xfer = ata_sff_data_xfer_noirq,
22967 }; 22129 };
22968diff -urNp linux-2.6.38.3/drivers/ata/pdc_adma.c linux-2.6.38.3/drivers/ata/pdc_adma.c 22130diff -urNp linux-2.6.38.2/drivers/ata/pdc_adma.c linux-2.6.38.2/drivers/ata/pdc_adma.c
22969--- linux-2.6.38.3/drivers/ata/pdc_adma.c 2011-03-14 21:20:32.000000000 -0400 22131--- linux-2.6.38.2/drivers/ata/pdc_adma.c 2011-03-14 21:20:32.000000000 -0400
22970+++ linux-2.6.38.3/drivers/ata/pdc_adma.c 2011-04-17 15:57:32.000000000 -0400 22132+++ linux-2.6.38.2/drivers/ata/pdc_adma.c 2011-03-21 18:31:35.000000000 -0400
22971@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at 22133@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at
22972 .dma_boundary = ADMA_DMA_BOUNDARY, 22134 .dma_boundary = ADMA_DMA_BOUNDARY,
22973 }; 22135 };
@@ -22977,9 +22139,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pdc_adma.c linux-2.6.38.3/drivers/ata/pdc_
22977 .inherits = &ata_sff_port_ops, 22139 .inherits = &ata_sff_port_ops,
22978 22140
22979 .lost_interrupt = ATA_OP_NULL, 22141 .lost_interrupt = ATA_OP_NULL,
22980diff -urNp linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 22142diff -urNp linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c
22981--- linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 2011-03-14 21:20:32.000000000 -0400 22143--- linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 2011-03-14 21:20:32.000000000 -0400
22982+++ linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 2011-04-17 15:57:32.000000000 -0400 22144+++ linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 2011-03-21 18:31:35.000000000 -0400
22983@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw 22145@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw
22984 .dma_boundary = ATA_DMA_BOUNDARY, 22146 .dma_boundary = ATA_DMA_BOUNDARY,
22985 }; 22147 };
@@ -22989,9 +22151,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c linux-2.6.38.3/drivers/at
22989 .inherits = &ata_sff_port_ops, 22151 .inherits = &ata_sff_port_ops,
22990 22152
22991 .error_handler = sata_dwc_error_handler, 22153 .error_handler = sata_dwc_error_handler,
22992diff -urNp linux-2.6.38.3/drivers/ata/sata_fsl.c linux-2.6.38.3/drivers/ata/sata_fsl.c 22154diff -urNp linux-2.6.38.2/drivers/ata/sata_fsl.c linux-2.6.38.2/drivers/ata/sata_fsl.c
22993--- linux-2.6.38.3/drivers/ata/sata_fsl.c 2011-03-14 21:20:32.000000000 -0400 22155--- linux-2.6.38.2/drivers/ata/sata_fsl.c 2011-03-14 21:20:32.000000000 -0400
22994+++ linux-2.6.38.3/drivers/ata/sata_fsl.c 2011-04-17 15:57:32.000000000 -0400 22156+++ linux-2.6.38.2/drivers/ata/sata_fsl.c 2011-03-21 18:31:35.000000000 -0400
22995@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs 22157@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs
22996 .dma_boundary = ATA_DMA_BOUNDARY, 22158 .dma_boundary = ATA_DMA_BOUNDARY,
22997 }; 22159 };
@@ -23001,9 +22163,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_fsl.c linux-2.6.38.3/drivers/ata/sata
23001 .inherits = &sata_pmp_port_ops, 22163 .inherits = &sata_pmp_port_ops,
23002 22164
23003 .qc_defer = ata_std_qc_defer, 22165 .qc_defer = ata_std_qc_defer,
23004diff -urNp linux-2.6.38.3/drivers/ata/sata_inic162x.c linux-2.6.38.3/drivers/ata/sata_inic162x.c 22166diff -urNp linux-2.6.38.2/drivers/ata/sata_inic162x.c linux-2.6.38.2/drivers/ata/sata_inic162x.c
23005--- linux-2.6.38.3/drivers/ata/sata_inic162x.c 2011-03-14 21:20:32.000000000 -0400 22167--- linux-2.6.38.2/drivers/ata/sata_inic162x.c 2011-03-14 21:20:32.000000000 -0400
23006+++ linux-2.6.38.3/drivers/ata/sata_inic162x.c 2011-04-17 15:57:32.000000000 -0400 22168+++ linux-2.6.38.2/drivers/ata/sata_inic162x.c 2011-03-21 18:31:35.000000000 -0400
23007@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po 22169@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po
23008 return 0; 22170 return 0;
23009 } 22171 }
@@ -23013,9 +22175,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_inic162x.c linux-2.6.38.3/drivers/ata
23013 .inherits = &sata_port_ops, 22175 .inherits = &sata_port_ops,
23014 22176
23015 .check_atapi_dma = inic_check_atapi_dma, 22177 .check_atapi_dma = inic_check_atapi_dma,
23016diff -urNp linux-2.6.38.3/drivers/ata/sata_mv.c linux-2.6.38.3/drivers/ata/sata_mv.c 22178diff -urNp linux-2.6.38.2/drivers/ata/sata_mv.c linux-2.6.38.2/drivers/ata/sata_mv.c
23017--- linux-2.6.38.3/drivers/ata/sata_mv.c 2011-03-14 21:20:32.000000000 -0400 22179--- linux-2.6.38.2/drivers/ata/sata_mv.c 2011-03-14 21:20:32.000000000 -0400
23018+++ linux-2.6.38.3/drivers/ata/sata_mv.c 2011-04-17 15:57:32.000000000 -0400 22180+++ linux-2.6.38.2/drivers/ata/sata_mv.c 2011-03-21 18:31:35.000000000 -0400
23019@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht 22181@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht
23020 .dma_boundary = MV_DMA_BOUNDARY, 22182 .dma_boundary = MV_DMA_BOUNDARY,
23021 }; 22183 };
@@ -23043,9 +22205,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_mv.c linux-2.6.38.3/drivers/ata/sata_
23043 .inherits = &mv6_ops, 22205 .inherits = &mv6_ops,
23044 .dev_config = ATA_OP_NULL, 22206 .dev_config = ATA_OP_NULL,
23045 .qc_prep = mv_qc_prep_iie, 22207 .qc_prep = mv_qc_prep_iie,
23046diff -urNp linux-2.6.38.3/drivers/ata/sata_nv.c linux-2.6.38.3/drivers/ata/sata_nv.c 22208diff -urNp linux-2.6.38.2/drivers/ata/sata_nv.c linux-2.6.38.2/drivers/ata/sata_nv.c
23047--- linux-2.6.38.3/drivers/ata/sata_nv.c 2011-03-14 21:20:32.000000000 -0400 22209--- linux-2.6.38.2/drivers/ata/sata_nv.c 2011-03-14 21:20:32.000000000 -0400
23048+++ linux-2.6.38.3/drivers/ata/sata_nv.c 2011-04-17 15:57:32.000000000 -0400 22210+++ linux-2.6.38.2/drivers/ata/sata_nv.c 2011-03-21 18:31:35.000000000 -0400
23049@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc 22211@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc
23050 * cases. Define nv_hardreset() which only kicks in for post-boot 22212 * cases. Define nv_hardreset() which only kicks in for post-boot
23051 * probing and use it for all variants. 22213 * probing and use it for all variants.
@@ -23088,9 +22250,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_nv.c linux-2.6.38.3/drivers/ata/sata_
23088 .inherits = &nv_generic_ops, 22250 .inherits = &nv_generic_ops,
23089 22251
23090 .qc_defer = ata_std_qc_defer, 22252 .qc_defer = ata_std_qc_defer,
23091diff -urNp linux-2.6.38.3/drivers/ata/sata_promise.c linux-2.6.38.3/drivers/ata/sata_promise.c 22253diff -urNp linux-2.6.38.2/drivers/ata/sata_promise.c linux-2.6.38.2/drivers/ata/sata_promise.c
23092--- linux-2.6.38.3/drivers/ata/sata_promise.c 2011-03-14 21:20:32.000000000 -0400 22254--- linux-2.6.38.2/drivers/ata/sata_promise.c 2011-03-14 21:20:32.000000000 -0400
23093+++ linux-2.6.38.3/drivers/ata/sata_promise.c 2011-04-17 15:57:32.000000000 -0400 22255+++ linux-2.6.38.2/drivers/ata/sata_promise.c 2011-03-21 18:31:35.000000000 -0400
23094@@ -196,7 +196,7 @@ static const struct ata_port_operations 22256@@ -196,7 +196,7 @@ static const struct ata_port_operations
23095 .error_handler = pdc_error_handler, 22257 .error_handler = pdc_error_handler,
23096 }; 22258 };
@@ -23117,9 +22279,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_promise.c linux-2.6.38.3/drivers/ata/
23117 .inherits = &pdc_common_ops, 22279 .inherits = &pdc_common_ops,
23118 .cable_detect = pdc_pata_cable_detect, 22280 .cable_detect = pdc_pata_cable_detect,
23119 .freeze = pdc_freeze, 22281 .freeze = pdc_freeze,
23120diff -urNp linux-2.6.38.3/drivers/ata/sata_qstor.c linux-2.6.38.3/drivers/ata/sata_qstor.c 22282diff -urNp linux-2.6.38.2/drivers/ata/sata_qstor.c linux-2.6.38.2/drivers/ata/sata_qstor.c
23121--- linux-2.6.38.3/drivers/ata/sata_qstor.c 2011-03-14 21:20:32.000000000 -0400 22283--- linux-2.6.38.2/drivers/ata/sata_qstor.c 2011-03-14 21:20:32.000000000 -0400
23122+++ linux-2.6.38.3/drivers/ata/sata_qstor.c 2011-04-17 15:57:32.000000000 -0400 22284+++ linux-2.6.38.2/drivers/ata/sata_qstor.c 2011-03-21 18:31:35.000000000 -0400
23123@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_ 22285@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_
23124 .dma_boundary = QS_DMA_BOUNDARY, 22286 .dma_boundary = QS_DMA_BOUNDARY,
23125 }; 22287 };
@@ -23129,9 +22291,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_qstor.c linux-2.6.38.3/drivers/ata/sa
23129 .inherits = &ata_sff_port_ops, 22291 .inherits = &ata_sff_port_ops,
23130 22292
23131 .check_atapi_dma = qs_check_atapi_dma, 22293 .check_atapi_dma = qs_check_atapi_dma,
23132diff -urNp linux-2.6.38.3/drivers/ata/sata_sil24.c linux-2.6.38.3/drivers/ata/sata_sil24.c 22294diff -urNp linux-2.6.38.2/drivers/ata/sata_sil24.c linux-2.6.38.2/drivers/ata/sata_sil24.c
23133--- linux-2.6.38.3/drivers/ata/sata_sil24.c 2011-03-14 21:20:32.000000000 -0400 22295--- linux-2.6.38.2/drivers/ata/sata_sil24.c 2011-03-14 21:20:32.000000000 -0400
23134+++ linux-2.6.38.3/drivers/ata/sata_sil24.c 2011-04-17 15:57:32.000000000 -0400 22296+++ linux-2.6.38.2/drivers/ata/sata_sil24.c 2011-03-21 18:31:35.000000000 -0400
23135@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s 22297@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s
23136 .dma_boundary = ATA_DMA_BOUNDARY, 22298 .dma_boundary = ATA_DMA_BOUNDARY,
23137 }; 22299 };
@@ -23141,9 +22303,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sil24.c linux-2.6.38.3/drivers/ata/sa
23141 .inherits = &sata_pmp_port_ops, 22303 .inherits = &sata_pmp_port_ops,
23142 22304
23143 .qc_defer = sil24_qc_defer, 22305 .qc_defer = sil24_qc_defer,
23144diff -urNp linux-2.6.38.3/drivers/ata/sata_sil.c linux-2.6.38.3/drivers/ata/sata_sil.c 22306diff -urNp linux-2.6.38.2/drivers/ata/sata_sil.c linux-2.6.38.2/drivers/ata/sata_sil.c
23145--- linux-2.6.38.3/drivers/ata/sata_sil.c 2011-03-14 21:20:32.000000000 -0400 22307--- linux-2.6.38.2/drivers/ata/sata_sil.c 2011-03-14 21:20:32.000000000 -0400
23146+++ linux-2.6.38.3/drivers/ata/sata_sil.c 2011-04-17 15:57:32.000000000 -0400 22308+++ linux-2.6.38.2/drivers/ata/sata_sil.c 2011-03-21 18:31:35.000000000 -0400
23147@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht 22309@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht
23148 .sg_tablesize = ATA_MAX_PRD 22310 .sg_tablesize = ATA_MAX_PRD
23149 }; 22311 };
@@ -23153,9 +22315,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sil.c linux-2.6.38.3/drivers/ata/sata
23153 .inherits = &ata_bmdma32_port_ops, 22315 .inherits = &ata_bmdma32_port_ops,
23154 .dev_config = sil_dev_config, 22316 .dev_config = sil_dev_config,
23155 .set_mode = sil_set_mode, 22317 .set_mode = sil_set_mode,
23156diff -urNp linux-2.6.38.3/drivers/ata/sata_sis.c linux-2.6.38.3/drivers/ata/sata_sis.c 22318diff -urNp linux-2.6.38.2/drivers/ata/sata_sis.c linux-2.6.38.2/drivers/ata/sata_sis.c
23157--- linux-2.6.38.3/drivers/ata/sata_sis.c 2011-03-14 21:20:32.000000000 -0400 22319--- linux-2.6.38.2/drivers/ata/sata_sis.c 2011-03-14 21:20:32.000000000 -0400
23158+++ linux-2.6.38.3/drivers/ata/sata_sis.c 2011-04-17 15:57:32.000000000 -0400 22320+++ linux-2.6.38.2/drivers/ata/sata_sis.c 2011-03-21 18:31:35.000000000 -0400
23159@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht 22321@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht
23160 ATA_BMDMA_SHT(DRV_NAME), 22322 ATA_BMDMA_SHT(DRV_NAME),
23161 }; 22323 };
@@ -23165,9 +22327,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sis.c linux-2.6.38.3/drivers/ata/sata
23165 .inherits = &ata_bmdma_port_ops, 22327 .inherits = &ata_bmdma_port_ops,
23166 .scr_read = sis_scr_read, 22328 .scr_read = sis_scr_read,
23167 .scr_write = sis_scr_write, 22329 .scr_write = sis_scr_write,
23168diff -urNp linux-2.6.38.3/drivers/ata/sata_svw.c linux-2.6.38.3/drivers/ata/sata_svw.c 22330diff -urNp linux-2.6.38.2/drivers/ata/sata_svw.c linux-2.6.38.2/drivers/ata/sata_svw.c
23169--- linux-2.6.38.3/drivers/ata/sata_svw.c 2011-03-14 21:20:32.000000000 -0400 22331--- linux-2.6.38.2/drivers/ata/sata_svw.c 2011-03-14 21:20:32.000000000 -0400
23170+++ linux-2.6.38.3/drivers/ata/sata_svw.c 2011-04-17 15:57:32.000000000 -0400 22332+++ linux-2.6.38.2/drivers/ata/sata_svw.c 2011-03-21 18:31:35.000000000 -0400
23171@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata 22333@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata
23172 }; 22334 };
23173 22335
@@ -23177,9 +22339,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_svw.c linux-2.6.38.3/drivers/ata/sata
23177 .inherits = &ata_bmdma_port_ops, 22339 .inherits = &ata_bmdma_port_ops,
23178 .sff_tf_load = k2_sata_tf_load, 22340 .sff_tf_load = k2_sata_tf_load,
23179 .sff_tf_read = k2_sata_tf_read, 22341 .sff_tf_read = k2_sata_tf_read,
23180diff -urNp linux-2.6.38.3/drivers/ata/sata_sx4.c linux-2.6.38.3/drivers/ata/sata_sx4.c 22342diff -urNp linux-2.6.38.2/drivers/ata/sata_sx4.c linux-2.6.38.2/drivers/ata/sata_sx4.c
23181--- linux-2.6.38.3/drivers/ata/sata_sx4.c 2011-03-14 21:20:32.000000000 -0400 22343--- linux-2.6.38.2/drivers/ata/sata_sx4.c 2011-03-14 21:20:32.000000000 -0400
23182+++ linux-2.6.38.3/drivers/ata/sata_sx4.c 2011-04-17 15:57:32.000000000 -0400 22344+++ linux-2.6.38.2/drivers/ata/sata_sx4.c 2011-03-21 18:31:35.000000000 -0400
23183@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat 22345@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat
23184 }; 22346 };
23185 22347
@@ -23189,9 +22351,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sx4.c linux-2.6.38.3/drivers/ata/sata
23189 .inherits = &ata_sff_port_ops, 22351 .inherits = &ata_sff_port_ops,
23190 22352
23191 .check_atapi_dma = pdc_check_atapi_dma, 22353 .check_atapi_dma = pdc_check_atapi_dma,
23192diff -urNp linux-2.6.38.3/drivers/ata/sata_uli.c linux-2.6.38.3/drivers/ata/sata_uli.c 22354diff -urNp linux-2.6.38.2/drivers/ata/sata_uli.c linux-2.6.38.2/drivers/ata/sata_uli.c
23193--- linux-2.6.38.3/drivers/ata/sata_uli.c 2011-03-14 21:20:32.000000000 -0400 22355--- linux-2.6.38.2/drivers/ata/sata_uli.c 2011-03-14 21:20:32.000000000 -0400
23194+++ linux-2.6.38.3/drivers/ata/sata_uli.c 2011-04-17 15:57:32.000000000 -0400 22356+++ linux-2.6.38.2/drivers/ata/sata_uli.c 2011-03-21 18:31:35.000000000 -0400
23195@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht 22357@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht
23196 ATA_BMDMA_SHT(DRV_NAME), 22358 ATA_BMDMA_SHT(DRV_NAME),
23197 }; 22359 };
@@ -23201,9 +22363,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_uli.c linux-2.6.38.3/drivers/ata/sata
23201 .inherits = &ata_bmdma_port_ops, 22363 .inherits = &ata_bmdma_port_ops,
23202 .scr_read = uli_scr_read, 22364 .scr_read = uli_scr_read,
23203 .scr_write = uli_scr_write, 22365 .scr_write = uli_scr_write,
23204diff -urNp linux-2.6.38.3/drivers/ata/sata_via.c linux-2.6.38.3/drivers/ata/sata_via.c 22366diff -urNp linux-2.6.38.2/drivers/ata/sata_via.c linux-2.6.38.2/drivers/ata/sata_via.c
23205--- linux-2.6.38.3/drivers/ata/sata_via.c 2011-03-14 21:20:32.000000000 -0400 22367--- linux-2.6.38.2/drivers/ata/sata_via.c 2011-03-14 21:20:32.000000000 -0400
23206+++ linux-2.6.38.3/drivers/ata/sata_via.c 2011-04-17 15:57:32.000000000 -0400 22368+++ linux-2.6.38.2/drivers/ata/sata_via.c 2011-03-21 18:31:35.000000000 -0400
23207@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh 22369@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh
23208 ATA_BMDMA_SHT(DRV_NAME), 22370 ATA_BMDMA_SHT(DRV_NAME),
23209 }; 22371 };
@@ -23242,9 +22404,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_via.c linux-2.6.38.3/drivers/ata/sata
23242 .inherits = &svia_base_ops, 22404 .inherits = &svia_base_ops,
23243 .hardreset = sata_std_hardreset, 22405 .hardreset = sata_std_hardreset,
23244 .scr_read = vt8251_scr_read, 22406 .scr_read = vt8251_scr_read,
23245diff -urNp linux-2.6.38.3/drivers/ata/sata_vsc.c linux-2.6.38.3/drivers/ata/sata_vsc.c 22407diff -urNp linux-2.6.38.2/drivers/ata/sata_vsc.c linux-2.6.38.2/drivers/ata/sata_vsc.c
23246--- linux-2.6.38.3/drivers/ata/sata_vsc.c 2011-03-14 21:20:32.000000000 -0400 22408--- linux-2.6.38.2/drivers/ata/sata_vsc.c 2011-03-14 21:20:32.000000000 -0400
23247+++ linux-2.6.38.3/drivers/ata/sata_vsc.c 2011-04-17 15:57:32.000000000 -0400 22409+++ linux-2.6.38.2/drivers/ata/sata_vsc.c 2011-03-21 18:31:35.000000000 -0400
23248@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat 22410@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat
23249 }; 22411 };
23250 22412
@@ -23254,9 +22416,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_vsc.c linux-2.6.38.3/drivers/ata/sata
23254 .inherits = &ata_bmdma_port_ops, 22416 .inherits = &ata_bmdma_port_ops,
23255 /* The IRQ handling is not quite standard SFF behaviour so we 22417 /* The IRQ handling is not quite standard SFF behaviour so we
23256 cannot use the default lost interrupt handler */ 22418 cannot use the default lost interrupt handler */
23257diff -urNp linux-2.6.38.3/drivers/atm/adummy.c linux-2.6.38.3/drivers/atm/adummy.c 22419diff -urNp linux-2.6.38.2/drivers/atm/adummy.c linux-2.6.38.2/drivers/atm/adummy.c
23258--- linux-2.6.38.3/drivers/atm/adummy.c 2011-03-14 21:20:32.000000000 -0400 22420--- linux-2.6.38.2/drivers/atm/adummy.c 2011-03-14 21:20:32.000000000 -0400
23259+++ linux-2.6.38.3/drivers/atm/adummy.c 2011-04-17 15:57:32.000000000 -0400 22421+++ linux-2.6.38.2/drivers/atm/adummy.c 2011-03-21 18:31:35.000000000 -0400
23260@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct 22422@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct
23261 vcc->pop(vcc, skb); 22423 vcc->pop(vcc, skb);
23262 else 22424 else
@@ -23266,9 +22428,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/adummy.c linux-2.6.38.3/drivers/atm/adummy
23266 22428
23267 return 0; 22429 return 0;
23268 } 22430 }
23269diff -urNp linux-2.6.38.3/drivers/atm/ambassador.c linux-2.6.38.3/drivers/atm/ambassador.c 22431diff -urNp linux-2.6.38.2/drivers/atm/ambassador.c linux-2.6.38.2/drivers/atm/ambassador.c
23270--- linux-2.6.38.3/drivers/atm/ambassador.c 2011-03-14 21:20:32.000000000 -0400 22432--- linux-2.6.38.2/drivers/atm/ambassador.c 2011-03-14 21:20:32.000000000 -0400
23271+++ linux-2.6.38.3/drivers/atm/ambassador.c 2011-04-17 15:57:32.000000000 -0400 22433+++ linux-2.6.38.2/drivers/atm/ambassador.c 2011-03-21 18:31:35.000000000 -0400
23272@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, 22434@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev,
23273 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx); 22435 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
23274 22436
@@ -23305,9 +22467,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/ambassador.c linux-2.6.38.3/drivers/atm/am
23305 return -ENOMEM; // ? 22467 return -ENOMEM; // ?
23306 } 22468 }
23307 22469
23308diff -urNp linux-2.6.38.3/drivers/atm/atmtcp.c linux-2.6.38.3/drivers/atm/atmtcp.c 22470diff -urNp linux-2.6.38.2/drivers/atm/atmtcp.c linux-2.6.38.2/drivers/atm/atmtcp.c
23309--- linux-2.6.38.3/drivers/atm/atmtcp.c 2011-03-14 21:20:32.000000000 -0400 22471--- linux-2.6.38.2/drivers/atm/atmtcp.c 2011-03-14 21:20:32.000000000 -0400
23310+++ linux-2.6.38.3/drivers/atm/atmtcp.c 2011-04-17 15:57:32.000000000 -0400 22472+++ linux-2.6.38.2/drivers/atm/atmtcp.c 2011-03-21 18:31:35.000000000 -0400
23311@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc 22473@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc
23312 if (vcc->pop) vcc->pop(vcc,skb); 22474 if (vcc->pop) vcc->pop(vcc,skb);
23313 else dev_kfree_skb(skb); 22475 else dev_kfree_skb(skb);
@@ -23357,9 +22519,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/atmtcp.c linux-2.6.38.3/drivers/atm/atmtcp
23357 done: 22519 done:
23358 if (vcc->pop) vcc->pop(vcc,skb); 22520 if (vcc->pop) vcc->pop(vcc,skb);
23359 else dev_kfree_skb(skb); 22521 else dev_kfree_skb(skb);
23360diff -urNp linux-2.6.38.3/drivers/atm/eni.c linux-2.6.38.3/drivers/atm/eni.c 22522diff -urNp linux-2.6.38.2/drivers/atm/eni.c linux-2.6.38.2/drivers/atm/eni.c
23361--- linux-2.6.38.3/drivers/atm/eni.c 2011-03-14 21:20:32.000000000 -0400 22523--- linux-2.6.38.2/drivers/atm/eni.c 2011-03-14 21:20:32.000000000 -0400
23362+++ linux-2.6.38.3/drivers/atm/eni.c 2011-04-17 15:57:32.000000000 -0400 22524+++ linux-2.6.38.2/drivers/atm/eni.c 2011-03-21 18:31:35.000000000 -0400
23363@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc) 22525@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc)
23364 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n", 22526 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
23365 vcc->dev->number); 22527 vcc->dev->number);
@@ -23405,9 +22567,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/eni.c linux-2.6.38.3/drivers/atm/eni.c
23405 wake_up(&eni_dev->tx_wait); 22567 wake_up(&eni_dev->tx_wait);
23406 dma_complete++; 22568 dma_complete++;
23407 } 22569 }
23408diff -urNp linux-2.6.38.3/drivers/atm/firestream.c linux-2.6.38.3/drivers/atm/firestream.c 22570diff -urNp linux-2.6.38.2/drivers/atm/firestream.c linux-2.6.38.2/drivers/atm/firestream.c
23409--- linux-2.6.38.3/drivers/atm/firestream.c 2011-03-14 21:20:32.000000000 -0400 22571--- linux-2.6.38.2/drivers/atm/firestream.c 2011-03-14 21:20:32.000000000 -0400
23410+++ linux-2.6.38.3/drivers/atm/firestream.c 2011-04-17 15:57:32.000000000 -0400 22572+++ linux-2.6.38.2/drivers/atm/firestream.c 2011-03-21 18:31:35.000000000 -0400
23411@@ -749,7 +749,7 @@ static void process_txdone_queue (struct 22573@@ -749,7 +749,7 @@ static void process_txdone_queue (struct
23412 } 22574 }
23413 } 22575 }
@@ -23441,9 +22603,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/firestream.c linux-2.6.38.3/drivers/atm/fi
23441 break; 22603 break;
23442 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */ 22604 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
23443 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n", 22605 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
23444diff -urNp linux-2.6.38.3/drivers/atm/fore200e.c linux-2.6.38.3/drivers/atm/fore200e.c 22606diff -urNp linux-2.6.38.2/drivers/atm/fore200e.c linux-2.6.38.2/drivers/atm/fore200e.c
23445--- linux-2.6.38.3/drivers/atm/fore200e.c 2011-03-14 21:20:32.000000000 -0400 22607--- linux-2.6.38.2/drivers/atm/fore200e.c 2011-03-14 21:20:32.000000000 -0400
23446+++ linux-2.6.38.3/drivers/atm/fore200e.c 2011-04-17 15:57:32.000000000 -0400 22608+++ linux-2.6.38.2/drivers/atm/fore200e.c 2011-03-21 18:31:35.000000000 -0400
23447@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200 22609@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200
23448 #endif 22610 #endif
23449 /* check error condition */ 22611 /* check error condition */
@@ -23500,9 +22662,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/fore200e.c linux-2.6.38.3/drivers/atm/fore
23500 22662
23501 fore200e->tx_sat++; 22663 fore200e->tx_sat++;
23502 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", 22664 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
23503diff -urNp linux-2.6.38.3/drivers/atm/he.c linux-2.6.38.3/drivers/atm/he.c 22665diff -urNp linux-2.6.38.2/drivers/atm/he.c linux-2.6.38.2/drivers/atm/he.c
23504--- linux-2.6.38.3/drivers/atm/he.c 2011-03-14 21:20:32.000000000 -0400 22666--- linux-2.6.38.2/drivers/atm/he.c 2011-03-14 21:20:32.000000000 -0400
23505+++ linux-2.6.38.3/drivers/atm/he.c 2011-04-17 15:57:32.000000000 -0400 22667+++ linux-2.6.38.2/drivers/atm/he.c 2011-03-21 18:31:35.000000000 -0400
23506@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i 22668@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i
23507 22669
23508 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) { 22670 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
@@ -23584,9 +22746,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/he.c linux-2.6.38.3/drivers/atm/he.c
23584 22746
23585 return 0; 22747 return 0;
23586 } 22748 }
23587diff -urNp linux-2.6.38.3/drivers/atm/horizon.c linux-2.6.38.3/drivers/atm/horizon.c 22749diff -urNp linux-2.6.38.2/drivers/atm/horizon.c linux-2.6.38.2/drivers/atm/horizon.c
23588--- linux-2.6.38.3/drivers/atm/horizon.c 2011-03-14 21:20:32.000000000 -0400 22750--- linux-2.6.38.2/drivers/atm/horizon.c 2011-03-14 21:20:32.000000000 -0400
23589+++ linux-2.6.38.3/drivers/atm/horizon.c 2011-04-17 15:57:32.000000000 -0400 22751+++ linux-2.6.38.2/drivers/atm/horizon.c 2011-03-21 18:31:35.000000000 -0400
23590@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev, 22752@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev,
23591 { 22753 {
23592 struct atm_vcc * vcc = ATM_SKB(skb)->vcc; 22754 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
@@ -23605,9 +22767,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/horizon.c linux-2.6.38.3/drivers/atm/horiz
23605 22767
23606 // free the skb 22768 // free the skb
23607 hrz_kfree_skb (skb); 22769 hrz_kfree_skb (skb);
23608diff -urNp linux-2.6.38.3/drivers/atm/idt77252.c linux-2.6.38.3/drivers/atm/idt77252.c 22770diff -urNp linux-2.6.38.2/drivers/atm/idt77252.c linux-2.6.38.2/drivers/atm/idt77252.c
23609--- linux-2.6.38.3/drivers/atm/idt77252.c 2011-03-14 21:20:32.000000000 -0400 22771--- linux-2.6.38.2/drivers/atm/idt77252.c 2011-03-14 21:20:32.000000000 -0400
23610+++ linux-2.6.38.3/drivers/atm/idt77252.c 2011-04-17 15:57:32.000000000 -0400 22772+++ linux-2.6.38.2/drivers/atm/idt77252.c 2011-03-21 18:31:35.000000000 -0400
23611@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str 22773@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str
23612 else 22774 else
23613 dev_kfree_skb(skb); 22775 dev_kfree_skb(skb);
@@ -23762,9 +22924,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/idt77252.c linux-2.6.38.3/drivers/atm/idt7
23762 return -ENOMEM; 22924 return -ENOMEM;
23763 } 22925 }
23764 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); 22926 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
23765diff -urNp linux-2.6.38.3/drivers/atm/iphase.c linux-2.6.38.3/drivers/atm/iphase.c 22927diff -urNp linux-2.6.38.2/drivers/atm/iphase.c linux-2.6.38.2/drivers/atm/iphase.c
23766--- linux-2.6.38.3/drivers/atm/iphase.c 2011-03-14 21:20:32.000000000 -0400 22928--- linux-2.6.38.2/drivers/atm/iphase.c 2011-03-14 21:20:32.000000000 -0400
23767+++ linux-2.6.38.3/drivers/atm/iphase.c 2011-04-17 15:57:32.000000000 -0400 22929+++ linux-2.6.38.2/drivers/atm/iphase.c 2011-03-21 18:31:35.000000000 -0400
23768@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev) 22930@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev)
23769 status = (u_short) (buf_desc_ptr->desc_mode); 22931 status = (u_short) (buf_desc_ptr->desc_mode);
23770 if (status & (RX_CER | RX_PTE | RX_OFL)) 22932 if (status & (RX_CER | RX_PTE | RX_OFL))
@@ -23861,9 +23023,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/iphase.c linux-2.6.38.3/drivers/atm/iphase
23861 if (iavcc->vc_desc_cnt > 10) { 23023 if (iavcc->vc_desc_cnt > 10) {
23862 vcc->tx_quota = vcc->tx_quota * 3 / 4; 23024 vcc->tx_quota = vcc->tx_quota * 3 / 4;
23863 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota ); 23025 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
23864diff -urNp linux-2.6.38.3/drivers/atm/lanai.c linux-2.6.38.3/drivers/atm/lanai.c 23026diff -urNp linux-2.6.38.2/drivers/atm/lanai.c linux-2.6.38.2/drivers/atm/lanai.c
23865--- linux-2.6.38.3/drivers/atm/lanai.c 2011-03-14 21:20:32.000000000 -0400 23027--- linux-2.6.38.2/drivers/atm/lanai.c 2011-03-14 21:20:32.000000000 -0400
23866+++ linux-2.6.38.3/drivers/atm/lanai.c 2011-04-17 15:57:32.000000000 -0400 23028+++ linux-2.6.38.2/drivers/atm/lanai.c 2011-03-21 18:31:35.000000000 -0400
23867@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l 23029@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l
23868 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); 23030 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
23869 lanai_endtx(lanai, lvcc); 23031 lanai_endtx(lanai, lvcc);
@@ -23918,9 +23080,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/lanai.c linux-2.6.38.3/drivers/atm/lanai.c
23918 lvcc->stats.x.aal5.service_rxcrc++; 23080 lvcc->stats.x.aal5.service_rxcrc++;
23919 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; 23081 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
23920 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); 23082 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
23921diff -urNp linux-2.6.38.3/drivers/atm/nicstar.c linux-2.6.38.3/drivers/atm/nicstar.c 23083diff -urNp linux-2.6.38.2/drivers/atm/nicstar.c linux-2.6.38.2/drivers/atm/nicstar.c
23922--- linux-2.6.38.3/drivers/atm/nicstar.c 2011-03-14 21:20:32.000000000 -0400 23084--- linux-2.6.38.2/drivers/atm/nicstar.c 2011-03-14 21:20:32.000000000 -0400
23923+++ linux-2.6.38.3/drivers/atm/nicstar.c 2011-04-17 15:57:32.000000000 -0400 23085+++ linux-2.6.38.2/drivers/atm/nicstar.c 2011-03-21 18:31:35.000000000 -0400
23924@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc, 23086@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc,
23925 if ((vc = (vc_map *) vcc->dev_data) == NULL) { 23087 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
23926 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n", 23088 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
@@ -24122,10 +23284,10 @@ diff -urNp linux-2.6.38.3/drivers/atm/nicstar.c linux-2.6.38.3/drivers/atm/nicst
24122 } 23284 }
24123 } 23285 }
24124 23286
24125diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/solos-pci.c 23287diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/solos-pci.c
24126--- linux-2.6.38.3/drivers/atm/solos-pci.c 2011-04-18 17:27:18.000000000 -0400 23288--- linux-2.6.38.2/drivers/atm/solos-pci.c 2011-03-14 21:20:32.000000000 -0400
24127+++ linux-2.6.38.3/drivers/atm/solos-pci.c 2011-04-17 16:53:16.000000000 -0400 23289+++ linux-2.6.38.2/drivers/atm/solos-pci.c 2011-03-21 18:31:35.000000000 -0400
24128@@ -715,7 +715,7 @@ void solos_bh(unsigned long card_arg) 23290@@ -717,7 +717,7 @@ void solos_bh(unsigned long card_arg)
24129 } 23291 }
24130 atm_charge(vcc, skb->truesize); 23292 atm_charge(vcc, skb->truesize);
24131 vcc->push(vcc, skb); 23293 vcc->push(vcc, skb);
@@ -24134,7 +23296,7 @@ diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/sol
24134 break; 23296 break;
24135 23297
24136 case PKT_STATUS: 23298 case PKT_STATUS:
24137@@ -1009,7 +1009,7 @@ static uint32_t fpga_tx(struct solos_car 23299@@ -1026,7 +1026,7 @@ static uint32_t fpga_tx(struct solos_car
24138 vcc = SKB_CB(oldskb)->vcc; 23300 vcc = SKB_CB(oldskb)->vcc;
24139 23301
24140 if (vcc) { 23302 if (vcc) {
@@ -24143,9 +23305,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/sol
24143 solos_pop(vcc, oldskb); 23305 solos_pop(vcc, oldskb);
24144 } else 23306 } else
24145 dev_kfree_skb_irq(oldskb); 23307 dev_kfree_skb_irq(oldskb);
24146diff -urNp linux-2.6.38.3/drivers/atm/suni.c linux-2.6.38.3/drivers/atm/suni.c 23308diff -urNp linux-2.6.38.2/drivers/atm/suni.c linux-2.6.38.2/drivers/atm/suni.c
24147--- linux-2.6.38.3/drivers/atm/suni.c 2011-03-14 21:20:32.000000000 -0400 23309--- linux-2.6.38.2/drivers/atm/suni.c 2011-03-14 21:20:32.000000000 -0400
24148+++ linux-2.6.38.3/drivers/atm/suni.c 2011-04-17 15:57:32.000000000 -0400 23310+++ linux-2.6.38.2/drivers/atm/suni.c 2011-03-21 18:31:35.000000000 -0400
24149@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock); 23311@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock);
24150 23312
24151 23313
@@ -24157,9 +23319,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/suni.c linux-2.6.38.3/drivers/atm/suni.c
24157 23319
24158 23320
24159 static void suni_hz(unsigned long from_timer) 23321 static void suni_hz(unsigned long from_timer)
24160diff -urNp linux-2.6.38.3/drivers/atm/uPD98402.c linux-2.6.38.3/drivers/atm/uPD98402.c 23322diff -urNp linux-2.6.38.2/drivers/atm/uPD98402.c linux-2.6.38.2/drivers/atm/uPD98402.c
24161--- linux-2.6.38.3/drivers/atm/uPD98402.c 2011-03-14 21:20:32.000000000 -0400 23323--- linux-2.6.38.2/drivers/atm/uPD98402.c 2011-03-14 21:20:32.000000000 -0400
24162+++ linux-2.6.38.3/drivers/atm/uPD98402.c 2011-04-17 15:57:32.000000000 -0400 23324+++ linux-2.6.38.2/drivers/atm/uPD98402.c 2011-03-21 18:31:35.000000000 -0400
24163@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d 23325@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d
24164 struct sonet_stats tmp; 23326 struct sonet_stats tmp;
24165 int error = 0; 23327 int error = 0;
@@ -24204,9 +23366,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/uPD98402.c linux-2.6.38.3/drivers/atm/uPD9
24204 return 0; 23366 return 0;
24205 } 23367 }
24206 23368
24207diff -urNp linux-2.6.38.3/drivers/atm/zatm.c linux-2.6.38.3/drivers/atm/zatm.c 23369diff -urNp linux-2.6.38.2/drivers/atm/zatm.c linux-2.6.38.2/drivers/atm/zatm.c
24208--- linux-2.6.38.3/drivers/atm/zatm.c 2011-03-14 21:20:32.000000000 -0400 23370--- linux-2.6.38.2/drivers/atm/zatm.c 2011-03-14 21:20:32.000000000 -0400
24209+++ linux-2.6.38.3/drivers/atm/zatm.c 2011-04-17 15:57:32.000000000 -0400 23371+++ linux-2.6.38.2/drivers/atm/zatm.c 2011-03-21 18:31:35.000000000 -0400
24210@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy 23372@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy
24211 } 23373 }
24212 if (!size) { 23374 if (!size) {
@@ -24234,9 +23396,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/zatm.c linux-2.6.38.3/drivers/atm/zatm.c
24234 wake_up(&zatm_vcc->tx_wait); 23396 wake_up(&zatm_vcc->tx_wait);
24235 } 23397 }
24236 23398
24237diff -urNp linux-2.6.38.3/drivers/block/cciss.c linux-2.6.38.3/drivers/block/cciss.c 23399diff -urNp linux-2.6.38.2/drivers/block/cciss.c linux-2.6.38.2/drivers/block/cciss.c
24238--- linux-2.6.38.3/drivers/block/cciss.c 2011-03-14 21:20:32.000000000 -0400 23400--- linux-2.6.38.2/drivers/block/cciss.c 2011-03-14 21:20:32.000000000 -0400
24239+++ linux-2.6.38.3/drivers/block/cciss.c 2011-04-17 15:57:32.000000000 -0400 23401+++ linux-2.6.38.2/drivers/block/cciss.c 2011-03-21 18:31:35.000000000 -0400
24240@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct 23402@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct
24241 int err; 23403 int err;
24242 u32 cp; 23404 u32 cp;
@@ -24246,9 +23408,9 @@ diff -urNp linux-2.6.38.3/drivers/block/cciss.c linux-2.6.38.3/drivers/block/cci
24246 err = 0; 23408 err = 0;
24247 err |= 23409 err |=
24248 copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 23410 copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
24249diff -urNp linux-2.6.38.3/drivers/char/agp/frontend.c linux-2.6.38.3/drivers/char/agp/frontend.c 23411diff -urNp linux-2.6.38.2/drivers/char/agp/frontend.c linux-2.6.38.2/drivers/char/agp/frontend.c
24250--- linux-2.6.38.3/drivers/char/agp/frontend.c 2011-03-14 21:20:32.000000000 -0400 23412--- linux-2.6.38.2/drivers/char/agp/frontend.c 2011-03-14 21:20:32.000000000 -0400
24251+++ linux-2.6.38.3/drivers/char/agp/frontend.c 2011-04-17 15:57:32.000000000 -0400 23413+++ linux-2.6.38.2/drivers/char/agp/frontend.c 2011-03-21 18:31:35.000000000 -0400
24252@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag 23414@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag
24253 if (copy_from_user(&reserve, arg, sizeof(struct agp_region))) 23415 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
24254 return -EFAULT; 23416 return -EFAULT;
@@ -24258,9 +23420,9 @@ diff -urNp linux-2.6.38.3/drivers/char/agp/frontend.c linux-2.6.38.3/drivers/cha
24258 return -EFAULT; 23420 return -EFAULT;
24259 23421
24260 client = agp_find_client_by_pid(reserve.pid); 23422 client = agp_find_client_by_pid(reserve.pid);
24261diff -urNp linux-2.6.38.3/drivers/char/agp/intel-agp.c linux-2.6.38.3/drivers/char/agp/intel-agp.c 23423diff -urNp linux-2.6.38.2/drivers/char/agp/intel-agp.c linux-2.6.38.2/drivers/char/agp/intel-agp.c
24262--- linux-2.6.38.3/drivers/char/agp/intel-agp.c 2011-03-14 21:20:32.000000000 -0400 23424--- linux-2.6.38.2/drivers/char/agp/intel-agp.c 2011-03-14 21:20:32.000000000 -0400
24263+++ linux-2.6.38.3/drivers/char/agp/intel-agp.c 2011-04-17 15:57:32.000000000 -0400 23425+++ linux-2.6.38.2/drivers/char/agp/intel-agp.c 2011-03-21 18:31:35.000000000 -0400
24264@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc 23426@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc
24265 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB), 23427 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB),
24266 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB), 23428 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB),
@@ -24270,64 +23432,9 @@ diff -urNp linux-2.6.38.3/drivers/char/agp/intel-agp.c linux-2.6.38.3/drivers/ch
24270 }; 23432 };
24271 23433
24272 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); 23434 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table);
24273diff -urNp linux-2.6.38.3/drivers/char/briq_panel.c linux-2.6.38.3/drivers/char/briq_panel.c 23435diff -urNp linux-2.6.38.2/drivers/char/hpet.c linux-2.6.38.2/drivers/char/hpet.c
24274--- linux-2.6.38.3/drivers/char/briq_panel.c 2011-03-14 21:20:32.000000000 -0400 23436--- linux-2.6.38.2/drivers/char/hpet.c 2011-03-14 21:20:32.000000000 -0400
24275+++ linux-2.6.38.3/drivers/char/briq_panel.c 2011-04-18 19:47:43.000000000 -0400 23437+++ linux-2.6.38.2/drivers/char/hpet.c 2011-03-21 18:31:35.000000000 -0400
24276@@ -9,6 +9,7 @@
24277 #include <linux/types.h>
24278 #include <linux/errno.h>
24279 #include <linux/tty.h>
24280+#include <linux/mutex.h>
24281 #include <linux/timer.h>
24282 #include <linux/kernel.h>
24283 #include <linux/wait.h>
24284@@ -34,6 +35,7 @@ static int vfd_is_open;
24285 static unsigned char vfd[40];
24286 static int vfd_cursor;
24287 static unsigned char ledpb, led;
24288+static DEFINE_MUTEX(vfd_mutex);
24289
24290 static void update_vfd(void)
24291 {
24292@@ -140,12 +142,15 @@ static ssize_t briq_panel_write(struct f
24293 if (!vfd_is_open)
24294 return -EBUSY;
24295
24296+ mutex_lock(&vfd_mutex);
24297 for (;;) {
24298 char c;
24299 if (!indx)
24300 break;
24301- if (get_user(c, buf))
24302+ if (get_user(c, buf)) {
24303+ mutex_unlock(&vfd_mutex);
24304 return -EFAULT;
24305+ }
24306 if (esc) {
24307 set_led(c);
24308 esc = 0;
24309@@ -175,6 +180,7 @@ static ssize_t briq_panel_write(struct f
24310 buf++;
24311 }
24312 update_vfd();
24313+ mutex_unlock(&vfd_mutex);
24314
24315 return len;
24316 }
24317diff -urNp linux-2.6.38.3/drivers/char/genrtc.c linux-2.6.38.3/drivers/char/genrtc.c
24318--- linux-2.6.38.3/drivers/char/genrtc.c 2011-03-14 21:20:32.000000000 -0400
24319+++ linux-2.6.38.3/drivers/char/genrtc.c 2011-04-18 19:43:14.000000000 -0400
24320@@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *fi
24321 switch (cmd) {
24322
24323 case RTC_PLL_GET:
24324+ memset(&pll, 0, sizeof(pll);
24325 if (get_rtc_pll(&pll))
24326 return -EINVAL;
24327 else
24328diff -urNp linux-2.6.38.3/drivers/char/hpet.c linux-2.6.38.3/drivers/char/hpet.c
24329--- linux-2.6.38.3/drivers/char/hpet.c 2011-03-14 21:20:32.000000000 -0400
24330+++ linux-2.6.38.3/drivers/char/hpet.c 2011-04-17 15:57:32.000000000 -0400
24331@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di 23438@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di
24332 } 23439 }
24333 23440
@@ -24346,9 +23453,9 @@ diff -urNp linux-2.6.38.3/drivers/char/hpet.c linux-2.6.38.3/drivers/char/hpet.c
24346 23453
24347 static int __init hpet_init(void) 23454 static int __init hpet_init(void)
24348 { 23455 {
24349diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 23456diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c
24350--- linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 2011-03-14 21:20:32.000000000 -0400 23457--- linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 2011-03-14 21:20:32.000000000 -0400
24351+++ linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 2011-04-17 15:57:32.000000000 -0400 23458+++ linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 2011-03-21 18:31:35.000000000 -0400
24352@@ -414,7 +414,7 @@ struct ipmi_smi { 23459@@ -414,7 +414,7 @@ struct ipmi_smi {
24353 struct proc_dir_entry *proc_dir; 23460 struct proc_dir_entry *proc_dir;
24354 char proc_dir_name[10]; 23461 char proc_dir_name[10];
@@ -24379,9 +23486,9 @@ diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.3/dri
24379 23486
24380 intf->proc_dir = NULL; 23487 intf->proc_dir = NULL;
24381 23488
24382diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 23489diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c
24383--- linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 2011-03-14 21:20:32.000000000 -0400 23490--- linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c 2011-03-14 21:20:32.000000000 -0400
24384+++ linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 2011-04-17 15:57:32.000000000 -0400 23491+++ linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c 2011-03-21 18:31:35.000000000 -0400
24385@@ -285,7 +285,7 @@ struct smi_info { 23492@@ -285,7 +285,7 @@ struct smi_info {
24386 unsigned char slave_addr; 23493 unsigned char slave_addr;
24387 23494
@@ -24412,49 +23519,9 @@ diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.38.3/driver
24412 23519
24413 new_smi->interrupt_disabled = 1; 23520 new_smi->interrupt_disabled = 1;
24414 atomic_set(&new_smi->stop_operation, 0); 23521 atomic_set(&new_smi->stop_operation, 0);
24415diff -urNp linux-2.6.38.3/drivers/char/istallion.c linux-2.6.38.3/drivers/char/istallion.c 23522diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
24416--- linux-2.6.38.3/drivers/char/istallion.c 2011-03-14 21:20:32.000000000 -0400 23523--- linux-2.6.38.2/drivers/char/mem.c 2011-03-14 21:20:32.000000000 -0400
24417+++ linux-2.6.38.3/drivers/char/istallion.c 2011-04-18 19:42:25.000000000 -0400 23524+++ linux-2.6.38.2/drivers/char/mem.c 2011-03-21 18:31:35.000000000 -0400
24418@@ -186,7 +186,6 @@ static struct ktermios stli_deftermios
24419 * re-used for each stats call.
24420 */
24421 static comstats_t stli_comstats;
24422-static combrd_t stli_brdstats;
24423 static struct asystats stli_cdkstats;
24424
24425 /*****************************************************************************/
24426@@ -4005,6 +4004,7 @@ static int stli_getbrdstats(combrd_t __u
24427 {
24428 struct stlibrd *brdp;
24429 unsigned int i;
24430+ combrd_t stli_brdstats;
24431
24432 if (copy_from_user(&stli_brdstats, bp, sizeof(combrd_t)))
24433 return -EFAULT;
24434diff -urNp linux-2.6.38.3/drivers/char/Kconfig linux-2.6.38.3/drivers/char/Kconfig
24435--- linux-2.6.38.3/drivers/char/Kconfig 2011-03-14 21:20:32.000000000 -0400
24436+++ linux-2.6.38.3/drivers/char/Kconfig 2011-04-18 19:19:48.000000000 -0400
24437@@ -90,7 +90,8 @@ config VT_HW_CONSOLE_BINDING
24438
24439 config DEVKMEM
24440 bool "/dev/kmem virtual device support"
24441- default y
24442+ default n
24443+ depends on !GRKERNSEC_KMEM
24444 help
24445 Say Y here if you want to support the /dev/kmem device. The
24446 /dev/kmem device is rarely used, but can be used for certain
24447@@ -1132,6 +1133,7 @@ config DEVPORT
24448 bool
24449 depends on !M68K
24450 depends on ISA || PCI
24451+ depends on !GRKERNSEC_KMEM
24452 default y
24453
24454 source "drivers/s390/char/Kconfig"
24455diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24456--- linux-2.6.38.3/drivers/char/mem.c 2011-03-14 21:20:32.000000000 -0400
24457+++ linux-2.6.38.3/drivers/char/mem.c 2011-04-17 15:57:32.000000000 -0400
24458@@ -18,6 +18,7 @@ 23525@@ -18,6 +18,7 @@
24459 #include <linux/raw.h> 23526 #include <linux/raw.h>
24460 #include <linux/tty.h> 23527 #include <linux/tty.h>
@@ -24474,33 +23541,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24474 static inline unsigned long size_inside_page(unsigned long start, 23541 static inline unsigned long size_inside_page(unsigned long start,
24475 unsigned long size) 23542 unsigned long size)
24476 { 23543 {
24477@@ -68,9 +73,13 @@ static inline int range_is_allowed(unsig 23544@@ -120,6 +125,7 @@ static ssize_t read_mem(struct file *fil
24478
24479 while (cursor < to) {
24480 if (!devmem_is_allowed(pfn)) {
24481+#ifdef CONFIG_GRKERNSEC_KMEM
24482+ gr_handle_mem_readwrite(from, to);
24483+#else
24484 printk(KERN_INFO
24485 "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
24486 current->comm, from, to);
24487+#endif
24488 return 0;
24489 }
24490 cursor += PAGE_SIZE;
24491@@ -78,6 +87,11 @@ static inline int range_is_allowed(unsig
24492 }
24493 return 1;
24494 }
24495+#elif defined(CONFIG_GRKERNSEC_KMEM)
24496+static inline int range_is_allowed(unsigned long pfn, unsigned long size)
24497+{
24498+ return 0;
24499+}
24500 #else
24501 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
24502 {
24503@@ -120,6 +134,7 @@ static ssize_t read_mem(struct file *fil
24504 23545
24505 while (count > 0) { 23546 while (count > 0) {
24506 unsigned long remaining; 23547 unsigned long remaining;
@@ -24508,7 +23549,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24508 23549
24509 sz = size_inside_page(p, count); 23550 sz = size_inside_page(p, count);
24510 23551
24511@@ -135,7 +150,23 @@ static ssize_t read_mem(struct file *fil 23552@@ -135,7 +141,23 @@ static ssize_t read_mem(struct file *fil
24512 if (!ptr) 23553 if (!ptr)
24513 return -EFAULT; 23554 return -EFAULT;
24514 23555
@@ -24533,7 +23574,31 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24533 unxlate_dev_mem_ptr(p, ptr); 23574 unxlate_dev_mem_ptr(p, ptr);
24534 if (remaining) 23575 if (remaining)
24535 return -EFAULT; 23576 return -EFAULT;
24536@@ -398,9 +429,8 @@ static ssize_t read_kmem(struct file *fi 23577@@ -161,6 +183,11 @@ static ssize_t write_mem(struct file *fi
23578 if (!valid_phys_addr_range(p, count))
23579 return -EFAULT;
23580
23581+#ifdef CONFIG_GRKERNSEC_KMEM
23582+ gr_handle_mem_write();
23583+ return -EPERM;
23584+#endif
23585+
23586 written = 0;
23587
23588 #ifdef __ARCH_HAS_NO_PAGE_ZERO_MAPPED
23589@@ -316,6 +343,11 @@ static int mmap_mem(struct file *file, s
23590 &vma->vm_page_prot))
23591 return -EINVAL;
23592
23593+#ifdef CONFIG_GRKERNSEC_KMEM
23594+ if (gr_handle_mem_mmap(vma->vm_pgoff << PAGE_SHIFT, vma))
23595+ return -EPERM;
23596+#endif
23597+
23598 vma->vm_page_prot = phys_mem_access_prot(file, vma->vm_pgoff,
23599 size,
23600 vma->vm_page_prot);
23601@@ -398,9 +430,8 @@ static ssize_t read_kmem(struct file *fi
24537 size_t count, loff_t *ppos) 23602 size_t count, loff_t *ppos)
24538 { 23603 {
24539 unsigned long p = *ppos; 23604 unsigned long p = *ppos;
@@ -24544,7 +23609,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24544 23609
24545 read = 0; 23610 read = 0;
24546 if (p < (unsigned long) high_memory) { 23611 if (p < (unsigned long) high_memory) {
24547@@ -422,6 +452,8 @@ static ssize_t read_kmem(struct file *fi 23612@@ -422,6 +453,8 @@ static ssize_t read_kmem(struct file *fi
24548 } 23613 }
24549 #endif 23614 #endif
24550 while (low_count > 0) { 23615 while (low_count > 0) {
@@ -24553,7 +23618,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24553 sz = size_inside_page(p, low_count); 23618 sz = size_inside_page(p, low_count);
24554 23619
24555 /* 23620 /*
24556@@ -431,7 +463,22 @@ static ssize_t read_kmem(struct file *fi 23621@@ -431,7 +464,22 @@ static ssize_t read_kmem(struct file *fi
24557 */ 23622 */
24558 kbuf = xlate_dev_kmem_ptr((char *)p); 23623 kbuf = xlate_dev_kmem_ptr((char *)p);
24559 23624
@@ -24577,7 +23642,44 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24577 return -EFAULT; 23642 return -EFAULT;
24578 buf += sz; 23643 buf += sz;
24579 p += sz; 23644 p += sz;
24580@@ -857,6 +904,9 @@ static const struct memdev { 23645@@ -530,6 +578,11 @@ static ssize_t write_kmem(struct file *f
23646 char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */
23647 int err = 0;
23648
23649+#ifdef CONFIG_GRKERNSEC_KMEM
23650+ gr_handle_kmem_write();
23651+ return -EPERM;
23652+#endif
23653+
23654 if (p < (unsigned long) high_memory) {
23655 unsigned long to_write = min_t(unsigned long, count,
23656 (unsigned long)high_memory - p);
23657@@ -731,6 +784,16 @@ static loff_t memory_lseek(struct file *
23658
23659 static int open_port(struct inode * inode, struct file * filp)
23660 {
23661+#ifdef CONFIG_GRKERNSEC_KMEM
23662+ gr_handle_open_port();
23663+ return -EPERM;
23664+#endif
23665+
23666+ return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
23667+}
23668+
23669+static int open_mem(struct inode * inode, struct file * filp)
23670+{
23671 return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
23672 }
23673
23674@@ -738,7 +801,6 @@ static int open_port(struct inode * inod
23675 #define full_lseek null_lseek
23676 #define write_zero write_null
23677 #define read_full read_zero
23678-#define open_mem open_port
23679 #define open_kmem open_mem
23680 #define open_oldmem open_mem
23681
23682@@ -857,6 +919,9 @@ static const struct memdev {
24581 #ifdef CONFIG_CRASH_DUMP 23683 #ifdef CONFIG_CRASH_DUMP
24582 [12] = { "oldmem", 0, &oldmem_fops, NULL }, 23684 [12] = { "oldmem", 0, &oldmem_fops, NULL },
24583 #endif 23685 #endif
@@ -24587,9 +23689,9 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24587 }; 23689 };
24588 23690
24589 static int memory_open(struct inode *inode, struct file *filp) 23691 static int memory_open(struct inode *inode, struct file *filp)
24590diff -urNp linux-2.6.38.3/drivers/char/nvram.c linux-2.6.38.3/drivers/char/nvram.c 23692diff -urNp linux-2.6.38.2/drivers/char/nvram.c linux-2.6.38.2/drivers/char/nvram.c
24591--- linux-2.6.38.3/drivers/char/nvram.c 2011-03-14 21:20:32.000000000 -0400 23693--- linux-2.6.38.2/drivers/char/nvram.c 2011-03-14 21:20:32.000000000 -0400
24592+++ linux-2.6.38.3/drivers/char/nvram.c 2011-04-17 15:57:32.000000000 -0400 23694+++ linux-2.6.38.2/drivers/char/nvram.c 2011-03-21 18:31:35.000000000 -0400
24593@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f 23695@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f
24594 23696
24595 spin_unlock_irq(&rtc_lock); 23697 spin_unlock_irq(&rtc_lock);
@@ -24611,9 +23713,9 @@ diff -urNp linux-2.6.38.3/drivers/char/nvram.c linux-2.6.38.3/drivers/char/nvram
24611 }; 23713 };
24612 23714
24613 static int __init nvram_init(void) 23715 static int __init nvram_init(void)
24614diff -urNp linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 23716diff -urNp linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c
24615--- linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-03-14 21:20:32.000000000 -0400 23717--- linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 2011-03-14 21:20:32.000000000 -0400
24616+++ linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-04-17 15:57:32.000000000 -0400 23718+++ linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 2011-03-21 18:31:35.000000000 -0400
24617@@ -29,6 +29,7 @@ 23719@@ -29,6 +29,7 @@
24618 #include <linux/tty_driver.h> 23720 #include <linux/tty_driver.h>
24619 #include <linux/tty_flip.h> 23721 #include <linux/tty_flip.h>
@@ -24736,9 +23838,9 @@ diff -urNp linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.3/dr
24736 do_ipw_close(ttyj); 23838 do_ipw_close(ttyj);
24737 ipwireless_disassociate_network_ttys(network, 23839 ipwireless_disassociate_network_ttys(network,
24738 ttyj->channel_idx); 23840 ttyj->channel_idx);
24739diff -urNp linux-2.6.38.3/drivers/char/random.c linux-2.6.38.3/drivers/char/random.c 23841diff -urNp linux-2.6.38.2/drivers/char/random.c linux-2.6.38.2/drivers/char/random.c
24740--- linux-2.6.38.3/drivers/char/random.c 2011-03-14 21:20:32.000000000 -0400 23842--- linux-2.6.38.2/drivers/char/random.c 2011-03-14 21:20:32.000000000 -0400
24741+++ linux-2.6.38.3/drivers/char/random.c 2011-04-17 15:57:32.000000000 -0400 23843+++ linux-2.6.38.2/drivers/char/random.c 2011-03-21 18:31:35.000000000 -0400
24742@@ -254,8 +254,13 @@ 23844@@ -254,8 +254,13 @@
24743 /* 23845 /*
24744 * Configuration information 23846 * Configuration information
@@ -24789,9 +23891,9 @@ diff -urNp linux-2.6.38.3/drivers/char/random.c linux-2.6.38.3/drivers/char/rand
24789 static int max_write_thresh = INPUT_POOL_WORDS * 32; 23891 static int max_write_thresh = INPUT_POOL_WORDS * 32;
24790 static char sysctl_bootid[16]; 23892 static char sysctl_bootid[16];
24791 23893
24792diff -urNp linux-2.6.38.3/drivers/char/sonypi.c linux-2.6.38.3/drivers/char/sonypi.c 23894diff -urNp linux-2.6.38.2/drivers/char/sonypi.c linux-2.6.38.2/drivers/char/sonypi.c
24793--- linux-2.6.38.3/drivers/char/sonypi.c 2011-03-14 21:20:32.000000000 -0400 23895--- linux-2.6.38.2/drivers/char/sonypi.c 2011-03-14 21:20:32.000000000 -0400
24794+++ linux-2.6.38.3/drivers/char/sonypi.c 2011-04-17 15:57:32.000000000 -0400 23896+++ linux-2.6.38.2/drivers/char/sonypi.c 2011-03-21 18:31:35.000000000 -0400
24795@@ -55,6 +55,7 @@ 23897@@ -55,6 +55,7 @@
24796 #include <asm/uaccess.h> 23898 #include <asm/uaccess.h>
24797 #include <asm/io.h> 23899 #include <asm/io.h>
@@ -24830,9 +23932,9 @@ diff -urNp linux-2.6.38.3/drivers/char/sonypi.c linux-2.6.38.3/drivers/char/sony
24830 mutex_unlock(&sonypi_device.lock); 23932 mutex_unlock(&sonypi_device.lock);
24831 23933
24832 return 0; 23934 return 0;
24833diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm_bios.c linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 23935diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm_bios.c linux-2.6.38.2/drivers/char/tpm/tpm_bios.c
24834--- linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 2011-03-14 21:20:32.000000000 -0400 23936--- linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 2011-03-14 21:20:32.000000000 -0400
24835+++ linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 2011-04-17 15:57:32.000000000 -0400 23937+++ linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 2011-03-21 18:31:35.000000000 -0400
24836@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start 23938@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start
24837 event = addr; 23939 event = addr;
24838 23940
@@ -24873,9 +23975,9 @@ diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm_bios.c linux-2.6.38.3/drivers/cha
24873 23975
24874 memcpy(log->bios_event_log, virt, len); 23976 memcpy(log->bios_event_log, virt, len);
24875 23977
24876diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm.c linux-2.6.38.3/drivers/char/tpm/tpm.c 23978diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm.c linux-2.6.38.2/drivers/char/tpm/tpm.c
24877--- linux-2.6.38.3/drivers/char/tpm/tpm.c 2011-04-18 17:27:18.000000000 -0400 23979--- linux-2.6.38.2/drivers/char/tpm/tpm.c 2011-03-14 21:20:32.000000000 -0400
24878+++ linux-2.6.38.3/drivers/char/tpm/tpm.c 2011-04-17 16:53:16.000000000 -0400 23980+++ linux-2.6.38.2/drivers/char/tpm/tpm.c 2011-03-21 18:31:35.000000000 -0400
24879@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c 23981@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c
24880 chip->vendor.req_complete_val) 23982 chip->vendor.req_complete_val)
24881 goto out_recv; 23983 goto out_recv;
@@ -24885,9 +23987,9 @@ diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm.c linux-2.6.38.3/drivers/char/tpm
24885 dev_err(chip->dev, "Operation Canceled\n"); 23987 dev_err(chip->dev, "Operation Canceled\n");
24886 rc = -ECANCELED; 23988 rc = -ECANCELED;
24887 goto out; 23989 goto out;
24888diff -urNp linux-2.6.38.3/drivers/cpuidle/sysfs.c linux-2.6.38.3/drivers/cpuidle/sysfs.c 23990diff -urNp linux-2.6.38.2/drivers/cpuidle/sysfs.c linux-2.6.38.2/drivers/cpuidle/sysfs.c
24889--- linux-2.6.38.3/drivers/cpuidle/sysfs.c 2011-03-14 21:20:32.000000000 -0400 23991--- linux-2.6.38.2/drivers/cpuidle/sysfs.c 2011-03-14 21:20:32.000000000 -0400
24890+++ linux-2.6.38.3/drivers/cpuidle/sysfs.c 2011-04-17 15:57:32.000000000 -0400 23992+++ linux-2.6.38.2/drivers/cpuidle/sysfs.c 2011-03-21 18:31:35.000000000 -0400
24891@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui 23993@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui
24892 .release = cpuidle_state_sysfs_release, 23994 .release = cpuidle_state_sysfs_release,
24893 }; 23995 };
@@ -24897,9 +23999,9 @@ diff -urNp linux-2.6.38.3/drivers/cpuidle/sysfs.c linux-2.6.38.3/drivers/cpuidle
24897 { 23999 {
24898 kobject_put(&device->kobjs[i]->kobj); 24000 kobject_put(&device->kobjs[i]->kobj);
24899 wait_for_completion(&device->kobjs[i]->kobj_unregister); 24001 wait_for_completion(&device->kobjs[i]->kobj_unregister);
24900diff -urNp linux-2.6.38.3/drivers/edac/edac_core.h linux-2.6.38.3/drivers/edac/edac_core.h 24002diff -urNp linux-2.6.38.2/drivers/edac/edac_core.h linux-2.6.38.2/drivers/edac/edac_core.h
24901--- linux-2.6.38.3/drivers/edac/edac_core.h 2011-03-14 21:20:32.000000000 -0400 24003--- linux-2.6.38.2/drivers/edac/edac_core.h 2011-03-14 21:20:32.000000000 -0400
24902+++ linux-2.6.38.3/drivers/edac/edac_core.h 2011-04-17 15:57:32.000000000 -0400 24004+++ linux-2.6.38.2/drivers/edac/edac_core.h 2011-03-21 18:31:35.000000000 -0400
24903@@ -88,11 +88,11 @@ extern int edac_debug_level; 24005@@ -88,11 +88,11 @@ extern int edac_debug_level;
24904 24006
24905 #else /* !CONFIG_EDAC_DEBUG */ 24007 #else /* !CONFIG_EDAC_DEBUG */
@@ -24917,9 +24019,9 @@ diff -urNp linux-2.6.38.3/drivers/edac/edac_core.h linux-2.6.38.3/drivers/edac/e
24917 24019
24918 #endif /* !CONFIG_EDAC_DEBUG */ 24020 #endif /* !CONFIG_EDAC_DEBUG */
24919 24021
24920diff -urNp linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 24022diff -urNp linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c
24921--- linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 2011-03-14 21:20:32.000000000 -0400 24023--- linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 2011-03-14 21:20:32.000000000 -0400
24922+++ linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 2011-04-17 15:57:32.000000000 -0400 24024+++ linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 2011-03-21 18:31:35.000000000 -0400
24923@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct 24025@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct
24924 } 24026 }
24925 24027
@@ -24929,9 +24031,9 @@ diff -urNp linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c linux-2.6.38.3/drivers/ed
24929 .show = inst_grp_show, 24031 .show = inst_grp_show,
24930 .store = inst_grp_store 24032 .store = inst_grp_store
24931 }; 24033 };
24932diff -urNp linux-2.6.38.3/drivers/firewire/core-cdev.c linux-2.6.38.3/drivers/firewire/core-cdev.c 24034diff -urNp linux-2.6.38.2/drivers/firewire/core-cdev.c linux-2.6.38.2/drivers/firewire/core-cdev.c
24933--- linux-2.6.38.3/drivers/firewire/core-cdev.c 2011-03-14 21:20:32.000000000 -0400 24035--- linux-2.6.38.2/drivers/firewire/core-cdev.c 2011-03-14 21:20:32.000000000 -0400
24934+++ linux-2.6.38.3/drivers/firewire/core-cdev.c 2011-04-17 15:57:32.000000000 -0400 24036+++ linux-2.6.38.2/drivers/firewire/core-cdev.c 2011-03-21 18:31:35.000000000 -0400
24935@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie 24037@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie
24936 int ret; 24038 int ret;
24937 24039
@@ -24942,9 +24044,9 @@ diff -urNp linux-2.6.38.3/drivers/firewire/core-cdev.c linux-2.6.38.3/drivers/fi
24942 return -EINVAL; 24044 return -EINVAL;
24943 24045
24944 r = kmalloc(sizeof(*r), GFP_KERNEL); 24046 r = kmalloc(sizeof(*r), GFP_KERNEL);
24945diff -urNp linux-2.6.38.3/drivers/firmware/dmi_scan.c linux-2.6.38.3/drivers/firmware/dmi_scan.c 24047diff -urNp linux-2.6.38.2/drivers/firmware/dmi_scan.c linux-2.6.38.2/drivers/firmware/dmi_scan.c
24946--- linux-2.6.38.3/drivers/firmware/dmi_scan.c 2011-03-14 21:20:32.000000000 -0400 24048--- linux-2.6.38.2/drivers/firmware/dmi_scan.c 2011-03-14 21:20:32.000000000 -0400
24947+++ linux-2.6.38.3/drivers/firmware/dmi_scan.c 2011-04-17 15:57:32.000000000 -0400 24049+++ linux-2.6.38.2/drivers/firmware/dmi_scan.c 2011-03-21 18:31:35.000000000 -0400
24948@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void) 24050@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void)
24949 } 24051 }
24950 } 24052 }
@@ -24957,9 +24059,9 @@ diff -urNp linux-2.6.38.3/drivers/firmware/dmi_scan.c linux-2.6.38.3/drivers/fir
24957 p = dmi_ioremap(0xF0000, 0x10000); 24059 p = dmi_ioremap(0xF0000, 0x10000);
24958 if (p == NULL) 24060 if (p == NULL)
24959 goto error; 24061 goto error;
24960diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 24062diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c
24961--- linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 2011-03-14 21:20:32.000000000 -0400 24063--- linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c 2011-03-14 21:20:32.000000000 -0400
24962+++ linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 2011-04-17 15:57:32.000000000 -0400 24064+++ linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c 2011-03-21 18:31:35.000000000 -0400
24963@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d 24065@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d
24964 struct drm_crtc *tmp; 24066 struct drm_crtc *tmp;
24965 int crtc_mask = 1; 24067 int crtc_mask = 1;
@@ -24969,9 +24071,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c linux-2.6.38.3/drive
24969 24071
24970 dev = crtc->dev; 24072 dev = crtc->dev;
24971 24073
24972diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_drv.c linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 24074diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_drv.c linux-2.6.38.2/drivers/gpu/drm/drm_drv.c
24973--- linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 2011-03-14 21:20:32.000000000 -0400 24075--- linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 2011-03-14 21:20:32.000000000 -0400
24974+++ linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 2011-04-17 15:57:32.000000000 -0400 24076+++ linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 2011-03-21 18:31:35.000000000 -0400
24975@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp, 24077@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp,
24976 24078
24977 dev = file_priv->minor->dev; 24079 dev = file_priv->minor->dev;
@@ -24981,9 +24083,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_drv.c linux-2.6.38.3/drivers/gpu/d
24981 ++file_priv->ioctl_count; 24083 ++file_priv->ioctl_count;
24982 24084
24983 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", 24085 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n",
24984diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_fops.c linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 24086diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_fops.c linux-2.6.38.2/drivers/gpu/drm/drm_fops.c
24985--- linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 2011-03-14 21:20:32.000000000 -0400 24087--- linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 2011-03-14 21:20:32.000000000 -0400
24986+++ linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 2011-04-17 15:57:32.000000000 -0400 24088+++ linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 2011-03-21 18:31:35.000000000 -0400
24987@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device * 24089@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device *
24988 } 24090 }
24989 24091
@@ -25033,9 +24135,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_fops.c linux-2.6.38.3/drivers/gpu/
25033 if (atomic_read(&dev->ioctl_count)) { 24135 if (atomic_read(&dev->ioctl_count)) {
25034 DRM_ERROR("Device busy: %d\n", 24136 DRM_ERROR("Device busy: %d\n",
25035 atomic_read(&dev->ioctl_count)); 24137 atomic_read(&dev->ioctl_count));
25036diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_global.c linux-2.6.38.3/drivers/gpu/drm/drm_global.c 24138diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_global.c linux-2.6.38.2/drivers/gpu/drm/drm_global.c
25037--- linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-03-14 21:20:32.000000000 -0400 24139--- linux-2.6.38.2/drivers/gpu/drm/drm_global.c 2011-03-14 21:20:32.000000000 -0400
25038+++ linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-04-17 15:57:32.000000000 -0400 24140+++ linux-2.6.38.2/drivers/gpu/drm/drm_global.c 2011-03-21 18:31:35.000000000 -0400
25039@@ -36,7 +36,7 @@ 24141@@ -36,7 +36,7 @@
25040 struct drm_global_item { 24142 struct drm_global_item {
25041 struct mutex mutex; 24143 struct mutex mutex;
@@ -25093,9 +24195,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_global.c linux-2.6.38.3/drivers/gp
25093 ref->release(ref); 24195 ref->release(ref);
25094 item->object = NULL; 24196 item->object = NULL;
25095 } 24197 }
25096diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_info.c linux-2.6.38.3/drivers/gpu/drm/drm_info.c 24198diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_info.c linux-2.6.38.2/drivers/gpu/drm/drm_info.c
25097--- linux-2.6.38.3/drivers/gpu/drm/drm_info.c 2011-03-14 21:20:32.000000000 -0400 24199--- linux-2.6.38.2/drivers/gpu/drm/drm_info.c 2011-03-14 21:20:32.000000000 -0400
25098+++ linux-2.6.38.3/drivers/gpu/drm/drm_info.c 2011-04-17 15:57:32.000000000 -0400 24200+++ linux-2.6.38.2/drivers/gpu/drm/drm_info.c 2011-03-21 18:31:35.000000000 -0400
25099@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void 24201@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void
25100 struct drm_local_map *map; 24202 struct drm_local_map *map;
25101 struct drm_map_list *r_list; 24203 struct drm_map_list *r_list;
@@ -25136,9 +24238,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_info.c linux-2.6.38.3/drivers/gpu/
25136 24238
25137 #if defined(__i386__) 24239 #if defined(__i386__)
25138 pgprot = pgprot_val(vma->vm_page_prot); 24240 pgprot = pgprot_val(vma->vm_page_prot);
25139diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 24241diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c
25140--- linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 2011-03-14 21:20:32.000000000 -0400 24242--- linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 2011-03-14 21:20:32.000000000 -0400
25141+++ linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 2011-04-17 15:57:32.000000000 -0400 24243+++ linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 2011-03-21 18:31:35.000000000 -0400
25142@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev, 24244@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev,
25143 stats->data[i].value = 24245 stats->data[i].value =
25144 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0); 24246 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
@@ -25148,9 +24250,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.3/drivers/gpu
25148 stats->data[i].type = dev->types[i]; 24250 stats->data[i].type = dev->types[i];
25149 } 24251 }
25150 24252
25151diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_lock.c linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 24253diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_lock.c linux-2.6.38.2/drivers/gpu/drm/drm_lock.c
25152--- linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 2011-03-14 21:20:32.000000000 -0400 24254--- linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 2011-03-14 21:20:32.000000000 -0400
25153+++ linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 2011-04-17 15:57:32.000000000 -0400 24255+++ linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 2011-03-21 18:31:35.000000000 -0400
25154@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi 24256@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi
25155 if (drm_lock_take(&master->lock, lock->context)) { 24257 if (drm_lock_take(&master->lock, lock->context)) {
25156 master->lock.file_priv = file_priv; 24258 master->lock.file_priv = file_priv;
@@ -25169,9 +24271,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_lock.c linux-2.6.38.3/drivers/gpu/
25169 24271
25170 if (drm_lock_free(&master->lock, lock->context)) { 24272 if (drm_lock_free(&master->lock, lock->context)) {
25171 /* FIXME: Should really bail out here. */ 24273 /* FIXME: Should really bail out here. */
25172diff -urNp linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 24274diff -urNp linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c
25173--- linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 2011-03-14 21:20:32.000000000 -0400 24275--- linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c 2011-03-14 21:20:32.000000000 -0400
25174+++ linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 2011-04-17 15:57:32.000000000 -0400 24276+++ linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c 2011-03-21 18:31:35.000000000 -0400
25175@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de 24277@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de
25176 dma->buflist[vertex->idx], 24278 dma->buflist[vertex->idx],
25177 vertex->discard, vertex->used); 24279 vertex->discard, vertex->used);
@@ -25194,9 +24296,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c linux-2.6.38.3/drivers
25194 sarea_priv->last_enqueue = dev_priv->counter - 1; 24296 sarea_priv->last_enqueue = dev_priv->counter - 1;
25195 sarea_priv->last_dispatch = (int)hw_status[5]; 24297 sarea_priv->last_dispatch = (int)hw_status[5];
25196 24298
25197diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 24299diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c
25198--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-14 21:20:32.000000000 -0400 24300--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-14 21:20:32.000000000 -0400
25199+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 2011-04-17 15:57:32.000000000 -0400 24301+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-21 18:31:35.000000000 -0400
25200@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_ 24302@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_
25201 } 24303 }
25202 } 24304 }
@@ -25206,9 +24308,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c linux-2.6.38.3/drive
25206 .init = ch7017_init, 24308 .init = ch7017_init,
25207 .detect = ch7017_detect, 24309 .detect = ch7017_detect,
25208 .mode_valid = ch7017_mode_valid, 24310 .mode_valid = ch7017_mode_valid,
25209diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 24311diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c
25210--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-14 21:20:32.000000000 -0400 24312--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-14 21:20:32.000000000 -0400
25211+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-04-17 15:57:32.000000000 -0400 24313+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-21 18:31:35.000000000 -0400
25212@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_ 24314@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_
25213 } 24315 }
25214 } 24316 }
@@ -25218,9 +24320,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c linux-2.6.38.3/drive
25218 .init = ch7xxx_init, 24320 .init = ch7xxx_init,
25219 .detect = ch7xxx_detect, 24321 .detect = ch7xxx_detect,
25220 .mode_valid = ch7xxx_mode_valid, 24322 .mode_valid = ch7xxx_mode_valid,
25221diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 24323diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h
25222--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 2011-03-14 21:20:32.000000000 -0400 24324--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 2011-03-14 21:20:32.000000000 -0400
25223+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 2011-04-17 15:57:32.000000000 -0400 24325+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 2011-03-21 18:31:35.000000000 -0400
25224@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops { 24326@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops {
25225 * 24327 *
25226 * \return singly-linked list of modes or NULL if no modes found. 24328 * \return singly-linked list of modes or NULL if no modes found.
@@ -25253,9 +24355,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h linux-2.6.38.3/drivers/gpu/
25253+extern const struct intel_dvo_dev_ops ch7017_ops; 24355+extern const struct intel_dvo_dev_ops ch7017_ops;
25254 24356
25255 #endif /* _INTEL_DVO_H */ 24357 #endif /* _INTEL_DVO_H */
25256diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 24358diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c
25257--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-14 21:20:32.000000000 -0400 24359--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-14 21:20:32.000000000 -0400
25258+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 2011-04-17 15:57:32.000000000 -0400 24360+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-21 18:31:35.000000000 -0400
25259@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv 24361@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv
25260 } 24362 }
25261 } 24363 }
@@ -25265,9 +24367,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c linux-2.6.38.3/drivers
25265 .init = ivch_init, 24367 .init = ivch_init,
25266 .dpms = ivch_dpms, 24368 .dpms = ivch_dpms,
25267 .mode_valid = ivch_mode_valid, 24369 .mode_valid = ivch_mode_valid,
25268diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 24370diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c
25269--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-14 21:20:32.000000000 -0400 24371--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-14 21:20:32.000000000 -0400
25270+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 2011-04-17 15:57:32.000000000 -0400 24372+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-21 18:31:35.000000000 -0400
25271@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_ 24373@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_
25272 } 24374 }
25273 } 24375 }
@@ -25277,9 +24379,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c linux-2.6.38.3/drive
25277 .init = sil164_init, 24379 .init = sil164_init,
25278 .detect = sil164_detect, 24380 .detect = sil164_detect,
25279 .mode_valid = sil164_mode_valid, 24381 .mode_valid = sil164_mode_valid,
25280diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 24382diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c
25281--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-14 21:20:32.000000000 -0400 24383--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-14 21:20:32.000000000 -0400
25282+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 2011-04-17 15:57:32.000000000 -0400 24384+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-21 18:31:35.000000000 -0400
25283@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_ 24385@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_
25284 } 24386 }
25285 } 24387 }
@@ -25289,9 +24391,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c linux-2.6.38.3/drive
25289 .init = tfp410_init, 24391 .init = tfp410_init,
25290 .detect = tfp410_detect, 24392 .detect = tfp410_detect,
25291 .mode_valid = tfp410_mode_valid, 24393 .mode_valid = tfp410_mode_valid,
25292diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 24394diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c
25293--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 2011-03-14 21:20:32.000000000 -0400 24395--- linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c 2011-03-14 21:20:32.000000000 -0400
25294+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 2011-04-17 15:57:32.000000000 -0400 24396+++ linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c 2011-03-21 18:31:35.000000000 -0400
25295@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s 24397@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s
25296 bool can_switch; 24398 bool can_switch;
25297 24399
@@ -25301,9 +24403,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c linux-2.6.38.3/drivers
25301 spin_unlock(&dev->count_lock); 24403 spin_unlock(&dev->count_lock);
25302 return can_switch; 24404 return can_switch;
25303 } 24405 }
25304diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 24406diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c
25305--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 2011-03-14 21:20:32.000000000 -0400 24407--- linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c 2011-03-14 21:20:32.000000000 -0400
25306+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 2011-04-17 15:57:32.000000000 -0400 24408+++ linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c 2011-03-21 18:31:35.000000000 -0400
25307@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o 24409@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o
25308 .restore = i915_pm_resume, 24410 .restore = i915_pm_resume,
25309 }; 24411 };
@@ -25313,21 +24415,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c linux-2.6.38.3/drivers
25313 .fault = i915_gem_fault, 24415 .fault = i915_gem_fault,
25314 .open = drm_gem_vm_open, 24416 .open = drm_gem_vm_open,
25315 .close = drm_gem_vm_close, 24417 .close = drm_gem_vm_close,
25316diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 24418diff -urNp linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c
25317--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-03-14 21:20:32.000000000 -0400 24419--- linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-14 21:20:32.000000000 -0400
25318+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-04-17 15:57:32.000000000 -0400 24420+++ linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-21 18:31:35.000000000 -0400
25319@@ -1229,7 +1229,7 @@ extern int intel_setup_gmbus(struct drm_
25320 extern void intel_teardown_gmbus(struct drm_device *dev);
25321 extern void intel_gmbus_set_speed(struct i2c_adapter *adapter, int speed);
25322 extern void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit);
25323-extern inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter)
25324+static inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter)
25325 {
25326 return container_of(adapter, struct intel_gmbus, adapter)->force_bit;
25327 }
25328diff -urNp linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c
25329--- linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-14 21:20:32.000000000 -0400
25330+++ linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c 2011-04-17 15:57:32.000000000 -0400
25331@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc 24421@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc
25332 bool can_switch; 24422 bool can_switch;
25333 24423
@@ -25337,9 +24427,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c linux-2.6.38.3
25337 spin_unlock(&dev->count_lock); 24427 spin_unlock(&dev->count_lock);
25338 return can_switch; 24428 return can_switch;
25339 } 24429 }
25340diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 24430diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c
25341--- linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 2011-03-14 21:20:32.000000000 -0400 24431--- linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 2011-03-14 21:20:32.000000000 -0400
25342+++ linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 2011-04-17 15:57:32.000000000 -0400 24432+++ linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 2011-03-21 18:31:35.000000000 -0400
25343@@ -637,14 +637,14 @@ static int parser_auth(struct table *t, 24433@@ -637,14 +637,14 @@ static int parser_auth(struct table *t,
25344 regex_t mask_rex; 24434 regex_t mask_rex;
25345 regmatch_t match[4]; 24435 regmatch_t match[4];
@@ -25357,9 +24447,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.3/dri
25357 24447
25358 if (regcomp 24448 if (regcomp
25359 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { 24449 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
25360diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 24450diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c
25361--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 2011-03-14 21:20:32.000000000 -0400 24451--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c 2011-03-14 21:20:32.000000000 -0400
25362+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 2011-04-17 15:57:32.000000000 -0400 24452+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c 2011-03-21 18:31:35.000000000 -0400
25363@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch 24453@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch
25364 bool can_switch; 24454 bool can_switch;
25365 24455
@@ -25369,21 +24459,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c linux-2.6.38.3/
25369 spin_unlock(&dev->count_lock); 24459 spin_unlock(&dev->count_lock);
25370 return can_switch; 24460 return can_switch;
25371 } 24461 }
25372diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 24462diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c
25373--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-03-14 21:20:32.000000000 -0400 24463--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c 2011-03-14 21:20:32.000000000 -0400
25374+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-04-17 15:57:32.000000000 -0400 24464+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c 2011-03-21 18:31:35.000000000 -0400
25375@@ -359,7 +359,7 @@ static int compat_radeon_cp_setparam(str
25376 request = compat_alloc_user_space(sizeof(*request));
25377 if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
25378 || __put_user(req32.param, &request->param)
25379- || __put_user((void __user *)(unsigned long)req32.value,
25380+ || __put_user((unsigned long)req32.value,
25381 &request->value))
25382 return -EFAULT;
25383
25384diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c
25385--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c 2011-03-14 21:20:32.000000000 -0400
25386+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c 2011-04-17 15:57:32.000000000 -0400
25387@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de 24465@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de
25388 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS) 24466 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
25389 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS; 24467 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
@@ -25402,9 +24480,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c linux-2.6.38.3/d
25402 24480
25403 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); 24481 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
25404 24482
25405diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 24483diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c
25406--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-14 21:20:32.000000000 -0400 24484--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-14 21:20:32.000000000 -0400
25407+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 2011-04-17 15:57:32.000000000 -0400 24485+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-21 18:31:35.000000000 -0400
25408@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str 24486@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str
25409 man->size = size >> PAGE_SHIFT; 24487 man->size = size >> PAGE_SHIFT;
25410 } 24488 }
@@ -25465,25 +24543,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c linux-2.6.38.3/dri
25465 vma->vm_ops = &radeon_ttm_vm_ops; 24543 vma->vm_ops = &radeon_ttm_vm_ops;
25466 return 0; 24544 return 0;
25467 } 24545 }
25468diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 24546diff -urNp linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c
25469--- linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-03-14 21:20:32.000000000 -0400 24547--- linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-14 21:20:32.000000000 -0400
25470+++ linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-04-17 15:57:32.000000000 -0400 24548+++ linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-21 18:31:35.000000000 -0400
25471@@ -304,9 +304,11 @@ void rs690_crtc_bandwidth_compute(struct
25472 if (rdev->pm.max_bandwidth.full > rdev->pm.sideport_bandwidth.full &&
25473 rdev->pm.sideport_bandwidth.full)
25474 rdev->pm.max_bandwidth = rdev->pm.sideport_bandwidth;
25475- read_delay_latency.full = dfixed_const(370 * 800 * 1000);
25476+ read_delay_latency.full = dfixed_const(800 * 1000);
25477 read_delay_latency.full = dfixed_div(read_delay_latency,
25478 rdev->pm.igp_sideport_mclk);
25479+ a.full = dfixed_const(370);
25480+ read_delay_latency.full = dfixed_mul(read_delay_latency, a);
25481 } else {
25482 if (rdev->pm.max_bandwidth.full > rdev->pm.k8_bandwidth.full &&
25483 rdev->pm.k8_bandwidth.full)
25484diff -urNp linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c
25485--- linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-14 21:20:32.000000000 -0400
25486+++ linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c 2011-04-17 15:57:32.000000000 -0400
25487@@ -40,7 +40,7 @@ 24549@@ -40,7 +40,7 @@
25488 #include <asm/atomic.h> 24550 #include <asm/atomic.h>
25489 24551
@@ -25493,9 +24555,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c linux-2.6.38.3/drivers/gp
25493 #define TTM_BO_HASH_ORDER 13 24555 #define TTM_BO_HASH_ORDER 13
25494 24556
25495 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo); 24557 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo);
25496diff -urNp linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 24558diff -urNp linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c
25497--- linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-14 21:20:32.000000000 -0400 24559--- linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-14 21:20:32.000000000 -0400
25498+++ linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-04-17 15:57:32.000000000 -0400 24560+++ linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-21 18:31:35.000000000 -0400
25499@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_ 24561@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_
25500 return best_bo; 24562 return best_bo;
25501 } 24563 }
@@ -25553,21 +24615,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c linux-2.6.38.3/drivers
25553 24615
25554 static const struct vm_operations_struct ttm_bo_vm_ops = { 24616 static const struct vm_operations_struct ttm_bo_vm_ops = {
25555 .fault = ttm_bo_vm_fault, 24617 .fault = ttm_bo_vm_fault,
25556diff -urNp linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 24618diff -urNp linux-2.6.38.2/drivers/hid/usbhid/hiddev.c linux-2.6.38.2/drivers/hid/usbhid/hiddev.c
25557--- linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-03-14 21:20:32.000000000 -0400 24619--- linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 2011-03-14 21:20:32.000000000 -0400
25558+++ linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-04-17 15:57:32.000000000 -0400 24620+++ linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 2011-03-21 18:31:35.000000000 -0400
25559@@ -534,7 +534,7 @@ static int vmw_fifo_vm_fault(struct vm_a
25560 return VM_FAULT_SIGBUS;
25561 }
25562
25563-static struct vm_operations_struct vmw_fifo_vm_ops = {
25564+static const struct vm_operations_struct vmw_fifo_vm_ops = {
25565 .fault = vmw_fifo_vm_fault,
25566 .open = NULL,
25567 .close = NULL
25568diff -urNp linux-2.6.38.3/drivers/hid/usbhid/hiddev.c linux-2.6.38.3/drivers/hid/usbhid/hiddev.c
25569--- linux-2.6.38.3/drivers/hid/usbhid/hiddev.c 2011-03-14 21:20:32.000000000 -0400
25570+++ linux-2.6.38.3/drivers/hid/usbhid/hiddev.c 2011-04-17 15:57:32.000000000 -0400
25571@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi 24621@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi
25572 break; 24622 break;
25573 24623
@@ -25577,9 +24627,9 @@ diff -urNp linux-2.6.38.3/drivers/hid/usbhid/hiddev.c linux-2.6.38.3/drivers/hid
25577 break; 24627 break;
25578 24628
25579 for (i = 0; i < hid->maxcollection; i++) 24629 for (i = 0; i < hid->maxcollection; i++)
25580diff -urNp linux-2.6.38.3/drivers/hwmon/k8temp.c linux-2.6.38.3/drivers/hwmon/k8temp.c 24630diff -urNp linux-2.6.38.2/drivers/hwmon/k8temp.c linux-2.6.38.2/drivers/hwmon/k8temp.c
25581--- linux-2.6.38.3/drivers/hwmon/k8temp.c 2011-03-14 21:20:32.000000000 -0400 24631--- linux-2.6.38.2/drivers/hwmon/k8temp.c 2011-03-14 21:20:32.000000000 -0400
25582+++ linux-2.6.38.3/drivers/hwmon/k8temp.c 2011-04-17 15:57:32.000000000 -0400 24632+++ linux-2.6.38.2/drivers/hwmon/k8temp.c 2011-03-21 18:31:35.000000000 -0400
25583@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n 24633@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n
25584 24634
25585 static const struct pci_device_id k8temp_ids[] = { 24635 static const struct pci_device_id k8temp_ids[] = {
@@ -25589,9 +24639,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/k8temp.c linux-2.6.38.3/drivers/hwmon/k8
25589 }; 24639 };
25590 24640
25591 MODULE_DEVICE_TABLE(pci, k8temp_ids); 24641 MODULE_DEVICE_TABLE(pci, k8temp_ids);
25592diff -urNp linux-2.6.38.3/drivers/hwmon/sis5595.c linux-2.6.38.3/drivers/hwmon/sis5595.c 24642diff -urNp linux-2.6.38.2/drivers/hwmon/sis5595.c linux-2.6.38.2/drivers/hwmon/sis5595.c
25593--- linux-2.6.38.3/drivers/hwmon/sis5595.c 2011-03-14 21:20:32.000000000 -0400 24643--- linux-2.6.38.2/drivers/hwmon/sis5595.c 2011-03-14 21:20:32.000000000 -0400
25594+++ linux-2.6.38.3/drivers/hwmon/sis5595.c 2011-04-17 15:57:32.000000000 -0400 24644+++ linux-2.6.38.2/drivers/hwmon/sis5595.c 2011-03-21 18:31:35.000000000 -0400
25595@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda 24645@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda
25596 24646
25597 static const struct pci_device_id sis5595_pci_ids[] = { 24647 static const struct pci_device_id sis5595_pci_ids[] = {
@@ -25601,9 +24651,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/sis5595.c linux-2.6.38.3/drivers/hwmon/s
25601 }; 24651 };
25602 24652
25603 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids); 24653 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids);
25604diff -urNp linux-2.6.38.3/drivers/hwmon/via686a.c linux-2.6.38.3/drivers/hwmon/via686a.c 24654diff -urNp linux-2.6.38.2/drivers/hwmon/via686a.c linux-2.6.38.2/drivers/hwmon/via686a.c
25605--- linux-2.6.38.3/drivers/hwmon/via686a.c 2011-03-14 21:20:32.000000000 -0400 24655--- linux-2.6.38.2/drivers/hwmon/via686a.c 2011-03-14 21:20:32.000000000 -0400
25606+++ linux-2.6.38.3/drivers/hwmon/via686a.c 2011-04-17 15:57:32.000000000 -0400 24656+++ linux-2.6.38.2/drivers/hwmon/via686a.c 2011-03-21 18:31:35.000000000 -0400
25607@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda 24657@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda
25608 24658
25609 static const struct pci_device_id via686a_pci_ids[] = { 24659 static const struct pci_device_id via686a_pci_ids[] = {
@@ -25613,9 +24663,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/via686a.c linux-2.6.38.3/drivers/hwmon/v
25613 }; 24663 };
25614 24664
25615 MODULE_DEVICE_TABLE(pci, via686a_pci_ids); 24665 MODULE_DEVICE_TABLE(pci, via686a_pci_ids);
25616diff -urNp linux-2.6.38.3/drivers/hwmon/vt8231.c linux-2.6.38.3/drivers/hwmon/vt8231.c 24666diff -urNp linux-2.6.38.2/drivers/hwmon/vt8231.c linux-2.6.38.2/drivers/hwmon/vt8231.c
25617--- linux-2.6.38.3/drivers/hwmon/vt8231.c 2011-03-14 21:20:32.000000000 -0400 24667--- linux-2.6.38.2/drivers/hwmon/vt8231.c 2011-03-14 21:20:32.000000000 -0400
25618+++ linux-2.6.38.3/drivers/hwmon/vt8231.c 2011-04-17 15:57:32.000000000 -0400 24668+++ linux-2.6.38.2/drivers/hwmon/vt8231.c 2011-03-21 18:31:35.000000000 -0400
25619@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri 24669@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri
25620 24670
25621 static const struct pci_device_id vt8231_pci_ids[] = { 24671 static const struct pci_device_id vt8231_pci_ids[] = {
@@ -25625,9 +24675,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/vt8231.c linux-2.6.38.3/drivers/hwmon/vt
25625 }; 24675 };
25626 24676
25627 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids); 24677 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids);
25628diff -urNp linux-2.6.38.3/drivers/hwmon/w83791d.c linux-2.6.38.3/drivers/hwmon/w83791d.c 24678diff -urNp linux-2.6.38.2/drivers/hwmon/w83791d.c linux-2.6.38.2/drivers/hwmon/w83791d.c
25629--- linux-2.6.38.3/drivers/hwmon/w83791d.c 2011-03-14 21:20:32.000000000 -0400 24679--- linux-2.6.38.2/drivers/hwmon/w83791d.c 2011-03-14 21:20:32.000000000 -0400
25630+++ linux-2.6.38.3/drivers/hwmon/w83791d.c 2011-04-17 15:57:32.000000000 -0400 24680+++ linux-2.6.38.2/drivers/hwmon/w83791d.c 2011-03-21 18:31:35.000000000 -0400
25631@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli 24681@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli
25632 struct i2c_board_info *info); 24682 struct i2c_board_info *info);
25633 static int w83791d_remove(struct i2c_client *client); 24683 static int w83791d_remove(struct i2c_client *client);
@@ -25639,9 +24689,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/w83791d.c linux-2.6.38.3/drivers/hwmon/w
25639 static struct w83791d_data *w83791d_update_device(struct device *dev); 24689 static struct w83791d_data *w83791d_update_device(struct device *dev);
25640 24690
25641 #ifdef DEBUG 24691 #ifdef DEBUG
25642diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 24692diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c
25643--- linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 2011-03-14 21:20:32.000000000 -0400 24693--- linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 2011-03-14 21:20:32.000000000 -0400
25644+++ linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 2011-04-17 15:57:32.000000000 -0400 24694+++ linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 2011-03-21 18:31:35.000000000 -0400
25645@@ -621,7 +621,7 @@ static const struct pci_device_id i801_i 24695@@ -621,7 +621,7 @@ static const struct pci_device_id i801_i
25646 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) }, 24696 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) },
25647 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) }, 24697 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) },
@@ -25651,9 +24701,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c linux-2.6.38.3/drivers/i
25651 }; 24701 };
25652 24702
25653 MODULE_DEVICE_TABLE(pci, i801_ids); 24703 MODULE_DEVICE_TABLE(pci, i801_ids);
25654diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 24704diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c
25655--- linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 2011-03-14 21:20:32.000000000 -0400 24705--- linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 2011-03-14 21:20:32.000000000 -0400
25656+++ linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 2011-04-17 15:57:32.000000000 -0400 24706+++ linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 2011-03-21 18:31:35.000000000 -0400
25657@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat 24707@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat
25658 .ident = "IBM", 24708 .ident = "IBM",
25659 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, 24709 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), },
@@ -25672,9 +24722,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.3/drivers/
25672 }; 24722 };
25673 24723
25674 MODULE_DEVICE_TABLE (pci, piix4_ids); 24724 MODULE_DEVICE_TABLE (pci, piix4_ids);
25675diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 24725diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c
25676--- linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 2011-03-14 21:20:32.000000000 -0400 24726--- linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 2011-03-14 21:20:32.000000000 -0400
25677+++ linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 2011-04-17 15:57:32.000000000 -0400 24727+++ linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 2011-03-21 18:31:35.000000000 -0400
25678@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter 24728@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter
25679 static const struct pci_device_id sis630_ids[] __devinitconst = { 24729 static const struct pci_device_id sis630_ids[] __devinitconst = {
25680 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, 24730 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) },
@@ -25684,9 +24734,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.3/drivers
25684 }; 24734 };
25685 24735
25686 MODULE_DEVICE_TABLE (pci, sis630_ids); 24736 MODULE_DEVICE_TABLE (pci, sis630_ids);
25687diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 24737diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c
25688--- linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 2011-03-14 21:20:32.000000000 -0400 24738--- linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 2011-03-14 21:20:32.000000000 -0400
25689+++ linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 2011-04-17 15:57:32.000000000 -0400 24739+++ linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 2011-03-21 18:31:35.000000000 -0400
25690@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter 24740@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter
25691 24741
25692 static const struct pci_device_id sis96x_ids[] = { 24742 static const struct pci_device_id sis96x_ids[] = {
@@ -25696,9 +24746,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.3/drivers
25696 }; 24746 };
25697 24747
25698 MODULE_DEVICE_TABLE (pci, sis96x_ids); 24748 MODULE_DEVICE_TABLE (pci, sis96x_ids);
25699diff -urNp linux-2.6.38.3/drivers/ide/ide-cd.c linux-2.6.38.3/drivers/ide/ide-cd.c 24749diff -urNp linux-2.6.38.2/drivers/ide/ide-cd.c linux-2.6.38.2/drivers/ide/ide-cd.c
25700--- linux-2.6.38.3/drivers/ide/ide-cd.c 2011-03-14 21:20:32.000000000 -0400 24750--- linux-2.6.38.2/drivers/ide/ide-cd.c 2011-03-14 21:20:32.000000000 -0400
25701+++ linux-2.6.38.3/drivers/ide/ide-cd.c 2011-04-17 15:57:32.000000000 -0400 24751+++ linux-2.6.38.2/drivers/ide/ide-cd.c 2011-03-21 18:31:35.000000000 -0400
25702@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_ 24752@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_
25703 alignment = queue_dma_alignment(q) | q->dma_pad_mask; 24753 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
25704 if ((unsigned long)buf & alignment 24754 if ((unsigned long)buf & alignment
@@ -25708,9 +24758,9 @@ diff -urNp linux-2.6.38.3/drivers/ide/ide-cd.c linux-2.6.38.3/drivers/ide/ide-cd
25708 drive->dma = 0; 24758 drive->dma = 0;
25709 } 24759 }
25710 } 24760 }
25711diff -urNp linux-2.6.38.3/drivers/infiniband/core/cm.c linux-2.6.38.3/drivers/infiniband/core/cm.c 24761diff -urNp linux-2.6.38.2/drivers/infiniband/core/cm.c linux-2.6.38.2/drivers/infiniband/core/cm.c
25712--- linux-2.6.38.3/drivers/infiniband/core/cm.c 2011-04-18 17:27:14.000000000 -0400 24762--- linux-2.6.38.2/drivers/infiniband/core/cm.c 2011-03-23 17:20:07.000000000 -0400
25713+++ linux-2.6.38.3/drivers/infiniband/core/cm.c 2011-04-17 15:57:32.000000000 -0400 24763+++ linux-2.6.38.2/drivers/infiniband/core/cm.c 2011-03-23 17:21:50.000000000 -0400
25714@@ -113,7 +113,7 @@ static char const counter_group_names[CM 24764@@ -113,7 +113,7 @@ static char const counter_group_names[CM
25715 24765
25716 struct cm_counter_group { 24766 struct cm_counter_group {
@@ -25850,9 +24900,9 @@ diff -urNp linux-2.6.38.3/drivers/infiniband/core/cm.c linux-2.6.38.3/drivers/in
25850 } 24900 }
25851 24901
25852 static const struct sysfs_ops cm_counter_ops = { 24902 static const struct sysfs_ops cm_counter_ops = {
25853diff -urNp linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 24903diff -urNp linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h
25854--- linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-03-14 21:20:32.000000000 -0400 24904--- linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 2011-03-14 21:20:32.000000000 -0400
25855+++ linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-04-17 15:57:32.000000000 -0400 24905+++ linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 2011-03-21 18:31:35.000000000 -0400
25856@@ -51,6 +51,7 @@ 24906@@ -51,6 +51,7 @@
25857 #include <linux/completion.h> 24907 #include <linux/completion.h>
25858 #include <linux/kref.h> 24908 #include <linux/kref.h>
@@ -25861,9 +24911,9 @@ diff -urNp linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h linux-2.6.38.3/drivers
25861 24911
25862 #include "qib_common.h" 24912 #include "qib_common.h"
25863 #include "qib_verbs.h" 24913 #include "qib_verbs.h"
25864diff -urNp linux-2.6.38.3/drivers/input/keyboard/atkbd.c linux-2.6.38.3/drivers/input/keyboard/atkbd.c 24914diff -urNp linux-2.6.38.2/drivers/input/keyboard/atkbd.c linux-2.6.38.2/drivers/input/keyboard/atkbd.c
25865--- linux-2.6.38.3/drivers/input/keyboard/atkbd.c 2011-03-14 21:20:32.000000000 -0400 24915--- linux-2.6.38.2/drivers/input/keyboard/atkbd.c 2011-03-14 21:20:32.000000000 -0400
25866+++ linux-2.6.38.3/drivers/input/keyboard/atkbd.c 2011-04-17 15:57:32.000000000 -0400 24916+++ linux-2.6.38.2/drivers/input/keyboard/atkbd.c 2011-03-21 18:31:35.000000000 -0400
25867@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri 24917@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri
25868 .id = SERIO_ANY, 24918 .id = SERIO_ANY,
25869 .extra = SERIO_ANY, 24919 .extra = SERIO_ANY,
@@ -25873,9 +24923,9 @@ diff -urNp linux-2.6.38.3/drivers/input/keyboard/atkbd.c linux-2.6.38.3/drivers/
25873 }; 24923 };
25874 24924
25875 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids); 24925 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids);
25876diff -urNp linux-2.6.38.3/drivers/input/mouse/lifebook.c linux-2.6.38.3/drivers/input/mouse/lifebook.c 24926diff -urNp linux-2.6.38.2/drivers/input/mouse/lifebook.c linux-2.6.38.2/drivers/input/mouse/lifebook.c
25877--- linux-2.6.38.3/drivers/input/mouse/lifebook.c 2011-03-14 21:20:32.000000000 -0400 24927--- linux-2.6.38.2/drivers/input/mouse/lifebook.c 2011-03-14 21:20:32.000000000 -0400
25878+++ linux-2.6.38.3/drivers/input/mouse/lifebook.c 2011-04-17 15:57:32.000000000 -0400 24928+++ linux-2.6.38.2/drivers/input/mouse/lifebook.c 2011-03-21 18:31:35.000000000 -0400
25879@@ -123,7 +123,7 @@ static const struct dmi_system_id __init 24929@@ -123,7 +123,7 @@ static const struct dmi_system_id __init
25880 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), 24930 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"),
25881 }, 24931 },
@@ -25885,9 +24935,9 @@ diff -urNp linux-2.6.38.3/drivers/input/mouse/lifebook.c linux-2.6.38.3/drivers/
25885 }; 24935 };
25886 24936
25887 void __init lifebook_module_init(void) 24937 void __init lifebook_module_init(void)
25888diff -urNp linux-2.6.38.3/drivers/input/mouse/psmouse-base.c linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 24938diff -urNp linux-2.6.38.2/drivers/input/mouse/psmouse-base.c linux-2.6.38.2/drivers/input/mouse/psmouse-base.c
25889--- linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 2011-03-14 21:20:32.000000000 -0400 24939--- linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 2011-03-14 21:20:32.000000000 -0400
25890+++ linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 2011-04-17 15:57:32.000000000 -0400 24940+++ linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 2011-03-21 18:31:35.000000000 -0400
25891@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se 24941@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se
25892 .id = SERIO_ANY, 24942 .id = SERIO_ANY,
25893 .extra = SERIO_ANY, 24943 .extra = SERIO_ANY,
@@ -25897,9 +24947,9 @@ diff -urNp linux-2.6.38.3/drivers/input/mouse/psmouse-base.c linux-2.6.38.3/driv
25897 }; 24947 };
25898 24948
25899 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids); 24949 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids);
25900diff -urNp linux-2.6.38.3/drivers/input/mouse/synaptics.c linux-2.6.38.3/drivers/input/mouse/synaptics.c 24950diff -urNp linux-2.6.38.2/drivers/input/mouse/synaptics.c linux-2.6.38.2/drivers/input/mouse/synaptics.c
25901--- linux-2.6.38.3/drivers/input/mouse/synaptics.c 2011-04-18 17:27:18.000000000 -0400 24951--- linux-2.6.38.2/drivers/input/mouse/synaptics.c 2011-03-14 21:20:32.000000000 -0400
25902+++ linux-2.6.38.3/drivers/input/mouse/synaptics.c 2011-04-17 16:53:16.000000000 -0400 24952+++ linux-2.6.38.2/drivers/input/mouse/synaptics.c 2011-03-21 18:31:35.000000000 -0400
25903@@ -559,7 +559,7 @@ static void synaptics_process_packet(str 24953@@ -559,7 +559,7 @@ static void synaptics_process_packet(str
25904 break; 24954 break;
25905 case 2: 24955 case 2:
@@ -25917,21 +24967,20 @@ diff -urNp linux-2.6.38.3/drivers/input/mouse/synaptics.c linux-2.6.38.3/drivers
25917 }, 24967 },
25918 { 24968 {
25919 /* Toshiba Portege M300 */ 24969 /* Toshiba Portege M300 */
25920@@ -834,10 +833,9 @@ static const struct dmi_system_id __init 24970@@ -834,9 +833,8 @@ static const struct dmi_system_id __init
25921 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), 24971 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"),
25922 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), 24972 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"),
25923 }, 24973 },
25924- 24974-
25925 }, 24975 },
24976- { }
25926+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } 24977+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL }
25927 #endif 24978 #endif
25928- { }
25929 }; 24979 };
25930 24980
25931 static bool broken_olpc_ec; 24981diff -urNp linux-2.6.38.2/drivers/input/mousedev.c linux-2.6.38.2/drivers/input/mousedev.c
25932diff -urNp linux-2.6.38.3/drivers/input/mousedev.c linux-2.6.38.3/drivers/input/mousedev.c 24982--- linux-2.6.38.2/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400
25933--- linux-2.6.38.3/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400 24983+++ linux-2.6.38.2/drivers/input/mousedev.c 2011-03-21 18:31:35.000000000 -0400
25934+++ linux-2.6.38.3/drivers/input/mousedev.c 2011-04-17 15:57:32.000000000 -0400
25935@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file 24984@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file
25936 24985
25937 spin_unlock_irq(&client->packet_lock); 24986 spin_unlock_irq(&client->packet_lock);
@@ -25950,9 +24999,9 @@ diff -urNp linux-2.6.38.3/drivers/input/mousedev.c linux-2.6.38.3/drivers/input/
25950 }; 24999 };
25951 static int psaux_registered; 25000 static int psaux_registered;
25952 #endif 25001 #endif
25953diff -urNp linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 25002diff -urNp linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h
25954--- linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 2011-03-14 21:20:32.000000000 -0400 25003--- linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 2011-03-14 21:20:32.000000000 -0400
25955+++ linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 2011-04-17 15:57:32.000000000 -0400 25004+++ linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 2011-03-21 18:31:35.000000000 -0400
25956@@ -183,7 +183,7 @@ static const struct dmi_system_id __init 25005@@ -183,7 +183,7 @@ static const struct dmi_system_id __init
25957 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"), 25006 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"),
25958 }, 25007 },
@@ -26007,9 +25056,9 @@ diff -urNp linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.3/d
26007 }; 25056 };
26008 25057
26009 #endif /* CONFIG_X86 */ 25058 #endif /* CONFIG_X86 */
26010diff -urNp linux-2.6.38.3/drivers/input/serio/serio_raw.c linux-2.6.38.3/drivers/input/serio/serio_raw.c 25059diff -urNp linux-2.6.38.2/drivers/input/serio/serio_raw.c linux-2.6.38.2/drivers/input/serio/serio_raw.c
26011--- linux-2.6.38.3/drivers/input/serio/serio_raw.c 2011-03-14 21:20:32.000000000 -0400 25060--- linux-2.6.38.2/drivers/input/serio/serio_raw.c 2011-03-14 21:20:32.000000000 -0400
26012+++ linux-2.6.38.3/drivers/input/serio/serio_raw.c 2011-04-17 15:57:32.000000000 -0400 25061+++ linux-2.6.38.2/drivers/input/serio/serio_raw.c 2011-03-21 18:31:35.000000000 -0400
26013@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_ 25062@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_
26014 .id = SERIO_ANY, 25063 .id = SERIO_ANY,
26015 .extra = SERIO_ANY, 25064 .extra = SERIO_ANY,
@@ -26019,9 +25068,9 @@ diff -urNp linux-2.6.38.3/drivers/input/serio/serio_raw.c linux-2.6.38.3/drivers
26019 }; 25068 };
26020 25069
26021 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids); 25070 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids);
26022diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/common.c linux-2.6.38.3/drivers/isdn/gigaset/common.c 25071diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/common.c linux-2.6.38.2/drivers/isdn/gigaset/common.c
26023--- linux-2.6.38.3/drivers/isdn/gigaset/common.c 2011-03-14 21:20:32.000000000 -0400 25072--- linux-2.6.38.2/drivers/isdn/gigaset/common.c 2011-03-14 21:20:32.000000000 -0400
26024+++ linux-2.6.38.3/drivers/isdn/gigaset/common.c 2011-04-17 15:57:32.000000000 -0400 25073+++ linux-2.6.38.2/drivers/isdn/gigaset/common.c 2011-03-21 18:31:35.000000000 -0400
26025@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct 25074@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct
26026 cs->commands_pending = 0; 25075 cs->commands_pending = 0;
26027 cs->cur_at_seq = 0; 25076 cs->cur_at_seq = 0;
@@ -26031,9 +25080,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/common.c linux-2.6.38.3/drivers/i
26031 cs->dev = NULL; 25080 cs->dev = NULL;
26032 cs->tty = NULL; 25081 cs->tty = NULL;
26033 cs->tty_dev = NULL; 25082 cs->tty_dev = NULL;
26034diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 25083diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h
26035--- linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-03-14 21:20:32.000000000 -0400 25084--- linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 2011-03-14 21:20:32.000000000 -0400
26036+++ linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-04-17 15:57:32.000000000 -0400 25085+++ linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 2011-03-21 18:31:35.000000000 -0400
26037@@ -35,6 +35,7 @@ 25086@@ -35,6 +35,7 @@
26038 #include <linux/tty_driver.h> 25087 #include <linux/tty_driver.h>
26039 #include <linux/list.h> 25088 #include <linux/list.h>
@@ -26051,9 +25100,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h linux-2.6.38.3/drivers/
26051 struct tty_struct *tty; 25100 struct tty_struct *tty;
26052 struct tasklet_struct if_wake_tasklet; 25101 struct tasklet_struct if_wake_tasklet;
26053 unsigned control_state; 25102 unsigned control_state;
26054diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/interface.c linux-2.6.38.3/drivers/isdn/gigaset/interface.c 25103diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/interface.c linux-2.6.38.2/drivers/isdn/gigaset/interface.c
26055--- linux-2.6.38.3/drivers/isdn/gigaset/interface.c 2011-03-14 21:20:32.000000000 -0400 25104--- linux-2.6.38.2/drivers/isdn/gigaset/interface.c 2011-03-14 21:20:32.000000000 -0400
26056+++ linux-2.6.38.3/drivers/isdn/gigaset/interface.c 2011-04-17 15:57:32.000000000 -0400 25105+++ linux-2.6.38.2/drivers/isdn/gigaset/interface.c 2011-03-21 18:31:35.000000000 -0400
26057@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt 25106@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt
26058 return -ERESTARTSYS; 25107 return -ERESTARTSYS;
26059 tty->driver_data = cs; 25108 tty->driver_data = cs;
@@ -26141,9 +25190,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/interface.c linux-2.6.38.3/driver
26141 dev_warn(cs->dev, "%s: device not opened\n", __func__); 25190 dev_warn(cs->dev, "%s: device not opened\n", __func__);
26142 goto out; 25191 goto out;
26143 } 25192 }
26144diff -urNp linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 25193diff -urNp linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c
26145--- linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 2011-03-14 21:20:32.000000000 -0400 25194--- linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 2011-03-14 21:20:32.000000000 -0400
26146+++ linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 2011-04-17 15:57:32.000000000 -0400 25195+++ linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 2011-03-21 18:31:35.000000000 -0400
26147@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo 25196@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo
26148 } 25197 }
26149 if (left) { 25198 if (left) {
@@ -26162,9 +25211,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c linux-2.6.38.3/drivers/
26162 return -EFAULT; 25211 return -EFAULT;
26163 } else { 25212 } else {
26164 memcpy(buf, dp, left); 25213 memcpy(buf, dp, left);
26165diff -urNp linux-2.6.38.3/drivers/isdn/icn/icn.c linux-2.6.38.3/drivers/isdn/icn/icn.c 25214diff -urNp linux-2.6.38.2/drivers/isdn/icn/icn.c linux-2.6.38.2/drivers/isdn/icn/icn.c
26166--- linux-2.6.38.3/drivers/isdn/icn/icn.c 2011-03-14 21:20:32.000000000 -0400 25215--- linux-2.6.38.2/drivers/isdn/icn/icn.c 2011-03-14 21:20:32.000000000 -0400
26167+++ linux-2.6.38.3/drivers/isdn/icn/icn.c 2011-04-17 15:57:32.000000000 -0400 25216+++ linux-2.6.38.2/drivers/isdn/icn/icn.c 2011-03-21 18:31:35.000000000 -0400
26168@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len 25217@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len
26169 if (count > len) 25218 if (count > len)
26170 count = len; 25219 count = len;
@@ -26174,9 +25223,86 @@ diff -urNp linux-2.6.38.3/drivers/isdn/icn/icn.c linux-2.6.38.3/drivers/isdn/icn
26174 return -EFAULT; 25223 return -EFAULT;
26175 } else 25224 } else
26176 memcpy(msg, buf, count); 25225 memcpy(msg, buf, count);
26177diff -urNp linux-2.6.38.3/drivers/lguest/core.c linux-2.6.38.3/drivers/lguest/core.c 25226diff -urNp linux-2.6.38.2/drivers/leds/leds-lp5521.c linux-2.6.38.2/drivers/leds/leds-lp5521.c
26178--- linux-2.6.38.3/drivers/lguest/core.c 2011-03-14 21:20:32.000000000 -0400 25227--- linux-2.6.38.2/drivers/leds/leds-lp5521.c 2011-03-14 21:20:32.000000000 -0400
26179+++ linux-2.6.38.3/drivers/lguest/core.c 2011-04-17 15:57:32.000000000 -0400 25228+++ linux-2.6.38.2/drivers/leds/leds-lp5521.c 2011-03-21 18:31:35.000000000 -0400
25229@@ -534,7 +534,7 @@ static ssize_t lp5521_selftest(struct de
25230 }
25231
25232 /* led class device attributes */
25233-static DEVICE_ATTR(led_current, S_IRUGO | S_IWUGO, show_current, store_current);
25234+static DEVICE_ATTR(led_current, S_IRUGO | S_IWUSR, show_current, store_current);
25235 static DEVICE_ATTR(max_current, S_IRUGO , show_max_current, NULL);
25236
25237 static struct attribute *lp5521_led_attributes[] = {
25238@@ -548,15 +548,15 @@ static struct attribute_group lp5521_led
25239 };
25240
25241 /* device attributes */
25242-static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUGO,
25243+static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUSR,
25244 show_engine1_mode, store_engine1_mode);
25245-static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUGO,
25246+static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUSR,
25247 show_engine2_mode, store_engine2_mode);
25248-static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUGO,
25249+static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUSR,
25250 show_engine3_mode, store_engine3_mode);
25251-static DEVICE_ATTR(engine1_load, S_IWUGO, NULL, store_engine1_load);
25252-static DEVICE_ATTR(engine2_load, S_IWUGO, NULL, store_engine2_load);
25253-static DEVICE_ATTR(engine3_load, S_IWUGO, NULL, store_engine3_load);
25254+static DEVICE_ATTR(engine1_load, S_IWUSR, NULL, store_engine1_load);
25255+static DEVICE_ATTR(engine2_load, S_IWUSR, NULL, store_engine2_load);
25256+static DEVICE_ATTR(engine3_load, S_IWUSR, NULL, store_engine3_load);
25257 static DEVICE_ATTR(selftest, S_IRUGO, lp5521_selftest, NULL);
25258
25259 static struct attribute *lp5521_attributes[] = {
25260diff -urNp linux-2.6.38.2/drivers/leds/leds-lp5523.c linux-2.6.38.2/drivers/leds/leds-lp5523.c
25261--- linux-2.6.38.2/drivers/leds/leds-lp5523.c 2011-03-14 21:20:32.000000000 -0400
25262+++ linux-2.6.38.2/drivers/leds/leds-lp5523.c 2011-03-21 18:31:35.000000000 -0400
25263@@ -713,7 +713,7 @@ static ssize_t store_current(struct devi
25264 }
25265
25266 /* led class device attributes */
25267-static DEVICE_ATTR(led_current, S_IRUGO | S_IWUGO, show_current, store_current);
25268+static DEVICE_ATTR(led_current, S_IRUGO | S_IWUSR, show_current, store_current);
25269 static DEVICE_ATTR(max_current, S_IRUGO , show_max_current, NULL);
25270
25271 static struct attribute *lp5523_led_attributes[] = {
25272@@ -727,21 +727,21 @@ static struct attribute_group lp5523_led
25273 };
25274
25275 /* device attributes */
25276-static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUGO,
25277+static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUSR,
25278 show_engine1_mode, store_engine1_mode);
25279-static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUGO,
25280+static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUSR,
25281 show_engine2_mode, store_engine2_mode);
25282-static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUGO,
25283+static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUSR,
25284 show_engine3_mode, store_engine3_mode);
25285-static DEVICE_ATTR(engine1_leds, S_IRUGO | S_IWUGO,
25286+static DEVICE_ATTR(engine1_leds, S_IRUGO | S_IWUSR,
25287 show_engine1_leds, store_engine1_leds);
25288-static DEVICE_ATTR(engine2_leds, S_IRUGO | S_IWUGO,
25289+static DEVICE_ATTR(engine2_leds, S_IRUGO | S_IWUSR,
25290 show_engine2_leds, store_engine2_leds);
25291-static DEVICE_ATTR(engine3_leds, S_IRUGO | S_IWUGO,
25292+static DEVICE_ATTR(engine3_leds, S_IRUGO | S_IWUSR,
25293 show_engine3_leds, store_engine3_leds);
25294-static DEVICE_ATTR(engine1_load, S_IWUGO, NULL, store_engine1_load);
25295-static DEVICE_ATTR(engine2_load, S_IWUGO, NULL, store_engine2_load);
25296-static DEVICE_ATTR(engine3_load, S_IWUGO, NULL, store_engine3_load);
25297+static DEVICE_ATTR(engine1_load, S_IWUSR, NULL, store_engine1_load);
25298+static DEVICE_ATTR(engine2_load, S_IWUSR, NULL, store_engine2_load);
25299+static DEVICE_ATTR(engine3_load, S_IWUSR, NULL, store_engine3_load);
25300 static DEVICE_ATTR(selftest, S_IRUGO, lp5523_selftest, NULL);
25301
25302 static struct attribute *lp5523_attributes[] = {
25303diff -urNp linux-2.6.38.2/drivers/lguest/core.c linux-2.6.38.2/drivers/lguest/core.c
25304--- linux-2.6.38.2/drivers/lguest/core.c 2011-03-14 21:20:32.000000000 -0400
25305+++ linux-2.6.38.2/drivers/lguest/core.c 2011-03-21 18:31:35.000000000 -0400
26180@@ -92,9 +92,17 @@ static __init int map_switcher(void) 25306@@ -92,9 +92,17 @@ static __init int map_switcher(void)
26181 * it's worked so far. The end address needs +1 because __get_vm_area 25307 * it's worked so far. The end address needs +1 because __get_vm_area
26182 * allocates an extra guard page, so we need space for that. 25308 * allocates an extra guard page, so we need space for that.
@@ -26204,9 +25330,9 @@ diff -urNp linux-2.6.38.3/drivers/lguest/core.c linux-2.6.38.3/drivers/lguest/co
26204 end_switcher_text - start_switcher_text); 25330 end_switcher_text - start_switcher_text);
26205 25331
26206 printk(KERN_INFO "lguest: mapped switcher at %p\n", 25332 printk(KERN_INFO "lguest: mapped switcher at %p\n",
26207diff -urNp linux-2.6.38.3/drivers/lguest/x86/core.c linux-2.6.38.3/drivers/lguest/x86/core.c 25333diff -urNp linux-2.6.38.2/drivers/lguest/x86/core.c linux-2.6.38.2/drivers/lguest/x86/core.c
26208--- linux-2.6.38.3/drivers/lguest/x86/core.c 2011-03-14 21:20:32.000000000 -0400 25334--- linux-2.6.38.2/drivers/lguest/x86/core.c 2011-03-14 21:20:32.000000000 -0400
26209+++ linux-2.6.38.3/drivers/lguest/x86/core.c 2011-04-17 15:57:32.000000000 -0400 25335+++ linux-2.6.38.2/drivers/lguest/x86/core.c 2011-03-21 18:31:35.000000000 -0400
26210@@ -59,7 +59,7 @@ static struct { 25336@@ -59,7 +59,7 @@ static struct {
26211 /* Offset from where switcher.S was compiled to where we've copied it */ 25337 /* Offset from where switcher.S was compiled to where we've copied it */
26212 static unsigned long switcher_offset(void) 25338 static unsigned long switcher_offset(void)
@@ -26248,9 +25374,9 @@ diff -urNp linux-2.6.38.3/drivers/lguest/x86/core.c linux-2.6.38.3/drivers/lgues
26248 lguest_entry.segment = LGUEST_CS; 25374 lguest_entry.segment = LGUEST_CS;
26249 25375
26250 /* 25376 /*
26251diff -urNp linux-2.6.38.3/drivers/lguest/x86/switcher_32.S linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 25377diff -urNp linux-2.6.38.2/drivers/lguest/x86/switcher_32.S linux-2.6.38.2/drivers/lguest/x86/switcher_32.S
26252--- linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-03-14 21:20:32.000000000 -0400 25378--- linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 2011-03-14 21:20:32.000000000 -0400
26253+++ linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-04-17 15:57:32.000000000 -0400 25379+++ linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 2011-03-21 18:31:35.000000000 -0400
26254@@ -87,6 +87,7 @@ 25380@@ -87,6 +87,7 @@
26255 #include <asm/page.h> 25381 #include <asm/page.h>
26256 #include <asm/segment.h> 25382 #include <asm/segment.h>
@@ -26309,9 +25435,9 @@ diff -urNp linux-2.6.38.3/drivers/lguest/x86/switcher_32.S linux-2.6.38.3/driver
26309 25435
26310 // Every interrupt can come to us here 25436 // Every interrupt can come to us here
26311 // But we must truly tell each apart. 25437 // But we must truly tell each apart.
26312diff -urNp linux-2.6.38.3/drivers/md/bitmap.c linux-2.6.38.3/drivers/md/bitmap.c 25438diff -urNp linux-2.6.38.2/drivers/md/bitmap.c linux-2.6.38.2/drivers/md/bitmap.c
26313--- linux-2.6.38.3/drivers/md/bitmap.c 2011-03-14 21:20:32.000000000 -0400 25439--- linux-2.6.38.2/drivers/md/bitmap.c 2011-03-14 21:20:32.000000000 -0400
26314+++ linux-2.6.38.3/drivers/md/bitmap.c 2011-04-17 15:57:32.000000000 -0400 25440+++ linux-2.6.38.2/drivers/md/bitmap.c 2011-03-21 18:31:35.000000000 -0400
26315@@ -55,7 +55,7 @@ 25441@@ -55,7 +55,7 @@
26316 # if DEBUG > 0 25442 # if DEBUG > 0
26317 # define PRINTK(x...) printk(KERN_DEBUG x) 25443 # define PRINTK(x...) printk(KERN_DEBUG x)
@@ -26321,9 +25447,9 @@ diff -urNp linux-2.6.38.3/drivers/md/bitmap.c linux-2.6.38.3/drivers/md/bitmap.c
26321 # endif 25447 # endif
26322 #endif 25448 #endif
26323 25449
26324diff -urNp linux-2.6.38.3/drivers/md/dm-ioctl.c linux-2.6.38.3/drivers/md/dm-ioctl.c 25450diff -urNp linux-2.6.38.2/drivers/md/dm-ioctl.c linux-2.6.38.2/drivers/md/dm-ioctl.c
26325--- linux-2.6.38.3/drivers/md/dm-ioctl.c 2011-03-14 21:20:32.000000000 -0400 25451--- linux-2.6.38.2/drivers/md/dm-ioctl.c 2011-03-14 21:20:32.000000000 -0400
26326+++ linux-2.6.38.3/drivers/md/dm-ioctl.c 2011-04-17 15:57:32.000000000 -0400 25452+++ linux-2.6.38.2/drivers/md/dm-ioctl.c 2011-03-21 18:31:35.000000000 -0400
26327@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str 25453@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str
26328 cmd == DM_LIST_VERSIONS_CMD) 25454 cmd == DM_LIST_VERSIONS_CMD)
26329 return 0; 25455 return 0;
@@ -26333,9 +25459,9 @@ diff -urNp linux-2.6.38.3/drivers/md/dm-ioctl.c linux-2.6.38.3/drivers/md/dm-ioc
26333 if (!*param->name) { 25459 if (!*param->name) {
26334 DMWARN("name not supplied when creating device"); 25460 DMWARN("name not supplied when creating device");
26335 return -EINVAL; 25461 return -EINVAL;
26336diff -urNp linux-2.6.38.3/drivers/md/dm-table.c linux-2.6.38.3/drivers/md/dm-table.c 25462diff -urNp linux-2.6.38.2/drivers/md/dm-table.c linux-2.6.38.2/drivers/md/dm-table.c
26337--- linux-2.6.38.3/drivers/md/dm-table.c 2011-03-14 21:20:32.000000000 -0400 25463--- linux-2.6.38.2/drivers/md/dm-table.c 2011-03-14 21:20:32.000000000 -0400
26338+++ linux-2.6.38.3/drivers/md/dm-table.c 2011-04-17 15:57:32.000000000 -0400 25464+++ linux-2.6.38.2/drivers/md/dm-table.c 2011-03-21 18:31:35.000000000 -0400
26339@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct 25465@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct
26340 if (!dev_size) 25466 if (!dev_size)
26341 return 0; 25467 return 0;
@@ -26345,9 +25471,9 @@ diff -urNp linux-2.6.38.3/drivers/md/dm-table.c linux-2.6.38.3/drivers/md/dm-tab
26345 DMWARN("%s: %s too small for target: " 25471 DMWARN("%s: %s too small for target: "
26346 "start=%llu, len=%llu, dev_size=%llu", 25472 "start=%llu, len=%llu, dev_size=%llu",
26347 dm_device_name(ti->table->md), bdevname(bdev, b), 25473 dm_device_name(ti->table->md), bdevname(bdev, b),
26348diff -urNp linux-2.6.38.3/drivers/md/md.c linux-2.6.38.3/drivers/md/md.c 25474diff -urNp linux-2.6.38.2/drivers/md/md.c linux-2.6.38.2/drivers/md/md.c
26349--- linux-2.6.38.3/drivers/md/md.c 2011-03-14 21:20:32.000000000 -0400 25475--- linux-2.6.38.2/drivers/md/md.c 2011-03-14 21:20:32.000000000 -0400
26350+++ linux-2.6.38.3/drivers/md/md.c 2011-04-17 15:57:32.000000000 -0400 25476+++ linux-2.6.38.2/drivers/md/md.c 2011-03-21 18:31:35.000000000 -0400
26351@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t 25477@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t
26352 25478
26353 ko = &part_to_dev(rdev->bdev->bd_part)->kobj; 25479 ko = &part_to_dev(rdev->bdev->bd_part)->kobj;
@@ -26402,9 +25528,9 @@ diff -urNp linux-2.6.38.3/drivers/md/md.c linux-2.6.38.3/drivers/md/md.c
26402 spares++; 25528 spares++;
26403 md_new_event(mddev); 25529 md_new_event(mddev);
26404 set_bit(MD_CHANGE_DEVS, &mddev->flags); 25530 set_bit(MD_CHANGE_DEVS, &mddev->flags);
26405diff -urNp linux-2.6.38.3/drivers/md/md.h linux-2.6.38.3/drivers/md/md.h 25531diff -urNp linux-2.6.38.2/drivers/md/md.h linux-2.6.38.2/drivers/md/md.h
26406--- linux-2.6.38.3/drivers/md/md.h 2011-03-14 21:20:32.000000000 -0400 25532--- linux-2.6.38.2/drivers/md/md.h 2011-03-14 21:20:32.000000000 -0400
26407+++ linux-2.6.38.3/drivers/md/md.h 2011-04-17 15:57:32.000000000 -0400 25533+++ linux-2.6.38.2/drivers/md/md.h 2011-03-21 18:31:35.000000000 -0400
26408@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_ 25534@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_
26409 25535
26410 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) 25536 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
@@ -26414,9 +25540,9 @@ diff -urNp linux-2.6.38.3/drivers/md/md.h linux-2.6.38.3/drivers/md/md.h
26414 } 25540 }
26415 25541
26416 struct mdk_personality 25542 struct mdk_personality
26417diff -urNp linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 25543diff -urNp linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c
26418--- linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-14 21:20:32.000000000 -0400 25544--- linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-14 21:20:32.000000000 -0400
26419+++ linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 2011-04-17 15:57:32.000000000 -0400 25545+++ linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-21 18:31:35.000000000 -0400
26420@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt 25546@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt
26421 const struct dvb_device *template, void *priv, int type) 25547 const struct dvb_device *template, void *priv, int type)
26422 { 25548 {
@@ -26426,9 +25552,9 @@ diff -urNp linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c linux-2.6.38.3/dri
26426 struct device *clsdev; 25552 struct device *clsdev;
26427 int minor; 25553 int minor;
26428 int id; 25554 int id;
26429diff -urNp linux-2.6.38.3/drivers/media/radio/radio-cadet.c linux-2.6.38.3/drivers/media/radio/radio-cadet.c 25555diff -urNp linux-2.6.38.2/drivers/media/radio/radio-cadet.c linux-2.6.38.2/drivers/media/radio/radio-cadet.c
26430--- linux-2.6.38.3/drivers/media/radio/radio-cadet.c 2011-03-14 21:20:32.000000000 -0400 25556--- linux-2.6.38.2/drivers/media/radio/radio-cadet.c 2011-03-14 21:20:32.000000000 -0400
26431+++ linux-2.6.38.3/drivers/media/radio/radio-cadet.c 2011-04-17 15:57:32.000000000 -0400 25557+++ linux-2.6.38.2/drivers/media/radio/radio-cadet.c 2011-03-21 18:31:35.000000000 -0400
26432@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f 25558@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f
26433 readbuf[i++] = dev->rdsbuf[dev->rdsout++]; 25559 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
26434 mutex_unlock(&dev->lock); 25560 mutex_unlock(&dev->lock);
@@ -26438,9 +25564,9 @@ diff -urNp linux-2.6.38.3/drivers/media/radio/radio-cadet.c linux-2.6.38.3/drive
26438 return -EFAULT; 25564 return -EFAULT;
26439 return i; 25565 return i;
26440 } 25566 }
26441diff -urNp linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 25567diff -urNp linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c
26442--- linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 2011-03-14 21:20:32.000000000 -0400 25568--- linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c 2011-03-14 21:20:32.000000000 -0400
26443+++ linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 2011-04-17 15:57:32.000000000 -0400 25569+++ linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c 2011-03-21 18:31:35.000000000 -0400
26444@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data) 25570@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data)
26445 return; 25571 return;
26446 } 25572 }
@@ -26450,9 +25576,9 @@ diff -urNp linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c linux-2.6.38.3/driver
26450 .owner = THIS_MODULE, 25576 .owner = THIS_MODULE,
26451 .write = ir_lirc_transmit_ir, 25577 .write = ir_lirc_transmit_ir,
26452 .unlocked_ioctl = ir_lirc_ioctl, 25578 .unlocked_ioctl = ir_lirc_ioctl,
26453diff -urNp linux-2.6.38.3/drivers/media/rc/lirc_dev.c linux-2.6.38.3/drivers/media/rc/lirc_dev.c 25579diff -urNp linux-2.6.38.2/drivers/media/rc/lirc_dev.c linux-2.6.38.2/drivers/media/rc/lirc_dev.c
26454--- linux-2.6.38.3/drivers/media/rc/lirc_dev.c 2011-03-14 21:20:32.000000000 -0400 25580--- linux-2.6.38.2/drivers/media/rc/lirc_dev.c 2011-03-14 21:20:32.000000000 -0400
26455+++ linux-2.6.38.3/drivers/media/rc/lirc_dev.c 2011-04-17 15:57:32.000000000 -0400 25581+++ linux-2.6.38.2/drivers/media/rc/lirc_dev.c 2011-03-21 18:31:35.000000000 -0400
26456@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl) 25582@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl)
26457 } 25583 }
26458 25584
@@ -26462,9 +25588,9 @@ diff -urNp linux-2.6.38.3/drivers/media/rc/lirc_dev.c linux-2.6.38.3/drivers/med
26462 .owner = THIS_MODULE, 25588 .owner = THIS_MODULE,
26463 .read = lirc_dev_fop_read, 25589 .read = lirc_dev_fop_read,
26464 .write = lirc_dev_fop_write, 25590 .write = lirc_dev_fop_write,
26465diff -urNp linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 25591diff -urNp linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c
26466--- linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-14 21:20:32.000000000 -0400 25592--- linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-14 21:20:32.000000000 -0400
26467+++ linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 2011-04-17 15:57:32.000000000 -0400 25593+++ linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-21 18:31:35.000000000 -0400
26468@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_ 25594@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_
26469 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg); 25595 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg);
26470 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR, 25596 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR,
@@ -26478,9 +25604,9 @@ diff -urNp linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.3
26478 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL); 25604 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL);
26479 25605
26480 25606
26481diff -urNp linux-2.6.38.3/drivers/message/fusion/mptbase.c linux-2.6.38.3/drivers/message/fusion/mptbase.c 25607diff -urNp linux-2.6.38.2/drivers/message/fusion/mptbase.c linux-2.6.38.2/drivers/message/fusion/mptbase.c
26482--- linux-2.6.38.3/drivers/message/fusion/mptbase.c 2011-03-14 21:20:32.000000000 -0400 25608--- linux-2.6.38.2/drivers/message/fusion/mptbase.c 2011-03-14 21:20:32.000000000 -0400
26483+++ linux-2.6.38.3/drivers/message/fusion/mptbase.c 2011-04-17 15:57:32.000000000 -0400 25609+++ linux-2.6.38.2/drivers/message/fusion/mptbase.c 2011-03-21 18:31:35.000000000 -0400
26484@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct 25610@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct
26485 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth); 25611 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
26486 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize); 25612 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
@@ -26495,9 +25621,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptbase.c linux-2.6.38.3/driver
26495 /* 25621 /*
26496 * Rounding UP to nearest 4-kB boundary here... 25622 * Rounding UP to nearest 4-kB boundary here...
26497 */ 25623 */
26498diff -urNp linux-2.6.38.3/drivers/message/fusion/mptdebug.h linux-2.6.38.3/drivers/message/fusion/mptdebug.h 25624diff -urNp linux-2.6.38.2/drivers/message/fusion/mptdebug.h linux-2.6.38.2/drivers/message/fusion/mptdebug.h
26499--- linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-03-14 21:20:32.000000000 -0400 25625--- linux-2.6.38.2/drivers/message/fusion/mptdebug.h 2011-03-14 21:20:32.000000000 -0400
26500+++ linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-04-17 15:57:32.000000000 -0400 25626+++ linux-2.6.38.2/drivers/message/fusion/mptdebug.h 2011-03-21 18:31:35.000000000 -0400
26501@@ -71,7 +71,7 @@ 25627@@ -71,7 +71,7 @@
26502 CMD; \ 25628 CMD; \
26503 } 25629 }
@@ -26507,9 +25633,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptdebug.h linux-2.6.38.3/drive
26507 #endif 25633 #endif
26508 25634
26509 25635
26510diff -urNp linux-2.6.38.3/drivers/message/fusion/mptsas.c linux-2.6.38.3/drivers/message/fusion/mptsas.c 25636diff -urNp linux-2.6.38.2/drivers/message/fusion/mptsas.c linux-2.6.38.2/drivers/message/fusion/mptsas.c
26511--- linux-2.6.38.3/drivers/message/fusion/mptsas.c 2011-03-14 21:20:32.000000000 -0400 25637--- linux-2.6.38.2/drivers/message/fusion/mptsas.c 2011-03-14 21:20:32.000000000 -0400
26512+++ linux-2.6.38.3/drivers/message/fusion/mptsas.c 2011-04-17 15:57:32.000000000 -0400 25638+++ linux-2.6.38.2/drivers/message/fusion/mptsas.c 2011-03-21 18:31:35.000000000 -0400
26513@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin 25639@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin
26514 return 0; 25640 return 0;
26515 } 25641 }
@@ -26558,9 +25684,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptsas.c linux-2.6.38.3/drivers
26558 static inline struct sas_port * 25684 static inline struct sas_port *
26559 mptsas_get_port(struct mptsas_phyinfo *phy_info) 25685 mptsas_get_port(struct mptsas_phyinfo *phy_info)
26560 { 25686 {
26561diff -urNp linux-2.6.38.3/drivers/message/fusion/mptscsih.c linux-2.6.38.3/drivers/message/fusion/mptscsih.c 25687diff -urNp linux-2.6.38.2/drivers/message/fusion/mptscsih.c linux-2.6.38.2/drivers/message/fusion/mptscsih.c
26562--- linux-2.6.38.3/drivers/message/fusion/mptscsih.c 2011-03-14 21:20:32.000000000 -0400 25688--- linux-2.6.38.2/drivers/message/fusion/mptscsih.c 2011-03-14 21:20:32.000000000 -0400
26563+++ linux-2.6.38.3/drivers/message/fusion/mptscsih.c 2011-04-17 15:57:32.000000000 -0400 25689+++ linux-2.6.38.2/drivers/message/fusion/mptscsih.c 2011-03-21 18:31:35.000000000 -0400
26564@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost) 25690@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost)
26565 25691
26566 h = shost_priv(SChost); 25692 h = shost_priv(SChost);
@@ -26586,9 +25712,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptscsih.c linux-2.6.38.3/drive
26586 25712
26587 return h->info_kbuf; 25713 return h->info_kbuf;
26588 } 25714 }
26589diff -urNp linux-2.6.38.3/drivers/message/i2o/i2o_proc.c linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 25715diff -urNp linux-2.6.38.2/drivers/message/i2o/i2o_proc.c linux-2.6.38.2/drivers/message/i2o/i2o_proc.c
26590--- linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 2011-03-14 21:20:32.000000000 -0400 25716--- linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 2011-03-14 21:20:32.000000000 -0400
26591+++ linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 2011-04-17 15:57:32.000000000 -0400 25717+++ linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 2011-03-21 18:31:35.000000000 -0400
26592@@ -255,13 +255,6 @@ static char *scsi_devices[] = { 25718@@ -255,13 +255,6 @@ static char *scsi_devices[] = {
26593 "Array Controller Device" 25719 "Array Controller Device"
26594 }; 25720 };
@@ -26675,9 +25801,79 @@ diff -urNp linux-2.6.38.3/drivers/message/i2o/i2o_proc.c linux-2.6.38.3/drivers/
26675 25801
26676 return 0; 25802 return 0;
26677 } 25803 }
26678diff -urNp linux-2.6.38.3/drivers/mfd/janz-cmodio.c linux-2.6.38.3/drivers/mfd/janz-cmodio.c 25804diff -urNp linux-2.6.38.2/drivers/mfd/ab3100-core.c linux-2.6.38.2/drivers/mfd/ab3100-core.c
26679--- linux-2.6.38.3/drivers/mfd/janz-cmodio.c 2011-03-14 21:20:32.000000000 -0400 25805--- linux-2.6.38.2/drivers/mfd/ab3100-core.c 2011-03-14 21:20:32.000000000 -0400
26680+++ linux-2.6.38.3/drivers/mfd/janz-cmodio.c 2011-04-17 15:57:32.000000000 -0400 25806+++ linux-2.6.38.2/drivers/mfd/ab3100-core.c 2011-03-21 18:31:35.000000000 -0400
25807@@ -613,7 +613,7 @@ static void ab3100_setup_debugfs(struct
25808 ab3100_get_priv.ab3100 = ab3100;
25809 ab3100_get_priv.mode = false;
25810 ab3100_get_reg_file = debugfs_create_file("get_reg",
25811- S_IWUGO, ab3100_dir, &ab3100_get_priv,
25812+ S_IWUSR, ab3100_dir, &ab3100_get_priv,
25813 &ab3100_get_set_reg_fops);
25814 if (!ab3100_get_reg_file) {
25815 err = -ENOMEM;
25816@@ -623,7 +623,7 @@ static void ab3100_setup_debugfs(struct
25817 ab3100_set_priv.ab3100 = ab3100;
25818 ab3100_set_priv.mode = true;
25819 ab3100_set_reg_file = debugfs_create_file("set_reg",
25820- S_IWUGO, ab3100_dir, &ab3100_set_priv,
25821+ S_IWUSR, ab3100_dir, &ab3100_set_priv,
25822 &ab3100_get_set_reg_fops);
25823 if (!ab3100_set_reg_file) {
25824 err = -ENOMEM;
25825diff -urNp linux-2.6.38.2/drivers/mfd/ab3550-core.c linux-2.6.38.2/drivers/mfd/ab3550-core.c
25826--- linux-2.6.38.2/drivers/mfd/ab3550-core.c 2011-03-14 21:20:32.000000000 -0400
25827+++ linux-2.6.38.2/drivers/mfd/ab3550-core.c 2011-03-21 18:31:35.000000000 -0400
25828@@ -1053,17 +1053,17 @@ static inline void ab3550_setup_debugfs(
25829 goto exit_destroy_dir;
25830
25831 ab3550_bank_file = debugfs_create_file("register-bank",
25832- (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_bank_fops);
25833+ (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_bank_fops);
25834 if (!ab3550_bank_file)
25835 goto exit_destroy_reg;
25836
25837 ab3550_address_file = debugfs_create_file("register-address",
25838- (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_address_fops);
25839+ (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_address_fops);
25840 if (!ab3550_address_file)
25841 goto exit_destroy_bank;
25842
25843 ab3550_val_file = debugfs_create_file("register-value",
25844- (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_val_fops);
25845+ (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_val_fops);
25846 if (!ab3550_val_file)
25847 goto exit_destroy_address;
25848
25849diff -urNp linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c
25850--- linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c 2011-03-14 21:20:32.000000000 -0400
25851+++ linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c 2011-03-21 18:31:35.000000000 -0400
25852@@ -585,18 +585,18 @@ static int __devinit ab8500_debug_probe(
25853 goto exit_destroy_dir;
25854
25855 ab8500_bank_file = debugfs_create_file("register-bank",
25856- (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, &ab8500_bank_fops);
25857+ (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_bank_fops);
25858 if (!ab8500_bank_file)
25859 goto exit_destroy_reg;
25860
25861 ab8500_address_file = debugfs_create_file("register-address",
25862- (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev,
25863+ (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev,
25864 &ab8500_address_fops);
25865 if (!ab8500_address_file)
25866 goto exit_destroy_bank;
25867
25868 ab8500_val_file = debugfs_create_file("register-value",
25869- (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, &ab8500_val_fops);
25870+ (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_val_fops);
25871 if (!ab8500_val_file)
25872 goto exit_destroy_address;
25873
25874diff -urNp linux-2.6.38.2/drivers/mfd/janz-cmodio.c linux-2.6.38.2/drivers/mfd/janz-cmodio.c
25875--- linux-2.6.38.2/drivers/mfd/janz-cmodio.c 2011-03-14 21:20:32.000000000 -0400
25876+++ linux-2.6.38.2/drivers/mfd/janz-cmodio.c 2011-03-21 18:31:35.000000000 -0400
26681@@ -13,6 +13,7 @@ 25877@@ -13,6 +13,7 @@
26682 25878
26683 #include <linux/kernel.h> 25879 #include <linux/kernel.h>
@@ -26686,9 +25882,27 @@ diff -urNp linux-2.6.38.3/drivers/mfd/janz-cmodio.c linux-2.6.38.3/drivers/mfd/j
26686 #include <linux/init.h> 25882 #include <linux/init.h>
26687 #include <linux/pci.h> 25883 #include <linux/pci.h>
26688 #include <linux/interrupt.h> 25884 #include <linux/interrupt.h>
26689diff -urNp linux-2.6.38.3/drivers/misc/kgdbts.c linux-2.6.38.3/drivers/misc/kgdbts.c 25885diff -urNp linux-2.6.38.2/drivers/misc/ep93xx_pwm.c linux-2.6.38.2/drivers/misc/ep93xx_pwm.c
26690--- linux-2.6.38.3/drivers/misc/kgdbts.c 2011-03-14 21:20:32.000000000 -0400 25886--- linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 2011-03-14 21:20:32.000000000 -0400
26691+++ linux-2.6.38.3/drivers/misc/kgdbts.c 2011-04-17 15:57:32.000000000 -0400 25887+++ linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 2011-03-21 18:31:35.000000000 -0400
25888@@ -249,11 +249,11 @@ static ssize_t ep93xx_pwm_set_invert(str
25889
25890 static DEVICE_ATTR(min_freq, S_IRUGO, ep93xx_pwm_get_min_freq, NULL);
25891 static DEVICE_ATTR(max_freq, S_IRUGO, ep93xx_pwm_get_max_freq, NULL);
25892-static DEVICE_ATTR(freq, S_IWUGO | S_IRUGO,
25893+static DEVICE_ATTR(freq, S_IWUSR | S_IRUGO,
25894 ep93xx_pwm_get_freq, ep93xx_pwm_set_freq);
25895-static DEVICE_ATTR(duty_percent, S_IWUGO | S_IRUGO,
25896+static DEVICE_ATTR(duty_percent, S_IWUSR | S_IRUGO,
25897 ep93xx_pwm_get_duty_percent, ep93xx_pwm_set_duty_percent);
25898-static DEVICE_ATTR(invert, S_IWUGO | S_IRUGO,
25899+static DEVICE_ATTR(invert, S_IWUSR | S_IRUGO,
25900 ep93xx_pwm_get_invert, ep93xx_pwm_set_invert);
25901
25902 static struct attribute *ep93xx_pwm_attrs[] = {
25903diff -urNp linux-2.6.38.2/drivers/misc/kgdbts.c linux-2.6.38.2/drivers/misc/kgdbts.c
25904--- linux-2.6.38.2/drivers/misc/kgdbts.c 2011-03-14 21:20:32.000000000 -0400
25905+++ linux-2.6.38.2/drivers/misc/kgdbts.c 2011-03-21 18:31:35.000000000 -0400
26692@@ -118,7 +118,7 @@ 25906@@ -118,7 +118,7 @@
26693 } while (0) 25907 } while (0)
26694 #define MAX_CONFIG_LEN 40 25908 #define MAX_CONFIG_LEN 40
@@ -26707,9 +25921,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/kgdbts.c linux-2.6.38.3/drivers/misc/kgdb
26707 .name = "kgdbts", 25921 .name = "kgdbts",
26708 .read_char = kgdbts_get_char, 25922 .read_char = kgdbts_get_char,
26709 .write_char = kgdbts_put_char, 25923 .write_char = kgdbts_put_char,
26710diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 25924diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c
26711--- linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 2011-03-14 21:20:32.000000000 -0400 25925--- linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 2011-03-14 21:20:32.000000000 -0400
26712+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 2011-04-17 15:57:32.000000000 -0400 25926+++ linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 2011-03-21 18:31:35.000000000 -0400
26713@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op 25927@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op
26714 unsigned long nsec; 25928 unsigned long nsec;
26715 25929
@@ -26721,9 +25935,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.3/drive
26721 if (mcs_op_statistics[op].max < nsec) 25935 if (mcs_op_statistics[op].max < nsec)
26722 mcs_op_statistics[op].max = nsec; 25936 mcs_op_statistics[op].max = nsec;
26723 } 25937 }
26724diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 25938diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c
26725--- linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-03-14 21:20:32.000000000 -0400 25939--- linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 2011-03-14 21:20:32.000000000 -0400
26726+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-04-17 15:57:32.000000000 -0400 25940+++ linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 2011-03-21 18:31:35.000000000 -0400
26727@@ -32,9 +32,9 @@ 25941@@ -32,9 +32,9 @@
26728 25942
26729 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f) 25943 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
@@ -26747,9 +25961,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.3/driver
26747 max = mcs_op_statistics[op].max; 25961 max = mcs_op_statistics[op].max;
26748 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count, 25962 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
26749 count ? total / count : 0, max); 25963 count ? total / count : 0, max);
26750diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 25964diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h
26751--- linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 2011-03-14 21:20:32.000000000 -0400 25965--- linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 2011-03-14 21:20:32.000000000 -0400
26752+++ linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 2011-04-17 15:57:32.000000000 -0400 25966+++ linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 2011-03-21 18:31:35.000000000 -0400
26753@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids; 25967@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
26754 * GRU statistics. 25968 * GRU statistics.
26755 */ 25969 */
@@ -26929,9 +26143,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h linux-2.6.38.3/driver
26929 } while (0) 26143 } while (0)
26930 26144
26931 #ifdef CONFIG_SGI_GRU_DEBUG 26145 #ifdef CONFIG_SGI_GRU_DEBUG
26932diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2000.c linux-2.6.38.3/drivers/mtd/devices/doc2000.c 26146diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2000.c linux-2.6.38.2/drivers/mtd/devices/doc2000.c
26933--- linux-2.6.38.3/drivers/mtd/devices/doc2000.c 2011-03-14 21:20:32.000000000 -0400 26147--- linux-2.6.38.2/drivers/mtd/devices/doc2000.c 2011-03-14 21:20:32.000000000 -0400
26934+++ linux-2.6.38.3/drivers/mtd/devices/doc2000.c 2011-04-17 15:57:32.000000000 -0400 26148+++ linux-2.6.38.2/drivers/mtd/devices/doc2000.c 2011-03-21 18:31:35.000000000 -0400
26935@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt 26149@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt
26936 26150
26937 /* The ECC will not be calculated correctly if less than 512 is written */ 26151 /* The ECC will not be calculated correctly if less than 512 is written */
@@ -26941,9 +26155,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2000.c linux-2.6.38.3/drivers/m
26941 printk(KERN_WARNING 26155 printk(KERN_WARNING
26942 "ECC needs a full sector write (adr: %lx size %lx)\n", 26156 "ECC needs a full sector write (adr: %lx size %lx)\n",
26943 (long) to, (long) len); 26157 (long) to, (long) len);
26944diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2001.c linux-2.6.38.3/drivers/mtd/devices/doc2001.c 26158diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2001.c linux-2.6.38.2/drivers/mtd/devices/doc2001.c
26945--- linux-2.6.38.3/drivers/mtd/devices/doc2001.c 2011-03-14 21:20:32.000000000 -0400 26159--- linux-2.6.38.2/drivers/mtd/devices/doc2001.c 2011-03-14 21:20:32.000000000 -0400
26946+++ linux-2.6.38.3/drivers/mtd/devices/doc2001.c 2011-04-17 15:57:32.000000000 -0400 26160+++ linux-2.6.38.2/drivers/mtd/devices/doc2001.c 2011-03-21 18:31:35.000000000 -0400
26947@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt 26161@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt
26948 struct Nand *mychip = &this->chips[from >> (this->chipshift)]; 26162 struct Nand *mychip = &this->chips[from >> (this->chipshift)];
26949 26163
@@ -26953,9 +26167,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2001.c linux-2.6.38.3/drivers/m
26953 return -EINVAL; 26167 return -EINVAL;
26954 26168
26955 /* Don't allow a single read to cross a 512-byte block boundary */ 26169 /* Don't allow a single read to cross a 512-byte block boundary */
26956diff -urNp linux-2.6.38.3/drivers/mtd/nand/denali.c linux-2.6.38.3/drivers/mtd/nand/denali.c 26170diff -urNp linux-2.6.38.2/drivers/mtd/nand/denali.c linux-2.6.38.2/drivers/mtd/nand/denali.c
26957--- linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-03-14 21:20:32.000000000 -0400 26171--- linux-2.6.38.2/drivers/mtd/nand/denali.c 2011-03-14 21:20:32.000000000 -0400
26958+++ linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-04-17 15:57:32.000000000 -0400 26172+++ linux-2.6.38.2/drivers/mtd/nand/denali.c 2011-03-21 18:31:35.000000000 -0400
26959@@ -25,6 +25,7 @@ 26173@@ -25,6 +25,7 @@
26960 #include <linux/pci.h> 26174 #include <linux/pci.h>
26961 #include <linux/mtd/mtd.h> 26175 #include <linux/mtd/mtd.h>
@@ -26964,9 +26178,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/nand/denali.c linux-2.6.38.3/drivers/mtd/n
26964 26178
26965 #include "denali.h" 26179 #include "denali.h"
26966 26180
26967diff -urNp linux-2.6.38.3/drivers/mtd/ubi/build.c linux-2.6.38.3/drivers/mtd/ubi/build.c 26181diff -urNp linux-2.6.38.2/drivers/mtd/ubi/build.c linux-2.6.38.2/drivers/mtd/ubi/build.c
26968--- linux-2.6.38.3/drivers/mtd/ubi/build.c 2011-03-14 21:20:32.000000000 -0400 26182--- linux-2.6.38.2/drivers/mtd/ubi/build.c 2011-03-14 21:20:32.000000000 -0400
26969+++ linux-2.6.38.3/drivers/mtd/ubi/build.c 2011-04-17 15:57:32.000000000 -0400 26183+++ linux-2.6.38.2/drivers/mtd/ubi/build.c 2011-03-21 18:31:35.000000000 -0400
26970@@ -1285,7 +1285,7 @@ module_exit(ubi_exit); 26184@@ -1285,7 +1285,7 @@ module_exit(ubi_exit);
26971 static int __init bytes_str_to_int(const char *str) 26185 static int __init bytes_str_to_int(const char *str)
26972 { 26186 {
@@ -27006,9 +26220,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/ubi/build.c linux-2.6.38.3/drivers/mtd/ubi
27006 } 26220 }
27007 26221
27008 /** 26222 /**
27009diff -urNp linux-2.6.38.3/drivers/net/e1000e/82571.c linux-2.6.38.3/drivers/net/e1000e/82571.c 26223diff -urNp linux-2.6.38.2/drivers/net/e1000e/82571.c linux-2.6.38.2/drivers/net/e1000e/82571.c
27010--- linux-2.6.38.3/drivers/net/e1000e/82571.c 2011-03-14 21:20:32.000000000 -0400 26224--- linux-2.6.38.2/drivers/net/e1000e/82571.c 2011-03-14 21:20:32.000000000 -0400
27011+++ linux-2.6.38.3/drivers/net/e1000e/82571.c 2011-04-17 15:57:32.000000000 -0400 26225+++ linux-2.6.38.2/drivers/net/e1000e/82571.c 2011-03-21 18:31:35.000000000 -0400
27012@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s 26226@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s
27013 { 26227 {
27014 struct e1000_hw *hw = &adapter->hw; 26228 struct e1000_hw *hw = &adapter->hw;
@@ -27063,9 +26277,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/82571.c linux-2.6.38.3/drivers/net/
27063 .acquire = e1000_acquire_nvm_82571, 26277 .acquire = e1000_acquire_nvm_82571,
27064 .read = e1000e_read_nvm_eerd, 26278 .read = e1000e_read_nvm_eerd,
27065 .release = e1000_release_nvm_82571, 26279 .release = e1000_release_nvm_82571,
27066diff -urNp linux-2.6.38.3/drivers/net/e1000e/e1000.h linux-2.6.38.3/drivers/net/e1000e/e1000.h 26280diff -urNp linux-2.6.38.2/drivers/net/e1000e/e1000.h linux-2.6.38.2/drivers/net/e1000e/e1000.h
27067--- linux-2.6.38.3/drivers/net/e1000e/e1000.h 2011-03-14 21:20:32.000000000 -0400 26281--- linux-2.6.38.2/drivers/net/e1000e/e1000.h 2011-03-14 21:20:32.000000000 -0400
27068+++ linux-2.6.38.3/drivers/net/e1000e/e1000.h 2011-04-17 15:57:32.000000000 -0400 26282+++ linux-2.6.38.2/drivers/net/e1000e/e1000.h 2011-03-21 18:31:35.000000000 -0400
27069@@ -408,9 +408,9 @@ struct e1000_info { 26283@@ -408,9 +408,9 @@ struct e1000_info {
27070 u32 pba; 26284 u32 pba;
27071 u32 max_hw_frame_size; 26285 u32 max_hw_frame_size;
@@ -27079,9 +26293,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/e1000.h linux-2.6.38.3/drivers/net/
27079 }; 26293 };
27080 26294
27081 /* hardware capability, feature, and workaround flags */ 26295 /* hardware capability, feature, and workaround flags */
27082diff -urNp linux-2.6.38.3/drivers/net/e1000e/es2lan.c linux-2.6.38.3/drivers/net/e1000e/es2lan.c 26296diff -urNp linux-2.6.38.2/drivers/net/e1000e/es2lan.c linux-2.6.38.2/drivers/net/e1000e/es2lan.c
27083--- linux-2.6.38.3/drivers/net/e1000e/es2lan.c 2011-03-14 21:20:32.000000000 -0400 26297--- linux-2.6.38.2/drivers/net/e1000e/es2lan.c 2011-03-14 21:20:32.000000000 -0400
27084+++ linux-2.6.38.3/drivers/net/e1000e/es2lan.c 2011-04-17 15:57:32.000000000 -0400 26298+++ linux-2.6.38.2/drivers/net/e1000e/es2lan.c 2011-03-21 18:31:35.000000000 -0400
27085@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es 26299@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es
27086 { 26300 {
27087 struct e1000_hw *hw = &adapter->hw; 26301 struct e1000_hw *hw = &adapter->hw;
@@ -27118,9 +26332,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/es2lan.c linux-2.6.38.3/drivers/net
27118 .acquire = e1000_acquire_nvm_80003es2lan, 26332 .acquire = e1000_acquire_nvm_80003es2lan,
27119 .read = e1000e_read_nvm_eerd, 26333 .read = e1000e_read_nvm_eerd,
27120 .release = e1000_release_nvm_80003es2lan, 26334 .release = e1000_release_nvm_80003es2lan,
27121diff -urNp linux-2.6.38.3/drivers/net/e1000e/hw.h linux-2.6.38.3/drivers/net/e1000e/hw.h 26335diff -urNp linux-2.6.38.2/drivers/net/e1000e/hw.h linux-2.6.38.2/drivers/net/e1000e/hw.h
27122--- linux-2.6.38.3/drivers/net/e1000e/hw.h 2011-03-14 21:20:32.000000000 -0400 26336--- linux-2.6.38.2/drivers/net/e1000e/hw.h 2011-03-14 21:20:32.000000000 -0400
27123+++ linux-2.6.38.3/drivers/net/e1000e/hw.h 2011-04-17 15:57:32.000000000 -0400 26337+++ linux-2.6.38.2/drivers/net/e1000e/hw.h 2011-03-21 18:31:35.000000000 -0400
27124@@ -801,16 +801,17 @@ struct e1000_phy_operations { 26338@@ -801,16 +801,17 @@ struct e1000_phy_operations {
27125 26339
27126 /* Function pointers for the NVM. */ 26340 /* Function pointers for the NVM. */
@@ -27162,9 +26376,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/hw.h linux-2.6.38.3/drivers/net/e10
27162 struct e1000_nvm_operations ops; 26376 struct e1000_nvm_operations ops;
27163 26377
27164 enum e1000_nvm_type type; 26378 enum e1000_nvm_type type;
27165diff -urNp linux-2.6.38.3/drivers/net/e1000e/ich8lan.c linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 26379diff -urNp linux-2.6.38.2/drivers/net/e1000e/ich8lan.c linux-2.6.38.2/drivers/net/e1000e/ich8lan.c
27166--- linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 2011-03-14 21:20:32.000000000 -0400 26380--- linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 2011-03-14 21:20:32.000000000 -0400
27167+++ linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 2011-04-17 15:57:32.000000000 -0400 26381+++ linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 2011-03-21 18:31:35.000000000 -0400
27168@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan 26382@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan
27169 } 26383 }
27170 } 26384 }
@@ -27192,9 +26406,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/ich8lan.c linux-2.6.38.3/drivers/ne
27192 .acquire = e1000_acquire_nvm_ich8lan, 26406 .acquire = e1000_acquire_nvm_ich8lan,
27193 .read = e1000_read_nvm_ich8lan, 26407 .read = e1000_read_nvm_ich8lan,
27194 .release = e1000_release_nvm_ich8lan, 26408 .release = e1000_release_nvm_ich8lan,
27195diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_82575.c linux-2.6.38.3/drivers/net/igb/e1000_82575.c 26409diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_82575.c linux-2.6.38.2/drivers/net/igb/e1000_82575.c
27196--- linux-2.6.38.3/drivers/net/igb/e1000_82575.c 2011-03-14 21:20:32.000000000 -0400 26410--- linux-2.6.38.2/drivers/net/igb/e1000_82575.c 2011-03-14 21:20:32.000000000 -0400
27197+++ linux-2.6.38.3/drivers/net/igb/e1000_82575.c 2011-04-17 15:57:32.000000000 -0400 26411+++ linux-2.6.38.2/drivers/net/igb/e1000_82575.c 2011-03-21 18:31:35.000000000 -0400
27198@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data) 26412@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data)
27199 return ret_val; 26413 return ret_val;
27200 } 26414 }
@@ -27220,9 +26434,9 @@ diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_82575.c linux-2.6.38.3/drivers/n
27220 .acquire = igb_acquire_nvm_82575, 26434 .acquire = igb_acquire_nvm_82575,
27221 .read = igb_read_nvm_eerd, 26435 .read = igb_read_nvm_eerd,
27222 .release = igb_release_nvm_82575, 26436 .release = igb_release_nvm_82575,
27223diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_hw.h linux-2.6.38.3/drivers/net/igb/e1000_hw.h 26437diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_hw.h linux-2.6.38.2/drivers/net/igb/e1000_hw.h
27224--- linux-2.6.38.3/drivers/net/igb/e1000_hw.h 2011-03-14 21:20:32.000000000 -0400 26438--- linux-2.6.38.2/drivers/net/igb/e1000_hw.h 2011-03-14 21:20:32.000000000 -0400
27225+++ linux-2.6.38.3/drivers/net/igb/e1000_hw.h 2011-04-17 15:57:32.000000000 -0400 26439+++ linux-2.6.38.2/drivers/net/igb/e1000_hw.h 2011-03-21 18:31:35.000000000 -0400
27226@@ -327,22 +327,23 @@ struct e1000_phy_operations { 26440@@ -327,22 +327,23 @@ struct e1000_phy_operations {
27227 }; 26441 };
27228 26442
@@ -27270,9 +26484,9 @@ diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_hw.h linux-2.6.38.3/drivers/net/
27270 struct e1000_nvm_operations ops; 26484 struct e1000_nvm_operations ops;
27271 26485
27272 enum e1000_nvm_type type; 26486 enum e1000_nvm_type type;
27273diff -urNp linux-2.6.38.3/drivers/net/igbvf/vf.h linux-2.6.38.3/drivers/net/igbvf/vf.h 26487diff -urNp linux-2.6.38.2/drivers/net/igbvf/vf.h linux-2.6.38.2/drivers/net/igbvf/vf.h
27274--- linux-2.6.38.3/drivers/net/igbvf/vf.h 2011-03-14 21:20:32.000000000 -0400 26488--- linux-2.6.38.2/drivers/net/igbvf/vf.h 2011-03-14 21:20:32.000000000 -0400
27275+++ linux-2.6.38.3/drivers/net/igbvf/vf.h 2011-04-17 15:57:32.000000000 -0400 26489+++ linux-2.6.38.2/drivers/net/igbvf/vf.h 2011-03-21 18:31:35.000000000 -0400
27276@@ -191,6 +191,7 @@ struct e1000_mac_operations { 26490@@ -191,6 +191,7 @@ struct e1000_mac_operations {
27277 }; 26491 };
27278 26492
@@ -27281,9 +26495,9 @@ diff -urNp linux-2.6.38.3/drivers/net/igbvf/vf.h linux-2.6.38.3/drivers/net/igbv
27281 struct e1000_mac_operations ops; 26495 struct e1000_mac_operations ops;
27282 u8 addr[6]; 26496 u8 addr[6];
27283 u8 perm_addr[6]; 26497 u8 perm_addr[6];
27284diff -urNp linux-2.6.38.3/drivers/net/irda/vlsi_ir.c linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 26498diff -urNp linux-2.6.38.2/drivers/net/irda/vlsi_ir.c linux-2.6.38.2/drivers/net/irda/vlsi_ir.c
27285--- linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 2011-03-14 21:20:32.000000000 -0400 26499--- linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 2011-03-14 21:20:32.000000000 -0400
27286+++ linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 2011-04-17 15:57:32.000000000 -0400 26500+++ linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 2011-03-21 18:31:35.000000000 -0400
27287@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit( 26501@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit(
27288 /* no race - tx-ring already empty */ 26502 /* no race - tx-ring already empty */
27289 vlsi_set_baud(idev, iobase); 26503 vlsi_set_baud(idev, iobase);
@@ -27300,9 +26514,9 @@ diff -urNp linux-2.6.38.3/drivers/net/irda/vlsi_ir.c linux-2.6.38.3/drivers/net/
27300 spin_unlock_irqrestore(&idev->lock, flags); 26514 spin_unlock_irqrestore(&idev->lock, flags);
27301 dev_kfree_skb_any(skb); 26515 dev_kfree_skb_any(skb);
27302 return NETDEV_TX_OK; 26516 return NETDEV_TX_OK;
27303diff -urNp linux-2.6.38.3/drivers/net/pcnet32.c linux-2.6.38.3/drivers/net/pcnet32.c 26517diff -urNp linux-2.6.38.2/drivers/net/pcnet32.c linux-2.6.38.2/drivers/net/pcnet32.c
27304--- linux-2.6.38.3/drivers/net/pcnet32.c 2011-03-14 21:20:32.000000000 -0400 26518--- linux-2.6.38.2/drivers/net/pcnet32.c 2011-03-14 21:20:32.000000000 -0400
27305+++ linux-2.6.38.3/drivers/net/pcnet32.c 2011-04-17 15:57:32.000000000 -0400 26519+++ linux-2.6.38.2/drivers/net/pcnet32.c 2011-03-21 18:31:35.000000000 -0400
27306@@ -82,7 +82,7 @@ static int cards_found; 26520@@ -82,7 +82,7 @@ static int cards_found;
27307 /* 26521 /*
27308 * VLB I/O addresses 26522 * VLB I/O addresses
@@ -27312,9 +26526,9 @@ diff -urNp linux-2.6.38.3/drivers/net/pcnet32.c linux-2.6.38.3/drivers/net/pcnet
27312 { 0x300, 0x320, 0x340, 0x360, 0 }; 26526 { 0x300, 0x320, 0x340, 0x360, 0 };
27313 26527
27314 static int pcnet32_debug; 26528 static int pcnet32_debug;
27315diff -urNp linux-2.6.38.3/drivers/net/ppp_generic.c linux-2.6.38.3/drivers/net/ppp_generic.c 26529diff -urNp linux-2.6.38.2/drivers/net/ppp_generic.c linux-2.6.38.2/drivers/net/ppp_generic.c
27316--- linux-2.6.38.3/drivers/net/ppp_generic.c 2011-03-14 21:20:32.000000000 -0400 26530--- linux-2.6.38.2/drivers/net/ppp_generic.c 2011-03-14 21:20:32.000000000 -0400
27317+++ linux-2.6.38.3/drivers/net/ppp_generic.c 2011-04-17 15:57:32.000000000 -0400 26531+++ linux-2.6.38.2/drivers/net/ppp_generic.c 2011-03-21 18:31:35.000000000 -0400
27318@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st 26532@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st
27319 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data; 26533 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
27320 struct ppp_stats stats; 26534 struct ppp_stats stats;
@@ -27333,9 +26547,9 @@ diff -urNp linux-2.6.38.3/drivers/net/ppp_generic.c linux-2.6.38.3/drivers/net/p
27333 break; 26547 break;
27334 err = 0; 26548 err = 0;
27335 break; 26549 break;
27336diff -urNp linux-2.6.38.3/drivers/net/tg3.h linux-2.6.38.3/drivers/net/tg3.h 26550diff -urNp linux-2.6.38.2/drivers/net/tg3.h linux-2.6.38.2/drivers/net/tg3.h
27337--- linux-2.6.38.3/drivers/net/tg3.h 2011-03-14 21:20:32.000000000 -0400 26551--- linux-2.6.38.2/drivers/net/tg3.h 2011-03-14 21:20:32.000000000 -0400
27338+++ linux-2.6.38.3/drivers/net/tg3.h 2011-04-17 15:57:32.000000000 -0400 26552+++ linux-2.6.38.2/drivers/net/tg3.h 2011-03-21 18:31:35.000000000 -0400
27339@@ -131,6 +131,7 @@ 26553@@ -131,6 +131,7 @@
27340 #define CHIPREV_ID_5750_A0 0x4000 26554 #define CHIPREV_ID_5750_A0 0x4000
27341 #define CHIPREV_ID_5750_A1 0x4001 26555 #define CHIPREV_ID_5750_A1 0x4001
@@ -27344,9 +26558,9 @@ diff -urNp linux-2.6.38.3/drivers/net/tg3.h linux-2.6.38.3/drivers/net/tg3.h
27344 #define CHIPREV_ID_5750_C2 0x4202 26558 #define CHIPREV_ID_5750_C2 0x4202
27345 #define CHIPREV_ID_5752_A0_HW 0x5000 26559 #define CHIPREV_ID_5752_A0_HW 0x5000
27346 #define CHIPREV_ID_5752_A0 0x6000 26560 #define CHIPREV_ID_5752_A0 0x6000
27347diff -urNp linux-2.6.38.3/drivers/net/tulip/de4x5.c linux-2.6.38.3/drivers/net/tulip/de4x5.c 26561diff -urNp linux-2.6.38.2/drivers/net/tulip/de4x5.c linux-2.6.38.2/drivers/net/tulip/de4x5.c
27348--- linux-2.6.38.3/drivers/net/tulip/de4x5.c 2011-03-14 21:20:32.000000000 -0400 26562--- linux-2.6.38.2/drivers/net/tulip/de4x5.c 2011-03-14 21:20:32.000000000 -0400
27349+++ linux-2.6.38.3/drivers/net/tulip/de4x5.c 2011-04-17 15:57:32.000000000 -0400 26563+++ linux-2.6.38.2/drivers/net/tulip/de4x5.c 2011-03-21 18:31:35.000000000 -0400
27350@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru 26564@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru
27351 for (i=0; i<ETH_ALEN; i++) { 26565 for (i=0; i<ETH_ALEN; i++) {
27352 tmp.addr[i] = dev->dev_addr[i]; 26566 tmp.addr[i] = dev->dev_addr[i];
@@ -27365,9 +26579,9 @@ diff -urNp linux-2.6.38.3/drivers/net/tulip/de4x5.c linux-2.6.38.3/drivers/net/t
27365 return -EFAULT; 26579 return -EFAULT;
27366 break; 26580 break;
27367 } 26581 }
27368diff -urNp linux-2.6.38.3/drivers/net/usb/hso.c linux-2.6.38.3/drivers/net/usb/hso.c 26582diff -urNp linux-2.6.38.2/drivers/net/usb/hso.c linux-2.6.38.2/drivers/net/usb/hso.c
27369--- linux-2.6.38.3/drivers/net/usb/hso.c 2011-03-14 21:20:32.000000000 -0400 26583--- linux-2.6.38.2/drivers/net/usb/hso.c 2011-03-14 21:20:32.000000000 -0400
27370+++ linux-2.6.38.3/drivers/net/usb/hso.c 2011-04-17 15:57:32.000000000 -0400 26584+++ linux-2.6.38.2/drivers/net/usb/hso.c 2011-03-21 18:31:35.000000000 -0400
27371@@ -71,7 +71,7 @@ 26585@@ -71,7 +71,7 @@
27372 #include <asm/byteorder.h> 26586 #include <asm/byteorder.h>
27373 #include <linux/serial_core.h> 26587 #include <linux/serial_core.h>
@@ -27464,22 +26678,9 @@ diff -urNp linux-2.6.38.3/drivers/net/usb/hso.c linux-2.6.38.3/drivers/net/usb/h
27464 result = 26678 result =
27465 hso_start_serial_device(serial_table[i], GFP_NOIO); 26679 hso_start_serial_device(serial_table[i], GFP_NOIO);
27466 hso_kick_transmit(dev2ser(serial_table[i])); 26680 hso_kick_transmit(dev2ser(serial_table[i]));
27467diff -urNp linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 26681diff -urNp linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c
27468--- linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-18 17:27:18.000000000 -0400 26682--- linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27469+++ linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-17 16:53:41.000000000 -0400 26683+++ linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 2011-03-21 18:31:35.000000000 -0400
27470@@ -628,8 +628,7 @@ vmxnet3_set_rss_indir(struct net_device
27471 * Return with error code if any of the queue indices
27472 * is out of range
27473 */
27474- if (p->ring_index[i] < 0 ||
27475- p->ring_index[i] >= adapter->num_rx_queues)
27476+ if (p->ring_index[i] >= adapter->num_rx_queues)
27477 return -EINVAL;
27478 }
27479
27480diff -urNp linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c
27481--- linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27482+++ linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c 2011-04-17 15:57:32.000000000 -0400
27483@@ -43,7 +43,7 @@ static struct dentry *rootdir; 26684@@ -43,7 +43,7 @@ static struct dentry *rootdir;
27484 struct b43_debugfs_fops { 26685 struct b43_debugfs_fops {
27485 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize); 26686 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize);
@@ -27489,9 +26690,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c linux-2.6.38.3/driv
27489 /* Offset of struct b43_dfs_file in struct b43_dfsentry */ 26690 /* Offset of struct b43_dfs_file in struct b43_dfsentry */
27490 size_t file_struct_offset; 26691 size_t file_struct_offset;
27491 }; 26692 };
27492diff -urNp linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 26693diff -urNp linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c
27493--- linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 2011-03-14 21:20:32.000000000 -0400 26694--- linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27494+++ linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 2011-04-17 15:57:32.000000000 -0400 26695+++ linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 2011-03-21 18:31:35.000000000 -0400
27495@@ -44,7 +44,7 @@ static struct dentry *rootdir; 26696@@ -44,7 +44,7 @@ static struct dentry *rootdir;
27496 struct b43legacy_debugfs_fops { 26697 struct b43legacy_debugfs_fops {
27497 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize); 26698 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize);
@@ -27501,9 +26702,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.
27501 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */ 26702 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */
27502 size_t file_struct_offset; 26703 size_t file_struct_offset;
27503 /* Take wl->irq_lock before calling read/write? */ 26704 /* Take wl->irq_lock before calling read/write? */
27504diff -urNp linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 26705diff -urNp linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h
27505--- linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-14 21:20:32.000000000 -0400 26706--- linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-14 21:20:32.000000000 -0400
27506+++ linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-04-17 15:57:32.000000000 -0400 26707+++ linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-21 18:31:35.000000000 -0400
27507@@ -68,8 +68,8 @@ do { 26708@@ -68,8 +68,8 @@ do {
27508 } while (0) 26709 } while (0)
27509 26710
@@ -27515,9 +26716,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h linux-2.6.38.
27515 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level, 26716 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level,
27516 const void *p, u32 len) 26717 const void *p, u32 len)
27517 {} 26718 {}
27518diff -urNp linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 26719diff -urNp linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c
27519--- linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 2011-03-14 21:20:32.000000000 -0400 26720--- linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27520+++ linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 2011-04-17 15:57:32.000000000 -0400 26721+++ linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 2011-03-21 18:31:35.000000000 -0400
27521@@ -702,7 +702,7 @@ out_unlock: 26722@@ -702,7 +702,7 @@ out_unlock:
27522 struct lbs_debugfs_files { 26723 struct lbs_debugfs_files {
27523 const char *name; 26724 const char *name;
@@ -27527,9 +26728,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.3
27527 }; 26728 };
27528 26729
27529 static const struct lbs_debugfs_files debugfs_files[] = { 26730 static const struct lbs_debugfs_files debugfs_files[] = {
27530diff -urNp linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 26731diff -urNp linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c
27531--- linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 2011-03-14 21:20:32.000000000 -0400 26732--- linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 2011-03-14 21:20:32.000000000 -0400
27532+++ linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 2011-04-17 15:57:32.000000000 -0400 26733+++ linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 2011-03-21 18:31:35.000000000 -0400
27533@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn 26734@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn
27534 26735
27535 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold); 26736 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
@@ -27539,9 +26740,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c linux-2.6.38.3/drive
27539 rts_threshold = 2347; 26740 rts_threshold = 2347;
27540 26741
27541 tmp = cpu_to_le32(rts_threshold); 26742 tmp = cpu_to_le32(rts_threshold);
27542diff -urNp linux-2.6.38.3/drivers/oprofile/buffer_sync.c linux-2.6.38.3/drivers/oprofile/buffer_sync.c 26743diff -urNp linux-2.6.38.2/drivers/oprofile/buffer_sync.c linux-2.6.38.2/drivers/oprofile/buffer_sync.c
27543--- linux-2.6.38.3/drivers/oprofile/buffer_sync.c 2011-03-14 21:20:32.000000000 -0400 26744--- linux-2.6.38.2/drivers/oprofile/buffer_sync.c 2011-03-14 21:20:32.000000000 -0400
27544+++ linux-2.6.38.3/drivers/oprofile/buffer_sync.c 2011-04-17 15:57:32.000000000 -0400 26745+++ linux-2.6.38.2/drivers/oprofile/buffer_sync.c 2011-03-21 18:31:35.000000000 -0400
27545@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en 26746@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en
27546 if (cookie == NO_COOKIE) 26747 if (cookie == NO_COOKIE)
27547 offset = pc; 26748 offset = pc;
@@ -27577,9 +26778,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/buffer_sync.c linux-2.6.38.3/drivers/
27577 } 26778 }
27578 } 26779 }
27579 release_mm(mm); 26780 release_mm(mm);
27580diff -urNp linux-2.6.38.3/drivers/oprofile/event_buffer.c linux-2.6.38.3/drivers/oprofile/event_buffer.c 26781diff -urNp linux-2.6.38.2/drivers/oprofile/event_buffer.c linux-2.6.38.2/drivers/oprofile/event_buffer.c
27581--- linux-2.6.38.3/drivers/oprofile/event_buffer.c 2011-03-14 21:20:32.000000000 -0400 26782--- linux-2.6.38.2/drivers/oprofile/event_buffer.c 2011-03-14 21:20:32.000000000 -0400
27582+++ linux-2.6.38.3/drivers/oprofile/event_buffer.c 2011-04-17 15:57:32.000000000 -0400 26783+++ linux-2.6.38.2/drivers/oprofile/event_buffer.c 2011-03-21 18:31:35.000000000 -0400
27583@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value 26784@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value
27584 } 26785 }
27585 26786
@@ -27589,9 +26790,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/event_buffer.c linux-2.6.38.3/drivers
27589 return; 26790 return;
27590 } 26791 }
27591 26792
27592diff -urNp linux-2.6.38.3/drivers/oprofile/oprof.c linux-2.6.38.3/drivers/oprofile/oprof.c 26793diff -urNp linux-2.6.38.2/drivers/oprofile/oprof.c linux-2.6.38.2/drivers/oprofile/oprof.c
27593--- linux-2.6.38.3/drivers/oprofile/oprof.c 2011-03-14 21:20:32.000000000 -0400 26794--- linux-2.6.38.2/drivers/oprofile/oprof.c 2011-03-14 21:20:32.000000000 -0400
27594+++ linux-2.6.38.3/drivers/oprofile/oprof.c 2011-04-17 15:57:32.000000000 -0400 26795+++ linux-2.6.38.2/drivers/oprofile/oprof.c 2011-03-21 18:31:35.000000000 -0400
27595@@ -110,7 +110,7 @@ static void switch_worker(struct work_st 26796@@ -110,7 +110,7 @@ static void switch_worker(struct work_st
27596 if (oprofile_ops.switch_events()) 26797 if (oprofile_ops.switch_events())
27597 return; 26798 return;
@@ -27601,9 +26802,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprof.c linux-2.6.38.3/drivers/oprofi
27601 start_switch_worker(); 26802 start_switch_worker();
27602 } 26803 }
27603 26804
27604diff -urNp linux-2.6.38.3/drivers/oprofile/oprofilefs.c linux-2.6.38.3/drivers/oprofile/oprofilefs.c 26805diff -urNp linux-2.6.38.2/drivers/oprofile/oprofilefs.c linux-2.6.38.2/drivers/oprofile/oprofilefs.c
27605--- linux-2.6.38.3/drivers/oprofile/oprofilefs.c 2011-03-14 21:20:32.000000000 -0400 26806--- linux-2.6.38.2/drivers/oprofile/oprofilefs.c 2011-03-14 21:20:32.000000000 -0400
27606+++ linux-2.6.38.3/drivers/oprofile/oprofilefs.c 2011-04-17 15:57:32.000000000 -0400 26807+++ linux-2.6.38.2/drivers/oprofile/oprofilefs.c 2011-03-21 18:31:35.000000000 -0400
27607@@ -186,7 +186,7 @@ static const struct file_operations atom 26808@@ -186,7 +186,7 @@ static const struct file_operations atom
27608 26809
27609 26810
@@ -27613,9 +26814,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprofilefs.c linux-2.6.38.3/drivers/o
27613 { 26814 {
27614 return __oprofilefs_create_file(sb, root, name, 26815 return __oprofilefs_create_file(sb, root, name,
27615 &atomic_ro_fops, 0444, val); 26816 &atomic_ro_fops, 0444, val);
27616diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.c linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 26817diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.c linux-2.6.38.2/drivers/oprofile/oprofile_stats.c
27617--- linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 2011-03-14 21:20:32.000000000 -0400 26818--- linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 2011-03-14 21:20:32.000000000 -0400
27618+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 2011-04-17 15:57:32.000000000 -0400 26819+++ linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 2011-03-21 18:31:35.000000000 -0400
27619@@ -30,11 +30,11 @@ void oprofile_reset_stats(void) 26820@@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
27620 cpu_buf->sample_invalid_eip = 0; 26821 cpu_buf->sample_invalid_eip = 0;
27621 } 26822 }
@@ -27633,9 +26834,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.c linux-2.6.38.3/drive
27633 } 26834 }
27634 26835
27635 26836
27636diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.h linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 26837diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.h linux-2.6.38.2/drivers/oprofile/oprofile_stats.h
27637--- linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-03-14 21:20:32.000000000 -0400 26838--- linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 2011-03-14 21:20:32.000000000 -0400
27638+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-04-17 15:57:32.000000000 -0400 26839+++ linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 2011-03-21 18:31:35.000000000 -0400
27639@@ -13,11 +13,11 @@ 26840@@ -13,11 +13,11 @@
27640 #include <asm/atomic.h> 26841 #include <asm/atomic.h>
27641 26842
@@ -27653,9 +26854,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.h linux-2.6.38.3/drive
27653 }; 26854 };
27654 26855
27655 extern struct oprofile_stat_struct oprofile_stats; 26856 extern struct oprofile_stat_struct oprofile_stats;
27656diff -urNp linux-2.6.38.3/drivers/parport/procfs.c linux-2.6.38.3/drivers/parport/procfs.c 26857diff -urNp linux-2.6.38.2/drivers/parport/procfs.c linux-2.6.38.2/drivers/parport/procfs.c
27657--- linux-2.6.38.3/drivers/parport/procfs.c 2011-03-14 21:20:32.000000000 -0400 26858--- linux-2.6.38.2/drivers/parport/procfs.c 2011-03-14 21:20:32.000000000 -0400
27658+++ linux-2.6.38.3/drivers/parport/procfs.c 2011-04-17 15:57:32.000000000 -0400 26859+++ linux-2.6.38.2/drivers/parport/procfs.c 2011-03-21 18:31:35.000000000 -0400
27659@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t 26860@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t
27660 26861
27661 *ppos += len; 26862 *ppos += len;
@@ -27674,9 +26875,9 @@ diff -urNp linux-2.6.38.3/drivers/parport/procfs.c linux-2.6.38.3/drivers/parpor
27674 } 26875 }
27675 #endif /* IEEE1284.3 support. */ 26876 #endif /* IEEE1284.3 support. */
27676 26877
27677diff -urNp linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 26878diff -urNp linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c
27678--- linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 2011-04-18 17:27:16.000000000 -0400 26879--- linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 2011-03-28 17:42:40.000000000 -0400
27679+++ linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 2011-04-17 15:57:32.000000000 -0400 26880+++ linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 2011-03-28 17:42:53.000000000 -0400
27680@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif 26881@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif
27681 } 26882 }
27682 26883
@@ -27686,9 +26887,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.3/driv
27686 .handler = handle_hotplug_event_func, 26887 .handler = handle_hotplug_event_func,
27687 }; 26888 };
27688 26889
27689diff -urNp linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 26890diff -urNp linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c
27690--- linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-14 21:20:32.000000000 -0400 26891--- linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-14 21:20:32.000000000 -0400
27691+++ linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 2011-04-17 15:57:32.000000000 -0400 26892+++ linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-21 18:31:35.000000000 -0400
27692@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_ 26893@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_
27693 26894
27694 void compaq_nvram_init (void __iomem *rom_start) 26895 void compaq_nvram_init (void __iomem *rom_start)
@@ -27703,9 +26904,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.3/driv
27703 dbg("int15 entry = %p\n", compaq_int15_entry_point); 26904 dbg("int15 entry = %p\n", compaq_int15_entry_point);
27704 26905
27705 /* initialize our int15 lock */ 26906 /* initialize our int15 lock */
27706diff -urNp linux-2.6.38.3/drivers/pci/intel-iommu.c linux-2.6.38.3/drivers/pci/intel-iommu.c 26907diff -urNp linux-2.6.38.2/drivers/pci/intel-iommu.c linux-2.6.38.2/drivers/pci/intel-iommu.c
27707--- linux-2.6.38.3/drivers/pci/intel-iommu.c 2011-03-14 21:20:32.000000000 -0400 26908--- linux-2.6.38.2/drivers/pci/intel-iommu.c 2011-03-14 21:20:32.000000000 -0400
27708+++ linux-2.6.38.3/drivers/pci/intel-iommu.c 2011-04-17 15:57:32.000000000 -0400 26909+++ linux-2.6.38.2/drivers/pci/intel-iommu.c 2011-03-21 18:31:35.000000000 -0400
27709@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de 26910@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de
27710 return !dma_addr; 26911 return !dma_addr;
27711 } 26912 }
@@ -27715,9 +26916,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/intel-iommu.c linux-2.6.38.3/drivers/pci/i
27715 .alloc_coherent = intel_alloc_coherent, 26916 .alloc_coherent = intel_alloc_coherent,
27716 .free_coherent = intel_free_coherent, 26917 .free_coherent = intel_free_coherent,
27717 .map_sg = intel_map_sg, 26918 .map_sg = intel_map_sg,
27718diff -urNp linux-2.6.38.3/drivers/pci/pcie/aspm.c linux-2.6.38.3/drivers/pci/pcie/aspm.c 26919diff -urNp linux-2.6.38.2/drivers/pci/pcie/aspm.c linux-2.6.38.2/drivers/pci/pcie/aspm.c
27719--- linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-18 17:27:18.000000000 -0400 26920--- linux-2.6.38.2/drivers/pci/pcie/aspm.c 2011-03-14 21:20:32.000000000 -0400
27720+++ linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-17 16:53:41.000000000 -0400 26921+++ linux-2.6.38.2/drivers/pci/pcie/aspm.c 2011-03-21 18:31:35.000000000 -0400
27721@@ -27,9 +27,9 @@ 26922@@ -27,9 +27,9 @@
27722 #define MODULE_PARAM_PREFIX "pcie_aspm." 26923 #define MODULE_PARAM_PREFIX "pcie_aspm."
27723 26924
@@ -27731,9 +26932,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/pcie/aspm.c linux-2.6.38.3/drivers/pci/pci
27731 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW) 26932 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
27732 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1) 26933 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
27733 26934
27734diff -urNp linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 26935diff -urNp linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c
27735--- linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 2011-03-14 21:20:32.000000000 -0400 26936--- linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 2011-03-14 21:20:32.000000000 -0400
27736+++ linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 2011-04-17 15:57:32.000000000 -0400 26937+++ linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 2011-03-21 18:31:35.000000000 -0400
27737@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru 26938@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru
27738 static const struct pci_device_id port_pci_ids[] = { { 26939 static const struct pci_device_id port_pci_ids[] = { {
27739 /* handle any PCI-Express port */ 26940 /* handle any PCI-Express port */
@@ -27743,9 +26944,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.3/drivers/
27743 }; 26944 };
27744 MODULE_DEVICE_TABLE(pci, port_pci_ids); 26945 MODULE_DEVICE_TABLE(pci, port_pci_ids);
27745 26946
27746diff -urNp linux-2.6.38.3/drivers/pci/probe.c linux-2.6.38.3/drivers/pci/probe.c 26947diff -urNp linux-2.6.38.2/drivers/pci/probe.c linux-2.6.38.2/drivers/pci/probe.c
27747--- linux-2.6.38.3/drivers/pci/probe.c 2011-03-14 21:20:32.000000000 -0400 26948--- linux-2.6.38.2/drivers/pci/probe.c 2011-03-14 21:20:32.000000000 -0400
27748+++ linux-2.6.38.3/drivers/pci/probe.c 2011-04-17 15:57:32.000000000 -0400 26949+++ linux-2.6.38.2/drivers/pci/probe.c 2011-03-21 18:31:35.000000000 -0400
27749@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity( 26950@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity(
27750 return ret; 26951 return ret;
27751 } 26952 }
@@ -27772,9 +26973,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/probe.c linux-2.6.38.3/drivers/pci/probe.c
27772 26973
27773 if (!dev->mmio_always_on) { 26974 if (!dev->mmio_always_on) {
27774 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd); 26975 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd);
27775diff -urNp linux-2.6.38.3/drivers/pci/proc.c linux-2.6.38.3/drivers/pci/proc.c 26976diff -urNp linux-2.6.38.2/drivers/pci/proc.c linux-2.6.38.2/drivers/pci/proc.c
27776--- linux-2.6.38.3/drivers/pci/proc.c 2011-03-14 21:20:32.000000000 -0400 26977--- linux-2.6.38.2/drivers/pci/proc.c 2011-03-14 21:20:32.000000000 -0400
27777+++ linux-2.6.38.3/drivers/pci/proc.c 2011-04-17 15:57:32.000000000 -0400 26978+++ linux-2.6.38.2/drivers/pci/proc.c 2011-03-21 18:31:35.000000000 -0400
27778@@ -476,7 +476,16 @@ static const struct file_operations proc 26979@@ -476,7 +476,16 @@ static const struct file_operations proc
27779 static int __init pci_proc_init(void) 26980 static int __init pci_proc_init(void)
27780 { 26981 {
@@ -27792,9 +26993,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/proc.c linux-2.6.38.3/drivers/pci/proc.c
27792 proc_create("devices", 0, proc_bus_pci_dir, 26993 proc_create("devices", 0, proc_bus_pci_dir,
27793 &proc_bus_pci_dev_operations); 26994 &proc_bus_pci_dev_operations);
27794 proc_initialized = 1; 26995 proc_initialized = 1;
27795diff -urNp linux-2.6.38.3/drivers/pcmcia/ti113x.h linux-2.6.38.3/drivers/pcmcia/ti113x.h 26996diff -urNp linux-2.6.38.2/drivers/pcmcia/ti113x.h linux-2.6.38.2/drivers/pcmcia/ti113x.h
27796--- linux-2.6.38.3/drivers/pcmcia/ti113x.h 2011-03-14 21:20:32.000000000 -0400 26997--- linux-2.6.38.2/drivers/pcmcia/ti113x.h 2011-03-14 21:20:32.000000000 -0400
27797+++ linux-2.6.38.3/drivers/pcmcia/ti113x.h 2011-04-17 15:57:32.000000000 -0400 26998+++ linux-2.6.38.2/drivers/pcmcia/ti113x.h 2011-03-21 18:31:35.000000000 -0400
27798@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl 26999@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl
27799 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID, 27000 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID,
27800 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE), 27001 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE),
@@ -27804,9 +27005,9 @@ diff -urNp linux-2.6.38.3/drivers/pcmcia/ti113x.h linux-2.6.38.3/drivers/pcmcia/
27804 }; 27005 };
27805 27006
27806 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus) 27007 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus)
27807diff -urNp linux-2.6.38.3/drivers/pcmcia/yenta_socket.c linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 27008diff -urNp linux-2.6.38.2/drivers/pcmcia/yenta_socket.c linux-2.6.38.2/drivers/pcmcia/yenta_socket.c
27808--- linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 2011-03-14 21:20:32.000000000 -0400 27009--- linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 2011-03-14 21:20:32.000000000 -0400
27809+++ linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 2011-04-17 15:57:32.000000000 -0400 27010+++ linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 2011-03-21 18:31:35.000000000 -0400
27810@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[ 27011@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[
27811 27012
27812 /* match any cardbus bridge */ 27013 /* match any cardbus bridge */
@@ -27816,9 +27017,9 @@ diff -urNp linux-2.6.38.3/drivers/pcmcia/yenta_socket.c linux-2.6.38.3/drivers/p
27816 }; 27017 };
27817 MODULE_DEVICE_TABLE(pci, yenta_table); 27018 MODULE_DEVICE_TABLE(pci, yenta_table);
27818 27019
27819diff -urNp linux-2.6.38.3/drivers/platform/x86/asus-laptop.c linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 27020diff -urNp linux-2.6.38.2/drivers/platform/x86/asus-laptop.c linux-2.6.38.2/drivers/platform/x86/asus-laptop.c
27820--- linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 2011-03-14 21:20:32.000000000 -0400 27021--- linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 2011-03-14 21:20:32.000000000 -0400
27821+++ linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 2011-04-17 15:57:32.000000000 -0400 27022+++ linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 2011-03-21 18:31:35.000000000 -0400
27822@@ -243,7 +243,6 @@ struct asus_laptop { 27023@@ -243,7 +243,6 @@ struct asus_laptop {
27823 struct asus_led gled; 27024 struct asus_led gled;
27824 struct asus_led kled; 27025 struct asus_led kled;
@@ -27827,9 +27028,9 @@ diff -urNp linux-2.6.38.3/drivers/platform/x86/asus-laptop.c linux-2.6.38.3/driv
27827 int wireless_status; 27028 int wireless_status;
27828 bool have_rsts; 27029 bool have_rsts;
27829 int lcd_state; 27030 int lcd_state;
27830diff -urNp linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 27031diff -urNp linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c
27831--- linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-03-14 21:20:32.000000000 -0400 27032--- linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 2011-03-14 21:20:32.000000000 -0400
27832+++ linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-04-17 15:57:32.000000000 -0400 27033+++ linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 2011-03-21 18:31:35.000000000 -0400
27833@@ -59,7 +59,7 @@ do { \ 27034@@ -59,7 +59,7 @@ do { \
27834 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \ 27035 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
27835 } while(0) 27036 } while(0)
@@ -27886,9 +27087,9 @@ diff -urNp linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.3/drivers
27886+ 27087+
27887+ pax_close_kernel(); 27088+ pax_close_kernel();
27888 } 27089 }
27889diff -urNp linux-2.6.38.3/drivers/pnp/quirks.c linux-2.6.38.3/drivers/pnp/quirks.c 27090diff -urNp linux-2.6.38.2/drivers/pnp/quirks.c linux-2.6.38.2/drivers/pnp/quirks.c
27890--- linux-2.6.38.3/drivers/pnp/quirks.c 2011-03-14 21:20:32.000000000 -0400 27091--- linux-2.6.38.2/drivers/pnp/quirks.c 2011-03-14 21:20:32.000000000 -0400
27891+++ linux-2.6.38.3/drivers/pnp/quirks.c 2011-04-17 15:57:32.000000000 -0400 27092+++ linux-2.6.38.2/drivers/pnp/quirks.c 2011-03-21 18:31:35.000000000 -0400
27892@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = { 27093@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = {
27893 /* PnP resources that might overlap PCI BARs */ 27094 /* PnP resources that might overlap PCI BARs */
27894 {"PNP0c01", quirk_system_pci_resources}, 27095 {"PNP0c01", quirk_system_pci_resources},
@@ -27898,9 +27099,9 @@ diff -urNp linux-2.6.38.3/drivers/pnp/quirks.c linux-2.6.38.3/drivers/pnp/quirks
27898 }; 27099 };
27899 27100
27900 void pnp_fixup_device(struct pnp_dev *dev) 27101 void pnp_fixup_device(struct pnp_dev *dev)
27901diff -urNp linux-2.6.38.3/drivers/pnp/resource.c linux-2.6.38.3/drivers/pnp/resource.c 27102diff -urNp linux-2.6.38.2/drivers/pnp/resource.c linux-2.6.38.2/drivers/pnp/resource.c
27902--- linux-2.6.38.3/drivers/pnp/resource.c 2011-03-14 21:20:32.000000000 -0400 27103--- linux-2.6.38.2/drivers/pnp/resource.c 2011-03-14 21:20:32.000000000 -0400
27903+++ linux-2.6.38.3/drivers/pnp/resource.c 2011-04-17 15:57:32.000000000 -0400 27104+++ linux-2.6.38.2/drivers/pnp/resource.c 2011-03-21 18:31:35.000000000 -0400
27904@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s 27105@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s
27905 return 1; 27106 return 1;
27906 27107
@@ -27919,9 +27120,9 @@ diff -urNp linux-2.6.38.3/drivers/pnp/resource.c linux-2.6.38.3/drivers/pnp/reso
27919 return 0; 27120 return 0;
27920 27121
27921 /* check if the resource is reserved */ 27122 /* check if the resource is reserved */
27922diff -urNp linux-2.6.38.3/drivers/rtc/rtc-dev.c linux-2.6.38.3/drivers/rtc/rtc-dev.c 27123diff -urNp linux-2.6.38.2/drivers/rtc/rtc-dev.c linux-2.6.38.2/drivers/rtc/rtc-dev.c
27923--- linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-03-14 21:20:32.000000000 -0400 27124--- linux-2.6.38.2/drivers/rtc/rtc-dev.c 2011-03-14 21:20:32.000000000 -0400
27924+++ linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-04-17 15:57:32.000000000 -0400 27125+++ linux-2.6.38.2/drivers/rtc/rtc-dev.c 2011-03-21 18:31:35.000000000 -0400
27925@@ -14,6 +14,7 @@ 27126@@ -14,6 +14,7 @@
27926 #include <linux/module.h> 27127 #include <linux/module.h>
27927 #include <linux/rtc.h> 27128 #include <linux/rtc.h>
@@ -27939,9 +27140,21 @@ diff -urNp linux-2.6.38.3/drivers/rtc/rtc-dev.c linux-2.6.38.3/drivers/rtc/rtc-d
27939 return rtc_set_time(rtc, &tm); 27140 return rtc_set_time(rtc, &tm);
27940 27141
27941 case RTC_PIE_ON: 27142 case RTC_PIE_ON:
27942diff -urNp linux-2.6.38.3/drivers/s390/cio/qdio_debug.c linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 27143diff -urNp linux-2.6.38.2/drivers/rtc/rtc-ds1511.c linux-2.6.38.2/drivers/rtc/rtc-ds1511.c
27943--- linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 2011-03-14 21:20:32.000000000 -0400 27144--- linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 2011-03-14 21:20:32.000000000 -0400
27944+++ linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 2011-04-17 15:57:32.000000000 -0400 27145+++ linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 2011-03-21 18:31:35.000000000 -0400
27146@@ -485,7 +485,7 @@ ds1511_nvram_write(struct file *filp, st
27147 static struct bin_attribute ds1511_nvram_attr = {
27148 .attr = {
27149 .name = "nvram",
27150- .mode = S_IRUGO | S_IWUGO,
27151+ .mode = S_IRUGO | S_IWUSR,
27152 },
27153 .size = DS1511_RAM_MAX,
27154 .read = ds1511_nvram_read,
27155diff -urNp linux-2.6.38.2/drivers/s390/cio/qdio_debug.c linux-2.6.38.2/drivers/s390/cio/qdio_debug.c
27156--- linux-2.6.38.2/drivers/s390/cio/qdio_debug.c 2011-03-14 21:20:32.000000000 -0400
27157+++ linux-2.6.38.2/drivers/s390/cio/qdio_debug.c 2011-03-21 18:31:35.000000000 -0400
27945@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode * 27158@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode *
27946 filp->f_path.dentry->d_inode->i_private); 27159 filp->f_path.dentry->d_inode->i_private);
27947 } 27160 }
@@ -27951,9 +27164,9 @@ diff -urNp linux-2.6.38.3/drivers/s390/cio/qdio_debug.c linux-2.6.38.3/drivers/s
27951 .owner = THIS_MODULE, 27164 .owner = THIS_MODULE,
27952 .open = qperf_seq_open, 27165 .open = qperf_seq_open,
27953 .read = seq_read, 27166 .read = seq_read,
27954diff -urNp linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 27167diff -urNp linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c
27955--- linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-14 21:20:32.000000000 -0400 27168--- linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-14 21:20:32.000000000 -0400
27956+++ linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 2011-04-17 15:57:32.000000000 -0400 27169+++ linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-21 18:31:35.000000000 -0400
27957@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru 27170@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru
27958 flash_error_table[i].reason); 27171 flash_error_table[i].reason);
27959 } 27172 }
@@ -27963,9 +27176,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.3/dri
27963 asd_show_update_bios, asd_store_update_bios); 27176 asd_show_update_bios, asd_store_update_bios);
27964 27177
27965 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha) 27178 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha)
27966diff -urNp linux-2.6.38.3/drivers/scsi/hpsa.c linux-2.6.38.3/drivers/scsi/hpsa.c 27179diff -urNp linux-2.6.38.2/drivers/scsi/hpsa.c linux-2.6.38.2/drivers/scsi/hpsa.c
27967--- linux-2.6.38.3/drivers/scsi/hpsa.c 2011-03-14 21:20:32.000000000 -0400 27180--- linux-2.6.38.2/drivers/scsi/hpsa.c 2011-03-14 21:20:32.000000000 -0400
27968+++ linux-2.6.38.3/drivers/scsi/hpsa.c 2011-04-17 15:57:32.000000000 -0400 27181+++ linux-2.6.38.2/drivers/scsi/hpsa.c 2011-03-21 18:31:35.000000000 -0400
27969@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct 27182@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct
27970 int err; 27183 int err;
27971 u32 cp; 27184 u32 cp;
@@ -27975,9 +27188,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/hpsa.c linux-2.6.38.3/drivers/scsi/hpsa.c
27975 err = 0; 27188 err = 0;
27976 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 27189 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
27977 sizeof(arg64.LUN_info)); 27190 sizeof(arg64.LUN_info));
27978diff -urNp linux-2.6.38.3/drivers/scsi/ipr.c linux-2.6.38.3/drivers/scsi/ipr.c 27191diff -urNp linux-2.6.38.2/drivers/scsi/ipr.c linux-2.6.38.2/drivers/scsi/ipr.c
27979--- linux-2.6.38.3/drivers/scsi/ipr.c 2011-03-14 21:20:32.000000000 -0400 27192--- linux-2.6.38.2/drivers/scsi/ipr.c 2011-03-14 21:20:32.000000000 -0400
27980+++ linux-2.6.38.3/drivers/scsi/ipr.c 2011-04-17 15:57:32.000000000 -0400 27193+++ linux-2.6.38.2/drivers/scsi/ipr.c 2011-03-21 18:31:35.000000000 -0400
27981@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q 27194@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q
27982 return true; 27195 return true;
27983 } 27196 }
@@ -27987,9 +27200,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/ipr.c linux-2.6.38.3/drivers/scsi/ipr.c
27987 .phy_reset = ipr_ata_phy_reset, 27200 .phy_reset = ipr_ata_phy_reset,
27988 .hardreset = ipr_sata_reset, 27201 .hardreset = ipr_sata_reset,
27989 .post_internal_cmd = ipr_ata_post_internal, 27202 .post_internal_cmd = ipr_ata_post_internal,
27990diff -urNp linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 27203diff -urNp linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c
27991--- linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 2011-03-14 21:20:32.000000000 -0400 27204--- linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 2011-03-14 21:20:32.000000000 -0400
27992+++ linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 2011-04-17 15:57:32.000000000 -0400 27205+++ linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 2011-03-21 18:31:35.000000000 -0400
27993@@ -105,12 +105,12 @@ struct fc_exch_mgr { 27206@@ -105,12 +105,12 @@ struct fc_exch_mgr {
27994 * all together if not used XXX 27207 * all together if not used XXX
27995 */ 27208 */
@@ -28111,9 +27324,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c linux-2.6.38.3/drivers/sc
28111 27324
28112 fc_frame_free(fp); 27325 fc_frame_free(fp);
28113 } 27326 }
28114diff -urNp linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 27327diff -urNp linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c
28115--- linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 2011-03-14 21:20:32.000000000 -0400 27328--- linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 2011-03-14 21:20:32.000000000 -0400
28116+++ linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 2011-04-17 15:57:32.000000000 -0400 27329+++ linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 2011-03-21 18:31:35.000000000 -0400
28117@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l 27330@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l
28118 } 27331 }
28119 } 27332 }
@@ -28127,9 +27340,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c linux-2.6.38.3/drivers/s
28127 .qc_prep = ata_noop_qc_prep, 27340 .qc_prep = ata_noop_qc_prep,
28128 .qc_issue = sas_ata_qc_issue, 27341 .qc_issue = sas_ata_qc_issue,
28129 .qc_fill_rtf = sas_ata_qc_fill_rtf, 27342 .qc_fill_rtf = sas_ata_qc_fill_rtf,
28130diff -urNp linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 27343diff -urNp linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h
28131--- linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-14 21:20:32.000000000 -0400 27344--- linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-14 21:20:32.000000000 -0400
28132+++ linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-04-17 15:57:32.000000000 -0400 27345+++ linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-21 18:31:35.000000000 -0400
28133@@ -79,7 +79,7 @@ 27346@@ -79,7 +79,7 @@
28134 CMD; \ 27347 CMD; \
28135 } 27348 }
@@ -28139,9 +27352,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.3/dr
28139 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */ 27352 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */
28140 27353
28141 27354
28142diff -urNp linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 27355diff -urNp linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c
28143--- linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 2011-03-14 21:20:32.000000000 -0400 27356--- linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 2011-03-14 21:20:32.000000000 -0400
28144+++ linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 2011-04-17 15:57:32.000000000 -0400 27357+++ linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 2011-03-21 18:31:35.000000000 -0400
28145@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri 27358@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri
28146 .err_handler = &qla2xxx_err_handler, 27359 .err_handler = &qla2xxx_err_handler,
28147 }; 27360 };
@@ -28151,9 +27364,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.3/drivers/s
28151 .owner = THIS_MODULE, 27364 .owner = THIS_MODULE,
28152 .llseek = noop_llseek, 27365 .llseek = noop_llseek,
28153 }; 27366 };
28154diff -urNp linux-2.6.38.3/drivers/scsi/scsi_logging.h linux-2.6.38.3/drivers/scsi/scsi_logging.h 27367diff -urNp linux-2.6.38.2/drivers/scsi/scsi_logging.h linux-2.6.38.2/drivers/scsi/scsi_logging.h
28155--- linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-03-14 21:20:32.000000000 -0400 27368--- linux-2.6.38.2/drivers/scsi/scsi_logging.h 2011-03-14 21:20:32.000000000 -0400
28156+++ linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-04-17 15:57:32.000000000 -0400 27369+++ linux-2.6.38.2/drivers/scsi/scsi_logging.h 2011-03-21 18:31:35.000000000 -0400
28157@@ -51,7 +51,7 @@ do { \ 27370@@ -51,7 +51,7 @@ do { \
28158 } while (0); \ 27371 } while (0); \
28159 } while (0) 27372 } while (0)
@@ -28163,21 +27376,21 @@ diff -urNp linux-2.6.38.3/drivers/scsi/scsi_logging.h linux-2.6.38.3/drivers/scs
28163 #endif /* CONFIG_SCSI_LOGGING */ 27376 #endif /* CONFIG_SCSI_LOGGING */
28164 27377
28165 /* 27378 /*
28166diff -urNp linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 27379diff -urNp linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c
28167--- linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 2011-03-14 21:20:32.000000000 -0400 27380--- linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 2011-03-14 21:20:32.000000000 -0400
28168+++ linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 2011-04-17 15:57:32.000000000 -0400 27381+++ linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 2011-03-21 18:31:35.000000000 -0400
28169@@ -836,7 +836,7 @@ static int fc_str_to_dev_loss(const char 27382@@ -1847,7 +1847,7 @@ store_priv_session_##field(struct device
28170 char *cp; 27383 #define iscsi_priv_session_rw_attr(field, format) \
28171 27384 iscsi_priv_session_attr_show(field, format) \
28172 *val = simple_strtoul(buf, &cp, 0); 27385 iscsi_priv_session_attr_store(field) \
28173- if ((*cp && (*cp != '\n')) || (*val < 0)) 27386-static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUGO, \
28174+ if (*cp && (*cp != '\n')) 27387+static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUSR, \
28175 return -EINVAL; 27388 show_priv_session_##field, \
28176 /* 27389 store_priv_session_##field)
28177 * Check for overflow; dev_loss_tmo is u32 27390 iscsi_priv_session_rw_attr(recovery_tmo, "%d");
28178diff -urNp linux-2.6.38.3/drivers/scsi/sg.c linux-2.6.38.3/drivers/scsi/sg.c 27391diff -urNp linux-2.6.38.2/drivers/scsi/sg.c linux-2.6.38.2/drivers/scsi/sg.c
28179--- linux-2.6.38.3/drivers/scsi/sg.c 2011-03-14 21:20:32.000000000 -0400 27392--- linux-2.6.38.2/drivers/scsi/sg.c 2011-03-14 21:20:32.000000000 -0400
28180+++ linux-2.6.38.3/drivers/scsi/sg.c 2011-04-17 15:57:32.000000000 -0400 27393+++ linux-2.6.38.2/drivers/scsi/sg.c 2011-03-21 18:31:35.000000000 -0400
28181@@ -2310,7 +2310,7 @@ struct sg_proc_leaf { 27394@@ -2310,7 +2310,7 @@ struct sg_proc_leaf {
28182 const struct file_operations * fops; 27395 const struct file_operations * fops;
28183 }; 27396 };
@@ -28196,9 +27409,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/sg.c linux-2.6.38.3/drivers/scsi/sg.c
28196 27409
28197 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL); 27410 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL);
28198 if (!sg_proc_sgp) 27411 if (!sg_proc_sgp)
28199diff -urNp linux-2.6.38.3/drivers/staging/autofs/root.c linux-2.6.38.3/drivers/staging/autofs/root.c 27412diff -urNp linux-2.6.38.2/drivers/staging/autofs/root.c linux-2.6.38.2/drivers/staging/autofs/root.c
28200--- linux-2.6.38.3/drivers/staging/autofs/root.c 2011-03-14 21:20:32.000000000 -0400 27413--- linux-2.6.38.2/drivers/staging/autofs/root.c 2011-03-14 21:20:32.000000000 -0400
28201+++ linux-2.6.38.3/drivers/staging/autofs/root.c 2011-04-17 15:57:32.000000000 -0400 27414+++ linux-2.6.38.2/drivers/staging/autofs/root.c 2011-03-28 16:57:18.000000000 -0400
28202@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in 27415@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in
28203 set_bit(n,sbi->symlink_bitmap); 27416 set_bit(n,sbi->symlink_bitmap);
28204 sl = &sbi->symlink[n]; 27417 sl = &sbi->symlink[n];
@@ -28209,9 +27422,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/autofs/root.c linux-2.6.38.3/drivers/s
28209 if (!sl->data) { 27422 if (!sl->data) {
28210 clear_bit(n,sbi->symlink_bitmap); 27423 clear_bit(n,sbi->symlink_bitmap);
28211 unlock_kernel(); 27424 unlock_kernel();
28212diff -urNp linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 27425diff -urNp linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c
28213--- linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 2011-03-14 21:20:32.000000000 -0400 27426--- linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 2011-03-14 21:20:32.000000000 -0400
28214+++ linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 2011-04-17 15:57:32.000000000 -0400 27427+++ linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 2011-03-21 18:31:35.000000000 -0400
28215@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file * 27428@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file *
28216 } 27429 }
28217 27430
@@ -28221,9 +27434,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c linux-2.6.38.3/drivers/s
28221 .owner = THIS_MODULE, 27434 .owner = THIS_MODULE,
28222 .open = bcm_char_open, 27435 .open = bcm_char_open,
28223 .release = bcm_char_release, 27436 .release = bcm_char_release,
28224diff -urNp linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 27437diff -urNp linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
28225--- linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-14 21:20:32.000000000 -0400 27438--- linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-14 21:20:32.000000000 -0400
28226+++ linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-04-17 15:57:32.000000000 -0400 27439+++ linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-21 18:31:35.000000000 -0400
28227@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp) 27440@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp)
28228 free_netdev(ifp->net); 27441 free_netdev(ifp->net);
28229 } 27442 }
@@ -28279,9 +27492,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c linux-2
28279 27492
28280 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC) 27493 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC)
28281 g_bus = bus; 27494 g_bus = bus;
28282diff -urNp linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 27495diff -urNp linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c
28283--- linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-14 21:20:32.000000000 -0400 27496--- linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-14 21:20:32.000000000 -0400
28284+++ linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-04-17 15:57:32.000000000 -0400 27497+++ linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-21 18:31:35.000000000 -0400
28285@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev, 27498@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev,
28286 list = (wl_u32_list_t *) channels; 27499 list = (wl_u32_list_t *) channels;
28287 27500
@@ -28291,9 +27504,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c linux-2.6.3
28291 27504
28292 range->min_nwid = range->max_nwid = 0; 27505 range->min_nwid = range->max_nwid = 0;
28293 27506
28294diff -urNp linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 27507diff -urNp linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c
28295--- linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 2011-03-14 21:20:32.000000000 -0400 27508--- linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 2011-03-14 21:20:32.000000000 -0400
28296+++ linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 2011-04-17 15:57:32.000000000 -0400 27509+++ linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 2011-03-21 18:31:35.000000000 -0400
28297@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_ 27510@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_
28298 mutex_unlock(&dev->mutex); 27511 mutex_unlock(&dev->mutex);
28299 } 27512 }
@@ -28303,9 +27516,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c linux-2.6.38.3/dr
28303 .close = comedi_unmap, 27516 .close = comedi_unmap,
28304 }; 27517 };
28305 27518
28306diff -urNp linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 27519diff -urNp linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
28307--- linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-14 21:20:32.000000000 -0400 27520--- linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-14 21:20:32.000000000 -0400
28308+++ linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-04-17 15:57:32.000000000 -0400 27521+++ linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-21 18:31:35.000000000 -0400
28309@@ -55,7 +55,7 @@ int numofmsgbuf = 0; 27522@@ -55,7 +55,7 @@ int numofmsgbuf = 0;
28310 // 27523 //
28311 // Table of entry-point routines for char device 27524 // Table of entry-point routines for char device
@@ -28315,9 +27528,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c linux
28315 { 27528 {
28316 .unlocked_ioctl = ft1000_ioctl, 27529 .unlocked_ioctl = ft1000_ioctl,
28317 .poll = ft1000_poll_dev, 27530 .poll = ft1000_poll_dev,
28318diff -urNp linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 27531diff -urNp linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c
28319--- linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 2011-03-14 21:20:32.000000000 -0400 27532--- linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 2011-03-14 21:20:32.000000000 -0400
28320+++ linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 2011-04-17 15:57:32.000000000 -0400 27533+++ linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 2011-03-21 18:31:35.000000000 -0400
28321@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are 27534@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are
28322 return 0; 27535 return 0;
28323 } 27536 }
@@ -28327,9 +27540,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.3/dr
28327 .open = go7007_vm_open, 27540 .open = go7007_vm_open,
28328 .close = go7007_vm_close, 27541 .close = go7007_vm_close,
28329 .fault = go7007_vm_fault, 27542 .fault = go7007_vm_fault,
28330diff -urNp linux-2.6.38.3/drivers/staging/hv/hv.c linux-2.6.38.3/drivers/staging/hv/hv.c 27543diff -urNp linux-2.6.38.2/drivers/staging/hv/hv.c linux-2.6.38.2/drivers/staging/hv/hv.c
28331--- linux-2.6.38.3/drivers/staging/hv/hv.c 2011-03-14 21:20:32.000000000 -0400 27544--- linux-2.6.38.2/drivers/staging/hv/hv.c 2011-03-14 21:20:32.000000000 -0400
28332+++ linux-2.6.38.3/drivers/staging/hv/hv.c 2011-04-17 15:57:32.000000000 -0400 27545+++ linux-2.6.38.2/drivers/staging/hv/hv.c 2011-03-21 18:31:35.000000000 -0400
28333@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi 27546@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi
28334 u64 output_address = (output) ? virt_to_phys(output) : 0; 27547 u64 output_address = (output) ? virt_to_phys(output) : 0;
28335 u32 output_address_hi = output_address >> 32; 27548 u32 output_address_hi = output_address >> 32;
@@ -28339,9 +27552,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/hv/hv.c linux-2.6.38.3/drivers/staging
28339 27552
28340 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>", 27553 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>",
28341 control, input, output); 27554 control, input, output);
28342diff -urNp linux-2.6.38.3/drivers/staging/phison/phison.c linux-2.6.38.3/drivers/staging/phison/phison.c 27555diff -urNp linux-2.6.38.2/drivers/staging/phison/phison.c linux-2.6.38.2/drivers/staging/phison/phison.c
28343--- linux-2.6.38.3/drivers/staging/phison/phison.c 2011-03-14 21:20:32.000000000 -0400 27556--- linux-2.6.38.2/drivers/staging/phison/phison.c 2011-03-14 21:20:32.000000000 -0400
28344+++ linux-2.6.38.3/drivers/staging/phison/phison.c 2011-04-17 15:57:32.000000000 -0400 27557+++ linux-2.6.38.2/drivers/staging/phison/phison.c 2011-03-21 18:31:35.000000000 -0400
28345@@ -43,7 +43,7 @@ static struct scsi_host_template phison_ 27558@@ -43,7 +43,7 @@ static struct scsi_host_template phison_
28346 ATA_BMDMA_SHT(DRV_NAME), 27559 ATA_BMDMA_SHT(DRV_NAME),
28347 }; 27560 };
@@ -28351,9 +27564,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/phison/phison.c linux-2.6.38.3/drivers
28351 .inherits = &ata_bmdma_port_ops, 27564 .inherits = &ata_bmdma_port_ops,
28352 .prereset = phison_pre_reset, 27565 .prereset = phison_pre_reset,
28353 }; 27566 };
28354diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/inode.c linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 27567diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/inode.c linux-2.6.38.2/drivers/staging/pohmelfs/inode.c
28355--- linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 2011-03-14 21:20:32.000000000 -0400 27568--- linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 2011-03-14 21:20:32.000000000 -0400
28356+++ linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 2011-04-17 15:57:32.000000000 -0400 27569+++ linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 2011-03-21 18:31:35.000000000 -0400
28357@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su 27570@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su
28358 mutex_init(&psb->mcache_lock); 27571 mutex_init(&psb->mcache_lock);
28359 psb->mcache_root = RB_ROOT; 27572 psb->mcache_root = RB_ROOT;
@@ -28363,9 +27576,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/inode.c linux-2.6.38.3/driver
28363 27576
28364 psb->trans_max_pages = 100; 27577 psb->trans_max_pages = 100;
28365 27578
28366diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 27579diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c
28367--- linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 2011-03-14 21:20:32.000000000 -0400 27580--- linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 2011-03-14 21:20:32.000000000 -0400
28368+++ linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 2011-04-17 15:57:32.000000000 -0400 27581+++ linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 2011-03-21 18:31:35.000000000 -0400
28369@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_ 27582@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_
28370 m->data = data; 27583 m->data = data;
28371 m->start = start; 27584 m->start = start;
@@ -28375,9 +27588,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c linux-2.6.38.3/drive
28375 27588
28376 mutex_lock(&psb->mcache_lock); 27589 mutex_lock(&psb->mcache_lock);
28377 err = pohmelfs_mcache_insert(psb, m); 27590 err = pohmelfs_mcache_insert(psb, m);
28378diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 27591diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h
28379--- linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 2011-03-14 21:20:32.000000000 -0400 27592--- linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 2011-03-14 21:20:32.000000000 -0400
28380+++ linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 2011-04-17 15:57:32.000000000 -0400 27593+++ linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 2011-03-21 18:31:35.000000000 -0400
28381@@ -571,7 +571,7 @@ struct pohmelfs_config; 27594@@ -571,7 +571,7 @@ struct pohmelfs_config;
28382 struct pohmelfs_sb { 27595 struct pohmelfs_sb {
28383 struct rb_root mcache_root; 27596 struct rb_root mcache_root;
@@ -28387,9 +27600,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h linux-2.6.38.3/driver
28387 unsigned long mcache_timeout; 27600 unsigned long mcache_timeout;
28388 27601
28389 unsigned int idx; 27602 unsigned int idx;
28390diff -urNp linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 27603diff -urNp linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c
28391--- linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-14 21:20:32.000000000 -0400 27604--- linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-14 21:20:32.000000000 -0400
28392+++ linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 2011-04-17 15:57:32.000000000 -0400 27605+++ linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-21 18:31:35.000000000 -0400
28393@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode 27606@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode
28394 return seq_open(file, &crypto_seq_ops); 27607 return seq_open(file, &crypto_seq_ops);
28395 } 27608 }
@@ -28399,9 +27612,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38
28399 .open = crypto_info_open, 27612 .open = crypto_info_open,
28400 .read = seq_read, 27613 .read = seq_read,
28401 .llseek = seq_lseek, 27614 .llseek = seq_lseek,
28402diff -urNp linux-2.6.38.3/drivers/staging/spectra/ffsport.c linux-2.6.38.3/drivers/staging/spectra/ffsport.c 27615diff -urNp linux-2.6.38.2/drivers/staging/spectra/ffsport.c linux-2.6.38.2/drivers/staging/spectra/ffsport.c
28403--- linux-2.6.38.3/drivers/staging/spectra/ffsport.c 2011-03-14 21:20:32.000000000 -0400 27616--- linux-2.6.38.2/drivers/staging/spectra/ffsport.c 2011-03-14 21:20:32.000000000 -0400
28404+++ linux-2.6.38.3/drivers/staging/spectra/ffsport.c 2011-04-17 15:57:32.000000000 -0400 27617+++ linux-2.6.38.2/drivers/staging/spectra/ffsport.c 2011-03-21 18:31:35.000000000 -0400
28405@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block 27618@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block
28406 return ret; 27619 return ret;
28407 } 27620 }
@@ -28411,9 +27624,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/spectra/ffsport.c linux-2.6.38.3/drive
28411 .owner = THIS_MODULE, 27624 .owner = THIS_MODULE,
28412 .open = GLOB_SBD_open, 27625 .open = GLOB_SBD_open,
28413 .release = GLOB_SBD_release, 27626 .release = GLOB_SBD_release,
28414diff -urNp linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 27627diff -urNp linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c
28415--- linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 2011-03-14 21:20:32.000000000 -0400 27628--- linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c 2011-03-14 21:20:32.000000000 -0400
28416+++ linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 2011-04-17 15:57:32.000000000 -0400 27629+++ linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c 2011-03-21 18:31:35.000000000 -0400
28417@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru 27630@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru
28418 static int __devinit vme_user_probe(struct device *, int, int); 27631 static int __devinit vme_user_probe(struct device *, int, int);
28419 static int __devexit vme_user_remove(struct device *, int, int); 27632 static int __devexit vme_user_remove(struct device *, int, int);
@@ -28423,9 +27636,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c linux-2.6.38.3/
28423 .open = vme_user_open, 27636 .open = vme_user_open,
28424 .release = vme_user_release, 27637 .release = vme_user_release,
28425 .read = vme_user_read, 27638 .read = vme_user_read,
28426diff -urNp linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 27639diff -urNp linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c
28427--- linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-14 21:20:32.000000000 -0400 27640--- linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-14 21:20:32.000000000 -0400
28428+++ linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-04-17 15:57:32.000000000 -0400 27641+++ linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-21 18:31:35.000000000 -0400
28429@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge 27642@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge
28430 27643
28431 27644
@@ -28435,9 +27648,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_bl
28435 .open = cyasblkdev_blk_open, 27648 .open = cyasblkdev_blk_open,
28436 .release = cyasblkdev_blk_release, 27649 .release = cyasblkdev_blk_release,
28437 .ioctl = cyasblkdev_blk_ioctl, 27650 .ioctl = cyasblkdev_blk_ioctl,
28438diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_console.h linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 27651diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_console.h linux-2.6.38.2/drivers/tty/hvc/hvc_console.h
28439--- linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 2011-03-14 21:20:32.000000000 -0400 27652--- linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 2011-03-14 21:20:32.000000000 -0400
28440+++ linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 2011-04-17 15:57:32.000000000 -0400 27653+++ linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 2011-03-21 18:31:35.000000000 -0400
28441@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter 27654@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter
28442 /* register a vterm for hvc tty operation (module_init or hotplug add) */ 27655 /* register a vterm for hvc tty operation (module_init or hotplug add) */
28443 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data, 27656 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data,
@@ -28446,9 +27659,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_console.h linux-2.6.38.3/drivers/t
28446 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */ 27659 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */
28447 extern int hvc_remove(struct hvc_struct *hp); 27660 extern int hvc_remove(struct hvc_struct *hp);
28448 27661
28449diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvcs.c linux-2.6.38.3/drivers/tty/hvc/hvcs.c 27662diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvcs.c linux-2.6.38.2/drivers/tty/hvc/hvcs.c
28450--- linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-03-14 21:20:32.000000000 -0400 27663--- linux-2.6.38.2/drivers/tty/hvc/hvcs.c 2011-03-14 21:20:32.000000000 -0400
28451+++ linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-04-17 15:57:32.000000000 -0400 27664+++ linux-2.6.38.2/drivers/tty/hvc/hvcs.c 2011-03-21 18:31:35.000000000 -0400
28452@@ -83,6 +83,7 @@ 27665@@ -83,6 +83,7 @@
28453 #include <asm/hvcserver.h> 27666 #include <asm/hvcserver.h>
28454 #include <asm/uaccess.h> 27667 #include <asm/uaccess.h>
@@ -28551,9 +27764,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvcs.c linux-2.6.38.3/drivers/tty/hvc/
28551 return 0; 27764 return 0;
28552 27765
28553 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer; 27766 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
28554diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 27767diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c
28555--- linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 2011-03-14 21:20:32.000000000 -0400 27768--- linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 2011-03-14 21:20:32.000000000 -0400
28556+++ linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 2011-04-17 15:57:32.000000000 -0400 27769+++ linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 2011-03-21 18:31:35.000000000 -0400
28557@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt 27770@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt
28558 return recv; 27771 return recv;
28559 } 27772 }
@@ -28590,9 +27803,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c linux-2.6.38.3/drivers/tty/h
28590 27803
28591 if (!xen_pv_domain()) 27804 if (!xen_pv_domain())
28592 return 0; 27805 return 0;
28593diff -urNp linux-2.6.38.3/drivers/tty/n_gsm.c linux-2.6.38.3/drivers/tty/n_gsm.c 27806diff -urNp linux-2.6.38.2/drivers/tty/n_gsm.c linux-2.6.38.2/drivers/tty/n_gsm.c
28594--- linux-2.6.38.3/drivers/tty/n_gsm.c 2011-03-14 21:20:32.000000000 -0400 27807--- linux-2.6.38.2/drivers/tty/n_gsm.c 2011-03-14 21:20:32.000000000 -0400
28595+++ linux-2.6.38.3/drivers/tty/n_gsm.c 2011-04-17 15:57:32.000000000 -0400 27808+++ linux-2.6.38.2/drivers/tty/n_gsm.c 2011-03-21 18:31:35.000000000 -0400
28596@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s 27809@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s
28597 return NULL; 27810 return NULL;
28598 spin_lock_init(&dlci->lock); 27811 spin_lock_init(&dlci->lock);
@@ -28602,9 +27815,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/n_gsm.c linux-2.6.38.3/drivers/tty/n_gsm.c
28602 kfree(dlci); 27815 kfree(dlci);
28603 return NULL; 27816 return NULL;
28604 } 27817 }
28605diff -urNp linux-2.6.38.3/drivers/tty/n_tty.c linux-2.6.38.3/drivers/tty/n_tty.c 27818diff -urNp linux-2.6.38.2/drivers/tty/n_tty.c linux-2.6.38.2/drivers/tty/n_tty.c
28606--- linux-2.6.38.3/drivers/tty/n_tty.c 2011-03-14 21:20:32.000000000 -0400 27819--- linux-2.6.38.2/drivers/tty/n_tty.c 2011-03-14 21:20:32.000000000 -0400
28607+++ linux-2.6.38.3/drivers/tty/n_tty.c 2011-04-17 15:57:32.000000000 -0400 27820+++ linux-2.6.38.2/drivers/tty/n_tty.c 2011-03-21 18:31:35.000000000 -0400
28608@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ 27821@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_
28609 { 27822 {
28610 *ops = tty_ldisc_N_TTY; 27823 *ops = tty_ldisc_N_TTY;
@@ -28614,9 +27827,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/n_tty.c linux-2.6.38.3/drivers/tty/n_tty.c
28614+ ops->flags = 0; 27827+ ops->flags = 0;
28615 } 27828 }
28616 EXPORT_SYMBOL_GPL(n_tty_inherit_ops); 27829 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
28617diff -urNp linux-2.6.38.3/drivers/tty/pty.c linux-2.6.38.3/drivers/tty/pty.c 27830diff -urNp linux-2.6.38.2/drivers/tty/pty.c linux-2.6.38.2/drivers/tty/pty.c
28618--- linux-2.6.38.3/drivers/tty/pty.c 2011-03-14 21:20:32.000000000 -0400 27831--- linux-2.6.38.2/drivers/tty/pty.c 2011-03-14 21:20:32.000000000 -0400
28619+++ linux-2.6.38.3/drivers/tty/pty.c 2011-04-17 15:57:32.000000000 -0400 27832+++ linux-2.6.38.2/drivers/tty/pty.c 2011-03-21 18:31:35.000000000 -0400
28620@@ -700,7 +700,18 @@ out: 27833@@ -700,7 +700,18 @@ out:
28621 return retval; 27834 return retval;
28622 } 27835 }
@@ -28648,9 +27861,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/pty.c linux-2.6.38.3/drivers/tty/pty.c
28648 cdev_init(&ptmx_cdev, &ptmx_fops); 27861 cdev_init(&ptmx_cdev, &ptmx_fops);
28649 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) || 27862 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
28650 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) 27863 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0)
28651diff -urNp linux-2.6.38.3/drivers/tty/serial/8250_pci.c linux-2.6.38.3/drivers/tty/serial/8250_pci.c 27864diff -urNp linux-2.6.38.2/drivers/tty/serial/8250_pci.c linux-2.6.38.2/drivers/tty/serial/8250_pci.c
28652--- linux-2.6.38.3/drivers/tty/serial/8250_pci.c 2011-03-14 21:20:32.000000000 -0400 27865--- linux-2.6.38.2/drivers/tty/serial/8250_pci.c 2011-03-14 21:20:32.000000000 -0400
28653+++ linux-2.6.38.3/drivers/tty/serial/8250_pci.c 2011-04-17 15:57:32.000000000 -0400 27866+++ linux-2.6.38.2/drivers/tty/serial/8250_pci.c 2011-03-21 18:31:35.000000000 -0400
28654@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t 27867@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t
28655 PCI_ANY_ID, PCI_ANY_ID, 27868 PCI_ANY_ID, PCI_ANY_ID,
28656 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, 27869 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8,
@@ -28660,9 +27873,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/serial/8250_pci.c linux-2.6.38.3/drivers/t
28660 }; 27873 };
28661 27874
28662 static struct pci_driver serial_pci_driver = { 27875 static struct pci_driver serial_pci_driver = {
28663diff -urNp linux-2.6.38.3/drivers/tty/serial/kgdboc.c linux-2.6.38.3/drivers/tty/serial/kgdboc.c 27876diff -urNp linux-2.6.38.2/drivers/tty/serial/kgdboc.c linux-2.6.38.2/drivers/tty/serial/kgdboc.c
28664--- linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-03-14 21:20:32.000000000 -0400 27877--- linux-2.6.38.2/drivers/tty/serial/kgdboc.c 2011-03-14 21:20:32.000000000 -0400
28665+++ linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-04-17 15:57:32.000000000 -0400 27878+++ linux-2.6.38.2/drivers/tty/serial/kgdboc.c 2011-03-21 18:31:35.000000000 -0400
28666@@ -22,7 +22,7 @@ 27879@@ -22,7 +22,7 @@
28667 27880
28668 #define MAX_CONFIG_LEN 40 27881 #define MAX_CONFIG_LEN 40
@@ -28681,9 +27894,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/serial/kgdboc.c linux-2.6.38.3/drivers/tty
28681 .name = "kgdboc", 27894 .name = "kgdboc",
28682 .read_char = kgdboc_get_char, 27895 .read_char = kgdboc_get_char,
28683 .write_char = kgdboc_put_char, 27896 .write_char = kgdboc_put_char,
28684diff -urNp linux-2.6.38.3/drivers/tty/tty_io.c linux-2.6.38.3/drivers/tty/tty_io.c 27897diff -urNp linux-2.6.38.2/drivers/tty/tty_io.c linux-2.6.38.2/drivers/tty/tty_io.c
28685--- linux-2.6.38.3/drivers/tty/tty_io.c 2011-03-14 21:20:32.000000000 -0400 27898--- linux-2.6.38.2/drivers/tty/tty_io.c 2011-03-14 21:20:32.000000000 -0400
28686+++ linux-2.6.38.3/drivers/tty/tty_io.c 2011-04-17 15:57:32.000000000 -0400 27899+++ linux-2.6.38.2/drivers/tty/tty_io.c 2011-03-21 18:31:35.000000000 -0400
28687@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex); 27900@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex);
28688 /* Spinlock to protect the tty->tty_files list */ 27901 /* Spinlock to protect the tty->tty_files list */
28689 DEFINE_SPINLOCK(tty_files_lock); 27902 DEFINE_SPINLOCK(tty_files_lock);
@@ -28821,9 +28034,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/tty_io.c linux-2.6.38.3/drivers/tty/tty_io
28821 /* 28034 /*
28822 * Initialize the console device. This is called *early*, so 28035 * Initialize the console device. This is called *early*, so
28823 * we can't necessarily depend on lots of kernel help here. 28036 * we can't necessarily depend on lots of kernel help here.
28824diff -urNp linux-2.6.38.3/drivers/tty/tty_ldisc.c linux-2.6.38.3/drivers/tty/tty_ldisc.c 28037diff -urNp linux-2.6.38.2/drivers/tty/tty_ldisc.c linux-2.6.38.2/drivers/tty/tty_ldisc.c
28825--- linux-2.6.38.3/drivers/tty/tty_ldisc.c 2011-03-14 21:20:32.000000000 -0400 28038--- linux-2.6.38.2/drivers/tty/tty_ldisc.c 2011-03-14 21:20:32.000000000 -0400
28826+++ linux-2.6.38.3/drivers/tty/tty_ldisc.c 2011-04-17 15:57:32.000000000 -0400 28039+++ linux-2.6.38.2/drivers/tty/tty_ldisc.c 2011-03-21 18:31:35.000000000 -0400
28827@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc * 28040@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc *
28828 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) { 28041 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) {
28829 struct tty_ldisc_ops *ldo = ld->ops; 28042 struct tty_ldisc_ops *ldo = ld->ops;
@@ -28869,9 +28082,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/tty_ldisc.c linux-2.6.38.3/drivers/tty/tty
28869 module_put(ldops->owner); 28082 module_put(ldops->owner);
28870 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 28083 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
28871 } 28084 }
28872diff -urNp linux-2.6.38.3/drivers/tty/vt/keyboard.c linux-2.6.38.3/drivers/tty/vt/keyboard.c 28085diff -urNp linux-2.6.38.2/drivers/tty/vt/keyboard.c linux-2.6.38.2/drivers/tty/vt/keyboard.c
28873--- linux-2.6.38.3/drivers/tty/vt/keyboard.c 2011-03-14 21:20:32.000000000 -0400 28086--- linux-2.6.38.2/drivers/tty/vt/keyboard.c 2011-03-14 21:20:32.000000000 -0400
28874+++ linux-2.6.38.3/drivers/tty/vt/keyboard.c 2011-04-17 15:57:32.000000000 -0400 28087+++ linux-2.6.38.2/drivers/tty/vt/keyboard.c 2011-03-21 18:31:35.000000000 -0400
28875@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u 28088@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u
28876 kbd->kbdmode == VC_MEDIUMRAW) && 28089 kbd->kbdmode == VC_MEDIUMRAW) &&
28877 value != KVAL(K_SAK)) 28090 value != KVAL(K_SAK))
@@ -28898,9 +28111,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/vt/keyboard.c linux-2.6.38.3/drivers/tty/v
28898 }; 28111 };
28899 28112
28900 MODULE_DEVICE_TABLE(input, kbd_ids); 28113 MODULE_DEVICE_TABLE(input, kbd_ids);
28901diff -urNp linux-2.6.38.3/drivers/tty/vt/vt.c linux-2.6.38.3/drivers/tty/vt/vt.c 28114diff -urNp linux-2.6.38.2/drivers/tty/vt/vt.c linux-2.6.38.2/drivers/tty/vt/vt.c
28902--- linux-2.6.38.3/drivers/tty/vt/vt.c 2011-03-14 21:20:32.000000000 -0400 28115--- linux-2.6.38.2/drivers/tty/vt/vt.c 2011-03-14 21:20:32.000000000 -0400
28903+++ linux-2.6.38.3/drivers/tty/vt/vt.c 2011-04-17 15:57:32.000000000 -0400 28116+++ linux-2.6.38.2/drivers/tty/vt/vt.c 2011-03-21 18:31:35.000000000 -0400
28904@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier 28117@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier
28905 28118
28906 static void notify_write(struct vc_data *vc, unsigned int unicode) 28119 static void notify_write(struct vc_data *vc, unsigned int unicode)
@@ -28910,9 +28123,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/vt/vt.c linux-2.6.38.3/drivers/tty/vt/vt.c
28910 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param); 28123 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param);
28911 } 28124 }
28912 28125
28913diff -urNp linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 28126diff -urNp linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c
28914--- linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 2011-03-14 21:20:32.000000000 -0400 28127--- linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 2011-03-14 21:20:32.000000000 -0400
28915+++ linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 2011-04-17 15:57:32.000000000 -0400 28128+++ linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 2011-03-21 18:31:35.000000000 -0400
28916@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __ 28129@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __
28917 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) 28130 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
28918 return -EFAULT; 28131 return -EFAULT;
@@ -28953,9 +28166,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c linux-2.6.38.3/drivers/tty/v
28953 if (!perm) { 28166 if (!perm) {
28954 ret = -EPERM; 28167 ret = -EPERM;
28955 goto reterr; 28168 goto reterr;
28956diff -urNp linux-2.6.38.3/drivers/uio/uio.c linux-2.6.38.3/drivers/uio/uio.c 28169diff -urNp linux-2.6.38.2/drivers/uio/uio.c linux-2.6.38.2/drivers/uio/uio.c
28957--- linux-2.6.38.3/drivers/uio/uio.c 2011-03-14 21:20:32.000000000 -0400 28170--- linux-2.6.38.2/drivers/uio/uio.c 2011-03-14 21:20:32.000000000 -0400
28958+++ linux-2.6.38.3/drivers/uio/uio.c 2011-04-17 15:57:32.000000000 -0400 28171+++ linux-2.6.38.2/drivers/uio/uio.c 2011-03-21 18:31:35.000000000 -0400
28959@@ -25,6 +25,7 @@ 28172@@ -25,6 +25,7 @@
28960 #include <linux/kobject.h> 28173 #include <linux/kobject.h>
28961 #include <linux/cdev.h> 28174 #include <linux/cdev.h>
@@ -28989,9 +28202,9 @@ diff -urNp linux-2.6.38.3/drivers/uio/uio.c linux-2.6.38.3/drivers/uio/uio.c
28989 } 28202 }
28990 28203
28991 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 28204 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
28992diff -urNp linux-2.6.38.3/drivers/usb/atm/cxacru.c linux-2.6.38.3/drivers/usb/atm/cxacru.c 28205diff -urNp linux-2.6.38.2/drivers/usb/atm/cxacru.c linux-2.6.38.2/drivers/usb/atm/cxacru.c
28993--- linux-2.6.38.3/drivers/usb/atm/cxacru.c 2011-03-14 21:20:32.000000000 -0400 28206--- linux-2.6.38.2/drivers/usb/atm/cxacru.c 2011-03-14 21:20:32.000000000 -0400
28994+++ linux-2.6.38.3/drivers/usb/atm/cxacru.c 2011-04-17 15:57:32.000000000 -0400 28207+++ linux-2.6.38.2/drivers/usb/atm/cxacru.c 2011-03-21 18:31:35.000000000 -0400
28995@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c 28208@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c
28996 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp); 28209 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
28997 if (ret < 2) 28210 if (ret < 2)
@@ -29001,9 +28214,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/atm/cxacru.c linux-2.6.38.3/drivers/usb/at
29001 return -EINVAL; 28214 return -EINVAL;
29002 pos += tmp; 28215 pos += tmp;
29003 28216
29004diff -urNp linux-2.6.38.3/drivers/usb/atm/usbatm.c linux-2.6.38.3/drivers/usb/atm/usbatm.c 28217diff -urNp linux-2.6.38.2/drivers/usb/atm/usbatm.c linux-2.6.38.2/drivers/usb/atm/usbatm.c
29005--- linux-2.6.38.3/drivers/usb/atm/usbatm.c 2011-03-14 21:20:32.000000000 -0400 28218--- linux-2.6.38.2/drivers/usb/atm/usbatm.c 2011-03-14 21:20:32.000000000 -0400
29006+++ linux-2.6.38.3/drivers/usb/atm/usbatm.c 2011-04-17 15:57:32.000000000 -0400 28219+++ linux-2.6.38.2/drivers/usb/atm/usbatm.c 2011-03-21 18:31:35.000000000 -0400
29007@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru 28220@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru
29008 if (printk_ratelimit()) 28221 if (printk_ratelimit())
29009 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n", 28222 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
@@ -29083,9 +28296,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/atm/usbatm.c linux-2.6.38.3/drivers/usb/at
29083 28296
29084 if (!left--) { 28297 if (!left--) {
29085 if (instance->disconnected) 28298 if (instance->disconnected)
29086diff -urNp linux-2.6.38.3/drivers/usb/class/cdc-acm.c linux-2.6.38.3/drivers/usb/class/cdc-acm.c 28299diff -urNp linux-2.6.38.2/drivers/usb/class/cdc-acm.c linux-2.6.38.2/drivers/usb/class/cdc-acm.c
29087--- linux-2.6.38.3/drivers/usb/class/cdc-acm.c 2011-04-18 17:27:16.000000000 -0400 28300--- linux-2.6.38.2/drivers/usb/class/cdc-acm.c 2011-03-28 17:42:40.000000000 -0400
29088+++ linux-2.6.38.3/drivers/usb/class/cdc-acm.c 2011-04-17 15:57:32.000000000 -0400 28301+++ linux-2.6.38.2/drivers/usb/class/cdc-acm.c 2011-03-28 17:42:53.000000000 -0400
29089@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id 28302@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id
29090 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 28303 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
29091 USB_CDC_ACM_PROTO_AT_CDMA) }, 28304 USB_CDC_ACM_PROTO_AT_CDMA) },
@@ -29095,9 +28308,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/class/cdc-acm.c linux-2.6.38.3/drivers/usb
29095 }; 28308 };
29096 28309
29097 MODULE_DEVICE_TABLE(usb, acm_ids); 28310 MODULE_DEVICE_TABLE(usb, acm_ids);
29098diff -urNp linux-2.6.38.3/drivers/usb/class/usblp.c linux-2.6.38.3/drivers/usb/class/usblp.c 28311diff -urNp linux-2.6.38.2/drivers/usb/class/usblp.c linux-2.6.38.2/drivers/usb/class/usblp.c
29099--- linux-2.6.38.3/drivers/usb/class/usblp.c 2011-03-14 21:20:32.000000000 -0400 28312--- linux-2.6.38.2/drivers/usb/class/usblp.c 2011-03-14 21:20:32.000000000 -0400
29100+++ linux-2.6.38.3/drivers/usb/class/usblp.c 2011-04-17 15:57:32.000000000 -0400 28313+++ linux-2.6.38.2/drivers/usb/class/usblp.c 2011-03-21 18:31:35.000000000 -0400
29101@@ -227,7 +227,7 @@ static const struct quirk_printer_struct 28314@@ -227,7 +227,7 @@ static const struct quirk_printer_struct
29102 { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ 28315 { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */
29103 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */ 28316 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */
@@ -29116,9 +28329,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/class/usblp.c linux-2.6.38.3/drivers/usb/c
29116 }; 28329 };
29117 28330
29118 MODULE_DEVICE_TABLE(usb, usblp_ids); 28331 MODULE_DEVICE_TABLE(usb, usblp_ids);
29119diff -urNp linux-2.6.38.3/drivers/usb/core/hcd.c linux-2.6.38.3/drivers/usb/core/hcd.c 28332diff -urNp linux-2.6.38.2/drivers/usb/core/hcd.c linux-2.6.38.2/drivers/usb/core/hcd.c
29120--- linux-2.6.38.3/drivers/usb/core/hcd.c 2011-04-18 17:27:14.000000000 -0400 28333--- linux-2.6.38.2/drivers/usb/core/hcd.c 2011-03-23 17:20:07.000000000 -0400
29121+++ linux-2.6.38.3/drivers/usb/core/hcd.c 2011-04-17 15:57:32.000000000 -0400 28334+++ linux-2.6.38.2/drivers/usb/core/hcd.c 2011-03-26 20:49:43.000000000 -0400
29122@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd 28335@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd
29123 28336
29124 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE) 28337 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
@@ -29137,9 +28350,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/core/hcd.c linux-2.6.38.3/drivers/usb/core
29137 { 28350 {
29138 28351
29139 if (mon_ops) 28352 if (mon_ops)
29140diff -urNp linux-2.6.38.3/drivers/usb/core/hub.c linux-2.6.38.3/drivers/usb/core/hub.c 28353diff -urNp linux-2.6.38.2/drivers/usb/core/hub.c linux-2.6.38.2/drivers/usb/core/hub.c
29141--- linux-2.6.38.3/drivers/usb/core/hub.c 2011-03-14 21:20:32.000000000 -0400 28354--- linux-2.6.38.2/drivers/usb/core/hub.c 2011-03-14 21:20:32.000000000 -0400
29142+++ linux-2.6.38.3/drivers/usb/core/hub.c 2011-04-17 15:57:32.000000000 -0400 28355+++ linux-2.6.38.2/drivers/usb/core/hub.c 2011-03-21 18:31:35.000000000 -0400
29143@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id 28356@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id
29144 .bDeviceClass = USB_CLASS_HUB}, 28357 .bDeviceClass = USB_CLASS_HUB},
29145 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, 28358 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS,
@@ -29149,9 +28362,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/core/hub.c linux-2.6.38.3/drivers/usb/core
29149 }; 28362 };
29150 28363
29151 MODULE_DEVICE_TABLE (usb, hub_id_table); 28364 MODULE_DEVICE_TABLE (usb, hub_id_table);
29152diff -urNp linux-2.6.38.3/drivers/usb/core/message.c linux-2.6.38.3/drivers/usb/core/message.c 28365diff -urNp linux-2.6.38.2/drivers/usb/core/message.c linux-2.6.38.2/drivers/usb/core/message.c
29153--- linux-2.6.38.3/drivers/usb/core/message.c 2011-03-14 21:20:32.000000000 -0400 28366--- linux-2.6.38.2/drivers/usb/core/message.c 2011-03-14 21:20:32.000000000 -0400
29154+++ linux-2.6.38.3/drivers/usb/core/message.c 2011-04-17 15:57:32.000000000 -0400 28367+++ linux-2.6.38.2/drivers/usb/core/message.c 2011-03-21 18:31:35.000000000 -0400
29155@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device 28368@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device
29156 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO); 28369 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
29157 if (buf) { 28370 if (buf) {
@@ -29163,9 +28376,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/core/message.c linux-2.6.38.3/drivers/usb/
29163 if (!smallbuf) 28376 if (!smallbuf)
29164 return buf; 28377 return buf;
29165 memcpy(smallbuf, buf, len); 28378 memcpy(smallbuf, buf, len);
29166diff -urNp linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 28379diff -urNp linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c
29167--- linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 2011-03-14 21:20:32.000000000 -0400 28380--- linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 2011-03-14 21:20:32.000000000 -0400
29168+++ linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 2011-04-17 15:57:32.000000000 -0400 28381+++ linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 2011-03-21 18:31:35.000000000 -0400
29169@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x, 28382@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x,
29170 } 28383 }
29171 28384
@@ -29184,9 +28397,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c linux-2.6.38.3/drivers/u
29184 .name = "kgdbdbgp", 28397 .name = "kgdbdbgp",
29185 .read_char = kgdbdbgp_read_char, 28398 .read_char = kgdbdbgp_read_char,
29186 .write_char = kgdbdbgp_write_char, 28399 .write_char = kgdbdbgp_write_char,
29187diff -urNp linux-2.6.38.3/drivers/usb/host/ehci-pci.c linux-2.6.38.3/drivers/usb/host/ehci-pci.c 28400diff -urNp linux-2.6.38.2/drivers/usb/host/ehci-pci.c linux-2.6.38.2/drivers/usb/host/ehci-pci.c
29188--- linux-2.6.38.3/drivers/usb/host/ehci-pci.c 2011-03-14 21:20:32.000000000 -0400 28401--- linux-2.6.38.2/drivers/usb/host/ehci-pci.c 2011-03-14 21:20:32.000000000 -0400
29189+++ linux-2.6.38.3/drivers/usb/host/ehci-pci.c 2011-04-17 15:57:32.000000000 -0400 28402+++ linux-2.6.38.2/drivers/usb/host/ehci-pci.c 2011-03-21 18:31:35.000000000 -0400
29190@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id 28403@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id
29191 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), 28404 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0),
29192 .driver_data = (unsigned long) &ehci_pci_hc_driver, 28405 .driver_data = (unsigned long) &ehci_pci_hc_driver,
@@ -29196,9 +28409,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/host/ehci-pci.c linux-2.6.38.3/drivers/usb
29196 }; 28409 };
29197 MODULE_DEVICE_TABLE(pci, pci_ids); 28410 MODULE_DEVICE_TABLE(pci, pci_ids);
29198 28411
29199diff -urNp linux-2.6.38.3/drivers/usb/host/uhci-hcd.c linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 28412diff -urNp linux-2.6.38.2/drivers/usb/host/uhci-hcd.c linux-2.6.38.2/drivers/usb/host/uhci-hcd.c
29200--- linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 2011-03-14 21:20:32.000000000 -0400 28413--- linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 2011-03-14 21:20:32.000000000 -0400
29201+++ linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 2011-04-17 15:57:32.000000000 -0400 28414+++ linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 2011-03-21 18:31:35.000000000 -0400
29202@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p 28415@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p
29203 /* handle any USB UHCI controller */ 28416 /* handle any USB UHCI controller */
29204 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), 28417 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0),
@@ -29208,9 +28421,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/host/uhci-hcd.c linux-2.6.38.3/drivers/usb
29208 }; 28421 };
29209 28422
29210 MODULE_DEVICE_TABLE(pci, uhci_pci_ids); 28423 MODULE_DEVICE_TABLE(pci, uhci_pci_ids);
29211diff -urNp linux-2.6.38.3/drivers/usb/mon/mon_main.c linux-2.6.38.3/drivers/usb/mon/mon_main.c 28424diff -urNp linux-2.6.38.2/drivers/usb/mon/mon_main.c linux-2.6.38.2/drivers/usb/mon/mon_main.c
29212--- linux-2.6.38.3/drivers/usb/mon/mon_main.c 2011-03-14 21:20:32.000000000 -0400 28425--- linux-2.6.38.2/drivers/usb/mon/mon_main.c 2011-03-14 21:20:32.000000000 -0400
29213+++ linux-2.6.38.3/drivers/usb/mon/mon_main.c 2011-04-17 15:57:32.000000000 -0400 28426+++ linux-2.6.38.2/drivers/usb/mon/mon_main.c 2011-03-21 18:31:35.000000000 -0400
29214@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = { 28427@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = {
29215 /* 28428 /*
29216 * Ops 28429 * Ops
@@ -29220,9 +28433,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/mon/mon_main.c linux-2.6.38.3/drivers/usb/
29220 .urb_submit = mon_submit, 28433 .urb_submit = mon_submit,
29221 .urb_submit_error = mon_submit_error, 28434 .urb_submit_error = mon_submit_error,
29222 .urb_complete = mon_complete, 28435 .urb_complete = mon_complete,
29223diff -urNp linux-2.6.38.3/drivers/usb/storage/debug.h linux-2.6.38.3/drivers/usb/storage/debug.h 28436diff -urNp linux-2.6.38.2/drivers/usb/storage/debug.h linux-2.6.38.2/drivers/usb/storage/debug.h
29224--- linux-2.6.38.3/drivers/usb/storage/debug.h 2011-03-14 21:20:32.000000000 -0400 28437--- linux-2.6.38.2/drivers/usb/storage/debug.h 2011-03-14 21:20:32.000000000 -0400
29225+++ linux-2.6.38.3/drivers/usb/storage/debug.h 2011-04-17 15:57:32.000000000 -0400 28438+++ linux-2.6.38.2/drivers/usb/storage/debug.h 2011-03-21 18:31:35.000000000 -0400
29226@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char 28439@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char
29227 #define US_DEBUGPX(x...) printk( x ) 28440 #define US_DEBUGPX(x...) printk( x )
29228 #define US_DEBUG(x) x 28441 #define US_DEBUG(x) x
@@ -29236,9 +28449,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/storage/debug.h linux-2.6.38.3/drivers/usb
29236 #endif 28449 #endif
29237 28450
29238 #endif 28451 #endif
29239diff -urNp linux-2.6.38.3/drivers/usb/storage/usb.c linux-2.6.38.3/drivers/usb/storage/usb.c 28452diff -urNp linux-2.6.38.2/drivers/usb/storage/usb.c linux-2.6.38.2/drivers/usb/storage/usb.c
29240--- linux-2.6.38.3/drivers/usb/storage/usb.c 2011-03-14 21:20:32.000000000 -0400 28453--- linux-2.6.38.2/drivers/usb/storage/usb.c 2011-03-14 21:20:32.000000000 -0400
29241+++ linux-2.6.38.3/drivers/usb/storage/usb.c 2011-04-17 15:57:32.000000000 -0400 28454+++ linux-2.6.38.2/drivers/usb/storage/usb.c 2011-03-21 18:31:35.000000000 -0400
29242@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l 28455@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l
29243 28456
29244 static struct us_unusual_dev us_unusual_dev_list[] = { 28457 static struct us_unusual_dev us_unusual_dev_list[] = {
@@ -29248,9 +28461,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/storage/usb.c linux-2.6.38.3/drivers/usb/s
29248 }; 28461 };
29249 28462
29250 #undef UNUSUAL_DEV 28463 #undef UNUSUAL_DEV
29251diff -urNp linux-2.6.38.3/drivers/usb/storage/usual-tables.c linux-2.6.38.3/drivers/usb/storage/usual-tables.c 28464diff -urNp linux-2.6.38.2/drivers/usb/storage/usual-tables.c linux-2.6.38.2/drivers/usb/storage/usual-tables.c
29252--- linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-03-14 21:20:32.000000000 -0400 28465--- linux-2.6.38.2/drivers/usb/storage/usual-tables.c 2011-03-14 21:20:32.000000000 -0400
29253+++ linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-04-17 15:57:32.000000000 -0400 28466+++ linux-2.6.38.2/drivers/usb/storage/usual-tables.c 2011-03-21 18:31:35.000000000 -0400
29254@@ -48,7 +48,7 @@ 28467@@ -48,7 +48,7 @@
29255 28468
29256 struct usb_device_id usb_storage_usb_ids[] = { 28469 struct usb_device_id usb_storage_usb_ids[] = {
@@ -29260,9 +28473,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/storage/usual-tables.c linux-2.6.38.3/driv
29260 }; 28473 };
29261 EXPORT_SYMBOL_GPL(usb_storage_usb_ids); 28474 EXPORT_SYMBOL_GPL(usb_storage_usb_ids);
29262 28475
29263diff -urNp linux-2.6.38.3/drivers/vhost/vhost.c linux-2.6.38.3/drivers/vhost/vhost.c 28476diff -urNp linux-2.6.38.2/drivers/vhost/vhost.c linux-2.6.38.2/drivers/vhost/vhost.c
29264--- linux-2.6.38.3/drivers/vhost/vhost.c 2011-03-14 21:20:32.000000000 -0400 28477--- linux-2.6.38.2/drivers/vhost/vhost.c 2011-03-14 21:20:32.000000000 -0400
29265+++ linux-2.6.38.3/drivers/vhost/vhost.c 2011-04-17 15:57:32.000000000 -0400 28478+++ linux-2.6.38.2/drivers/vhost/vhost.c 2011-03-21 18:31:35.000000000 -0400
29266@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu 28479@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu
29267 return get_user(vq->last_used_idx, &used->idx); 28480 return get_user(vq->last_used_idx, &used->idx);
29268 } 28481 }
@@ -29272,9 +28485,9 @@ diff -urNp linux-2.6.38.3/drivers/vhost/vhost.c linux-2.6.38.3/drivers/vhost/vho
29272 { 28485 {
29273 struct file *eventfp, *filep = NULL, 28486 struct file *eventfp, *filep = NULL,
29274 *pollstart = NULL, *pollstop = NULL; 28487 *pollstart = NULL, *pollstop = NULL;
29275diff -urNp linux-2.6.38.3/drivers/video/fbcmap.c linux-2.6.38.3/drivers/video/fbcmap.c 28488diff -urNp linux-2.6.38.2/drivers/video/fbcmap.c linux-2.6.38.2/drivers/video/fbcmap.c
29276--- linux-2.6.38.3/drivers/video/fbcmap.c 2011-03-14 21:20:32.000000000 -0400 28489--- linux-2.6.38.2/drivers/video/fbcmap.c 2011-03-14 21:20:32.000000000 -0400
29277+++ linux-2.6.38.3/drivers/video/fbcmap.c 2011-04-17 15:57:32.000000000 -0400 28490+++ linux-2.6.38.2/drivers/video/fbcmap.c 2011-03-21 18:31:35.000000000 -0400
29278@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user 28491@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user
29279 rc = -ENODEV; 28492 rc = -ENODEV;
29280 goto out; 28493 goto out;
@@ -29285,9 +28498,9 @@ diff -urNp linux-2.6.38.3/drivers/video/fbcmap.c linux-2.6.38.3/drivers/video/fb
29285 rc = -EINVAL; 28498 rc = -EINVAL;
29286 goto out1; 28499 goto out1;
29287 } 28500 }
29288diff -urNp linux-2.6.38.3/drivers/video/fbmem.c linux-2.6.38.3/drivers/video/fbmem.c 28501diff -urNp linux-2.6.38.2/drivers/video/fbmem.c linux-2.6.38.2/drivers/video/fbmem.c
29289--- linux-2.6.38.3/drivers/video/fbmem.c 2011-03-14 21:20:32.000000000 -0400 28502--- linux-2.6.38.2/drivers/video/fbmem.c 2011-03-14 21:20:32.000000000 -0400
29290+++ linux-2.6.38.3/drivers/video/fbmem.c 2011-04-17 15:57:32.000000000 -0400 28503+++ linux-2.6.38.2/drivers/video/fbmem.c 2011-03-21 18:31:35.000000000 -0400
29291@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in 28504@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in
29292 image->dx += image->width + 8; 28505 image->dx += image->width + 8;
29293 } 28506 }
@@ -29315,9 +28528,9 @@ diff -urNp linux-2.6.38.3/drivers/video/fbmem.c linux-2.6.38.3/drivers/video/fbm
29315 return -EINVAL; 28528 return -EINVAL;
29316 if (!registered_fb[con2fb.framebuffer]) 28529 if (!registered_fb[con2fb.framebuffer])
29317 request_module("fb%d", con2fb.framebuffer); 28530 request_module("fb%d", con2fb.framebuffer);
29318diff -urNp linux-2.6.38.3/drivers/video/fbmon.c linux-2.6.38.3/drivers/video/fbmon.c 28531diff -urNp linux-2.6.38.2/drivers/video/fbmon.c linux-2.6.38.2/drivers/video/fbmon.c
29319--- linux-2.6.38.3/drivers/video/fbmon.c 2011-03-14 21:20:32.000000000 -0400 28532--- linux-2.6.38.2/drivers/video/fbmon.c 2011-03-14 21:20:32.000000000 -0400
29320+++ linux-2.6.38.3/drivers/video/fbmon.c 2011-04-17 15:57:32.000000000 -0400 28533+++ linux-2.6.38.2/drivers/video/fbmon.c 2011-03-21 18:31:35.000000000 -0400
29321@@ -46,7 +46,7 @@ 28534@@ -46,7 +46,7 @@
29322 #ifdef DEBUG 28535 #ifdef DEBUG
29323 #define DPRINTK(fmt, args...) printk(fmt,## args) 28536 #define DPRINTK(fmt, args...) printk(fmt,## args)
@@ -29327,9 +28540,9 @@ diff -urNp linux-2.6.38.3/drivers/video/fbmon.c linux-2.6.38.3/drivers/video/fbm
29327 #endif 28540 #endif
29328 28541
29329 #define FBMON_FIX_HEADER 1 28542 #define FBMON_FIX_HEADER 1
29330diff -urNp linux-2.6.38.3/drivers/video/i810/i810_accel.c linux-2.6.38.3/drivers/video/i810/i810_accel.c 28543diff -urNp linux-2.6.38.2/drivers/video/i810/i810_accel.c linux-2.6.38.2/drivers/video/i810/i810_accel.c
29331--- linux-2.6.38.3/drivers/video/i810/i810_accel.c 2011-03-14 21:20:32.000000000 -0400 28544--- linux-2.6.38.2/drivers/video/i810/i810_accel.c 2011-03-14 21:20:32.000000000 -0400
29332+++ linux-2.6.38.3/drivers/video/i810/i810_accel.c 2011-04-17 15:57:32.000000000 -0400 28545+++ linux-2.6.38.2/drivers/video/i810/i810_accel.c 2011-03-21 18:31:35.000000000 -0400
29333@@ -73,6 +73,7 @@ static inline int wait_for_space(struct 28546@@ -73,6 +73,7 @@ static inline int wait_for_space(struct
29334 } 28547 }
29335 } 28548 }
@@ -29338,9 +28551,9 @@ diff -urNp linux-2.6.38.3/drivers/video/i810/i810_accel.c linux-2.6.38.3/drivers
29338 i810_report_error(mmio); 28551 i810_report_error(mmio);
29339 par->dev_flags |= LOCKUP; 28552 par->dev_flags |= LOCKUP;
29340 info->pixmap.scan_align = 1; 28553 info->pixmap.scan_align = 1;
29341diff -urNp linux-2.6.38.3/drivers/video/i810/i810_main.c linux-2.6.38.3/drivers/video/i810/i810_main.c 28554diff -urNp linux-2.6.38.2/drivers/video/i810/i810_main.c linux-2.6.38.2/drivers/video/i810/i810_main.c
29342--- linux-2.6.38.3/drivers/video/i810/i810_main.c 2011-03-14 21:20:32.000000000 -0400 28555--- linux-2.6.38.2/drivers/video/i810/i810_main.c 2011-03-14 21:20:32.000000000 -0400
29343+++ linux-2.6.38.3/drivers/video/i810/i810_main.c 2011-04-17 15:57:32.000000000 -0400 28556+++ linux-2.6.38.2/drivers/video/i810/i810_main.c 2011-03-21 18:31:35.000000000 -0400
29344@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t 28557@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t
29345 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, 28558 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
29346 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC, 28559 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC,
@@ -29350,9 +28563,9 @@ diff -urNp linux-2.6.38.3/drivers/video/i810/i810_main.c linux-2.6.38.3/drivers/
29350 }; 28563 };
29351 28564
29352 static struct pci_driver i810fb_driver = { 28565 static struct pci_driver i810fb_driver = {
29353diff -urNp linux-2.6.38.3/drivers/video/modedb.c linux-2.6.38.3/drivers/video/modedb.c 28566diff -urNp linux-2.6.38.2/drivers/video/modedb.c linux-2.6.38.2/drivers/video/modedb.c
29354--- linux-2.6.38.3/drivers/video/modedb.c 2011-03-14 21:20:32.000000000 -0400 28567--- linux-2.6.38.2/drivers/video/modedb.c 2011-03-14 21:20:32.000000000 -0400
29355+++ linux-2.6.38.3/drivers/video/modedb.c 2011-04-17 15:57:32.000000000 -0400 28568+++ linux-2.6.38.2/drivers/video/modedb.c 2011-03-21 18:31:35.000000000 -0400
29356@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[ 28569@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[
29357 28570
29358 /* 640x400 @ 70 Hz, 31.5 kHz hsync */ 28571 /* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -29669,9 +28882,9 @@ diff -urNp linux-2.6.38.3/drivers/video/modedb.c linux-2.6.38.3/drivers/video/mo
29669 }; 28882 };
29670 28883
29671 #ifdef CONFIG_FB_MODE_HELPERS 28884 #ifdef CONFIG_FB_MODE_HELPERS
29672diff -urNp linux-2.6.38.3/drivers/video/pxa3xx-gcu.c linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 28885diff -urNp linux-2.6.38.2/drivers/video/pxa3xx-gcu.c linux-2.6.38.2/drivers/video/pxa3xx-gcu.c
29673--- linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 2011-03-14 21:20:32.000000000 -0400 28886--- linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 2011-03-14 21:20:32.000000000 -0400
29674+++ linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 2011-04-17 15:57:32.000000000 -0400 28887+++ linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 2011-03-21 18:31:35.000000000 -0400
29675@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv { 28888@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv {
29676 dma_addr_t shared_phys; 28889 dma_addr_t shared_phys;
29677 struct resource *resource_mem; 28890 struct resource *resource_mem;
@@ -29681,9 +28894,9 @@ diff -urNp linux-2.6.38.3/drivers/video/pxa3xx-gcu.c linux-2.6.38.3/drivers/vide
29681 wait_queue_head_t wait_idle; 28894 wait_queue_head_t wait_idle;
29682 wait_queue_head_t wait_free; 28895 wait_queue_head_t wait_free;
29683 spinlock_t spinlock; 28896 spinlock_t spinlock;
29684diff -urNp linux-2.6.38.3/drivers/video/uvesafb.c linux-2.6.38.3/drivers/video/uvesafb.c 28897diff -urNp linux-2.6.38.2/drivers/video/uvesafb.c linux-2.6.38.2/drivers/video/uvesafb.c
29685--- linux-2.6.38.3/drivers/video/uvesafb.c 2011-03-14 21:20:32.000000000 -0400 28898--- linux-2.6.38.2/drivers/video/uvesafb.c 2011-03-14 21:20:32.000000000 -0400
29686+++ linux-2.6.38.3/drivers/video/uvesafb.c 2011-04-17 15:57:32.000000000 -0400 28899+++ linux-2.6.38.2/drivers/video/uvesafb.c 2011-03-21 18:31:35.000000000 -0400
29687@@ -19,6 +19,7 @@ 28900@@ -19,6 +19,7 @@
29688 #include <linux/io.h> 28901 #include <linux/io.h>
29689 #include <linux/mutex.h> 28902 #include <linux/mutex.h>
@@ -29759,9 +28972,9 @@ diff -urNp linux-2.6.38.3/drivers/video/uvesafb.c linux-2.6.38.3/drivers/video/u
29759 } 28972 }
29760 28973
29761 framebuffer_release(info); 28974 framebuffer_release(info);
29762diff -urNp linux-2.6.38.3/drivers/video/vesafb.c linux-2.6.38.3/drivers/video/vesafb.c 28975diff -urNp linux-2.6.38.2/drivers/video/vesafb.c linux-2.6.38.2/drivers/video/vesafb.c
29763--- linux-2.6.38.3/drivers/video/vesafb.c 2011-03-14 21:20:32.000000000 -0400 28976--- linux-2.6.38.2/drivers/video/vesafb.c 2011-03-14 21:20:32.000000000 -0400
29764+++ linux-2.6.38.3/drivers/video/vesafb.c 2011-04-17 15:57:32.000000000 -0400 28977+++ linux-2.6.38.2/drivers/video/vesafb.c 2011-03-21 18:31:35.000000000 -0400
29765@@ -9,6 +9,7 @@ 28978@@ -9,6 +9,7 @@
29766 */ 28979 */
29767 28980
@@ -29865,9 +29078,9 @@ diff -urNp linux-2.6.38.3/drivers/video/vesafb.c linux-2.6.38.3/drivers/video/ve
29865 if (info->screen_base) 29078 if (info->screen_base)
29866 iounmap(info->screen_base); 29079 iounmap(info->screen_base);
29867 framebuffer_release(info); 29080 framebuffer_release(info);
29868diff -urNp linux-2.6.38.3/fs/9p/vfs_inode.c linux-2.6.38.3/fs/9p/vfs_inode.c 29081diff -urNp linux-2.6.38.2/fs/9p/vfs_inode.c linux-2.6.38.2/fs/9p/vfs_inode.c
29869--- linux-2.6.38.3/fs/9p/vfs_inode.c 2011-03-14 21:20:32.000000000 -0400 29082--- linux-2.6.38.2/fs/9p/vfs_inode.c 2011-03-14 21:20:32.000000000 -0400
29870+++ linux-2.6.38.3/fs/9p/vfs_inode.c 2011-04-17 15:57:32.000000000 -0400 29083+++ linux-2.6.38.2/fs/9p/vfs_inode.c 2011-03-21 18:31:35.000000000 -0400
29871@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct 29084@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct
29872 void 29085 void
29873 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) 29086 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -29877,9 +29090,9 @@ diff -urNp linux-2.6.38.3/fs/9p/vfs_inode.c linux-2.6.38.3/fs/9p/vfs_inode.c
29877 29090
29878 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, 29091 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
29879 IS_ERR(s) ? "<error>" : s); 29092 IS_ERR(s) ? "<error>" : s);
29880diff -urNp linux-2.6.38.3/fs/aio.c linux-2.6.38.3/fs/aio.c 29093diff -urNp linux-2.6.38.2/fs/aio.c linux-2.6.38.2/fs/aio.c
29881--- linux-2.6.38.3/fs/aio.c 2011-04-18 17:27:16.000000000 -0400 29094--- linux-2.6.38.2/fs/aio.c 2011-03-28 17:42:40.000000000 -0400
29882+++ linux-2.6.38.3/fs/aio.c 2011-04-17 15:57:32.000000000 -0400 29095+++ linux-2.6.38.2/fs/aio.c 2011-03-28 17:42:53.000000000 -0400
29883@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx 29096@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx
29884 size += sizeof(struct io_event) * nr_events; 29097 size += sizeof(struct io_event) * nr_events;
29885 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; 29098 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
@@ -29889,9 +29102,9 @@ diff -urNp linux-2.6.38.3/fs/aio.c linux-2.6.38.3/fs/aio.c
29889 return -EINVAL; 29102 return -EINVAL;
29890 29103
29891 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); 29104 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
29892diff -urNp linux-2.6.38.3/fs/attr.c linux-2.6.38.3/fs/attr.c 29105diff -urNp linux-2.6.38.2/fs/attr.c linux-2.6.38.2/fs/attr.c
29893--- linux-2.6.38.3/fs/attr.c 2011-03-14 21:20:32.000000000 -0400 29106--- linux-2.6.38.2/fs/attr.c 2011-03-14 21:20:32.000000000 -0400
29894+++ linux-2.6.38.3/fs/attr.c 2011-04-17 15:57:32.000000000 -0400 29107+++ linux-2.6.38.2/fs/attr.c 2011-03-21 18:31:35.000000000 -0400
29895@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode 29108@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode
29896 unsigned long limit; 29109 unsigned long limit;
29897 29110
@@ -29900,9 +29113,9 @@ diff -urNp linux-2.6.38.3/fs/attr.c linux-2.6.38.3/fs/attr.c
29900 if (limit != RLIM_INFINITY && offset > limit) 29113 if (limit != RLIM_INFINITY && offset > limit)
29901 goto out_sig; 29114 goto out_sig;
29902 if (offset > inode->i_sb->s_maxbytes) 29115 if (offset > inode->i_sb->s_maxbytes)
29903diff -urNp linux-2.6.38.3/fs/befs/linuxvfs.c linux-2.6.38.3/fs/befs/linuxvfs.c 29116diff -urNp linux-2.6.38.2/fs/befs/linuxvfs.c linux-2.6.38.2/fs/befs/linuxvfs.c
29904--- linux-2.6.38.3/fs/befs/linuxvfs.c 2011-03-14 21:20:32.000000000 -0400 29117--- linux-2.6.38.2/fs/befs/linuxvfs.c 2011-03-14 21:20:32.000000000 -0400
29905+++ linux-2.6.38.3/fs/befs/linuxvfs.c 2011-04-17 15:57:32.000000000 -0400 29118+++ linux-2.6.38.2/fs/befs/linuxvfs.c 2011-03-21 18:31:35.000000000 -0400
29906@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry 29119@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry
29907 { 29120 {
29908 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode); 29121 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
@@ -29912,9 +29125,9 @@ diff -urNp linux-2.6.38.3/fs/befs/linuxvfs.c linux-2.6.38.3/fs/befs/linuxvfs.c
29912 if (!IS_ERR(link)) 29125 if (!IS_ERR(link))
29913 kfree(link); 29126 kfree(link);
29914 } 29127 }
29915diff -urNp linux-2.6.38.3/fs/binfmt_aout.c linux-2.6.38.3/fs/binfmt_aout.c 29128diff -urNp linux-2.6.38.2/fs/binfmt_aout.c linux-2.6.38.2/fs/binfmt_aout.c
29916--- linux-2.6.38.3/fs/binfmt_aout.c 2011-03-14 21:20:32.000000000 -0400 29129--- linux-2.6.38.2/fs/binfmt_aout.c 2011-03-14 21:20:32.000000000 -0400
29917+++ linux-2.6.38.3/fs/binfmt_aout.c 2011-04-17 15:57:32.000000000 -0400 29130+++ linux-2.6.38.2/fs/binfmt_aout.c 2011-03-21 18:31:35.000000000 -0400
29918@@ -16,6 +16,7 @@ 29131@@ -16,6 +16,7 @@
29919 #include <linux/string.h> 29132 #include <linux/string.h>
29920 #include <linux/fs.h> 29133 #include <linux/fs.h>
@@ -29991,9 +29204,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_aout.c linux-2.6.38.3/fs/binfmt_aout.c
29991 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE, 29204 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
29992 fd_offset + ex.a_text); 29205 fd_offset + ex.a_text);
29993 up_write(&current->mm->mmap_sem); 29206 up_write(&current->mm->mmap_sem);
29994diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c 29207diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29995--- linux-2.6.38.3/fs/binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400 29208--- linux-2.6.38.2/fs/binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400
29996+++ linux-2.6.38.3/fs/binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400 29209+++ linux-2.6.38.2/fs/binfmt_elf.c 2011-03-21 18:31:35.000000000 -0400
29997@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump 29210@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump
29998 #define elf_core_dump NULL 29211 #define elf_core_dump NULL
29999 #endif 29212 #endif
@@ -30035,7 +29248,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30035 return 0; 29248 return 0;
30036 } 29249 }
30037 29250
30038@@ -148,12 +159,13 @@ create_elf_tables(struct linux_binprm *b 29251@@ -148,7 +159,7 @@ create_elf_tables(struct linux_binprm *b
30039 elf_addr_t __user *u_rand_bytes; 29252 elf_addr_t __user *u_rand_bytes;
30040 const char *k_platform = ELF_PLATFORM; 29253 const char *k_platform = ELF_PLATFORM;
30041 const char *k_base_platform = ELF_BASE_PLATFORM; 29254 const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -30044,13 +29257,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30044 int items; 29257 int items;
30045 elf_addr_t *elf_info; 29258 elf_addr_t *elf_info;
30046 int ei_index = 0; 29259 int ei_index = 0;
30047 const struct cred *cred = current_cred(); 29260@@ -195,8 +206,12 @@ create_elf_tables(struct linux_binprm *b
30048 struct vm_area_struct *vma;
30049+ unsigned long saved_auxv[AT_VECTOR_SIZE];
30050
30051 /*
30052 * In some cases (e.g. Hyper-Threading), we want to avoid L1
30053@@ -195,8 +207,12 @@ create_elf_tables(struct linux_binprm *b
30054 * Generate 16 random bytes for userspace PRNG seeding. 29261 * Generate 16 random bytes for userspace PRNG seeding.
30055 */ 29262 */
30056 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); 29263 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
@@ -30065,20 +29272,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30065 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes))) 29272 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
30066 return -EFAULT; 29273 return -EFAULT;
30067 29274
30068@@ -308,9 +324,11 @@ create_elf_tables(struct linux_binprm *b 29275@@ -381,10 +396,10 @@ static unsigned long load_elf_interp(str
30069 return -EFAULT;
30070 current->mm->env_end = p;
30071
30072+ memcpy(saved_auxv, elf_info, ei_index * sizeof(elf_addr_t));
30073+
30074 /* Put the elf_info on the stack in the right place. */
30075 sp = (elf_addr_t __user *)envp + 1;
30076- if (copy_to_user(sp, elf_info, ei_index * sizeof(elf_addr_t)))
30077+ if (copy_to_user(sp, saved_auxv, ei_index * sizeof(elf_addr_t)))
30078 return -EFAULT;
30079 return 0;
30080 }
30081@@ -381,10 +399,10 @@ static unsigned long load_elf_interp(str
30082 { 29276 {
30083 struct elf_phdr *elf_phdata; 29277 struct elf_phdr *elf_phdata;
30084 struct elf_phdr *eppnt; 29278 struct elf_phdr *eppnt;
@@ -30091,7 +29285,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30091 unsigned long total_size; 29285 unsigned long total_size;
30092 int retval, i, size; 29286 int retval, i, size;
30093 29287
30094@@ -430,6 +448,11 @@ static unsigned long load_elf_interp(str 29288@@ -430,6 +445,11 @@ static unsigned long load_elf_interp(str
30095 goto out_close; 29289 goto out_close;
30096 } 29290 }
30097 29291
@@ -30103,7 +29297,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30103 eppnt = elf_phdata; 29297 eppnt = elf_phdata;
30104 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { 29298 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
30105 if (eppnt->p_type == PT_LOAD) { 29299 if (eppnt->p_type == PT_LOAD) {
30106@@ -473,8 +496,8 @@ static unsigned long load_elf_interp(str 29300@@ -473,8 +493,8 @@ static unsigned long load_elf_interp(str
30107 k = load_addr + eppnt->p_vaddr; 29301 k = load_addr + eppnt->p_vaddr;
30108 if (BAD_ADDR(k) || 29302 if (BAD_ADDR(k) ||
30109 eppnt->p_filesz > eppnt->p_memsz || 29303 eppnt->p_filesz > eppnt->p_memsz ||
@@ -30114,7 +29308,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30114 error = -ENOMEM; 29308 error = -ENOMEM;
30115 goto out_close; 29309 goto out_close;
30116 } 29310 }
30117@@ -528,6 +551,193 @@ out: 29311@@ -528,6 +548,177 @@ out:
30118 return error; 29312 return error;
30119 } 29313 }
30120 29314
@@ -30254,7 +29448,6 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30254+ 29448+
30255+#ifdef CONFIG_PAX_PT_PAX_FLAGS 29449+#ifdef CONFIG_PAX_PT_PAX_FLAGS
30256+ unsigned long i; 29450+ unsigned long i;
30257+ int found_flags = 0;
30258+#endif 29451+#endif
30259+ 29452+
30260+#ifdef CONFIG_PAX_EI_PAX 29453+#ifdef CONFIG_PAX_EI_PAX
@@ -30278,25 +29471,10 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30278+#endif 29471+#endif
30279+ 29472+
30280+ pax_flags = pax_parse_hardmode(&elf_phdata[i]); 29473+ pax_flags = pax_parse_hardmode(&elf_phdata[i]);
30281+ found_flags = 1;
30282+ break; 29474+ break;
30283+ } 29475+ }
30284+#endif 29476+#endif
30285+ 29477+
30286+#if !defined(CONFIG_PAX_EI_PAX) && defined(CONFIG_PAX_PT_PAX_FLAGS)
30287+ if (found_flags == 0) {
30288+ struct elf_phdr phdr;
30289+ memset(&phdr, 0, sizeof(phdr));
30290+ phdr.p_flags = PF_NOEMUTRAMP;
30291+#ifdef CONFIG_PAX_SOFTMODE
30292+ if (pax_softmode)
30293+ pax_flags = pax_parse_softmode(&phdr);
30294+ else
30295+#endif
30296+ pax_flags = pax_parse_hardmode(&phdr);
30297+ }
30298+#endif
30299+
30300+ if (0 > pax_check_flags(&pax_flags)) 29478+ if (0 > pax_check_flags(&pax_flags))
30301+ return -EINVAL; 29479+ return -EINVAL;
30302+ 29480+
@@ -30308,7 +29486,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30308 /* 29486 /*
30309 * These are the functions used to load ELF style executables and shared 29487 * These are the functions used to load ELF style executables and shared
30310 * libraries. There is no binary dependent code anywhere else. 29488 * libraries. There is no binary dependent code anywhere else.
30311@@ -544,6 +754,11 @@ static unsigned long randomize_stack_top 29489@@ -544,6 +735,11 @@ static unsigned long randomize_stack_top
30312 { 29490 {
30313 unsigned int random_variable = 0; 29491 unsigned int random_variable = 0;
30314 29492
@@ -30320,7 +29498,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30320 if ((current->flags & PF_RANDOMIZE) && 29498 if ((current->flags & PF_RANDOMIZE) &&
30321 !(current->personality & ADDR_NO_RANDOMIZE)) { 29499 !(current->personality & ADDR_NO_RANDOMIZE)) {
30322 random_variable = get_random_int() & STACK_RND_MASK; 29500 random_variable = get_random_int() & STACK_RND_MASK;
30323@@ -562,7 +777,7 @@ static int load_elf_binary(struct linux_ 29501@@ -562,7 +758,7 @@ static int load_elf_binary(struct linux_
30324 unsigned long load_addr = 0, load_bias = 0; 29502 unsigned long load_addr = 0, load_bias = 0;
30325 int load_addr_set = 0; 29503 int load_addr_set = 0;
30326 char * elf_interpreter = NULL; 29504 char * elf_interpreter = NULL;
@@ -30329,7 +29507,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30329 struct elf_phdr *elf_ppnt, *elf_phdata; 29507 struct elf_phdr *elf_ppnt, *elf_phdata;
30330 unsigned long elf_bss, elf_brk; 29508 unsigned long elf_bss, elf_brk;
30331 int retval, i; 29509 int retval, i;
30332@@ -572,11 +787,11 @@ static int load_elf_binary(struct linux_ 29510@@ -572,11 +768,11 @@ static int load_elf_binary(struct linux_
30333 unsigned long start_code, end_code, start_data, end_data; 29511 unsigned long start_code, end_code, start_data, end_data;
30334 unsigned long reloc_func_desc = 0; 29512 unsigned long reloc_func_desc = 0;
30335 int executable_stack = EXSTACK_DEFAULT; 29513 int executable_stack = EXSTACK_DEFAULT;
@@ -30342,7 +29520,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30342 29520
30343 loc = kmalloc(sizeof(*loc), GFP_KERNEL); 29521 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
30344 if (!loc) { 29522 if (!loc) {
30345@@ -714,11 +929,80 @@ static int load_elf_binary(struct linux_ 29523@@ -714,11 +910,80 @@ static int load_elf_binary(struct linux_
30346 29524
30347 /* OK, This is the point of no return */ 29525 /* OK, This is the point of no return */
30348 current->flags &= ~PF_FORKNOEXEC; 29526 current->flags &= ~PF_FORKNOEXEC;
@@ -30424,7 +29602,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30424 if (elf_read_implies_exec(loc->elf_ex, executable_stack)) 29602 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
30425 current->personality |= READ_IMPLIES_EXEC; 29603 current->personality |= READ_IMPLIES_EXEC;
30426 29604
30427@@ -800,6 +1084,20 @@ static int load_elf_binary(struct linux_ 29605@@ -800,6 +1065,20 @@ static int load_elf_binary(struct linux_
30428 #else 29606 #else
30429 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 29607 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
30430 #endif 29608 #endif
@@ -30445,7 +29623,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30445 } 29623 }
30446 29624
30447 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, 29625 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
30448@@ -832,9 +1130,9 @@ static int load_elf_binary(struct linux_ 29626@@ -832,9 +1111,9 @@ static int load_elf_binary(struct linux_
30449 * allowed task size. Note that p_filesz must always be 29627 * allowed task size. Note that p_filesz must always be
30450 * <= p_memsz so it is only necessary to check p_memsz. 29628 * <= p_memsz so it is only necessary to check p_memsz.
30451 */ 29629 */
@@ -30458,7 +29636,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30458 /* set_brk can never work. Avoid overflows. */ 29636 /* set_brk can never work. Avoid overflows. */
30459 send_sig(SIGKILL, current, 0); 29637 send_sig(SIGKILL, current, 0);
30460 retval = -EINVAL; 29638 retval = -EINVAL;
30461@@ -862,6 +1160,11 @@ static int load_elf_binary(struct linux_ 29639@@ -862,6 +1141,11 @@ static int load_elf_binary(struct linux_
30462 start_data += load_bias; 29640 start_data += load_bias;
30463 end_data += load_bias; 29641 end_data += load_bias;
30464 29642
@@ -30470,7 +29648,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30470 /* Calling set_brk effectively mmaps the pages that we need 29648 /* Calling set_brk effectively mmaps the pages that we need
30471 * for the bss and break sections. We must do this before 29649 * for the bss and break sections. We must do this before
30472 * mapping in the interpreter, to make sure it doesn't wind 29650 * mapping in the interpreter, to make sure it doesn't wind
30473@@ -873,9 +1176,11 @@ static int load_elf_binary(struct linux_ 29651@@ -873,9 +1157,11 @@ static int load_elf_binary(struct linux_
30474 goto out_free_dentry; 29652 goto out_free_dentry;
30475 } 29653 }
30476 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { 29654 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -30485,7 +29663,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30485 } 29663 }
30486 29664
30487 if (elf_interpreter) { 29665 if (elf_interpreter) {
30488@@ -1086,7 +1391,7 @@ out: 29666@@ -1086,7 +1372,7 @@ out:
30489 * Decide what to dump of a segment, part, all or none. 29667 * Decide what to dump of a segment, part, all or none.
30490 */ 29668 */
30491 static unsigned long vma_dump_size(struct vm_area_struct *vma, 29669 static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -30494,7 +29672,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30494 { 29672 {
30495 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) 29673 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
30496 29674
30497@@ -1120,7 +1425,7 @@ static unsigned long vma_dump_size(struc 29675@@ -1120,7 +1406,7 @@ static unsigned long vma_dump_size(struc
30498 if (vma->vm_file == NULL) 29676 if (vma->vm_file == NULL)
30499 return 0; 29677 return 0;
30500 29678
@@ -30503,7 +29681,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30503 goto whole; 29681 goto whole;
30504 29682
30505 /* 29683 /*
30506@@ -1342,9 +1647,9 @@ static void fill_auxv_note(struct memelf 29684@@ -1342,9 +1628,9 @@ static void fill_auxv_note(struct memelf
30507 { 29685 {
30508 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv; 29686 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
30509 int i = 0; 29687 int i = 0;
@@ -30515,7 +29693,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30515 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv); 29693 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
30516 } 29694 }
30517 29695
30518@@ -1850,14 +2155,14 @@ static void fill_extnum_info(struct elfh 29696@@ -1850,14 +2136,14 @@ static void fill_extnum_info(struct elfh
30519 } 29697 }
30520 29698
30521 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma, 29699 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -30532,7 +29710,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30532 return size; 29710 return size;
30533 } 29711 }
30534 29712
30535@@ -1951,7 +2256,7 @@ static int elf_core_dump(struct coredump 29713@@ -1951,7 +2237,7 @@ static int elf_core_dump(struct coredump
30536 29714
30537 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE); 29715 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
30538 29716
@@ -30541,7 +29719,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30541 offset += elf_core_extra_data_size(); 29719 offset += elf_core_extra_data_size();
30542 e_shoff = offset; 29720 e_shoff = offset;
30543 29721
30544@@ -1965,10 +2270,12 @@ static int elf_core_dump(struct coredump 29722@@ -1965,10 +2251,12 @@ static int elf_core_dump(struct coredump
30545 offset = dataoff; 29723 offset = dataoff;
30546 29724
30547 size += sizeof(*elf); 29725 size += sizeof(*elf);
@@ -30554,7 +29732,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30554 if (size > cprm->limit 29732 if (size > cprm->limit
30555 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note))) 29733 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
30556 goto end_coredump; 29734 goto end_coredump;
30557@@ -1982,7 +2289,7 @@ static int elf_core_dump(struct coredump 29735@@ -1982,7 +2270,7 @@ static int elf_core_dump(struct coredump
30558 phdr.p_offset = offset; 29736 phdr.p_offset = offset;
30559 phdr.p_vaddr = vma->vm_start; 29737 phdr.p_vaddr = vma->vm_start;
30560 phdr.p_paddr = 0; 29738 phdr.p_paddr = 0;
@@ -30563,7 +29741,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30563 phdr.p_memsz = vma->vm_end - vma->vm_start; 29741 phdr.p_memsz = vma->vm_end - vma->vm_start;
30564 offset += phdr.p_filesz; 29742 offset += phdr.p_filesz;
30565 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; 29743 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
30566@@ -1993,6 +2300,7 @@ static int elf_core_dump(struct coredump 29744@@ -1993,6 +2281,7 @@ static int elf_core_dump(struct coredump
30567 phdr.p_align = ELF_EXEC_PAGESIZE; 29745 phdr.p_align = ELF_EXEC_PAGESIZE;
30568 29746
30569 size += sizeof(phdr); 29747 size += sizeof(phdr);
@@ -30571,7 +29749,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30571 if (size > cprm->limit 29749 if (size > cprm->limit
30572 || !dump_write(cprm->file, &phdr, sizeof(phdr))) 29750 || !dump_write(cprm->file, &phdr, sizeof(phdr)))
30573 goto end_coredump; 29751 goto end_coredump;
30574@@ -2017,7 +2325,7 @@ static int elf_core_dump(struct coredump 29752@@ -2017,7 +2306,7 @@ static int elf_core_dump(struct coredump
30575 unsigned long addr; 29753 unsigned long addr;
30576 unsigned long end; 29754 unsigned long end;
30577 29755
@@ -30580,7 +29758,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30580 29758
30581 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { 29759 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
30582 struct page *page; 29760 struct page *page;
30583@@ -2026,6 +2334,7 @@ static int elf_core_dump(struct coredump 29761@@ -2026,6 +2315,7 @@ static int elf_core_dump(struct coredump
30584 page = get_dump_page(addr); 29762 page = get_dump_page(addr);
30585 if (page) { 29763 if (page) {
30586 void *kaddr = kmap(page); 29764 void *kaddr = kmap(page);
@@ -30588,7 +29766,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30588 stop = ((size += PAGE_SIZE) > cprm->limit) || 29766 stop = ((size += PAGE_SIZE) > cprm->limit) ||
30589 !dump_write(cprm->file, kaddr, 29767 !dump_write(cprm->file, kaddr,
30590 PAGE_SIZE); 29768 PAGE_SIZE);
30591@@ -2043,6 +2352,7 @@ static int elf_core_dump(struct coredump 29769@@ -2043,6 +2333,7 @@ static int elf_core_dump(struct coredump
30592 29770
30593 if (e_phnum == PN_XNUM) { 29771 if (e_phnum == PN_XNUM) {
30594 size += sizeof(*shdr4extnum); 29772 size += sizeof(*shdr4extnum);
@@ -30596,7 +29774,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30596 if (size > cprm->limit 29774 if (size > cprm->limit
30597 || !dump_write(cprm->file, shdr4extnum, 29775 || !dump_write(cprm->file, shdr4extnum,
30598 sizeof(*shdr4extnum))) 29776 sizeof(*shdr4extnum)))
30599@@ -2063,6 +2373,97 @@ out: 29777@@ -2063,6 +2354,97 @@ out:
30600 29778
30601 #endif /* CONFIG_ELF_CORE */ 29779 #endif /* CONFIG_ELF_CORE */
30602 29780
@@ -30694,9 +29872,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30694 static int __init init_elf_binfmt(void) 29872 static int __init init_elf_binfmt(void)
30695 { 29873 {
30696 return register_binfmt(&elf_format); 29874 return register_binfmt(&elf_format);
30697diff -urNp linux-2.6.38.3/fs/binfmt_flat.c linux-2.6.38.3/fs/binfmt_flat.c 29875diff -urNp linux-2.6.38.2/fs/binfmt_flat.c linux-2.6.38.2/fs/binfmt_flat.c
30698--- linux-2.6.38.3/fs/binfmt_flat.c 2011-03-14 21:20:32.000000000 -0400 29876--- linux-2.6.38.2/fs/binfmt_flat.c 2011-03-14 21:20:32.000000000 -0400
30699+++ linux-2.6.38.3/fs/binfmt_flat.c 2011-04-17 15:57:32.000000000 -0400 29877+++ linux-2.6.38.2/fs/binfmt_flat.c 2011-03-21 18:31:35.000000000 -0400
30700@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b 29878@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b
30701 realdatastart = (unsigned long) -ENOMEM; 29879 realdatastart = (unsigned long) -ENOMEM;
30702 printk("Unable to allocate RAM for process data, errno %d\n", 29880 printk("Unable to allocate RAM for process data, errno %d\n",
@@ -30729,9 +29907,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_flat.c linux-2.6.38.3/fs/binfmt_flat.c
30729 ret = result; 29907 ret = result;
30730 goto err; 29908 goto err;
30731 } 29909 }
30732diff -urNp linux-2.6.38.3/fs/binfmt_misc.c linux-2.6.38.3/fs/binfmt_misc.c 29910diff -urNp linux-2.6.38.2/fs/binfmt_misc.c linux-2.6.38.2/fs/binfmt_misc.c
30733--- linux-2.6.38.3/fs/binfmt_misc.c 2011-03-14 21:20:32.000000000 -0400 29911--- linux-2.6.38.2/fs/binfmt_misc.c 2011-03-14 21:20:32.000000000 -0400
30734+++ linux-2.6.38.3/fs/binfmt_misc.c 2011-04-17 15:57:32.000000000 -0400 29912+++ linux-2.6.38.2/fs/binfmt_misc.c 2011-03-21 18:31:35.000000000 -0400
30735@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl 29913@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl
30736 static struct tree_descr bm_files[] = { 29914 static struct tree_descr bm_files[] = {
30737 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO}, 29915 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO},
@@ -30741,9 +29919,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_misc.c linux-2.6.38.3/fs/binfmt_misc.c
30741 }; 29919 };
30742 int err = simple_fill_super(sb, 0x42494e4d, bm_files); 29920 int err = simple_fill_super(sb, 0x42494e4d, bm_files);
30743 if (!err) 29921 if (!err)
30744diff -urNp linux-2.6.38.3/fs/bio.c linux-2.6.38.3/fs/bio.c 29922diff -urNp linux-2.6.38.2/fs/bio.c linux-2.6.38.2/fs/bio.c
30745--- linux-2.6.38.3/fs/bio.c 2011-03-14 21:20:32.000000000 -0400 29923--- linux-2.6.38.2/fs/bio.c 2011-03-14 21:20:32.000000000 -0400
30746+++ linux-2.6.38.3/fs/bio.c 2011-04-17 15:57:32.000000000 -0400 29924+++ linux-2.6.38.2/fs/bio.c 2011-03-21 18:31:35.000000000 -0400
30747@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b 29925@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b
30748 const int read = bio_data_dir(bio) == READ; 29926 const int read = bio_data_dir(bio) == READ;
30749 struct bio_map_data *bmd = bio->bi_private; 29927 struct bio_map_data *bmd = bio->bi_private;
@@ -30753,9 +29931,9 @@ diff -urNp linux-2.6.38.3/fs/bio.c linux-2.6.38.3/fs/bio.c
30753 29931
30754 __bio_for_each_segment(bvec, bio, i, 0) { 29932 __bio_for_each_segment(bvec, bio, i, 0) {
30755 char *addr = page_address(bvec->bv_page); 29933 char *addr = page_address(bvec->bv_page);
30756diff -urNp linux-2.6.38.3/fs/block_dev.c linux-2.6.38.3/fs/block_dev.c 29934diff -urNp linux-2.6.38.2/fs/block_dev.c linux-2.6.38.2/fs/block_dev.c
30757--- linux-2.6.38.3/fs/block_dev.c 2011-03-14 21:20:32.000000000 -0400 29935--- linux-2.6.38.2/fs/block_dev.c 2011-03-14 21:20:32.000000000 -0400
30758+++ linux-2.6.38.3/fs/block_dev.c 2011-04-17 15:57:32.000000000 -0400 29936+++ linux-2.6.38.2/fs/block_dev.c 2011-03-21 18:31:35.000000000 -0400
30759@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de 29937@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de
30760 else if (bdev->bd_contains == bdev) 29938 else if (bdev->bd_contains == bdev)
30761 return true; /* is a whole device which isn't held */ 29939 return true; /* is a whole device which isn't held */
@@ -30765,9 +29943,9 @@ diff -urNp linux-2.6.38.3/fs/block_dev.c linux-2.6.38.3/fs/block_dev.c
30765 return true; /* is a partition of a device that is being partitioned */ 29943 return true; /* is a partition of a device that is being partitioned */
30766 else if (whole->bd_holder != NULL) 29944 else if (whole->bd_holder != NULL)
30767 return false; /* is a partition of a held device */ 29945 return false; /* is a partition of a held device */
30768diff -urNp linux-2.6.38.3/fs/btrfs/ctree.c linux-2.6.38.3/fs/btrfs/ctree.c 29946diff -urNp linux-2.6.38.2/fs/btrfs/ctree.c linux-2.6.38.2/fs/btrfs/ctree.c
30769--- linux-2.6.38.3/fs/btrfs/ctree.c 2011-03-14 21:20:32.000000000 -0400 29947--- linux-2.6.38.2/fs/btrfs/ctree.c 2011-03-14 21:20:32.000000000 -0400
30770+++ linux-2.6.38.3/fs/btrfs/ctree.c 2011-04-17 15:57:32.000000000 -0400 29948+++ linux-2.6.38.2/fs/btrfs/ctree.c 2011-03-21 18:31:35.000000000 -0400
30771@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st 29949@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st
30772 free_extent_buffer(buf); 29950 free_extent_buffer(buf);
30773 add_root_to_dirty_list(root); 29951 add_root_to_dirty_list(root);
@@ -30792,9 +29970,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/ctree.c linux-2.6.38.3/fs/btrfs/ctree.c
30792 btrfs_cpu_key_to_disk(&disk_key, cpu_key); 29970 btrfs_cpu_key_to_disk(&disk_key, cpu_key);
30793 ret = fixup_low_keys(trans, root, path, &disk_key, 1); 29971 ret = fixup_low_keys(trans, root, path, &disk_key, 1);
30794 } 29972 }
30795diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c 29973diff -urNp linux-2.6.38.2/fs/btrfs/disk-io.c linux-2.6.38.2/fs/btrfs/disk-io.c
30796--- linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-18 17:27:18.000000000 -0400 29974--- linux-2.6.38.2/fs/btrfs/disk-io.c 2011-03-14 21:20:32.000000000 -0400
30797+++ linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-17 16:53:48.000000000 -0400 29975+++ linux-2.6.38.2/fs/btrfs/disk-io.c 2011-03-21 18:31:35.000000000 -0400
30798@@ -41,7 +41,7 @@ 29976@@ -41,7 +41,7 @@
30799 #include "tree-log.h" 29977 #include "tree-log.h"
30800 #include "free-space-cache.h" 29978 #include "free-space-cache.h"
@@ -30804,7 +29982,7 @@ diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c
30804 static void end_workqueue_fn(struct btrfs_work *work); 29982 static void end_workqueue_fn(struct btrfs_work *work);
30805 static void free_fs_root(struct btrfs_root *root); 29983 static void free_fs_root(struct btrfs_root *root);
30806 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info, 29984 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info,
30807@@ -3030,7 +3030,7 @@ static int btrfs_cleanup_transaction(str 29985@@ -3028,7 +3028,7 @@ static int btrfs_cleanup_transaction(str
30808 return 0; 29986 return 0;
30809 } 29987 }
30810 29988
@@ -30813,9 +29991,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c
30813 .write_cache_pages_lock_hook = btree_lock_page_hook, 29991 .write_cache_pages_lock_hook = btree_lock_page_hook,
30814 .readpage_end_io_hook = btree_readpage_end_io_hook, 29992 .readpage_end_io_hook = btree_readpage_end_io_hook,
30815 .submit_bio_hook = btree_submit_bio_hook, 29993 .submit_bio_hook = btree_submit_bio_hook,
30816diff -urNp linux-2.6.38.3/fs/btrfs/extent_io.h linux-2.6.38.3/fs/btrfs/extent_io.h 29994diff -urNp linux-2.6.38.2/fs/btrfs/extent_io.h linux-2.6.38.2/fs/btrfs/extent_io.h
30817--- linux-2.6.38.3/fs/btrfs/extent_io.h 2011-03-14 21:20:32.000000000 -0400 29995--- linux-2.6.38.2/fs/btrfs/extent_io.h 2011-03-14 21:20:32.000000000 -0400
30818+++ linux-2.6.38.3/fs/btrfs/extent_io.h 2011-04-17 15:57:32.000000000 -0400 29996+++ linux-2.6.38.2/fs/btrfs/extent_io.h 2011-03-21 18:31:35.000000000 -0400
30819@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s 29997@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s
30820 struct bio *bio, int mirror_num, 29998 struct bio *bio, int mirror_num,
30821 unsigned long bio_flags, u64 bio_offset); 29999 unsigned long bio_flags, u64 bio_offset);
@@ -30876,9 +30054,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/extent_io.h linux-2.6.38.3/fs/btrfs/extent_io
30876 }; 30054 };
30877 30055
30878 struct extent_state { 30056 struct extent_state {
30879diff -urNp linux-2.6.38.3/fs/btrfs/free-space-cache.c linux-2.6.38.3/fs/btrfs/free-space-cache.c 30057diff -urNp linux-2.6.38.2/fs/btrfs/free-space-cache.c linux-2.6.38.2/fs/btrfs/free-space-cache.c
30880--- linux-2.6.38.3/fs/btrfs/free-space-cache.c 2011-03-14 21:20:32.000000000 -0400 30058--- linux-2.6.38.2/fs/btrfs/free-space-cache.c 2011-03-14 21:20:32.000000000 -0400
30881+++ linux-2.6.38.3/fs/btrfs/free-space-cache.c 2011-04-17 15:57:32.000000000 -0400 30059+++ linux-2.6.38.2/fs/btrfs/free-space-cache.c 2011-03-21 18:31:35.000000000 -0400
30882@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf 30060@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf
30883 30061
30884 while(1) { 30062 while(1) {
@@ -30897,9 +30075,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/free-space-cache.c linux-2.6.38.3/fs/btrfs/fr
30897 30075
30898 if (entry->bitmap && entry->bytes > bytes + empty_size) { 30076 if (entry->bitmap && entry->bytes > bytes + empty_size) {
30899 ret = btrfs_bitmap_cluster(block_group, entry, cluster, 30077 ret = btrfs_bitmap_cluster(block_group, entry, cluster,
30900diff -urNp linux-2.6.38.3/fs/btrfs/inode.c linux-2.6.38.3/fs/btrfs/inode.c 30078diff -urNp linux-2.6.38.2/fs/btrfs/inode.c linux-2.6.38.2/fs/btrfs/inode.c
30901--- linux-2.6.38.3/fs/btrfs/inode.c 2011-03-14 21:20:32.000000000 -0400 30079--- linux-2.6.38.2/fs/btrfs/inode.c 2011-03-14 21:20:32.000000000 -0400
30902+++ linux-2.6.38.3/fs/btrfs/inode.c 2011-04-17 15:57:32.000000000 -0400 30080+++ linux-2.6.38.2/fs/btrfs/inode.c 2011-03-24 23:08:20.000000000 -0400
30903@@ -64,7 +64,7 @@ static const struct inode_operations btr 30081@@ -64,7 +64,7 @@ static const struct inode_operations btr
30904 static const struct address_space_operations btrfs_aops; 30082 static const struct address_space_operations btrfs_aops;
30905 static const struct address_space_operations btrfs_symlink_aops; 30083 static const struct address_space_operations btrfs_symlink_aops;
@@ -30942,10 +30120,10 @@ diff -urNp linux-2.6.38.3/fs/btrfs/inode.c linux-2.6.38.3/fs/btrfs/inode.c
30942 .fill_delalloc = run_delalloc_range, 30120 .fill_delalloc = run_delalloc_range,
30943 .submit_bio_hook = btrfs_submit_bio_hook, 30121 .submit_bio_hook = btrfs_submit_bio_hook,
30944 .merge_bio_hook = btrfs_merge_bio_hook, 30122 .merge_bio_hook = btrfs_merge_bio_hook,
30945diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c 30123diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c
30946--- linux-2.6.38.3/fs/btrfs/ioctl.c 2011-04-18 17:27:18.000000000 -0400 30124--- linux-2.6.38.2/fs/btrfs/ioctl.c 2011-03-14 21:20:32.000000000 -0400
30947+++ linux-2.6.38.3/fs/btrfs/ioctl.c 2011-04-17 16:53:48.000000000 -0400 30125+++ linux-2.6.38.2/fs/btrfs/ioctl.c 2011-03-21 18:31:35.000000000 -0400
30948@@ -2274,9 +2274,12 @@ long btrfs_ioctl_space_info(struct btrfs 30126@@ -2270,9 +2270,12 @@ long btrfs_ioctl_space_info(struct btrfs
30949 for (i = 0; i < num_types; i++) { 30127 for (i = 0; i < num_types; i++) {
30950 struct btrfs_space_info *tmp; 30128 struct btrfs_space_info *tmp;
30951 30129
@@ -30958,7 +30136,7 @@ diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c
30958 info = NULL; 30136 info = NULL;
30959 rcu_read_lock(); 30137 rcu_read_lock();
30960 list_for_each_entry_rcu(tmp, &root->fs_info->space_info, 30138 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
30961@@ -2298,10 +2301,7 @@ long btrfs_ioctl_space_info(struct btrfs 30139@@ -2294,10 +2297,7 @@ long btrfs_ioctl_space_info(struct btrfs
30962 memcpy(dest, &space, sizeof(space)); 30140 memcpy(dest, &space, sizeof(space));
30963 dest++; 30141 dest++;
30964 space_args.total_spaces++; 30142 space_args.total_spaces++;
@@ -30969,9 +30147,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c
30969 } 30147 }
30970 up_read(&info->groups_sem); 30148 up_read(&info->groups_sem);
30971 } 30149 }
30972diff -urNp linux-2.6.38.3/fs/btrfs/relocation.c linux-2.6.38.3/fs/btrfs/relocation.c 30150diff -urNp linux-2.6.38.2/fs/btrfs/relocation.c linux-2.6.38.2/fs/btrfs/relocation.c
30973--- linux-2.6.38.3/fs/btrfs/relocation.c 2011-03-14 21:20:32.000000000 -0400 30151--- linux-2.6.38.2/fs/btrfs/relocation.c 2011-03-14 21:20:32.000000000 -0400
30974+++ linux-2.6.38.3/fs/btrfs/relocation.c 2011-04-17 15:57:32.000000000 -0400 30152+++ linux-2.6.38.2/fs/btrfs/relocation.c 2011-03-21 18:31:35.000000000 -0400
30975@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt 30153@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt
30976 } 30154 }
30977 spin_unlock(&rc->reloc_root_tree.lock); 30155 spin_unlock(&rc->reloc_root_tree.lock);
@@ -30981,9 +30159,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/relocation.c linux-2.6.38.3/fs/btrfs/relocati
30981 30159
30982 if (!del) { 30160 if (!del) {
30983 spin_lock(&rc->reloc_root_tree.lock); 30161 spin_lock(&rc->reloc_root_tree.lock);
30984diff -urNp linux-2.6.38.3/fs/cachefiles/bind.c linux-2.6.38.3/fs/cachefiles/bind.c 30162diff -urNp linux-2.6.38.2/fs/cachefiles/bind.c linux-2.6.38.2/fs/cachefiles/bind.c
30985--- linux-2.6.38.3/fs/cachefiles/bind.c 2011-03-14 21:20:32.000000000 -0400 30163--- linux-2.6.38.2/fs/cachefiles/bind.c 2011-03-14 21:20:32.000000000 -0400
30986+++ linux-2.6.38.3/fs/cachefiles/bind.c 2011-04-17 15:57:32.000000000 -0400 30164+++ linux-2.6.38.2/fs/cachefiles/bind.c 2011-03-21 18:31:35.000000000 -0400
30987@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef 30165@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef
30988 args); 30166 args);
30989 30167
@@ -31000,9 +30178,9 @@ diff -urNp linux-2.6.38.3/fs/cachefiles/bind.c linux-2.6.38.3/fs/cachefiles/bind
31000 cache->bcull_percent < cache->brun_percent && 30178 cache->bcull_percent < cache->brun_percent &&
31001 cache->brun_percent < 100); 30179 cache->brun_percent < 100);
31002 30180
31003diff -urNp linux-2.6.38.3/fs/cachefiles/daemon.c linux-2.6.38.3/fs/cachefiles/daemon.c 30181diff -urNp linux-2.6.38.2/fs/cachefiles/daemon.c linux-2.6.38.2/fs/cachefiles/daemon.c
31004--- linux-2.6.38.3/fs/cachefiles/daemon.c 2011-03-14 21:20:32.000000000 -0400 30182--- linux-2.6.38.2/fs/cachefiles/daemon.c 2011-03-14 21:20:32.000000000 -0400
31005+++ linux-2.6.38.3/fs/cachefiles/daemon.c 2011-04-17 15:57:32.000000000 -0400 30183+++ linux-2.6.38.2/fs/cachefiles/daemon.c 2011-03-21 18:31:35.000000000 -0400
31006@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st 30184@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st
31007 if (n > buflen) 30185 if (n > buflen)
31008 return -EMSGSIZE; 30186 return -EMSGSIZE;
@@ -31039,9 +30217,9 @@ diff -urNp linux-2.6.38.3/fs/cachefiles/daemon.c linux-2.6.38.3/fs/cachefiles/da
31039 return cachefiles_daemon_range_error(cache, args); 30217 return cachefiles_daemon_range_error(cache, args);
31040 30218
31041 cache->bstop_percent = bstop; 30219 cache->bstop_percent = bstop;
31042diff -urNp linux-2.6.38.3/fs/cachefiles/rdwr.c linux-2.6.38.3/fs/cachefiles/rdwr.c 30220diff -urNp linux-2.6.38.2/fs/cachefiles/rdwr.c linux-2.6.38.2/fs/cachefiles/rdwr.c
31043--- linux-2.6.38.3/fs/cachefiles/rdwr.c 2011-03-14 21:20:32.000000000 -0400 30221--- linux-2.6.38.2/fs/cachefiles/rdwr.c 2011-03-14 21:20:32.000000000 -0400
31044+++ linux-2.6.38.3/fs/cachefiles/rdwr.c 2011-04-17 15:57:32.000000000 -0400 30222+++ linux-2.6.38.2/fs/cachefiles/rdwr.c 2011-03-21 18:31:35.000000000 -0400
31045@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache 30223@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache
31046 old_fs = get_fs(); 30224 old_fs = get_fs();
31047 set_fs(KERNEL_DS); 30225 set_fs(KERNEL_DS);
@@ -31051,9 +30229,9 @@ diff -urNp linux-2.6.38.3/fs/cachefiles/rdwr.c linux-2.6.38.3/fs/cachefiles/rdwr
31051 set_fs(old_fs); 30229 set_fs(old_fs);
31052 kunmap(page); 30230 kunmap(page);
31053 if (ret != len) 30231 if (ret != len)
31054diff -urNp linux-2.6.38.3/fs/ceph/dir.c linux-2.6.38.3/fs/ceph/dir.c 30232diff -urNp linux-2.6.38.2/fs/ceph/dir.c linux-2.6.38.2/fs/ceph/dir.c
31055--- linux-2.6.38.3/fs/ceph/dir.c 2011-03-14 21:20:32.000000000 -0400 30233--- linux-2.6.38.2/fs/ceph/dir.c 2011-03-14 21:20:32.000000000 -0400
31056+++ linux-2.6.38.3/fs/ceph/dir.c 2011-04-17 15:57:32.000000000 -0400 30234+++ linux-2.6.38.2/fs/ceph/dir.c 2011-03-21 18:31:35.000000000 -0400
31057@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil 30235@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil
31058 struct ceph_fs_client *fsc = ceph_inode_to_client(inode); 30236 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
31059 struct ceph_mds_client *mdsc = fsc->mdsc; 30237 struct ceph_mds_client *mdsc = fsc->mdsc;
@@ -31072,9 +30250,9 @@ diff -urNp linux-2.6.38.3/fs/ceph/dir.c linux-2.6.38.3/fs/ceph/dir.c
31072 u64 pos = ceph_make_fpos(frag, off); 30250 u64 pos = ceph_make_fpos(frag, off);
31073 struct ceph_mds_reply_inode *in = 30251 struct ceph_mds_reply_inode *in =
31074 rinfo->dir_in[off - fi->offset].in; 30252 rinfo->dir_in[off - fi->offset].in;
31075diff -urNp linux-2.6.38.3/fs/cifs/cifs_uniupr.h linux-2.6.38.3/fs/cifs/cifs_uniupr.h 30253diff -urNp linux-2.6.38.2/fs/cifs/cifs_uniupr.h linux-2.6.38.2/fs/cifs/cifs_uniupr.h
31076--- linux-2.6.38.3/fs/cifs/cifs_uniupr.h 2011-03-14 21:20:32.000000000 -0400 30254--- linux-2.6.38.2/fs/cifs/cifs_uniupr.h 2011-03-14 21:20:32.000000000 -0400
31077+++ linux-2.6.38.3/fs/cifs/cifs_uniupr.h 2011-04-17 15:57:32.000000000 -0400 30255+++ linux-2.6.38.2/fs/cifs/cifs_uniupr.h 2011-03-21 18:31:35.000000000 -0400
31078@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa 30256@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa
31079 {0x0490, 0x04cc, UniCaseRangeU0490}, 30257 {0x0490, 0x04cc, UniCaseRangeU0490},
31080 {0x1e00, 0x1ffc, UniCaseRangeU1e00}, 30258 {0x1e00, 0x1ffc, UniCaseRangeU1e00},
@@ -31084,9 +30262,9 @@ diff -urNp linux-2.6.38.3/fs/cifs/cifs_uniupr.h linux-2.6.38.3/fs/cifs/cifs_uniu
31084 }; 30262 };
31085 #endif 30263 #endif
31086 30264
31087diff -urNp linux-2.6.38.3/fs/cifs/link.c linux-2.6.38.3/fs/cifs/link.c 30265diff -urNp linux-2.6.38.2/fs/cifs/link.c linux-2.6.38.2/fs/cifs/link.c
31088--- linux-2.6.38.3/fs/cifs/link.c 2011-03-14 21:20:32.000000000 -0400 30266--- linux-2.6.38.2/fs/cifs/link.c 2011-03-14 21:20:32.000000000 -0400
31089+++ linux-2.6.38.3/fs/cifs/link.c 2011-04-17 15:57:32.000000000 -0400 30267+++ linux-2.6.38.2/fs/cifs/link.c 2011-03-21 18:31:35.000000000 -0400
31090@@ -577,7 +577,7 @@ symlink_exit: 30268@@ -577,7 +577,7 @@ symlink_exit:
31091 30269
31092 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) 30270 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
@@ -31096,9 +30274,9 @@ diff -urNp linux-2.6.38.3/fs/cifs/link.c linux-2.6.38.3/fs/cifs/link.c
31096 if (!IS_ERR(p)) 30274 if (!IS_ERR(p))
31097 kfree(p); 30275 kfree(p);
31098 } 30276 }
31099diff -urNp linux-2.6.38.3/fs/compat_binfmt_elf.c linux-2.6.38.3/fs/compat_binfmt_elf.c 30277diff -urNp linux-2.6.38.2/fs/compat_binfmt_elf.c linux-2.6.38.2/fs/compat_binfmt_elf.c
31100--- linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400 30278--- linux-2.6.38.2/fs/compat_binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400
31101+++ linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400 30279+++ linux-2.6.38.2/fs/compat_binfmt_elf.c 2011-03-21 18:31:35.000000000 -0400
31102@@ -30,11 +30,13 @@ 30280@@ -30,11 +30,13 @@
31103 #undef elf_phdr 30281 #undef elf_phdr
31104 #undef elf_shdr 30282 #undef elf_shdr
@@ -31113,9 +30291,9 @@ diff -urNp linux-2.6.38.3/fs/compat_binfmt_elf.c linux-2.6.38.3/fs/compat_binfmt
31113 #define elf_addr_t Elf32_Addr 30291 #define elf_addr_t Elf32_Addr
31114 30292
31115 /* 30293 /*
31116diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c 30294diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
31117--- linux-2.6.38.3/fs/compat.c 2011-03-14 21:20:32.000000000 -0400 30295--- linux-2.6.38.2/fs/compat.c 2011-03-14 21:20:32.000000000 -0400
31118+++ linux-2.6.38.3/fs/compat.c 2011-04-17 15:57:32.000000000 -0400 30296+++ linux-2.6.38.2/fs/compat.c 2011-03-21 18:31:35.000000000 -0400
31119@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int 30297@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int
31120 goto out; 30298 goto out;
31121 30299
@@ -31226,15 +30404,10 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31226 struct linux_binprm *bprm; 30404 struct linux_binprm *bprm;
31227 struct file *file; 30405 struct file *file;
31228 struct files_struct *displaced; 30406 struct files_struct *displaced;
31229@@ -1500,6 +1524,19 @@ int compat_do_execve(char * filename, 30407@@ -1500,6 +1524,14 @@ int compat_do_execve(char * filename,
31230 bprm->filename = filename; 30408 bprm->filename = filename;
31231 bprm->interp = filename; 30409 bprm->interp = filename;
31232 30410
31233+ if (gr_process_user_ban()) {
31234+ retval = -EPERM;
31235+ goto out_file;
31236+ }
31237+
31238+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 30411+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
31239+ retval = -EAGAIN; 30412+ retval = -EAGAIN;
31240+ if (gr_handle_nproc()) 30413+ if (gr_handle_nproc())
@@ -31246,7 +30419,7 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31246 retval = bprm_mm_init(bprm); 30419 retval = bprm_mm_init(bprm);
31247 if (retval) 30420 if (retval)
31248 goto out_file; 30421 goto out_file;
31249@@ -1529,9 +1566,40 @@ int compat_do_execve(char * filename, 30422@@ -1529,9 +1561,40 @@ int compat_do_execve(char * filename,
31250 if (retval < 0) 30423 if (retval < 0)
31251 goto out; 30424 goto out;
31252 30425
@@ -31288,7 +30461,7 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31288 30461
31289 /* execve succeeded */ 30462 /* execve succeeded */
31290 current->fs->in_exec = 0; 30463 current->fs->in_exec = 0;
31291@@ -1542,6 +1610,14 @@ int compat_do_execve(char * filename, 30464@@ -1542,6 +1605,14 @@ int compat_do_execve(char * filename,
31292 put_files_struct(displaced); 30465 put_files_struct(displaced);
31293 return retval; 30466 return retval;
31294 30467
@@ -31303,9 +30476,9 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31303 out: 30476 out:
31304 if (bprm->mm) { 30477 if (bprm->mm) {
31305 acct_arg_size(bprm, 0); 30478 acct_arg_size(bprm, 0);
31306diff -urNp linux-2.6.38.3/fs/compat_ioctl.c linux-2.6.38.3/fs/compat_ioctl.c 30479diff -urNp linux-2.6.38.2/fs/compat_ioctl.c linux-2.6.38.2/fs/compat_ioctl.c
31307--- linux-2.6.38.3/fs/compat_ioctl.c 2011-03-14 21:20:32.000000000 -0400 30480--- linux-2.6.38.2/fs/compat_ioctl.c 2011-03-14 21:20:32.000000000 -0400
31308+++ linux-2.6.38.3/fs/compat_ioctl.c 2011-04-17 15:57:32.000000000 -0400 30481+++ linux-2.6.38.2/fs/compat_ioctl.c 2011-03-21 18:31:35.000000000 -0400
31309@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi 30482@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi
31310 30483
31311 err = get_user(palp, &up->palette); 30484 err = get_user(palp, &up->palette);
@@ -31326,21 +30499,9 @@ diff -urNp linux-2.6.38.3/fs/compat_ioctl.c linux-2.6.38.3/fs/compat_ioctl.c
31326 if (a > b) 30499 if (a > b)
31327 return 1; 30500 return 1;
31328 if (a < b) 30501 if (a < b)
31329diff -urNp linux-2.6.38.3/fs/dcache.c linux-2.6.38.3/fs/dcache.c 30502diff -urNp linux-2.6.38.2/fs/debugfs/inode.c linux-2.6.38.2/fs/debugfs/inode.c
31330--- linux-2.6.38.3/fs/dcache.c 2011-04-18 17:27:16.000000000 -0400 30503--- linux-2.6.38.2/fs/debugfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31331+++ linux-2.6.38.3/fs/dcache.c 2011-04-17 15:57:32.000000000 -0400 30504+++ linux-2.6.38.2/fs/debugfs/inode.c 2011-03-21 18:31:35.000000000 -0400
31332@@ -3092,7 +3092,7 @@ void __init vfs_caches_init(unsigned lon
31333 mempages -= reserve;
31334
31335 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
31336- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
31337+ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY, NULL);
31338
31339 dcache_init();
31340 inode_init();
31341diff -urNp linux-2.6.38.3/fs/debugfs/inode.c linux-2.6.38.3/fs/debugfs/inode.c
31342--- linux-2.6.38.3/fs/debugfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31343+++ linux-2.6.38.3/fs/debugfs/inode.c 2011-04-17 15:57:32.000000000 -0400
31344@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc 30505@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc
31345 30506
31346 static int debug_fill_super(struct super_block *sb, void *data, int silent) 30507 static int debug_fill_super(struct super_block *sb, void *data, int silent)
@@ -31350,9 +30511,9 @@ diff -urNp linux-2.6.38.3/fs/debugfs/inode.c linux-2.6.38.3/fs/debugfs/inode.c
31350 30511
31351 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files); 30512 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
31352 } 30513 }
31353diff -urNp linux-2.6.38.3/fs/dlm/lockspace.c linux-2.6.38.3/fs/dlm/lockspace.c 30514diff -urNp linux-2.6.38.2/fs/dlm/lockspace.c linux-2.6.38.2/fs/dlm/lockspace.c
31354--- linux-2.6.38.3/fs/dlm/lockspace.c 2011-03-14 21:20:32.000000000 -0400 30515--- linux-2.6.38.2/fs/dlm/lockspace.c 2011-03-14 21:20:32.000000000 -0400
31355+++ linux-2.6.38.3/fs/dlm/lockspace.c 2011-04-17 15:57:32.000000000 -0400 30516+++ linux-2.6.38.2/fs/dlm/lockspace.c 2011-03-21 18:31:35.000000000 -0400
31356@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset, 30517@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset,
31357 return 0; 30518 return 0;
31358 } 30519 }
@@ -31362,9 +30523,9 @@ diff -urNp linux-2.6.38.3/fs/dlm/lockspace.c linux-2.6.38.3/fs/dlm/lockspace.c
31362 .uevent = dlm_uevent, 30523 .uevent = dlm_uevent,
31363 }; 30524 };
31364 30525
31365diff -urNp linux-2.6.38.3/fs/ecryptfs/inode.c linux-2.6.38.3/fs/ecryptfs/inode.c 30526diff -urNp linux-2.6.38.2/fs/ecryptfs/inode.c linux-2.6.38.2/fs/ecryptfs/inode.c
31366--- linux-2.6.38.3/fs/ecryptfs/inode.c 2011-03-14 21:20:32.000000000 -0400 30527--- linux-2.6.38.2/fs/ecryptfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31367+++ linux-2.6.38.3/fs/ecryptfs/inode.c 2011-04-17 15:57:32.000000000 -0400 30528+++ linux-2.6.38.2/fs/ecryptfs/inode.c 2011-03-21 18:31:35.000000000 -0400
31368@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc 30529@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc
31369 old_fs = get_fs(); 30530 old_fs = get_fs();
31370 set_fs(get_ds()); 30531 set_fs(get_ds());
@@ -31392,9 +30553,9 @@ diff -urNp linux-2.6.38.3/fs/ecryptfs/inode.c linux-2.6.38.3/fs/ecryptfs/inode.c
31392 if (!IS_ERR(buf)) { 30553 if (!IS_ERR(buf)) {
31393 /* Free the char* */ 30554 /* Free the char* */
31394 kfree(buf); 30555 kfree(buf);
31395diff -urNp linux-2.6.38.3/fs/ecryptfs/miscdev.c linux-2.6.38.3/fs/ecryptfs/miscdev.c 30556diff -urNp linux-2.6.38.2/fs/ecryptfs/miscdev.c linux-2.6.38.2/fs/ecryptfs/miscdev.c
31396--- linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-03-14 21:20:32.000000000 -0400 30557--- linux-2.6.38.2/fs/ecryptfs/miscdev.c 2011-03-14 21:20:32.000000000 -0400
31397+++ linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-04-17 15:57:32.000000000 -0400 30558+++ linux-2.6.38.2/fs/ecryptfs/miscdev.c 2011-03-21 18:31:35.000000000 -0400
31398@@ -328,7 +328,7 @@ check_list: 30559@@ -328,7 +328,7 @@ check_list:
31399 goto out_unlock_msg_ctx; 30560 goto out_unlock_msg_ctx;
31400 i = 5; 30561 i = 5;
@@ -31404,9 +30565,9 @@ diff -urNp linux-2.6.38.3/fs/ecryptfs/miscdev.c linux-2.6.38.3/fs/ecryptfs/miscd
31404 goto out_unlock_msg_ctx; 30565 goto out_unlock_msg_ctx;
31405 i += packet_length_size; 30566 i += packet_length_size;
31406 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size)) 30567 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
31407diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c 30568diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31408--- linux-2.6.38.3/fs/exec.c 2011-03-14 21:20:32.000000000 -0400 30569--- linux-2.6.38.2/fs/exec.c 2011-03-14 21:20:32.000000000 -0400
31409+++ linux-2.6.38.3/fs/exec.c 2011-04-17 15:57:32.000000000 -0400 30570+++ linux-2.6.38.2/fs/exec.c 2011-03-21 18:31:35.000000000 -0400
31410@@ -55,12 +55,24 @@ 30571@@ -55,12 +55,24 @@
31411 #include <linux/fs_struct.h> 30572 #include <linux/fs_struct.h>
31412 #include <linux/pipe_fs_i.h> 30573 #include <linux/pipe_fs_i.h>
@@ -31611,15 +30772,10 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31611 struct linux_binprm *bprm; 30772 struct linux_binprm *bprm;
31612 struct file *file; 30773 struct file *file;
31613 struct files_struct *displaced; 30774 struct files_struct *displaced;
31614@@ -1414,6 +1448,23 @@ int do_execve(const char * filename, 30775@@ -1414,6 +1448,18 @@ int do_execve(const char * filename,
31615 bprm->filename = filename; 30776 bprm->filename = filename;
31616 bprm->interp = filename; 30777 bprm->interp = filename;
31617 30778
31618+ if (gr_process_user_ban()) {
31619+ retval = -EPERM;
31620+ goto out_file;
31621+ }
31622+
31623+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 30779+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
31624+ 30780+
31625+ if (gr_handle_nproc()) { 30781+ if (gr_handle_nproc()) {
@@ -31635,7 +30791,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31635 retval = bprm_mm_init(bprm); 30791 retval = bprm_mm_init(bprm);
31636 if (retval) 30792 if (retval)
31637 goto out_file; 30793 goto out_file;
31638@@ -1443,9 +1494,40 @@ int do_execve(const char * filename, 30794@@ -1443,9 +1489,40 @@ int do_execve(const char * filename,
31639 if (retval < 0) 30795 if (retval < 0)
31640 goto out; 30796 goto out;
31641 30797
@@ -31677,7 +30833,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31677 30833
31678 /* execve succeeded */ 30834 /* execve succeeded */
31679 current->fs->in_exec = 0; 30835 current->fs->in_exec = 0;
31680@@ -1456,6 +1538,14 @@ int do_execve(const char * filename, 30836@@ -1456,6 +1533,14 @@ int do_execve(const char * filename,
31681 put_files_struct(displaced); 30837 put_files_struct(displaced);
31682 return retval; 30838 return retval;
31683 30839
@@ -31692,7 +30848,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31692 out: 30848 out:
31693 if (bprm->mm) { 30849 if (bprm->mm) {
31694 acct_arg_size(bprm, 0); 30850 acct_arg_size(bprm, 0);
31695@@ -1642,6 +1732,208 @@ out: 30851@@ -1642,6 +1727,217 @@ out:
31696 return ispipe; 30852 return ispipe;
31697 } 30853 }
31698 30854
@@ -31884,16 +31040,25 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31884+} 31040+}
31885+ 31041+
31886+ 31042+
31887+void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type) 31043+void pax_report_leak_to_user(const void *ptr, unsigned long len)
31044+{
31045+ if (current->signal->curr_ip)
31046+ printk(KERN_ERR "PAX: From %pI4: kernel memory leak attempt detected from %p (%lu bytes)\n",
31047+ &current->signal->curr_ip, ptr, len);
31048+ else
31049+ printk(KERN_ERR "PAX: kernel memory leak attempt detected from %p (%lu bytes)\n", ptr, len);
31050+ dump_stack();
31051+ do_group_exit(SIGKILL);
31052+}
31053+
31054+void pax_report_overflow_from_user(const void *ptr, unsigned long len)
31888+{ 31055+{
31889+ if (current->signal->curr_ip) 31056+ if (current->signal->curr_ip)
31890+ printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n", 31057+ printk(KERN_ERR "PAX: From %pI4: kernel memory overflow attempt detected to %p (%lu bytes)\n",
31891+ &current->signal->curr_ip, to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len); 31058+ &current->signal->curr_ip, ptr, len);
31892+ else 31059+ else
31893+ printk(KERN_ERR "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n", 31060+ printk(KERN_ERR "PAX: kernel memory overflow attempt detected to %p (%lu bytes)\n", ptr, len);
31894+ to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len);
31895+ dump_stack(); 31061+ dump_stack();
31896+ gr_handle_kernel_exploit();
31897+ do_group_exit(SIGKILL); 31062+ do_group_exit(SIGKILL);
31898+} 31063+}
31899+#endif 31064+#endif
@@ -31901,7 +31066,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31901 static int zap_process(struct task_struct *start, int exit_code) 31066 static int zap_process(struct task_struct *start, int exit_code)
31902 { 31067 {
31903 struct task_struct *t; 31068 struct task_struct *t;
31904@@ -1852,17 +2144,17 @@ static void wait_for_dump_helpers(struct 31069@@ -1852,17 +2148,17 @@ static void wait_for_dump_helpers(struct
31905 pipe = file->f_path.dentry->d_inode->i_pipe; 31070 pipe = file->f_path.dentry->d_inode->i_pipe;
31906 31071
31907 pipe_lock(pipe); 31072 pipe_lock(pipe);
@@ -31924,28 +31089,20 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31924 pipe_unlock(pipe); 31089 pipe_unlock(pipe);
31925 31090
31926 } 31091 }
31927@@ -1938,6 +2230,9 @@ void do_coredump(long signr, int exit_co 31092@@ -1978,6 +2274,10 @@ void do_coredump(long signr, int exit_co
31928
31929 audit_core_dumps(signr);
31930
31931+ if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
31932+ gr_handle_brute_attach(current, cprm.mm_flags);
31933+
31934 binfmt = mm->binfmt;
31935 if (!binfmt || !binfmt->core_dump)
31936 goto fail;
31937@@ -1978,6 +2273,8 @@ void do_coredump(long signr, int exit_co
31938 goto fail_corename; 31093 goto fail_corename;
31939 } 31094 }
31940 31095
31096+ if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
31097+ gr_handle_brute_attach(current);
31941+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1); 31098+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
31942+ 31099+
31943 if (ispipe) { 31100 if (ispipe) {
31944 int dump_count; 31101 int dump_count;
31945 char **helper_argv; 31102 char **helper_argv;
31946diff -urNp linux-2.6.38.3/fs/ext2/balloc.c linux-2.6.38.3/fs/ext2/balloc.c 31103diff -urNp linux-2.6.38.2/fs/ext2/balloc.c linux-2.6.38.2/fs/ext2/balloc.c
31947--- linux-2.6.38.3/fs/ext2/balloc.c 2011-03-14 21:20:32.000000000 -0400 31104--- linux-2.6.38.2/fs/ext2/balloc.c 2011-03-14 21:20:32.000000000 -0400
31948+++ linux-2.6.38.3/fs/ext2/balloc.c 2011-04-17 15:57:32.000000000 -0400 31105+++ linux-2.6.38.2/fs/ext2/balloc.c 2011-03-21 18:31:35.000000000 -0400
31949@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e 31106@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e
31950 31107
31951 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31108 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31955,9 +31112,9 @@ diff -urNp linux-2.6.38.3/fs/ext2/balloc.c linux-2.6.38.3/fs/ext2/balloc.c
31955 sbi->s_resuid != current_fsuid() && 31112 sbi->s_resuid != current_fsuid() &&
31956 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31113 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31957 return 0; 31114 return 0;
31958diff -urNp linux-2.6.38.3/fs/ext2/xattr.c linux-2.6.38.3/fs/ext2/xattr.c 31115diff -urNp linux-2.6.38.2/fs/ext2/xattr.c linux-2.6.38.2/fs/ext2/xattr.c
31959--- linux-2.6.38.3/fs/ext2/xattr.c 2011-03-14 21:20:32.000000000 -0400 31116--- linux-2.6.38.2/fs/ext2/xattr.c 2011-03-14 21:20:32.000000000 -0400
31960+++ linux-2.6.38.3/fs/ext2/xattr.c 2011-04-17 15:57:32.000000000 -0400 31117+++ linux-2.6.38.2/fs/ext2/xattr.c 2011-03-21 18:31:35.000000000 -0400
31961@@ -86,8 +86,8 @@ 31118@@ -86,8 +86,8 @@
31962 printk("\n"); \ 31119 printk("\n"); \
31963 } while (0) 31120 } while (0)
@@ -31969,9 +31126,9 @@ diff -urNp linux-2.6.38.3/fs/ext2/xattr.c linux-2.6.38.3/fs/ext2/xattr.c
31969 #endif 31126 #endif
31970 31127
31971 static int ext2_xattr_set2(struct inode *, struct buffer_head *, 31128 static int ext2_xattr_set2(struct inode *, struct buffer_head *,
31972diff -urNp linux-2.6.38.3/fs/ext3/balloc.c linux-2.6.38.3/fs/ext3/balloc.c 31129diff -urNp linux-2.6.38.2/fs/ext3/balloc.c linux-2.6.38.2/fs/ext3/balloc.c
31973--- linux-2.6.38.3/fs/ext3/balloc.c 2011-03-14 21:20:32.000000000 -0400 31130--- linux-2.6.38.2/fs/ext3/balloc.c 2011-03-14 21:20:32.000000000 -0400
31974+++ linux-2.6.38.3/fs/ext3/balloc.c 2011-04-17 15:57:32.000000000 -0400 31131+++ linux-2.6.38.2/fs/ext3/balloc.c 2011-03-21 18:31:35.000000000 -0400
31975@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e 31132@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e
31976 31133
31977 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31134 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31981,9 +31138,9 @@ diff -urNp linux-2.6.38.3/fs/ext3/balloc.c linux-2.6.38.3/fs/ext3/balloc.c
31981 sbi->s_resuid != current_fsuid() && 31138 sbi->s_resuid != current_fsuid() &&
31982 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31139 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31983 return 0; 31140 return 0;
31984diff -urNp linux-2.6.38.3/fs/ext3/namei.c linux-2.6.38.3/fs/ext3/namei.c 31141diff -urNp linux-2.6.38.2/fs/ext3/namei.c linux-2.6.38.2/fs/ext3/namei.c
31985--- linux-2.6.38.3/fs/ext3/namei.c 2011-04-18 17:27:14.000000000 -0400 31142--- linux-2.6.38.2/fs/ext3/namei.c 2011-03-23 17:20:08.000000000 -0400
31986+++ linux-2.6.38.3/fs/ext3/namei.c 2011-04-17 15:57:32.000000000 -0400 31143+++ linux-2.6.38.2/fs/ext3/namei.c 2011-03-23 17:21:51.000000000 -0400
31987@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split 31144@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split
31988 char *data1 = (*bh)->b_data, *data2; 31145 char *data1 = (*bh)->b_data, *data2;
31989 unsigned split, move, size; 31146 unsigned split, move, size;
@@ -31993,9 +31150,9 @@ diff -urNp linux-2.6.38.3/fs/ext3/namei.c linux-2.6.38.3/fs/ext3/namei.c
31993 31150
31994 bh2 = ext3_append (handle, dir, &newblock, &err); 31151 bh2 = ext3_append (handle, dir, &newblock, &err);
31995 if (!(bh2)) { 31152 if (!(bh2)) {
31996diff -urNp linux-2.6.38.3/fs/ext3/xattr.c linux-2.6.38.3/fs/ext3/xattr.c 31153diff -urNp linux-2.6.38.2/fs/ext3/xattr.c linux-2.6.38.2/fs/ext3/xattr.c
31997--- linux-2.6.38.3/fs/ext3/xattr.c 2011-03-14 21:20:32.000000000 -0400 31154--- linux-2.6.38.2/fs/ext3/xattr.c 2011-03-14 21:20:32.000000000 -0400
31998+++ linux-2.6.38.3/fs/ext3/xattr.c 2011-04-17 15:57:32.000000000 -0400 31155+++ linux-2.6.38.2/fs/ext3/xattr.c 2011-03-21 18:31:35.000000000 -0400
31999@@ -89,8 +89,8 @@ 31156@@ -89,8 +89,8 @@
32000 printk("\n"); \ 31157 printk("\n"); \
32001 } while (0) 31158 } while (0)
@@ -32007,9 +31164,9 @@ diff -urNp linux-2.6.38.3/fs/ext3/xattr.c linux-2.6.38.3/fs/ext3/xattr.c
32007 #endif 31164 #endif
32008 31165
32009 static void ext3_xattr_cache_insert(struct buffer_head *); 31166 static void ext3_xattr_cache_insert(struct buffer_head *);
32010diff -urNp linux-2.6.38.3/fs/ext4/balloc.c linux-2.6.38.3/fs/ext4/balloc.c 31167diff -urNp linux-2.6.38.2/fs/ext4/balloc.c linux-2.6.38.2/fs/ext4/balloc.c
32011--- linux-2.6.38.3/fs/ext4/balloc.c 2011-03-14 21:20:32.000000000 -0400 31168--- linux-2.6.38.2/fs/ext4/balloc.c 2011-03-14 21:20:32.000000000 -0400
32012+++ linux-2.6.38.3/fs/ext4/balloc.c 2011-04-17 15:57:32.000000000 -0400 31169+++ linux-2.6.38.2/fs/ext4/balloc.c 2011-03-21 18:31:35.000000000 -0400
32013@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e 31170@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e
32014 /* Hm, nope. Are (enough) root reserved blocks available? */ 31171 /* Hm, nope. Are (enough) root reserved blocks available? */
32015 if (sbi->s_resuid == current_fsuid() || 31172 if (sbi->s_resuid == current_fsuid() ||
@@ -32019,9 +31176,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/balloc.c linux-2.6.38.3/fs/ext4/balloc.c
32019 if (free_blocks >= (nblocks + dirty_blocks)) 31176 if (free_blocks >= (nblocks + dirty_blocks))
32020 return 1; 31177 return 1;
32021 } 31178 }
32022diff -urNp linux-2.6.38.3/fs/ext4/ext4.h linux-2.6.38.3/fs/ext4/ext4.h 31179diff -urNp linux-2.6.38.2/fs/ext4/ext4.h linux-2.6.38.2/fs/ext4/ext4.h
32023--- linux-2.6.38.3/fs/ext4/ext4.h 2011-03-14 21:20:32.000000000 -0400 31180--- linux-2.6.38.2/fs/ext4/ext4.h 2011-03-14 21:20:32.000000000 -0400
32024+++ linux-2.6.38.3/fs/ext4/ext4.h 2011-04-17 15:57:32.000000000 -0400 31181+++ linux-2.6.38.2/fs/ext4/ext4.h 2011-03-21 18:31:35.000000000 -0400
32025@@ -1166,19 +1166,19 @@ struct ext4_sb_info { 31182@@ -1166,19 +1166,19 @@ struct ext4_sb_info {
32026 unsigned long s_mb_last_start; 31183 unsigned long s_mb_last_start;
32027 31184
@@ -32052,9 +31209,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/ext4.h linux-2.6.38.3/fs/ext4/ext4.h
32052 atomic_t s_lock_busy; 31209 atomic_t s_lock_busy;
32053 31210
32054 /* locality groups */ 31211 /* locality groups */
32055diff -urNp linux-2.6.38.3/fs/ext4/mballoc.c linux-2.6.38.3/fs/ext4/mballoc.c 31212diff -urNp linux-2.6.38.2/fs/ext4/mballoc.c linux-2.6.38.2/fs/ext4/mballoc.c
32056--- linux-2.6.38.3/fs/ext4/mballoc.c 2011-03-14 21:20:32.000000000 -0400 31213--- linux-2.6.38.2/fs/ext4/mballoc.c 2011-03-14 21:20:32.000000000 -0400
32057+++ linux-2.6.38.3/fs/ext4/mballoc.c 2011-04-17 15:57:32.000000000 -0400 31214+++ linux-2.6.38.2/fs/ext4/mballoc.c 2011-03-21 18:31:35.000000000 -0400
32058@@ -1846,7 +1846,7 @@ void ext4_mb_simple_scan_group(struct ex 31215@@ -1846,7 +1846,7 @@ void ext4_mb_simple_scan_group(struct ex
32059 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len); 31216 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
32060 31217
@@ -32168,9 +31325,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/mballoc.c linux-2.6.38.3/fs/ext4/mballoc.c
32168 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len); 31325 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
32169 31326
32170 return 0; 31327 return 0;
32171diff -urNp linux-2.6.38.3/fs/ext4/namei.c linux-2.6.38.3/fs/ext4/namei.c 31328diff -urNp linux-2.6.38.2/fs/ext4/namei.c linux-2.6.38.2/fs/ext4/namei.c
32172--- linux-2.6.38.3/fs/ext4/namei.c 2011-03-14 21:20:32.000000000 -0400 31329--- linux-2.6.38.2/fs/ext4/namei.c 2011-03-14 21:20:32.000000000 -0400
32173+++ linux-2.6.38.3/fs/ext4/namei.c 2011-04-17 15:57:32.000000000 -0400 31330+++ linux-2.6.38.2/fs/ext4/namei.c 2011-03-21 18:31:35.000000000 -0400
32174@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split 31331@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split
32175 char *data1 = (*bh)->b_data, *data2; 31332 char *data1 = (*bh)->b_data, *data2;
32176 unsigned split, move, size; 31333 unsigned split, move, size;
@@ -32180,9 +31337,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/namei.c linux-2.6.38.3/fs/ext4/namei.c
32180 31337
32181 bh2 = ext4_append (handle, dir, &newblock, &err); 31338 bh2 = ext4_append (handle, dir, &newblock, &err);
32182 if (!(bh2)) { 31339 if (!(bh2)) {
32183diff -urNp linux-2.6.38.3/fs/ext4/xattr.c linux-2.6.38.3/fs/ext4/xattr.c 31340diff -urNp linux-2.6.38.2/fs/ext4/xattr.c linux-2.6.38.2/fs/ext4/xattr.c
32184--- linux-2.6.38.3/fs/ext4/xattr.c 2011-03-14 21:20:32.000000000 -0400 31341--- linux-2.6.38.2/fs/ext4/xattr.c 2011-03-14 21:20:32.000000000 -0400
32185+++ linux-2.6.38.3/fs/ext4/xattr.c 2011-04-17 15:57:32.000000000 -0400 31342+++ linux-2.6.38.2/fs/ext4/xattr.c 2011-03-21 18:31:35.000000000 -0400
32186@@ -82,8 +82,8 @@ 31343@@ -82,8 +82,8 @@
32187 printk("\n"); \ 31344 printk("\n"); \
32188 } while (0) 31345 } while (0)
@@ -32194,9 +31351,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/xattr.c linux-2.6.38.3/fs/ext4/xattr.c
32194 #endif 31351 #endif
32195 31352
32196 static void ext4_xattr_cache_insert(struct buffer_head *); 31353 static void ext4_xattr_cache_insert(struct buffer_head *);
32197diff -urNp linux-2.6.38.3/fs/fcntl.c linux-2.6.38.3/fs/fcntl.c 31354diff -urNp linux-2.6.38.2/fs/fcntl.c linux-2.6.38.2/fs/fcntl.c
32198--- linux-2.6.38.3/fs/fcntl.c 2011-03-14 21:20:32.000000000 -0400 31355--- linux-2.6.38.2/fs/fcntl.c 2011-03-14 21:20:32.000000000 -0400
32199+++ linux-2.6.38.3/fs/fcntl.c 2011-04-17 15:57:32.000000000 -0400 31356+++ linux-2.6.38.2/fs/fcntl.c 2011-03-21 18:31:35.000000000 -0400
32200@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct 31357@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct
32201 if (err) 31358 if (err)
32202 return err; 31359 return err;
@@ -32234,9 +31391,9 @@ diff -urNp linux-2.6.38.3/fs/fcntl.c linux-2.6.38.3/fs/fcntl.c
32234 )); 31391 ));
32235 31392
32236 fasync_cache = kmem_cache_create("fasync_cache", 31393 fasync_cache = kmem_cache_create("fasync_cache",
32237diff -urNp linux-2.6.38.3/fs/fifo.c linux-2.6.38.3/fs/fifo.c 31394diff -urNp linux-2.6.38.2/fs/fifo.c linux-2.6.38.2/fs/fifo.c
32238--- linux-2.6.38.3/fs/fifo.c 2011-03-14 21:20:32.000000000 -0400 31395--- linux-2.6.38.2/fs/fifo.c 2011-03-14 21:20:32.000000000 -0400
32239+++ linux-2.6.38.3/fs/fifo.c 2011-04-17 15:57:32.000000000 -0400 31396+++ linux-2.6.38.2/fs/fifo.c 2011-03-21 18:31:35.000000000 -0400
32240@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode 31397@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode
32241 */ 31398 */
32242 filp->f_op = &read_pipefifo_fops; 31399 filp->f_op = &read_pipefifo_fops;
@@ -32307,9 +31464,9 @@ diff -urNp linux-2.6.38.3/fs/fifo.c linux-2.6.38.3/fs/fifo.c
32307 free_pipe_info(inode); 31464 free_pipe_info(inode);
32308 31465
32309 err_nocleanup: 31466 err_nocleanup:
32310diff -urNp linux-2.6.38.3/fs/file.c linux-2.6.38.3/fs/file.c 31467diff -urNp linux-2.6.38.2/fs/file.c linux-2.6.38.2/fs/file.c
32311--- linux-2.6.38.3/fs/file.c 2011-03-14 21:20:32.000000000 -0400 31468--- linux-2.6.38.2/fs/file.c 2011-03-14 21:20:32.000000000 -0400
32312+++ linux-2.6.38.3/fs/file.c 2011-04-17 15:57:32.000000000 -0400 31469+++ linux-2.6.38.2/fs/file.c 2011-03-21 18:31:35.000000000 -0400
32313@@ -14,6 +14,7 @@ 31470@@ -14,6 +14,7 @@
32314 #include <linux/slab.h> 31471 #include <linux/slab.h>
32315 #include <linux/vmalloc.h> 31472 #include <linux/vmalloc.h>
@@ -32326,25 +31483,9 @@ diff -urNp linux-2.6.38.3/fs/file.c linux-2.6.38.3/fs/file.c
32326 if (nr >= rlimit(RLIMIT_NOFILE)) 31483 if (nr >= rlimit(RLIMIT_NOFILE))
32327 return -EMFILE; 31484 return -EMFILE;
32328 31485
32329diff -urNp linux-2.6.38.3/fs/filesystems.c linux-2.6.38.3/fs/filesystems.c 31486diff -urNp linux-2.6.38.2/fs/fs_struct.c linux-2.6.38.2/fs/fs_struct.c
32330--- linux-2.6.38.3/fs/filesystems.c 2011-03-14 21:20:32.000000000 -0400 31487--- linux-2.6.38.2/fs/fs_struct.c 2011-03-14 21:20:32.000000000 -0400
32331+++ linux-2.6.38.3/fs/filesystems.c 2011-04-17 15:57:32.000000000 -0400 31488+++ linux-2.6.38.2/fs/fs_struct.c 2011-03-21 18:31:35.000000000 -0400
32332@@ -275,7 +275,12 @@ struct file_system_type *get_fs_type(con
32333 int len = dot ? dot - name : strlen(name);
32334
32335 fs = __get_fs_type(name, len);
32336+
32337+#ifdef CONFIG_GRKERNSEC_MODHARDEN
32338+ if (!fs && (___request_module(true, "grsec_modharden_fs", "%.*s", len, name) == 0))
32339+#else
32340 if (!fs && (request_module("%.*s", len, name) == 0))
32341+#endif
32342 fs = __get_fs_type(name, len);
32343
32344 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
32345diff -urNp linux-2.6.38.3/fs/fs_struct.c linux-2.6.38.3/fs/fs_struct.c
32346--- linux-2.6.38.3/fs/fs_struct.c 2011-03-14 21:20:32.000000000 -0400
32347+++ linux-2.6.38.3/fs/fs_struct.c 2011-04-17 15:57:32.000000000 -0400
32348@@ -4,6 +4,7 @@ 31489@@ -4,6 +4,7 @@
32349 #include <linux/path.h> 31490 #include <linux/path.h>
32350 #include <linux/slab.h> 31491 #include <linux/slab.h>
@@ -32434,9 +31575,9 @@ diff -urNp linux-2.6.38.3/fs/fs_struct.c linux-2.6.38.3/fs/fs_struct.c
32434 spin_unlock(&fs->lock); 31575 spin_unlock(&fs->lock);
32435 31576
32436 task_unlock(current); 31577 task_unlock(current);
32437diff -urNp linux-2.6.38.3/fs/fuse/control.c linux-2.6.38.3/fs/fuse/control.c 31578diff -urNp linux-2.6.38.2/fs/fuse/control.c linux-2.6.38.2/fs/fuse/control.c
32438--- linux-2.6.38.3/fs/fuse/control.c 2011-03-14 21:20:32.000000000 -0400 31579--- linux-2.6.38.2/fs/fuse/control.c 2011-03-14 21:20:32.000000000 -0400
32439+++ linux-2.6.38.3/fs/fuse/control.c 2011-04-17 15:57:32.000000000 -0400 31580+++ linux-2.6.38.2/fs/fuse/control.c 2011-03-21 18:31:35.000000000 -0400
32440@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co 31581@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co
32441 31582
32442 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent) 31583 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent)
@@ -32446,9 +31587,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/control.c linux-2.6.38.3/fs/fuse/control.c
32446 struct fuse_conn *fc; 31587 struct fuse_conn *fc;
32447 int err; 31588 int err;
32448 31589
32449diff -urNp linux-2.6.38.3/fs/fuse/cuse.c linux-2.6.38.3/fs/fuse/cuse.c 31590diff -urNp linux-2.6.38.2/fs/fuse/cuse.c linux-2.6.38.2/fs/fuse/cuse.c
32450--- linux-2.6.38.3/fs/fuse/cuse.c 2011-03-14 21:20:32.000000000 -0400 31591--- linux-2.6.38.2/fs/fuse/cuse.c 2011-03-14 21:20:32.000000000 -0400
32451+++ linux-2.6.38.3/fs/fuse/cuse.c 2011-04-17 15:57:32.000000000 -0400 31592+++ linux-2.6.38.2/fs/fuse/cuse.c 2011-03-21 18:31:35.000000000 -0400
32452@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i 31593@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i
32453 return rc; 31594 return rc;
32454 } 31595 }
@@ -32483,9 +31624,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/cuse.c linux-2.6.38.3/fs/fuse/cuse.c
32483 cuse_class = class_create(THIS_MODULE, "cuse"); 31624 cuse_class = class_create(THIS_MODULE, "cuse");
32484 if (IS_ERR(cuse_class)) 31625 if (IS_ERR(cuse_class))
32485 return PTR_ERR(cuse_class); 31626 return PTR_ERR(cuse_class);
32486diff -urNp linux-2.6.38.3/fs/fuse/dev.c linux-2.6.38.3/fs/fuse/dev.c 31627diff -urNp linux-2.6.38.2/fs/fuse/dev.c linux-2.6.38.2/fs/fuse/dev.c
32487--- linux-2.6.38.3/fs/fuse/dev.c 2011-03-14 21:20:32.000000000 -0400 31628--- linux-2.6.38.2/fs/fuse/dev.c 2011-03-14 21:20:32.000000000 -0400
32488+++ linux-2.6.38.3/fs/fuse/dev.c 2011-04-17 15:57:32.000000000 -0400 31629+++ linux-2.6.38.2/fs/fuse/dev.c 2011-03-21 18:31:35.000000000 -0400
32489@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f 31630@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f
32490 return err; 31631 return err;
32491 } 31632 }
@@ -32567,9 +31708,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/dev.c linux-2.6.38.3/fs/fuse/dev.c
32567 const struct file_operations fuse_dev_operations = { 31708 const struct file_operations fuse_dev_operations = {
32568 .owner = THIS_MODULE, 31709 .owner = THIS_MODULE,
32569 .llseek = no_llseek, 31710 .llseek = no_llseek,
32570diff -urNp linux-2.6.38.3/fs/fuse/dir.c linux-2.6.38.3/fs/fuse/dir.c 31711diff -urNp linux-2.6.38.2/fs/fuse/dir.c linux-2.6.38.2/fs/fuse/dir.c
32571--- linux-2.6.38.3/fs/fuse/dir.c 2011-03-14 21:20:32.000000000 -0400 31712--- linux-2.6.38.2/fs/fuse/dir.c 2011-03-14 21:20:32.000000000 -0400
32572+++ linux-2.6.38.3/fs/fuse/dir.c 2011-04-17 15:57:32.000000000 -0400 31713+++ linux-2.6.38.2/fs/fuse/dir.c 2011-03-21 18:31:35.000000000 -0400
32573@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de 31714@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de
32574 return link; 31715 return link;
32575 } 31716 }
@@ -32579,9 +31720,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/dir.c linux-2.6.38.3/fs/fuse/dir.c
32579 { 31720 {
32580 if (!IS_ERR(link)) 31721 if (!IS_ERR(link))
32581 free_page((unsigned long) link); 31722 free_page((unsigned long) link);
32582diff -urNp linux-2.6.38.3/fs/fuse/fuse_i.h linux-2.6.38.3/fs/fuse/fuse_i.h 31723diff -urNp linux-2.6.38.2/fs/fuse/fuse_i.h linux-2.6.38.2/fs/fuse/fuse_i.h
32583--- linux-2.6.38.3/fs/fuse/fuse_i.h 2011-03-14 21:20:32.000000000 -0400 31724--- linux-2.6.38.2/fs/fuse/fuse_i.h 2011-03-14 21:20:32.000000000 -0400
32584+++ linux-2.6.38.3/fs/fuse/fuse_i.h 2011-04-17 15:57:32.000000000 -0400 31725+++ linux-2.6.38.2/fs/fuse/fuse_i.h 2011-03-21 18:31:35.000000000 -0400
32585@@ -541,6 +541,16 @@ extern const struct file_operations fuse 31726@@ -541,6 +541,16 @@ extern const struct file_operations fuse
32586 31727
32587 extern const struct dentry_operations fuse_dentry_operations; 31728 extern const struct dentry_operations fuse_dentry_operations;
@@ -32599,9 +31740,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/fuse_i.h linux-2.6.38.3/fs/fuse/fuse_i.h
32599 /** 31740 /**
32600 * Inode to nodeid comparison. 31741 * Inode to nodeid comparison.
32601 */ 31742 */
32602diff -urNp linux-2.6.38.3/fs/hfs/inode.c linux-2.6.38.3/fs/hfs/inode.c 31743diff -urNp linux-2.6.38.2/fs/hfs/inode.c linux-2.6.38.2/fs/hfs/inode.c
32603--- linux-2.6.38.3/fs/hfs/inode.c 2011-03-14 21:20:32.000000000 -0400 31744--- linux-2.6.38.2/fs/hfs/inode.c 2011-03-14 21:20:32.000000000 -0400
32604+++ linux-2.6.38.3/fs/hfs/inode.c 2011-04-17 15:57:32.000000000 -0400 31745+++ linux-2.6.38.2/fs/hfs/inode.c 2011-03-21 18:31:35.000000000 -0400
32605@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode, 31746@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode,
32606 31747
32607 if (S_ISDIR(main_inode->i_mode)) { 31748 if (S_ISDIR(main_inode->i_mode)) {
@@ -32620,9 +31761,9 @@ diff -urNp linux-2.6.38.3/fs/hfs/inode.c linux-2.6.38.3/fs/hfs/inode.c
32620 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, 31761 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset,
32621 sizeof(struct hfs_cat_file)); 31762 sizeof(struct hfs_cat_file));
32622 if (rec.type != HFS_CDR_FIL || 31763 if (rec.type != HFS_CDR_FIL ||
32623diff -urNp linux-2.6.38.3/fs/hfsplus/inode.c linux-2.6.38.3/fs/hfsplus/inode.c 31764diff -urNp linux-2.6.38.2/fs/hfsplus/inode.c linux-2.6.38.2/fs/hfsplus/inode.c
32624--- linux-2.6.38.3/fs/hfsplus/inode.c 2011-03-14 21:20:32.000000000 -0400 31765--- linux-2.6.38.2/fs/hfsplus/inode.c 2011-03-14 21:20:32.000000000 -0400
32625+++ linux-2.6.38.3/fs/hfsplus/inode.c 2011-04-17 15:57:32.000000000 -0400 31766+++ linux-2.6.38.2/fs/hfsplus/inode.c 2011-03-21 18:31:35.000000000 -0400
32626@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode 31767@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode
32627 struct hfsplus_cat_folder *folder = &entry.folder; 31768 struct hfsplus_cat_folder *folder = &entry.folder;
32628 31769
@@ -32659,9 +31800,9 @@ diff -urNp linux-2.6.38.3/fs/hfsplus/inode.c linux-2.6.38.3/fs/hfsplus/inode.c
32659 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, 31800 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
32660 sizeof(struct hfsplus_cat_file)); 31801 sizeof(struct hfsplus_cat_file));
32661 hfsplus_inode_write_fork(inode, &file->data_fork); 31802 hfsplus_inode_write_fork(inode, &file->data_fork);
32662diff -urNp linux-2.6.38.3/fs/hugetlbfs/inode.c linux-2.6.38.3/fs/hugetlbfs/inode.c 31803diff -urNp linux-2.6.38.2/fs/hugetlbfs/inode.c linux-2.6.38.2/fs/hugetlbfs/inode.c
32663--- linux-2.6.38.3/fs/hugetlbfs/inode.c 2011-03-14 21:20:32.000000000 -0400 31804--- linux-2.6.38.2/fs/hugetlbfs/inode.c 2011-03-14 21:20:32.000000000 -0400
32664+++ linux-2.6.38.3/fs/hugetlbfs/inode.c 2011-04-17 15:57:32.000000000 -0400 31805+++ linux-2.6.38.2/fs/hugetlbfs/inode.c 2011-03-21 18:31:35.000000000 -0400
32665@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs 31806@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs
32666 .kill_sb = kill_litter_super, 31807 .kill_sb = kill_litter_super,
32667 }; 31808 };
@@ -32671,9 +31812,9 @@ diff -urNp linux-2.6.38.3/fs/hugetlbfs/inode.c linux-2.6.38.3/fs/hugetlbfs/inode
32671 31812
32672 static int can_do_hugetlb_shm(void) 31813 static int can_do_hugetlb_shm(void)
32673 { 31814 {
32674diff -urNp linux-2.6.38.3/fs/jffs2/debug.h linux-2.6.38.3/fs/jffs2/debug.h 31815diff -urNp linux-2.6.38.2/fs/jffs2/debug.h linux-2.6.38.2/fs/jffs2/debug.h
32675--- linux-2.6.38.3/fs/jffs2/debug.h 2011-03-14 21:20:32.000000000 -0400 31816--- linux-2.6.38.2/fs/jffs2/debug.h 2011-03-14 21:20:32.000000000 -0400
32676+++ linux-2.6.38.3/fs/jffs2/debug.h 2011-04-17 15:57:32.000000000 -0400 31817+++ linux-2.6.38.2/fs/jffs2/debug.h 2011-03-21 18:31:35.000000000 -0400
32677@@ -53,13 +53,13 @@ 31818@@ -53,13 +53,13 @@
32678 #if CONFIG_JFFS2_FS_DEBUG > 0 31819 #if CONFIG_JFFS2_FS_DEBUG > 0
32679 #define D1(x) x 31820 #define D1(x) x
@@ -32775,9 +31916,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/debug.h linux-2.6.38.3/fs/jffs2/debug.h
32775 #endif 31916 #endif
32776 31917
32777 /* "Sanity" checks */ 31918 /* "Sanity" checks */
32778diff -urNp linux-2.6.38.3/fs/jffs2/erase.c linux-2.6.38.3/fs/jffs2/erase.c 31919diff -urNp linux-2.6.38.2/fs/jffs2/erase.c linux-2.6.38.2/fs/jffs2/erase.c
32779--- linux-2.6.38.3/fs/jffs2/erase.c 2011-03-14 21:20:32.000000000 -0400 31920--- linux-2.6.38.2/fs/jffs2/erase.c 2011-03-14 21:20:32.000000000 -0400
32780+++ linux-2.6.38.3/fs/jffs2/erase.c 2011-04-17 15:57:32.000000000 -0400 31921+++ linux-2.6.38.2/fs/jffs2/erase.c 2011-03-21 18:31:35.000000000 -0400
32781@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru 31922@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru
32782 struct jffs2_unknown_node marker = { 31923 struct jffs2_unknown_node marker = {
32783 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), 31924 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -32788,9 +31929,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/erase.c linux-2.6.38.3/fs/jffs2/erase.c
32788 }; 31929 };
32789 31930
32790 jffs2_prealloc_raw_node_refs(c, jeb, 1); 31931 jffs2_prealloc_raw_node_refs(c, jeb, 1);
32791diff -urNp linux-2.6.38.3/fs/jffs2/summary.h linux-2.6.38.3/fs/jffs2/summary.h 31932diff -urNp linux-2.6.38.2/fs/jffs2/summary.h linux-2.6.38.2/fs/jffs2/summary.h
32792--- linux-2.6.38.3/fs/jffs2/summary.h 2011-03-14 21:20:32.000000000 -0400 31933--- linux-2.6.38.2/fs/jffs2/summary.h 2011-03-14 21:20:32.000000000 -0400
32793+++ linux-2.6.38.3/fs/jffs2/summary.h 2011-04-17 15:57:32.000000000 -0400 31934+++ linux-2.6.38.2/fs/jffs2/summary.h 2011-03-21 18:31:35.000000000 -0400
32794@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_ 31935@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_
32795 31936
32796 #define jffs2_sum_active() (0) 31937 #define jffs2_sum_active() (0)
@@ -32819,9 +31960,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/summary.h linux-2.6.38.3/fs/jffs2/summary.h
32819 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0) 31960 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0)
32820 31961
32821 #endif /* CONFIG_JFFS2_SUMMARY */ 31962 #endif /* CONFIG_JFFS2_SUMMARY */
32822diff -urNp linux-2.6.38.3/fs/jffs2/wbuf.c linux-2.6.38.3/fs/jffs2/wbuf.c 31963diff -urNp linux-2.6.38.2/fs/jffs2/wbuf.c linux-2.6.38.2/fs/jffs2/wbuf.c
32823--- linux-2.6.38.3/fs/jffs2/wbuf.c 2011-03-14 21:20:32.000000000 -0400 31964--- linux-2.6.38.2/fs/jffs2/wbuf.c 2011-03-14 21:20:32.000000000 -0400
32824+++ linux-2.6.38.3/fs/jffs2/wbuf.c 2011-04-17 15:57:32.000000000 -0400 31965+++ linux-2.6.38.2/fs/jffs2/wbuf.c 2011-03-21 18:31:35.000000000 -0400
32825@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o 31966@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o
32826 { 31967 {
32827 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), 31968 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -32832,9 +31973,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/wbuf.c linux-2.6.38.3/fs/jffs2/wbuf.c
32832 }; 31973 };
32833 31974
32834 /* 31975 /*
32835diff -urNp linux-2.6.38.3/fs/Kconfig.binfmt linux-2.6.38.3/fs/Kconfig.binfmt 31976diff -urNp linux-2.6.38.2/fs/Kconfig.binfmt linux-2.6.38.2/fs/Kconfig.binfmt
32836--- linux-2.6.38.3/fs/Kconfig.binfmt 2011-03-14 21:20:32.000000000 -0400 31977--- linux-2.6.38.2/fs/Kconfig.binfmt 2011-03-14 21:20:32.000000000 -0400
32837+++ linux-2.6.38.3/fs/Kconfig.binfmt 2011-04-17 15:57:32.000000000 -0400 31978+++ linux-2.6.38.2/fs/Kconfig.binfmt 2011-03-21 18:31:35.000000000 -0400
32838@@ -86,7 +86,7 @@ config HAVE_AOUT 31979@@ -86,7 +86,7 @@ config HAVE_AOUT
32839 31980
32840 config BINFMT_AOUT 31981 config BINFMT_AOUT
@@ -32844,35 +31985,9 @@ diff -urNp linux-2.6.38.3/fs/Kconfig.binfmt linux-2.6.38.3/fs/Kconfig.binfmt
32844 ---help--- 31985 ---help---
32845 A.out (Assembler.OUTput) is a set of formats for libraries and 31986 A.out (Assembler.OUTput) is a set of formats for libraries and
32846 executables used in the earliest versions of UNIX. Linux used 31987 executables used in the earliest versions of UNIX. Linux used
32847diff -urNp linux-2.6.38.3/fs/libfs.c linux-2.6.38.3/fs/libfs.c 31988diff -urNp linux-2.6.38.2/fs/lockd/svc.c linux-2.6.38.2/fs/lockd/svc.c
32848--- linux-2.6.38.3/fs/libfs.c 2011-03-14 21:20:32.000000000 -0400 31989--- linux-2.6.38.2/fs/lockd/svc.c 2011-03-14 21:20:32.000000000 -0400
32849+++ linux-2.6.38.3/fs/libfs.c 2011-04-17 15:57:32.000000000 -0400 31990+++ linux-2.6.38.2/fs/lockd/svc.c 2011-03-21 18:31:35.000000000 -0400
32850@@ -138,6 +138,8 @@ int dcache_readdir(struct file * filp, v
32851 struct dentry *dentry = filp->f_path.dentry;
32852 struct dentry *cursor = filp->private_data;
32853 struct list_head *p, *q = &cursor->d_u.d_child;
32854+ char d_name[DNAME_INLINE_LEN];
32855+ const char *name;
32856 ino_t ino;
32857 int i = filp->f_pos;
32858
32859@@ -172,7 +174,12 @@ int dcache_readdir(struct file * filp, v
32860
32861 spin_unlock(&next->d_lock);
32862 spin_unlock(&dentry->d_lock);
32863- if (filldir(dirent, next->d_name.name,
32864+ if (next->d_name.len < DNAME_INLINE_LEN) {
32865+ memcpy(d_name, next->d_name.name, next->d_name.len);
32866+ name = d_name;
32867+ } else
32868+ name = next->d_name.name;
32869+ if (filldir(dirent, name,
32870 next->d_name.len, filp->f_pos,
32871 next->d_inode->i_ino,
32872 dt_type(next->d_inode)) < 0)
32873diff -urNp linux-2.6.38.3/fs/lockd/svc.c linux-2.6.38.3/fs/lockd/svc.c
32874--- linux-2.6.38.3/fs/lockd/svc.c 2011-03-14 21:20:32.000000000 -0400
32875+++ linux-2.6.38.3/fs/lockd/svc.c 2011-04-17 15:57:32.000000000 -0400
32876@@ -41,7 +41,7 @@ 31991@@ -41,7 +41,7 @@
32877 31992
32878 static struct svc_program nlmsvc_program; 31993 static struct svc_program nlmsvc_program;
@@ -32882,9 +31997,9 @@ diff -urNp linux-2.6.38.3/fs/lockd/svc.c linux-2.6.38.3/fs/lockd/svc.c
32882 EXPORT_SYMBOL_GPL(nlmsvc_ops); 31997 EXPORT_SYMBOL_GPL(nlmsvc_ops);
32883 31998
32884 static DEFINE_MUTEX(nlmsvc_mutex); 31999 static DEFINE_MUTEX(nlmsvc_mutex);
32885diff -urNp linux-2.6.38.3/fs/locks.c linux-2.6.38.3/fs/locks.c 32000diff -urNp linux-2.6.38.2/fs/locks.c linux-2.6.38.2/fs/locks.c
32886--- linux-2.6.38.3/fs/locks.c 2011-03-14 21:20:32.000000000 -0400 32001--- linux-2.6.38.2/fs/locks.c 2011-03-14 21:20:32.000000000 -0400
32887+++ linux-2.6.38.3/fs/locks.c 2011-04-17 15:57:32.000000000 -0400 32002+++ linux-2.6.38.2/fs/locks.c 2011-03-21 18:31:35.000000000 -0400
32888@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil 32003@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil
32889 return; 32004 return;
32890 32005
@@ -32906,9 +32021,9 @@ diff -urNp linux-2.6.38.3/fs/locks.c linux-2.6.38.3/fs/locks.c
32906 } 32021 }
32907 32022
32908 lock_flocks(); 32023 lock_flocks();
32909diff -urNp linux-2.6.38.3/fs/namei.c linux-2.6.38.3/fs/namei.c 32024diff -urNp linux-2.6.38.2/fs/namei.c linux-2.6.38.2/fs/namei.c
32910--- linux-2.6.38.3/fs/namei.c 2011-03-14 21:20:32.000000000 -0400 32025--- linux-2.6.38.2/fs/namei.c 2011-03-14 21:20:32.000000000 -0400
32911+++ linux-2.6.38.3/fs/namei.c 2011-04-17 15:57:32.000000000 -0400 32026+++ linux-2.6.38.2/fs/namei.c 2011-03-28 16:59:25.000000000 -0400
32912@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino 32027@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino
32913 return ret; 32028 return ret;
32914 32029
@@ -33367,34 +32482,9 @@ diff -urNp linux-2.6.38.3/fs/namei.c linux-2.6.38.3/fs/namei.c
33367 exit6: 32482 exit6:
33368 mnt_drop_write(oldnd.path.mnt); 32483 mnt_drop_write(oldnd.path.mnt);
33369 exit5: 32484 exit5:
33370@@ -3437,6 +3598,8 @@ SYSCALL_DEFINE2(rename, const char __use 32485diff -urNp linux-2.6.38.2/fs/namespace.c linux-2.6.38.2/fs/namespace.c
33371 32486--- linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:40.000000000 -0400
33372 int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link) 32487+++ linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:53.000000000 -0400
33373 {
33374+ char tmpbuf[64];
33375+ const char *newlink;
33376 int len;
33377
33378 len = PTR_ERR(link);
33379@@ -3446,7 +3609,14 @@ int vfs_readlink(struct dentry *dentry,
33380 len = strlen(link);
33381 if (len > (unsigned) buflen)
33382 len = buflen;
33383- if (copy_to_user(buffer, link, len))
33384+
33385+ if (len < sizeof(tmpbuf)) {
33386+ memcpy(tmpbuf, link, len);
33387+ newlink = tmpbuf;
33388+ } else
33389+ newlink = link;
33390+
33391+ if (copy_to_user(buffer, newlink, len))
33392 len = -EFAULT;
33393 out:
33394 return len;
33395diff -urNp linux-2.6.38.3/fs/namespace.c linux-2.6.38.3/fs/namespace.c
33396--- linux-2.6.38.3/fs/namespace.c 2011-04-18 17:27:16.000000000 -0400
33397+++ linux-2.6.38.3/fs/namespace.c 2011-04-17 15:57:32.000000000 -0400
33398@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn 32488@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn
33399 if (!(sb->s_flags & MS_RDONLY)) 32489 if (!(sb->s_flags & MS_RDONLY))
33400 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); 32490 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
@@ -33455,9 +32545,9 @@ diff -urNp linux-2.6.38.3/fs/namespace.c linux-2.6.38.3/fs/namespace.c
33455 get_fs_root(current->fs, &root); 32545 get_fs_root(current->fs, &root);
33456 down_write(&namespace_sem); 32546 down_write(&namespace_sem);
33457 mutex_lock(&old.dentry->d_inode->i_mutex); 32547 mutex_lock(&old.dentry->d_inode->i_mutex);
33458diff -urNp linux-2.6.38.3/fs/nfs/inode.c linux-2.6.38.3/fs/nfs/inode.c 32548diff -urNp linux-2.6.38.2/fs/nfs/inode.c linux-2.6.38.2/fs/nfs/inode.c
33459--- linux-2.6.38.3/fs/nfs/inode.c 2011-03-14 21:20:32.000000000 -0400 32549--- linux-2.6.38.2/fs/nfs/inode.c 2011-03-14 21:20:32.000000000 -0400
33460+++ linux-2.6.38.3/fs/nfs/inode.c 2011-04-17 15:57:32.000000000 -0400 32550+++ linux-2.6.38.2/fs/nfs/inode.c 2011-03-21 18:31:35.000000000 -0400
33461@@ -998,16 +998,16 @@ static int nfs_size_need_update(const st 32551@@ -998,16 +998,16 @@ static int nfs_size_need_update(const st
33462 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode); 32552 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
33463 } 32553 }
@@ -33478,9 +32568,9 @@ diff -urNp linux-2.6.38.3/fs/nfs/inode.c linux-2.6.38.3/fs/nfs/inode.c
33478 } 32568 }
33479 32569
33480 void nfs_fattr_init(struct nfs_fattr *fattr) 32570 void nfs_fattr_init(struct nfs_fattr *fattr)
33481diff -urNp linux-2.6.38.3/fs/nfs/nfs4proc.c linux-2.6.38.3/fs/nfs/nfs4proc.c 32571diff -urNp linux-2.6.38.2/fs/nfs/nfs4proc.c linux-2.6.38.2/fs/nfs/nfs4proc.c
33482--- linux-2.6.38.3/fs/nfs/nfs4proc.c 2011-03-14 21:20:32.000000000 -0400 32572--- linux-2.6.38.2/fs/nfs/nfs4proc.c 2011-03-14 21:20:32.000000000 -0400
33483+++ linux-2.6.38.3/fs/nfs/nfs4proc.c 2011-04-17 15:57:32.000000000 -0400 32573+++ linux-2.6.38.2/fs/nfs/nfs4proc.c 2011-03-21 18:31:35.000000000 -0400
33484@@ -1198,7 +1198,7 @@ static int _nfs4_do_open_reclaim(struct 32574@@ -1198,7 +1198,7 @@ static int _nfs4_do_open_reclaim(struct
33485 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state) 32575 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state)
33486 { 32576 {
@@ -33751,10 +32841,10 @@ diff -urNp linux-2.6.38.3/fs/nfs/nfs4proc.c linux-2.6.38.3/fs/nfs/nfs4proc.c
33751 int err; 32841 int err;
33752 32842
33753 err = nfs4_set_lock_state(state, fl); 32843 err = nfs4_set_lock_state(state, fl);
33754diff -urNp linux-2.6.38.3/fs/nfsd/lockd.c linux-2.6.38.3/fs/nfsd/lockd.c 32844diff -urNp linux-2.6.38.2/fs/nfsd/lockd.c linux-2.6.38.2/fs/nfsd/lockd.c
33755--- linux-2.6.38.3/fs/nfsd/lockd.c 2011-04-18 17:27:18.000000000 -0400 32845--- linux-2.6.38.2/fs/nfsd/lockd.c 2011-03-14 21:20:32.000000000 -0400
33756+++ linux-2.6.38.3/fs/nfsd/lockd.c 2011-04-17 16:53:48.000000000 -0400 32846+++ linux-2.6.38.2/fs/nfsd/lockd.c 2011-03-21 18:31:35.000000000 -0400
33757@@ -60,7 +60,7 @@ nlm_fclose(struct file *filp) 32847@@ -61,7 +61,7 @@ nlm_fclose(struct file *filp)
33758 fput(filp); 32848 fput(filp);
33759 } 32849 }
33760 32850
@@ -33763,9 +32853,9 @@ diff -urNp linux-2.6.38.3/fs/nfsd/lockd.c linux-2.6.38.3/fs/nfsd/lockd.c
33763 .fopen = nlm_fopen, /* open file for locking */ 32853 .fopen = nlm_fopen, /* open file for locking */
33764 .fclose = nlm_fclose, /* close file */ 32854 .fclose = nlm_fclose, /* close file */
33765 }; 32855 };
33766diff -urNp linux-2.6.38.3/fs/nfsd/nfsctl.c linux-2.6.38.3/fs/nfsd/nfsctl.c 32856diff -urNp linux-2.6.38.2/fs/nfsd/nfsctl.c linux-2.6.38.2/fs/nfsd/nfsctl.c
33767--- linux-2.6.38.3/fs/nfsd/nfsctl.c 2011-03-14 21:20:32.000000000 -0400 32857--- linux-2.6.38.2/fs/nfsd/nfsctl.c 2011-03-14 21:20:32.000000000 -0400
33768+++ linux-2.6.38.3/fs/nfsd/nfsctl.c 2011-04-17 15:57:32.000000000 -0400 32858+++ linux-2.6.38.2/fs/nfsd/nfsctl.c 2011-03-21 18:31:35.000000000 -0400
33769@@ -180,7 +180,7 @@ static int export_features_open(struct i 32859@@ -180,7 +180,7 @@ static int export_features_open(struct i
33770 return single_open(file, export_features_show, NULL); 32860 return single_open(file, export_features_show, NULL);
33771 } 32861 }
@@ -33775,9 +32865,9 @@ diff -urNp linux-2.6.38.3/fs/nfsd/nfsctl.c linux-2.6.38.3/fs/nfsd/nfsctl.c
33775 .open = export_features_open, 32865 .open = export_features_open,
33776 .read = seq_read, 32866 .read = seq_read,
33777 .llseek = seq_lseek, 32867 .llseek = seq_lseek,
33778diff -urNp linux-2.6.38.3/fs/nfsd/vfs.c linux-2.6.38.3/fs/nfsd/vfs.c 32868diff -urNp linux-2.6.38.2/fs/nfsd/vfs.c linux-2.6.38.2/fs/nfsd/vfs.c
33779--- linux-2.6.38.3/fs/nfsd/vfs.c 2011-03-14 21:20:32.000000000 -0400 32869--- linux-2.6.38.2/fs/nfsd/vfs.c 2011-03-14 21:20:32.000000000 -0400
33780+++ linux-2.6.38.3/fs/nfsd/vfs.c 2011-04-17 15:57:32.000000000 -0400 32870+++ linux-2.6.38.2/fs/nfsd/vfs.c 2011-03-21 18:31:35.000000000 -0400
33781@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st 32871@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
33782 } else { 32872 } else {
33783 oldfs = get_fs(); 32873 oldfs = get_fs();
@@ -33805,9 +32895,9 @@ diff -urNp linux-2.6.38.3/fs/nfsd/vfs.c linux-2.6.38.3/fs/nfsd/vfs.c
33805 set_fs(oldfs); 32895 set_fs(oldfs);
33806 32896
33807 if (host_err < 0) 32897 if (host_err < 0)
33808diff -urNp linux-2.6.38.3/fs/nls/nls_base.c linux-2.6.38.3/fs/nls/nls_base.c 32898diff -urNp linux-2.6.38.2/fs/nls/nls_base.c linux-2.6.38.2/fs/nls/nls_base.c
33809--- linux-2.6.38.3/fs/nls/nls_base.c 2011-03-14 21:20:32.000000000 -0400 32899--- linux-2.6.38.2/fs/nls/nls_base.c 2011-03-14 21:20:32.000000000 -0400
33810+++ linux-2.6.38.3/fs/nls/nls_base.c 2011-04-17 15:57:32.000000000 -0400 32900+++ linux-2.6.38.2/fs/nls/nls_base.c 2011-03-21 18:31:35.000000000 -0400
33811@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl 32901@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl
33812 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */}, 32902 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */},
33813 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */}, 32903 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */},
@@ -33817,21 +32907,9 @@ diff -urNp linux-2.6.38.3/fs/nls/nls_base.c linux-2.6.38.3/fs/nls/nls_base.c
33817 }; 32907 };
33818 32908
33819 #define UNICODE_MAX 0x0010ffff 32909 #define UNICODE_MAX 0x0010ffff
33820diff -urNp linux-2.6.38.3/fs/notify/dnotify/dnotify.c linux-2.6.38.3/fs/notify/dnotify/dnotify.c 32910diff -urNp linux-2.6.38.2/fs/ntfs/dir.c linux-2.6.38.2/fs/ntfs/dir.c
33821--- linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-03-14 21:20:32.000000000 -0400 32911--- linux-2.6.38.2/fs/ntfs/dir.c 2011-03-14 21:20:32.000000000 -0400
33822+++ linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-04-17 15:57:32.000000000 -0400 32912+++ linux-2.6.38.2/fs/ntfs/dir.c 2011-03-21 18:31:35.000000000 -0400
33823@@ -151,7 +151,7 @@ static void dnotify_free_mark(struct fsn
33824 kmem_cache_free(dnotify_mark_cache, dn_mark);
33825 }
33826
33827-static struct fsnotify_ops dnotify_fsnotify_ops = {
33828+static const struct fsnotify_ops dnotify_fsnotify_ops = {
33829 .handle_event = dnotify_handle_event,
33830 .should_send_event = dnotify_should_send_event,
33831 .free_group_priv = NULL,
33832diff -urNp linux-2.6.38.3/fs/ntfs/dir.c linux-2.6.38.3/fs/ntfs/dir.c
33833--- linux-2.6.38.3/fs/ntfs/dir.c 2011-03-14 21:20:32.000000000 -0400
33834+++ linux-2.6.38.3/fs/ntfs/dir.c 2011-04-17 15:57:32.000000000 -0400
33835@@ -1329,7 +1329,7 @@ find_next_index_buffer: 32913@@ -1329,7 +1329,7 @@ find_next_index_buffer:
33836 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK & 32914 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
33837 ~(s64)(ndir->itype.index.block_size - 1))); 32915 ~(s64)(ndir->itype.index.block_size - 1)));
@@ -33841,9 +32919,9 @@ diff -urNp linux-2.6.38.3/fs/ntfs/dir.c linux-2.6.38.3/fs/ntfs/dir.c
33841 ntfs_error(sb, "Out of bounds check failed. Corrupt directory " 32919 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
33842 "inode 0x%lx or driver bug.", vdir->i_ino); 32920 "inode 0x%lx or driver bug.", vdir->i_ino);
33843 goto err_out; 32921 goto err_out;
33844diff -urNp linux-2.6.38.3/fs/ntfs/file.c linux-2.6.38.3/fs/ntfs/file.c 32922diff -urNp linux-2.6.38.2/fs/ntfs/file.c linux-2.6.38.2/fs/ntfs/file.c
33845--- linux-2.6.38.3/fs/ntfs/file.c 2011-03-14 21:20:32.000000000 -0400 32923--- linux-2.6.38.2/fs/ntfs/file.c 2011-03-14 21:20:32.000000000 -0400
33846+++ linux-2.6.38.3/fs/ntfs/file.c 2011-04-17 15:57:32.000000000 -0400 32924+++ linux-2.6.38.2/fs/ntfs/file.c 2011-03-21 18:31:35.000000000 -0400
33847@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_ 32925@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_
33848 #endif /* NTFS_RW */ 32926 #endif /* NTFS_RW */
33849 }; 32927 };
@@ -33853,9 +32931,9 @@ diff -urNp linux-2.6.38.3/fs/ntfs/file.c linux-2.6.38.3/fs/ntfs/file.c
33853 32931
33854-const struct inode_operations ntfs_empty_inode_ops = {}; 32932-const struct inode_operations ntfs_empty_inode_ops = {};
33855+const struct inode_operations ntfs_empty_inode_ops __read_only; 32933+const struct inode_operations ntfs_empty_inode_ops __read_only;
33856diff -urNp linux-2.6.38.3/fs/ocfs2/localalloc.c linux-2.6.38.3/fs/ocfs2/localalloc.c 32934diff -urNp linux-2.6.38.2/fs/ocfs2/localalloc.c linux-2.6.38.2/fs/ocfs2/localalloc.c
33857--- linux-2.6.38.3/fs/ocfs2/localalloc.c 2011-03-14 21:20:32.000000000 -0400 32935--- linux-2.6.38.2/fs/ocfs2/localalloc.c 2011-03-14 21:20:32.000000000 -0400
33858+++ linux-2.6.38.3/fs/ocfs2/localalloc.c 2011-04-17 15:57:32.000000000 -0400 32936+++ linux-2.6.38.2/fs/ocfs2/localalloc.c 2011-03-21 18:31:35.000000000 -0400
33859@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo 32937@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo
33860 goto bail; 32938 goto bail;
33861 } 32939 }
@@ -33865,9 +32943,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/localalloc.c linux-2.6.38.3/fs/ocfs2/localall
33865 32943
33866 bail: 32944 bail:
33867 if (handle) 32945 if (handle)
33868diff -urNp linux-2.6.38.3/fs/ocfs2/ocfs2.h linux-2.6.38.3/fs/ocfs2/ocfs2.h 32946diff -urNp linux-2.6.38.2/fs/ocfs2/ocfs2.h linux-2.6.38.2/fs/ocfs2/ocfs2.h
33869--- linux-2.6.38.3/fs/ocfs2/ocfs2.h 2011-03-14 21:20:32.000000000 -0400 32947--- linux-2.6.38.2/fs/ocfs2/ocfs2.h 2011-03-14 21:20:32.000000000 -0400
33870+++ linux-2.6.38.3/fs/ocfs2/ocfs2.h 2011-04-17 15:57:32.000000000 -0400 32948+++ linux-2.6.38.2/fs/ocfs2/ocfs2.h 2011-03-21 18:31:35.000000000 -0400
33871@@ -230,11 +230,11 @@ enum ocfs2_vol_state 32949@@ -230,11 +230,11 @@ enum ocfs2_vol_state
33872 32950
33873 struct ocfs2_alloc_stats 32951 struct ocfs2_alloc_stats
@@ -33885,9 +32963,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/ocfs2.h linux-2.6.38.3/fs/ocfs2/ocfs2.h
33885 }; 32963 };
33886 32964
33887 enum ocfs2_local_alloc_state 32965 enum ocfs2_local_alloc_state
33888diff -urNp linux-2.6.38.3/fs/ocfs2/suballoc.c linux-2.6.38.3/fs/ocfs2/suballoc.c 32966diff -urNp linux-2.6.38.2/fs/ocfs2/suballoc.c linux-2.6.38.2/fs/ocfs2/suballoc.c
33889--- linux-2.6.38.3/fs/ocfs2/suballoc.c 2011-03-14 21:20:32.000000000 -0400 32967--- linux-2.6.38.2/fs/ocfs2/suballoc.c 2011-03-14 21:20:32.000000000 -0400
33890+++ linux-2.6.38.3/fs/ocfs2/suballoc.c 2011-04-17 15:57:32.000000000 -0400 32968+++ linux-2.6.38.2/fs/ocfs2/suballoc.c 2011-03-21 18:31:35.000000000 -0400
33891@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s 32969@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s
33892 mlog_errno(status); 32970 mlog_errno(status);
33893 goto bail; 32971 goto bail;
@@ -33933,9 +33011,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/suballoc.c linux-2.6.38.3/fs/ocfs2/suballoc.c
33933 *num_clusters = res.sr_bits; 33011 *num_clusters = res.sr_bits;
33934 } 33012 }
33935 } 33013 }
33936diff -urNp linux-2.6.38.3/fs/ocfs2/super.c linux-2.6.38.3/fs/ocfs2/super.c 33014diff -urNp linux-2.6.38.2/fs/ocfs2/super.c linux-2.6.38.2/fs/ocfs2/super.c
33937--- linux-2.6.38.3/fs/ocfs2/super.c 2011-03-14 21:20:32.000000000 -0400 33015--- linux-2.6.38.2/fs/ocfs2/super.c 2011-03-14 21:20:32.000000000 -0400
33938+++ linux-2.6.38.3/fs/ocfs2/super.c 2011-04-17 15:57:32.000000000 -0400 33016+++ linux-2.6.38.2/fs/ocfs2/super.c 2011-03-21 18:31:35.000000000 -0400
33939@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s 33017@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s
33940 "%10s => GlobalAllocs: %d LocalAllocs: %d " 33018 "%10s => GlobalAllocs: %d LocalAllocs: %d "
33941 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n", 33019 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
@@ -33970,9 +33048,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/super.c linux-2.6.38.3/fs/ocfs2/super.c
33970 33048
33971 /* Copy the blockcheck stats from the superblock probe */ 33049 /* Copy the blockcheck stats from the superblock probe */
33972 osb->osb_ecc_stats = *stats; 33050 osb->osb_ecc_stats = *stats;
33973diff -urNp linux-2.6.38.3/fs/ocfs2/symlink.c linux-2.6.38.3/fs/ocfs2/symlink.c 33051diff -urNp linux-2.6.38.2/fs/ocfs2/symlink.c linux-2.6.38.2/fs/ocfs2/symlink.c
33974--- linux-2.6.38.3/fs/ocfs2/symlink.c 2011-03-14 21:20:32.000000000 -0400 33052--- linux-2.6.38.2/fs/ocfs2/symlink.c 2011-03-14 21:20:32.000000000 -0400
33975+++ linux-2.6.38.3/fs/ocfs2/symlink.c 2011-04-17 15:57:32.000000000 -0400 33053+++ linux-2.6.38.2/fs/ocfs2/symlink.c 2011-03-21 18:31:35.000000000 -0400
33976@@ -148,7 +148,7 @@ bail: 33054@@ -148,7 +148,7 @@ bail:
33977 33055
33978 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 33056 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -33982,9 +33060,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/symlink.c linux-2.6.38.3/fs/ocfs2/symlink.c
33982 if (!IS_ERR(link)) 33060 if (!IS_ERR(link))
33983 kfree(link); 33061 kfree(link);
33984 } 33062 }
33985diff -urNp linux-2.6.38.3/fs/open.c linux-2.6.38.3/fs/open.c 33063diff -urNp linux-2.6.38.2/fs/open.c linux-2.6.38.2/fs/open.c
33986--- linux-2.6.38.3/fs/open.c 2011-03-14 21:20:32.000000000 -0400 33064--- linux-2.6.38.2/fs/open.c 2011-03-14 21:20:32.000000000 -0400
33987+++ linux-2.6.38.3/fs/open.c 2011-04-17 15:57:32.000000000 -0400 33065+++ linux-2.6.38.2/fs/open.c 2011-03-21 18:31:35.000000000 -0400
33988@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _ 33066@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _
33989 error = locks_verify_truncate(inode, NULL, length); 33067 error = locks_verify_truncate(inode, NULL, length);
33990 if (!error) 33068 if (!error)
@@ -34122,33 +33200,10 @@ diff -urNp linux-2.6.38.3/fs/open.c linux-2.6.38.3/fs/open.c
34122 if (IS_ERR(f)) { 33200 if (IS_ERR(f)) {
34123 put_unused_fd(fd); 33201 put_unused_fd(fd);
34124 fd = PTR_ERR(f); 33202 fd = PTR_ERR(f);
34125diff -urNp linux-2.6.38.3/fs/partitions/ldm.c linux-2.6.38.3/fs/partitions/ldm.c 33203diff -urNp linux-2.6.38.2/fs/partitions/ldm.c linux-2.6.38.2/fs/partitions/ldm.c
34126--- linux-2.6.38.3/fs/partitions/ldm.c 2011-03-14 21:20:32.000000000 -0400 33204--- linux-2.6.38.2/fs/partitions/ldm.c 2011-03-14 21:20:32.000000000 -0400
34127+++ linux-2.6.38.3/fs/partitions/ldm.c 2011-04-18 19:31:25.000000000 -0400 33205+++ linux-2.6.38.2/fs/partitions/ldm.c 2011-03-21 18:31:35.000000000 -0400
34128@@ -1299,6 +1299,11 @@ static bool ldm_frag_add (const u8 *data 33206@@ -1313,7 +1313,7 @@ static bool ldm_frag_add (const u8 *data
34129
34130 BUG_ON (!data || !frags);
34131
34132+ if (size < 2 * VBLK_SIZE_HEAD) {
34133+ ldm_error("Value of size is to small.");
34134+ return false;
34135+ }
34136+
34137 group = get_unaligned_be32(data + 0x08);
34138 rec = get_unaligned_be16(data + 0x0C);
34139 num = get_unaligned_be16(data + 0x0E);
34140@@ -1307,13 +1312,18 @@ static bool ldm_frag_add (const u8 *data
34141 return false;
34142 }
34143
34144+ if (rec >= num) {
34145+ ldm_error("REC value (%d) exceeds NUM value (%d)", rec, num);
34146+ return false;
34147+ }
34148+
34149 list_for_each (item, frags) {
34150 f = list_entry (item, struct frag, list);
34151 if (f->group == group)
34152 goto found; 33207 goto found;
34153 } 33208 }
34154 33209
@@ -34157,23 +33212,9 @@ diff -urNp linux-2.6.38.3/fs/partitions/ldm.c linux-2.6.38.3/fs/partitions/ldm.c
34157 if (!f) { 33212 if (!f) {
34158 ldm_crit ("Out of memory."); 33213 ldm_crit ("Out of memory.");
34159 return false; 33214 return false;
34160@@ -1334,10 +1344,9 @@ found: 33215diff -urNp linux-2.6.38.2/fs/pipe.c linux-2.6.38.2/fs/pipe.c
34161 33216--- linux-2.6.38.2/fs/pipe.c 2011-03-14 21:20:32.000000000 -0400
34162 f->map |= (1 << rec); 33217+++ linux-2.6.38.2/fs/pipe.c 2011-03-21 18:31:35.000000000 -0400
34163
34164- if (num > 0) {
34165- data += VBLK_SIZE_HEAD;
34166- size -= VBLK_SIZE_HEAD;
34167- }
34168+ data += VBLK_SIZE_HEAD;
34169+ size -= VBLK_SIZE_HEAD;
34170+
34171 memcpy (f->data+rec*(size-VBLK_SIZE_HEAD)+VBLK_SIZE_HEAD, data, size);
34172
34173 return true;
34174diff -urNp linux-2.6.38.3/fs/pipe.c linux-2.6.38.3/fs/pipe.c
34175--- linux-2.6.38.3/fs/pipe.c 2011-03-14 21:20:32.000000000 -0400
34176+++ linux-2.6.38.3/fs/pipe.c 2011-04-17 15:57:32.000000000 -0400
34177@@ -420,9 +420,9 @@ redo: 33218@@ -420,9 +420,9 @@ redo:
34178 } 33219 }
34179 if (bufs) /* More to do? */ 33220 if (bufs) /* More to do? */
@@ -34297,9 +33338,9 @@ diff -urNp linux-2.6.38.3/fs/pipe.c linux-2.6.38.3/fs/pipe.c
34297 inode->i_fop = &rdwr_pipefifo_fops; 33338 inode->i_fop = &rdwr_pipefifo_fops;
34298 33339
34299 /* 33340 /*
34300diff -urNp linux-2.6.38.3/fs/proc/array.c linux-2.6.38.3/fs/proc/array.c 33341diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c
34301--- linux-2.6.38.3/fs/proc/array.c 2011-04-18 17:27:16.000000000 -0400 33342--- linux-2.6.38.2/fs/proc/array.c 2011-03-28 17:42:40.000000000 -0400
34302+++ linux-2.6.38.3/fs/proc/array.c 2011-04-17 15:57:32.000000000 -0400 33343+++ linux-2.6.38.2/fs/proc/array.c 2011-03-28 17:48:30.000000000 -0400
34303@@ -60,6 +60,7 @@ 33344@@ -60,6 +60,7 @@
34304 #include <linux/tty.h> 33345 #include <linux/tty.h>
34305 #include <linux/string.h> 33346 #include <linux/string.h>
@@ -34402,9 +33443,9 @@ diff -urNp linux-2.6.38.3/fs/proc/array.c linux-2.6.38.3/fs/proc/array.c
34402+ return sprintf(buffer, "%pI4\n", &task->signal->curr_ip); 33443+ return sprintf(buffer, "%pI4\n", &task->signal->curr_ip);
34403+} 33444+}
34404+#endif 33445+#endif
34405diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c 33446diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
34406--- linux-2.6.38.3/fs/proc/base.c 2011-03-14 21:20:32.000000000 -0400 33447--- linux-2.6.38.2/fs/proc/base.c 2011-03-14 21:20:32.000000000 -0400
34407+++ linux-2.6.38.3/fs/proc/base.c 2011-04-18 19:26:45.000000000 -0400 33448+++ linux-2.6.38.2/fs/proc/base.c 2011-03-26 11:59:10.000000000 -0400
34408@@ -104,6 +104,22 @@ struct pid_entry { 33449@@ -104,6 +104,22 @@ struct pid_entry {
34409 union proc_op op; 33450 union proc_op op;
34410 }; 33451 };
@@ -34770,14 +33811,10 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34770 put_task_struct(task); 33811 put_task_struct(task);
34771 out: 33812 out:
34772 return result; 33813 return result;
34773@@ -3066,11 +3189,21 @@ static int proc_pid_fill_cache(struct fi 33814@@ -3068,6 +3191,11 @@ int proc_pid_readdir(struct file * filp,
34774 /* for the /proc/ directory itself, after non-process stuff has been done */ 33815 {
34775 int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir) 33816 unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
34776 { 33817 struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode);
34777- unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
34778- struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode);
34779+ unsigned int nr;
34780+ struct task_struct *reaper;
34781+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP) 33818+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
34782+ const struct cred *tmpcred = current_cred(); 33819+ const struct cred *tmpcred = current_cred();
34783+ const struct cred *itercred; 33820+ const struct cred *itercred;
@@ -34786,15 +33823,7 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34786 struct tgid_iter iter; 33823 struct tgid_iter iter;
34787 struct pid_namespace *ns; 33824 struct pid_namespace *ns;
34788 33825
34789+ if (filp->f_pos >= PID_MAX_LIMIT + TGID_OFFSET) 33826@@ -3086,8 +3214,27 @@ int proc_pid_readdir(struct file * filp,
34790+ goto out_no_task;
34791+ nr = filp->f_pos - FIRST_PROCESS_ENTRY;
34792+
34793+ reaper = get_proc_task(filp->f_path.dentry->d_inode);
34794 if (!reaper)
34795 goto out_no_task;
34796
34797@@ -3086,8 +3219,27 @@ int proc_pid_readdir(struct file * filp,
34798 for (iter = next_tgid(ns, iter); 33827 for (iter = next_tgid(ns, iter);
34799 iter.task; 33828 iter.task;
34800 iter.tgid += 1, iter = next_tgid(ns, iter)) { 33829 iter.tgid += 1, iter = next_tgid(ns, iter)) {
@@ -34823,7 +33852,7 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34823 put_task_struct(iter.task); 33852 put_task_struct(iter.task);
34824 goto out; 33853 goto out;
34825 } 33854 }
34826@@ -3114,7 +3266,7 @@ static const struct pid_entry tid_base_s 33855@@ -3114,7 +3261,7 @@ static const struct pid_entry tid_base_s
34827 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), 33856 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
34828 #endif 33857 #endif
34829 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), 33858 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -34832,7 +33861,7 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34832 INF("syscall", S_IRUSR, proc_pid_syscall), 33861 INF("syscall", S_IRUSR, proc_pid_syscall),
34833 #endif 33862 #endif
34834 INF("cmdline", S_IRUGO, proc_pid_cmdline), 33863 INF("cmdline", S_IRUGO, proc_pid_cmdline),
34835@@ -3138,10 +3290,10 @@ static const struct pid_entry tid_base_s 33864@@ -3138,10 +3285,10 @@ static const struct pid_entry tid_base_s
34836 #ifdef CONFIG_SECURITY 33865 #ifdef CONFIG_SECURITY
34837 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), 33866 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
34838 #endif 33867 #endif
@@ -34845,9 +33874,9 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34845 ONE("stack", S_IRUSR, proc_pid_stack), 33874 ONE("stack", S_IRUSR, proc_pid_stack),
34846 #endif 33875 #endif
34847 #ifdef CONFIG_SCHEDSTATS 33876 #ifdef CONFIG_SCHEDSTATS
34848diff -urNp linux-2.6.38.3/fs/proc/cmdline.c linux-2.6.38.3/fs/proc/cmdline.c 33877diff -urNp linux-2.6.38.2/fs/proc/cmdline.c linux-2.6.38.2/fs/proc/cmdline.c
34849--- linux-2.6.38.3/fs/proc/cmdline.c 2011-03-14 21:20:32.000000000 -0400 33878--- linux-2.6.38.2/fs/proc/cmdline.c 2011-03-14 21:20:32.000000000 -0400
34850+++ linux-2.6.38.3/fs/proc/cmdline.c 2011-04-17 15:57:32.000000000 -0400 33879+++ linux-2.6.38.2/fs/proc/cmdline.c 2011-03-21 18:31:35.000000000 -0400
34851@@ -23,7 +23,11 @@ static const struct file_operations cmdl 33880@@ -23,7 +23,11 @@ static const struct file_operations cmdl
34852 33881
34853 static int __init proc_cmdline_init(void) 33882 static int __init proc_cmdline_init(void)
@@ -34860,9 +33889,9 @@ diff -urNp linux-2.6.38.3/fs/proc/cmdline.c linux-2.6.38.3/fs/proc/cmdline.c
34860 return 0; 33889 return 0;
34861 } 33890 }
34862 module_init(proc_cmdline_init); 33891 module_init(proc_cmdline_init);
34863diff -urNp linux-2.6.38.3/fs/proc/devices.c linux-2.6.38.3/fs/proc/devices.c 33892diff -urNp linux-2.6.38.2/fs/proc/devices.c linux-2.6.38.2/fs/proc/devices.c
34864--- linux-2.6.38.3/fs/proc/devices.c 2011-03-14 21:20:32.000000000 -0400 33893--- linux-2.6.38.2/fs/proc/devices.c 2011-03-14 21:20:32.000000000 -0400
34865+++ linux-2.6.38.3/fs/proc/devices.c 2011-04-17 15:57:32.000000000 -0400 33894+++ linux-2.6.38.2/fs/proc/devices.c 2011-03-21 18:31:35.000000000 -0400
34866@@ -64,7 +64,11 @@ static const struct file_operations proc 33895@@ -64,7 +64,11 @@ static const struct file_operations proc
34867 33896
34868 static int __init proc_devices_init(void) 33897 static int __init proc_devices_init(void)
@@ -34875,9 +33904,9 @@ diff -urNp linux-2.6.38.3/fs/proc/devices.c linux-2.6.38.3/fs/proc/devices.c
34875 return 0; 33904 return 0;
34876 } 33905 }
34877 module_init(proc_devices_init); 33906 module_init(proc_devices_init);
34878diff -urNp linux-2.6.38.3/fs/proc/inode.c linux-2.6.38.3/fs/proc/inode.c 33907diff -urNp linux-2.6.38.2/fs/proc/inode.c linux-2.6.38.2/fs/proc/inode.c
34879--- linux-2.6.38.3/fs/proc/inode.c 2011-03-14 21:20:32.000000000 -0400 33908--- linux-2.6.38.2/fs/proc/inode.c 2011-03-14 21:20:32.000000000 -0400
34880+++ linux-2.6.38.3/fs/proc/inode.c 2011-04-17 15:57:32.000000000 -0400 33909+++ linux-2.6.38.2/fs/proc/inode.c 2011-03-21 18:31:35.000000000 -0400
34881@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe 33910@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe
34882 if (de->mode) { 33911 if (de->mode) {
34883 inode->i_mode = de->mode; 33912 inode->i_mode = de->mode;
@@ -34890,9 +33919,9 @@ diff -urNp linux-2.6.38.3/fs/proc/inode.c linux-2.6.38.3/fs/proc/inode.c
34890 } 33919 }
34891 if (de->size) 33920 if (de->size)
34892 inode->i_size = de->size; 33921 inode->i_size = de->size;
34893diff -urNp linux-2.6.38.3/fs/proc/internal.h linux-2.6.38.3/fs/proc/internal.h 33922diff -urNp linux-2.6.38.2/fs/proc/internal.h linux-2.6.38.2/fs/proc/internal.h
34894--- linux-2.6.38.3/fs/proc/internal.h 2011-03-14 21:20:32.000000000 -0400 33923--- linux-2.6.38.2/fs/proc/internal.h 2011-03-14 21:20:32.000000000 -0400
34895+++ linux-2.6.38.3/fs/proc/internal.h 2011-04-17 15:57:32.000000000 -0400 33924+++ linux-2.6.38.2/fs/proc/internal.h 2011-03-21 18:31:35.000000000 -0400
34896@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi 33925@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi
34897 struct pid *pid, struct task_struct *task); 33926 struct pid *pid, struct task_struct *task);
34898 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, 33927 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
@@ -34903,9 +33932,9 @@ diff -urNp linux-2.6.38.3/fs/proc/internal.h linux-2.6.38.3/fs/proc/internal.h
34903 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); 33932 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
34904 33933
34905 extern const struct file_operations proc_maps_operations; 33934 extern const struct file_operations proc_maps_operations;
34906diff -urNp linux-2.6.38.3/fs/proc/Kconfig linux-2.6.38.3/fs/proc/Kconfig 33935diff -urNp linux-2.6.38.2/fs/proc/Kconfig linux-2.6.38.2/fs/proc/Kconfig
34907--- linux-2.6.38.3/fs/proc/Kconfig 2011-03-14 21:20:32.000000000 -0400 33936--- linux-2.6.38.2/fs/proc/Kconfig 2011-03-14 21:20:32.000000000 -0400
34908+++ linux-2.6.38.3/fs/proc/Kconfig 2011-04-17 15:57:32.000000000 -0400 33937+++ linux-2.6.38.2/fs/proc/Kconfig 2011-03-21 18:31:35.000000000 -0400
34909@@ -30,12 +30,12 @@ config PROC_FS 33938@@ -30,12 +30,12 @@ config PROC_FS
34910 33939
34911 config PROC_KCORE 33940 config PROC_KCORE
@@ -34933,9 +33962,9 @@ diff -urNp linux-2.6.38.3/fs/proc/Kconfig linux-2.6.38.3/fs/proc/Kconfig
34933 bool "Enable /proc page monitoring" if EXPERT 33962 bool "Enable /proc page monitoring" if EXPERT
34934 help 33963 help
34935 Various /proc files exist to monitor process memory utilization: 33964 Various /proc files exist to monitor process memory utilization:
34936diff -urNp linux-2.6.38.3/fs/proc/kcore.c linux-2.6.38.3/fs/proc/kcore.c 33965diff -urNp linux-2.6.38.2/fs/proc/kcore.c linux-2.6.38.2/fs/proc/kcore.c
34937--- linux-2.6.38.3/fs/proc/kcore.c 2011-03-14 21:20:32.000000000 -0400 33966--- linux-2.6.38.2/fs/proc/kcore.c 2011-03-14 21:20:32.000000000 -0400
34938+++ linux-2.6.38.3/fs/proc/kcore.c 2011-04-17 15:57:32.000000000 -0400 33967+++ linux-2.6.38.2/fs/proc/kcore.c 2011-03-21 18:31:35.000000000 -0400
34939@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use 33968@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use
34940 * the addresses in the elf_phdr on our list. 33969 * the addresses in the elf_phdr on our list.
34941 */ 33970 */
@@ -34994,9 +34023,9 @@ diff -urNp linux-2.6.38.3/fs/proc/kcore.c linux-2.6.38.3/fs/proc/kcore.c
34994 if (!capable(CAP_SYS_RAWIO)) 34023 if (!capable(CAP_SYS_RAWIO))
34995 return -EPERM; 34024 return -EPERM;
34996 if (kcore_need_update) 34025 if (kcore_need_update)
34997diff -urNp linux-2.6.38.3/fs/proc/meminfo.c linux-2.6.38.3/fs/proc/meminfo.c 34026diff -urNp linux-2.6.38.2/fs/proc/meminfo.c linux-2.6.38.2/fs/proc/meminfo.c
34998--- linux-2.6.38.3/fs/proc/meminfo.c 2011-03-14 21:20:32.000000000 -0400 34027--- linux-2.6.38.2/fs/proc/meminfo.c 2011-03-14 21:20:32.000000000 -0400
34999+++ linux-2.6.38.3/fs/proc/meminfo.c 2011-04-17 15:57:32.000000000 -0400 34028+++ linux-2.6.38.2/fs/proc/meminfo.c 2011-03-21 18:31:35.000000000 -0400
35000@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_ 34029@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_
35001 vmi.used >> 10, 34030 vmi.used >> 10,
35002 vmi.largest_chunk >> 10 34031 vmi.largest_chunk >> 10
@@ -35006,9 +34035,9 @@ diff -urNp linux-2.6.38.3/fs/proc/meminfo.c linux-2.6.38.3/fs/proc/meminfo.c
35006 #endif 34035 #endif
35007 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 34036 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
35008 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) * 34037 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
35009diff -urNp linux-2.6.38.3/fs/proc/nommu.c linux-2.6.38.3/fs/proc/nommu.c 34038diff -urNp linux-2.6.38.2/fs/proc/nommu.c linux-2.6.38.2/fs/proc/nommu.c
35010--- linux-2.6.38.3/fs/proc/nommu.c 2011-03-14 21:20:32.000000000 -0400 34039--- linux-2.6.38.2/fs/proc/nommu.c 2011-03-14 21:20:32.000000000 -0400
35011+++ linux-2.6.38.3/fs/proc/nommu.c 2011-04-17 15:57:32.000000000 -0400 34040+++ linux-2.6.38.2/fs/proc/nommu.c 2011-03-21 18:31:35.000000000 -0400
35012@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_ 34041@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_
35013 if (len < 1) 34042 if (len < 1)
35014 len = 1; 34043 len = 1;
@@ -35018,9 +34047,9 @@ diff -urNp linux-2.6.38.3/fs/proc/nommu.c linux-2.6.38.3/fs/proc/nommu.c
35018 } 34047 }
35019 34048
35020 seq_putc(m, '\n'); 34049 seq_putc(m, '\n');
35021diff -urNp linux-2.6.38.3/fs/proc/proc_net.c linux-2.6.38.3/fs/proc/proc_net.c 34050diff -urNp linux-2.6.38.2/fs/proc/proc_net.c linux-2.6.38.2/fs/proc/proc_net.c
35022--- linux-2.6.38.3/fs/proc/proc_net.c 2011-03-14 21:20:32.000000000 -0400 34051--- linux-2.6.38.2/fs/proc/proc_net.c 2011-03-14 21:20:32.000000000 -0400
35023+++ linux-2.6.38.3/fs/proc/proc_net.c 2011-04-17 15:57:32.000000000 -0400 34052+++ linux-2.6.38.2/fs/proc/proc_net.c 2011-03-21 18:31:35.000000000 -0400
35024@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str 34053@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str
35025 struct task_struct *task; 34054 struct task_struct *task;
35026 struct nsproxy *ns; 34055 struct nsproxy *ns;
@@ -35039,9 +34068,9 @@ diff -urNp linux-2.6.38.3/fs/proc/proc_net.c linux-2.6.38.3/fs/proc/proc_net.c
35039 34068
35040 rcu_read_lock(); 34069 rcu_read_lock();
35041 task = pid_task(proc_pid(dir), PIDTYPE_PID); 34070 task = pid_task(proc_pid(dir), PIDTYPE_PID);
35042diff -urNp linux-2.6.38.3/fs/proc/proc_sysctl.c linux-2.6.38.3/fs/proc/proc_sysctl.c 34071diff -urNp linux-2.6.38.2/fs/proc/proc_sysctl.c linux-2.6.38.2/fs/proc/proc_sysctl.c
35043--- linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-03-14 21:20:32.000000000 -0400 34072--- linux-2.6.38.2/fs/proc/proc_sysctl.c 2011-03-14 21:20:32.000000000 -0400
35044+++ linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-04-17 15:57:32.000000000 -0400 34073+++ linux-2.6.38.2/fs/proc/proc_sysctl.c 2011-03-21 18:31:35.000000000 -0400
35045@@ -8,6 +8,8 @@ 34074@@ -8,6 +8,8 @@
35046 #include <linux/namei.h> 34075 #include <linux/namei.h>
35047 #include "internal.h" 34076 #include "internal.h"
@@ -35081,9 +34110,9 @@ diff -urNp linux-2.6.38.3/fs/proc/proc_sysctl.c linux-2.6.38.3/fs/proc/proc_sysc
35081 generic_fillattr(inode, stat); 34110 generic_fillattr(inode, stat);
35082 if (table) 34111 if (table)
35083 stat->mode = (stat->mode & S_IFMT) | table->mode; 34112 stat->mode = (stat->mode & S_IFMT) | table->mode;
35084diff -urNp linux-2.6.38.3/fs/proc/root.c linux-2.6.38.3/fs/proc/root.c 34113diff -urNp linux-2.6.38.2/fs/proc/root.c linux-2.6.38.2/fs/proc/root.c
35085--- linux-2.6.38.3/fs/proc/root.c 2011-03-14 21:20:32.000000000 -0400 34114--- linux-2.6.38.2/fs/proc/root.c 2011-03-14 21:20:32.000000000 -0400
35086+++ linux-2.6.38.3/fs/proc/root.c 2011-04-17 15:57:32.000000000 -0400 34115+++ linux-2.6.38.2/fs/proc/root.c 2011-03-21 18:31:35.000000000 -0400
35087@@ -132,7 +132,15 @@ void __init proc_root_init(void) 34116@@ -132,7 +132,15 @@ void __init proc_root_init(void)
35088 #ifdef CONFIG_PROC_DEVICETREE 34117 #ifdef CONFIG_PROC_DEVICETREE
35089 proc_device_tree_init(); 34118 proc_device_tree_init();
@@ -35100,9 +34129,9 @@ diff -urNp linux-2.6.38.3/fs/proc/root.c linux-2.6.38.3/fs/proc/root.c
35100 proc_sys_init(); 34129 proc_sys_init();
35101 } 34130 }
35102 34131
35103diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c 34132diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
35104--- linux-2.6.38.3/fs/proc/task_mmu.c 2011-04-18 17:27:16.000000000 -0400 34133--- linux-2.6.38.2/fs/proc/task_mmu.c 2011-03-28 17:42:40.000000000 -0400
35105+++ linux-2.6.38.3/fs/proc/task_mmu.c 2011-04-18 19:35:47.000000000 -0400 34134+++ linux-2.6.38.2/fs/proc/task_mmu.c 2011-03-28 17:42:53.000000000 -0400
35106@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct 34135@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct
35107 "VmExe:\t%8lu kB\n" 34136 "VmExe:\t%8lu kB\n"
35108 "VmLib:\t%8lu kB\n" 34137 "VmLib:\t%8lu kB\n"
@@ -35134,17 +34163,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35134 } 34163 }
35135 34164
35136 unsigned long task_vsize(struct mm_struct *mm) 34165 unsigned long task_vsize(struct mm_struct *mm)
35137@@ -180,7 +191,8 @@ static void m_stop(struct seq_file *m, v 34166@@ -204,6 +215,12 @@ static int do_maps_open(struct inode *in
35138 struct proc_maps_private *priv = m->private;
35139 struct vm_area_struct *vma = v;
35140
35141- vma_stop(priv, vma);
35142+ if (!IS_ERR(vma))
35143+ vma_stop(priv, vma);
35144 if (priv->task)
35145 put_task_struct(priv->task);
35146 }
35147@@ -204,6 +216,12 @@ static int do_maps_open(struct inode *in
35148 return ret; 34167 return ret;
35149 } 34168 }
35150 34169
@@ -35157,7 +34176,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35157 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) 34176 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
35158 { 34177 {
35159 struct mm_struct *mm = vma->vm_mm; 34178 struct mm_struct *mm = vma->vm_mm;
35160@@ -211,7 +229,6 @@ static void show_map_vma(struct seq_file 34179@@ -211,7 +228,6 @@ static void show_map_vma(struct seq_file
35161 int flags = vma->vm_flags; 34180 int flags = vma->vm_flags;
35162 unsigned long ino = 0; 34181 unsigned long ino = 0;
35163 unsigned long long pgoff = 0; 34182 unsigned long long pgoff = 0;
@@ -35165,7 +34184,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35165 dev_t dev = 0; 34184 dev_t dev = 0;
35166 int len; 34185 int len;
35167 34186
35168@@ -222,20 +239,23 @@ static void show_map_vma(struct seq_file 34187@@ -222,20 +238,23 @@ static void show_map_vma(struct seq_file
35169 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; 34188 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
35170 } 34189 }
35171 34190
@@ -35196,7 +34215,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35196 MAJOR(dev), MINOR(dev), ino, &len); 34215 MAJOR(dev), MINOR(dev), ino, &len);
35197 34216
35198 /* 34217 /*
35199@@ -244,16 +264,16 @@ static void show_map_vma(struct seq_file 34218@@ -244,16 +263,16 @@ static void show_map_vma(struct seq_file
35200 */ 34219 */
35201 if (file) { 34220 if (file) {
35202 pad_len_spaces(m, len); 34221 pad_len_spaces(m, len);
@@ -35218,7 +34237,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35218 name = "[stack]"; 34237 name = "[stack]";
35219 } 34238 }
35220 } else { 34239 } else {
35221@@ -399,11 +419,16 @@ static int show_smap(struct seq_file *m, 34240@@ -399,11 +418,16 @@ static int show_smap(struct seq_file *m,
35222 }; 34241 };
35223 34242
35224 memset(&mss, 0, sizeof mss); 34243 memset(&mss, 0, sizeof mss);
@@ -35240,7 +34259,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35240 show_map_vma(m, vma); 34259 show_map_vma(m, vma);
35241 34260
35242 seq_printf(m, 34261 seq_printf(m,
35243@@ -420,7 +445,11 @@ static int show_smap(struct seq_file *m, 34262@@ -420,7 +444,11 @@ static int show_smap(struct seq_file *m,
35244 "KernelPageSize: %8lu kB\n" 34263 "KernelPageSize: %8lu kB\n"
35245 "MMUPageSize: %8lu kB\n" 34264 "MMUPageSize: %8lu kB\n"
35246 "Locked: %8lu kB\n", 34265 "Locked: %8lu kB\n",
@@ -35252,9 +34271,9 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35252 mss.resident >> 10, 34271 mss.resident >> 10,
35253 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)), 34272 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
35254 mss.shared_clean >> 10, 34273 mss.shared_clean >> 10,
35255diff -urNp linux-2.6.38.3/fs/proc/task_nommu.c linux-2.6.38.3/fs/proc/task_nommu.c 34274diff -urNp linux-2.6.38.2/fs/proc/task_nommu.c linux-2.6.38.2/fs/proc/task_nommu.c
35256--- linux-2.6.38.3/fs/proc/task_nommu.c 2011-03-14 21:20:32.000000000 -0400 34275--- linux-2.6.38.2/fs/proc/task_nommu.c 2011-03-14 21:20:32.000000000 -0400
35257+++ linux-2.6.38.3/fs/proc/task_nommu.c 2011-04-17 15:57:32.000000000 -0400 34276+++ linux-2.6.38.2/fs/proc/task_nommu.c 2011-03-21 18:31:35.000000000 -0400
35258@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct 34277@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct
35259 else 34278 else
35260 bytes += kobjsize(mm); 34279 bytes += kobjsize(mm);
@@ -35273,9 +34292,9 @@ diff -urNp linux-2.6.38.3/fs/proc/task_nommu.c linux-2.6.38.3/fs/proc/task_nommu
35273 } else if (mm) { 34292 } else if (mm) {
35274 if (vma->vm_start <= mm->start_stack && 34293 if (vma->vm_start <= mm->start_stack &&
35275 vma->vm_end >= mm->start_stack) { 34294 vma->vm_end >= mm->start_stack) {
35276diff -urNp linux-2.6.38.3/fs/readdir.c linux-2.6.38.3/fs/readdir.c 34295diff -urNp linux-2.6.38.2/fs/readdir.c linux-2.6.38.2/fs/readdir.c
35277--- linux-2.6.38.3/fs/readdir.c 2011-03-14 21:20:32.000000000 -0400 34296--- linux-2.6.38.2/fs/readdir.c 2011-03-14 21:20:32.000000000 -0400
35278+++ linux-2.6.38.3/fs/readdir.c 2011-04-17 15:57:32.000000000 -0400 34297+++ linux-2.6.38.2/fs/readdir.c 2011-03-21 18:31:35.000000000 -0400
35279@@ -17,6 +17,7 @@ 34298@@ -17,6 +17,7 @@
35280 #include <linux/security.h> 34299 #include <linux/security.h>
35281 #include <linux/syscalls.h> 34300 #include <linux/syscalls.h>
@@ -35365,9 +34384,9 @@ diff -urNp linux-2.6.38.3/fs/readdir.c linux-2.6.38.3/fs/readdir.c
35365 buf.count = count; 34384 buf.count = count;
35366 buf.error = 0; 34385 buf.error = 0;
35367 34386
35368diff -urNp linux-2.6.38.3/fs/reiserfs/do_balan.c linux-2.6.38.3/fs/reiserfs/do_balan.c 34387diff -urNp linux-2.6.38.2/fs/reiserfs/do_balan.c linux-2.6.38.2/fs/reiserfs/do_balan.c
35369--- linux-2.6.38.3/fs/reiserfs/do_balan.c 2011-03-14 21:20:32.000000000 -0400 34388--- linux-2.6.38.2/fs/reiserfs/do_balan.c 2011-03-14 21:20:32.000000000 -0400
35370+++ linux-2.6.38.3/fs/reiserfs/do_balan.c 2011-04-17 15:57:32.000000000 -0400 34389+++ linux-2.6.38.2/fs/reiserfs/do_balan.c 2011-03-21 18:31:35.000000000 -0400
35371@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb, 34390@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb,
35372 return; 34391 return;
35373 } 34392 }
@@ -35377,9 +34396,9 @@ diff -urNp linux-2.6.38.3/fs/reiserfs/do_balan.c linux-2.6.38.3/fs/reiserfs/do_b
35377 do_balance_starts(tb); 34396 do_balance_starts(tb);
35378 34397
35379 /* balance leaf returns 0 except if combining L R and S into 34398 /* balance leaf returns 0 except if combining L R and S into
35380diff -urNp linux-2.6.38.3/fs/reiserfs/item_ops.c linux-2.6.38.3/fs/reiserfs/item_ops.c 34399diff -urNp linux-2.6.38.2/fs/reiserfs/item_ops.c linux-2.6.38.2/fs/reiserfs/item_ops.c
35381--- linux-2.6.38.3/fs/reiserfs/item_ops.c 2011-03-14 21:20:32.000000000 -0400 34400--- linux-2.6.38.2/fs/reiserfs/item_ops.c 2011-03-14 21:20:32.000000000 -0400
35382+++ linux-2.6.38.3/fs/reiserfs/item_ops.c 2011-04-17 15:57:32.000000000 -0400 34401+++ linux-2.6.38.2/fs/reiserfs/item_ops.c 2011-03-21 18:31:35.000000000 -0400
35383@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i 34402@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i
35384 vi->vi_index, vi->vi_type, vi->vi_ih); 34403 vi->vi_index, vi->vi_type, vi->vi_ih);
35385 } 34404 }
@@ -35434,9 +34453,9 @@ diff -urNp linux-2.6.38.3/fs/reiserfs/item_ops.c linux-2.6.38.3/fs/reiserfs/item
35434 &stat_data_ops, 34453 &stat_data_ops,
35435 &indirect_ops, 34454 &indirect_ops,
35436 &direct_ops, 34455 &direct_ops,
35437diff -urNp linux-2.6.38.3/fs/reiserfs/procfs.c linux-2.6.38.3/fs/reiserfs/procfs.c 34456diff -urNp linux-2.6.38.2/fs/reiserfs/procfs.c linux-2.6.38.2/fs/reiserfs/procfs.c
35438--- linux-2.6.38.3/fs/reiserfs/procfs.c 2011-03-14 21:20:32.000000000 -0400 34457--- linux-2.6.38.2/fs/reiserfs/procfs.c 2011-03-14 21:20:32.000000000 -0400
35439+++ linux-2.6.38.3/fs/reiserfs/procfs.c 2011-04-17 15:57:32.000000000 -0400 34458+++ linux-2.6.38.2/fs/reiserfs/procfs.c 2011-03-21 18:31:35.000000000 -0400
35440@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m 34459@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m
35441 "SMALL_TAILS " : "NO_TAILS ", 34460 "SMALL_TAILS " : "NO_TAILS ",
35442 replay_only(sb) ? "REPLAY_ONLY " : "", 34461 replay_only(sb) ? "REPLAY_ONLY " : "",
@@ -35446,9 +34465,9 @@ diff -urNp linux-2.6.38.3/fs/reiserfs/procfs.c linux-2.6.38.3/fs/reiserfs/procfs
35446 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes), 34465 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
35447 SF(s_do_balance), SF(s_unneeded_left_neighbor), 34466 SF(s_do_balance), SF(s_unneeded_left_neighbor),
35448 SF(s_good_search_by_key_reada), SF(s_bmaps), 34467 SF(s_good_search_by_key_reada), SF(s_bmaps),
35449diff -urNp linux-2.6.38.3/fs/select.c linux-2.6.38.3/fs/select.c 34468diff -urNp linux-2.6.38.2/fs/select.c linux-2.6.38.2/fs/select.c
35450--- linux-2.6.38.3/fs/select.c 2011-03-14 21:20:32.000000000 -0400 34469--- linux-2.6.38.2/fs/select.c 2011-03-14 21:20:32.000000000 -0400
35451+++ linux-2.6.38.3/fs/select.c 2011-04-17 15:57:32.000000000 -0400 34470+++ linux-2.6.38.2/fs/select.c 2011-03-21 18:31:35.000000000 -0400
35452@@ -20,6 +20,7 @@ 34471@@ -20,6 +20,7 @@
35453 #include <linux/module.h> 34472 #include <linux/module.h>
35454 #include <linux/slab.h> 34473 #include <linux/slab.h>
@@ -35465,9 +34484,9 @@ diff -urNp linux-2.6.38.3/fs/select.c linux-2.6.38.3/fs/select.c
35465 if (nfds > rlimit(RLIMIT_NOFILE)) 34484 if (nfds > rlimit(RLIMIT_NOFILE))
35466 return -EINVAL; 34485 return -EINVAL;
35467 34486
35468diff -urNp linux-2.6.38.3/fs/seq_file.c linux-2.6.38.3/fs/seq_file.c 34487diff -urNp linux-2.6.38.2/fs/seq_file.c linux-2.6.38.2/fs/seq_file.c
35469--- linux-2.6.38.3/fs/seq_file.c 2011-03-14 21:20:32.000000000 -0400 34488--- linux-2.6.38.2/fs/seq_file.c 2011-03-14 21:20:32.000000000 -0400
35470+++ linux-2.6.38.3/fs/seq_file.c 2011-04-17 15:57:32.000000000 -0400 34489+++ linux-2.6.38.2/fs/seq_file.c 2011-03-21 18:31:35.000000000 -0400
35471@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m, 34490@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m,
35472 return 0; 34491 return 0;
35473 } 34492 }
@@ -35508,9 +34527,9 @@ diff -urNp linux-2.6.38.3/fs/seq_file.c linux-2.6.38.3/fs/seq_file.c
35508 if (!m->buf) 34527 if (!m->buf)
35509 goto Enomem; 34528 goto Enomem;
35510 m->count = 0; 34529 m->count = 0;
35511diff -urNp linux-2.6.38.3/fs/splice.c linux-2.6.38.3/fs/splice.c 34530diff -urNp linux-2.6.38.2/fs/splice.c linux-2.6.38.2/fs/splice.c
35512--- linux-2.6.38.3/fs/splice.c 2011-03-14 21:20:32.000000000 -0400 34531--- linux-2.6.38.2/fs/splice.c 2011-03-14 21:20:32.000000000 -0400
35513+++ linux-2.6.38.3/fs/splice.c 2011-04-17 15:57:32.000000000 -0400 34532+++ linux-2.6.38.2/fs/splice.c 2011-03-21 18:31:35.000000000 -0400
35514@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode 34533@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode
35515 pipe_lock(pipe); 34534 pipe_lock(pipe);
35516 34535
@@ -35649,9 +34668,9 @@ diff -urNp linux-2.6.38.3/fs/splice.c linux-2.6.38.3/fs/splice.c
35649 ret = -EAGAIN; 34668 ret = -EAGAIN;
35650 34669
35651 pipe_unlock(ipipe); 34670 pipe_unlock(ipipe);
35652diff -urNp linux-2.6.38.3/fs/sysfs/mount.c linux-2.6.38.3/fs/sysfs/mount.c 34671diff -urNp linux-2.6.38.2/fs/sysfs/mount.c linux-2.6.38.2/fs/sysfs/mount.c
35653--- linux-2.6.38.3/fs/sysfs/mount.c 2011-03-14 21:20:32.000000000 -0400 34672--- linux-2.6.38.2/fs/sysfs/mount.c 2011-03-14 21:20:32.000000000 -0400
35654+++ linux-2.6.38.3/fs/sysfs/mount.c 2011-04-17 15:57:32.000000000 -0400 34673+++ linux-2.6.38.2/fs/sysfs/mount.c 2011-03-21 18:31:35.000000000 -0400
35655@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = { 34674@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = {
35656 .s_name = "", 34675 .s_name = "",
35657 .s_count = ATOMIC_INIT(1), 34676 .s_count = ATOMIC_INIT(1),
@@ -35664,9 +34683,9 @@ diff -urNp linux-2.6.38.3/fs/sysfs/mount.c linux-2.6.38.3/fs/sysfs/mount.c
35664 .s_ino = 1, 34683 .s_ino = 1,
35665 }; 34684 };
35666 34685
35667diff -urNp linux-2.6.38.3/fs/sysfs/symlink.c linux-2.6.38.3/fs/sysfs/symlink.c 34686diff -urNp linux-2.6.38.2/fs/sysfs/symlink.c linux-2.6.38.2/fs/sysfs/symlink.c
35668--- linux-2.6.38.3/fs/sysfs/symlink.c 2011-03-14 21:20:32.000000000 -0400 34687--- linux-2.6.38.2/fs/sysfs/symlink.c 2011-03-14 21:20:32.000000000 -0400
35669+++ linux-2.6.38.3/fs/sysfs/symlink.c 2011-04-17 15:57:32.000000000 -0400 34688+++ linux-2.6.38.2/fs/sysfs/symlink.c 2011-03-21 18:31:35.000000000 -0400
35670@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de 34689@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de
35671 34690
35672 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 34691 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -35676,10 +34695,10 @@ diff -urNp linux-2.6.38.3/fs/sysfs/symlink.c linux-2.6.38.3/fs/sysfs/symlink.c
35676 if (!IS_ERR(page)) 34695 if (!IS_ERR(page))
35677 free_page((unsigned long)page); 34696 free_page((unsigned long)page);
35678 } 34697 }
35679diff -urNp linux-2.6.38.3/fs/ubifs/debug.c linux-2.6.38.3/fs/ubifs/debug.c 34698diff -urNp linux-2.6.38.2/fs/ubifs/debug.c linux-2.6.38.2/fs/ubifs/debug.c
35680--- linux-2.6.38.3/fs/ubifs/debug.c 2011-04-18 17:27:18.000000000 -0400 34699--- linux-2.6.38.2/fs/ubifs/debug.c 2011-03-14 21:20:32.000000000 -0400
35681+++ linux-2.6.38.3/fs/ubifs/debug.c 2011-04-17 16:53:48.000000000 -0400 34700+++ linux-2.6.38.2/fs/ubifs/debug.c 2011-03-21 18:31:35.000000000 -0400
35682@@ -2844,19 +2844,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf 34701@@ -2813,19 +2813,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf
35683 } 34702 }
35684 34703
35685 fname = "dump_lprops"; 34704 fname = "dump_lprops";
@@ -35702,9 +34721,9 @@ diff -urNp linux-2.6.38.3/fs/ubifs/debug.c linux-2.6.38.3/fs/ubifs/debug.c
35702 if (IS_ERR(dent)) 34721 if (IS_ERR(dent))
35703 goto out_remove; 34722 goto out_remove;
35704 d->dfs_dump_tnc = dent; 34723 d->dfs_dump_tnc = dent;
35705diff -urNp linux-2.6.38.3/fs/udf/misc.c linux-2.6.38.3/fs/udf/misc.c 34724diff -urNp linux-2.6.38.2/fs/udf/misc.c linux-2.6.38.2/fs/udf/misc.c
35706--- linux-2.6.38.3/fs/udf/misc.c 2011-03-14 21:20:32.000000000 -0400 34725--- linux-2.6.38.2/fs/udf/misc.c 2011-03-14 21:20:32.000000000 -0400
35707+++ linux-2.6.38.3/fs/udf/misc.c 2011-04-17 15:57:32.000000000 -0400 34726+++ linux-2.6.38.2/fs/udf/misc.c 2011-03-21 18:31:35.000000000 -0400
35708@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat 34727@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat
35709 iinfo->i_lenEAttr += size; 34728 iinfo->i_lenEAttr += size;
35710 return (struct genericFormat *)&ea[offset]; 34729 return (struct genericFormat *)&ea[offset];
@@ -35725,9 +34744,9 @@ diff -urNp linux-2.6.38.3/fs/udf/misc.c linux-2.6.38.3/fs/udf/misc.c
35725 u8 checksum = 0; 34744 u8 checksum = 0;
35726 int i; 34745 int i;
35727 for (i = 0; i < sizeof(struct tag); ++i) 34746 for (i = 0; i < sizeof(struct tag); ++i)
35728diff -urNp linux-2.6.38.3/fs/udf/udfdecl.h linux-2.6.38.3/fs/udf/udfdecl.h 34747diff -urNp linux-2.6.38.2/fs/udf/udfdecl.h linux-2.6.38.2/fs/udf/udfdecl.h
35729--- linux-2.6.38.3/fs/udf/udfdecl.h 2011-03-14 21:20:32.000000000 -0400 34748--- linux-2.6.38.2/fs/udf/udfdecl.h 2011-03-14 21:20:32.000000000 -0400
35730+++ linux-2.6.38.3/fs/udf/udfdecl.h 2011-04-17 15:57:32.000000000 -0400 34749+++ linux-2.6.38.2/fs/udf/udfdecl.h 2011-03-21 18:31:35.000000000 -0400
35731@@ -26,7 +26,7 @@ do { \ 34750@@ -26,7 +26,7 @@ do { \
35732 printk(f, ##a); \ 34751 printk(f, ##a); \
35733 } while (0) 34752 } while (0)
@@ -35737,9 +34756,9 @@ diff -urNp linux-2.6.38.3/fs/udf/udfdecl.h linux-2.6.38.3/fs/udf/udfdecl.h
35737 #endif 34756 #endif
35738 34757
35739 #define udf_info(f, a...) \ 34758 #define udf_info(f, a...) \
35740diff -urNp linux-2.6.38.3/fs/utimes.c linux-2.6.38.3/fs/utimes.c 34759diff -urNp linux-2.6.38.2/fs/utimes.c linux-2.6.38.2/fs/utimes.c
35741--- linux-2.6.38.3/fs/utimes.c 2011-03-14 21:20:32.000000000 -0400 34760--- linux-2.6.38.2/fs/utimes.c 2011-03-14 21:20:32.000000000 -0400
35742+++ linux-2.6.38.3/fs/utimes.c 2011-04-17 15:57:32.000000000 -0400 34761+++ linux-2.6.38.2/fs/utimes.c 2011-03-21 18:31:35.000000000 -0400
35743@@ -1,6 +1,7 @@ 34762@@ -1,6 +1,7 @@
35744 #include <linux/compiler.h> 34763 #include <linux/compiler.h>
35745 #include <linux/file.h> 34764 #include <linux/file.h>
@@ -35761,9 +34780,9 @@ diff -urNp linux-2.6.38.3/fs/utimes.c linux-2.6.38.3/fs/utimes.c
35761 mutex_lock(&inode->i_mutex); 34780 mutex_lock(&inode->i_mutex);
35762 error = notify_change(path->dentry, &newattrs); 34781 error = notify_change(path->dentry, &newattrs);
35763 mutex_unlock(&inode->i_mutex); 34782 mutex_unlock(&inode->i_mutex);
35764diff -urNp linux-2.6.38.3/fs/xattr_acl.c linux-2.6.38.3/fs/xattr_acl.c 34783diff -urNp linux-2.6.38.2/fs/xattr_acl.c linux-2.6.38.2/fs/xattr_acl.c
35765--- linux-2.6.38.3/fs/xattr_acl.c 2011-03-14 21:20:32.000000000 -0400 34784--- linux-2.6.38.2/fs/xattr_acl.c 2011-03-14 21:20:32.000000000 -0400
35766+++ linux-2.6.38.3/fs/xattr_acl.c 2011-04-17 15:57:32.000000000 -0400 34785+++ linux-2.6.38.2/fs/xattr_acl.c 2011-03-21 18:31:35.000000000 -0400
35767@@ -17,8 +17,8 @@ 34786@@ -17,8 +17,8 @@
35768 struct posix_acl * 34787 struct posix_acl *
35769 posix_acl_from_xattr(const void *value, size_t size) 34788 posix_acl_from_xattr(const void *value, size_t size)
@@ -35775,9 +34794,9 @@ diff -urNp linux-2.6.38.3/fs/xattr_acl.c linux-2.6.38.3/fs/xattr_acl.c
35775 int count; 34794 int count;
35776 struct posix_acl *acl; 34795 struct posix_acl *acl;
35777 struct posix_acl_entry *acl_e; 34796 struct posix_acl_entry *acl_e;
35778diff -urNp linux-2.6.38.3/fs/xattr.c linux-2.6.38.3/fs/xattr.c 34797diff -urNp linux-2.6.38.2/fs/xattr.c linux-2.6.38.2/fs/xattr.c
35779--- linux-2.6.38.3/fs/xattr.c 2011-03-14 21:20:32.000000000 -0400 34798--- linux-2.6.38.2/fs/xattr.c 2011-03-14 21:20:32.000000000 -0400
35780+++ linux-2.6.38.3/fs/xattr.c 2011-04-17 15:57:32.000000000 -0400 34799+++ linux-2.6.38.2/fs/xattr.c 2011-03-21 18:31:35.000000000 -0400
35781@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr); 34800@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
35782 * Extended attribute SET operations 34801 * Extended attribute SET operations
35783 */ 34802 */
@@ -35840,9 +34859,9 @@ diff -urNp linux-2.6.38.3/fs/xattr.c linux-2.6.38.3/fs/xattr.c
35840 mnt_drop_write(f->f_path.mnt); 34859 mnt_drop_write(f->f_path.mnt);
35841 } 34860 }
35842 fput(f); 34861 fput(f);
35843diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 34862diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c
35844--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-14 21:20:32.000000000 -0400 34863--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-14 21:20:32.000000000 -0400
35845+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-04-17 15:57:32.000000000 -0400 34864+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-21 18:31:35.000000000 -0400
35846@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1( 34865@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1(
35847 xfs_fsop_geom_t fsgeo; 34866 xfs_fsop_geom_t fsgeo;
35848 int error; 34867 int error;
@@ -35851,9 +34870,9 @@ diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c linux-2.6.38.3/fs/xfs/l
35851 error = xfs_fs_geometry(mp, &fsgeo, 3); 34870 error = xfs_fs_geometry(mp, &fsgeo, 3);
35852 if (error) 34871 if (error)
35853 return -error; 34872 return -error;
35854diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 34873diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c
35855--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-14 21:20:32.000000000 -0400 34874--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-14 21:20:32.000000000 -0400
35856+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 2011-04-17 20:08:09.000000000 -0400 34875+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-21 18:31:35.000000000 -0400
35857@@ -128,7 +128,7 @@ xfs_find_handle( 34876@@ -128,7 +128,7 @@ xfs_find_handle(
35858 } 34877 }
35859 34878
@@ -35863,9 +34882,17 @@ diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.38.3/fs/xfs/lin
35863 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32))) 34882 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
35864 goto out_put; 34883 goto out_put;
35865 34884
35866diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 34885@@ -720,6 +720,7 @@ xfs_ioc_fsgeometry(
35867--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-03-14 21:20:32.000000000 -0400 34886 xfs_fsop_geom_t fsgeo;
35868+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-04-17 15:57:32.000000000 -0400 34887 int error;
34888
34889+ memset(&fsgeo, 0, sizeof(fsgeo));
34890 error = xfs_fs_geometry(mp, &fsgeo, 4);
34891 if (error)
34892 return -error;
34893diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c
34894--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c 2011-03-14 21:20:32.000000000 -0400
34895+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c 2011-03-21 18:31:35.000000000 -0400
35869@@ -436,7 +436,7 @@ xfs_vn_put_link( 34896@@ -436,7 +436,7 @@ xfs_vn_put_link(
35870 struct nameidata *nd, 34897 struct nameidata *nd,
35871 void *p) 34898 void *p)
@@ -35875,9 +34902,9 @@ diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.38.3/fs/xfs/linu
35875 34902
35876 if (!IS_ERR(s)) 34903 if (!IS_ERR(s))
35877 kfree(s); 34904 kfree(s);
35878diff -urNp linux-2.6.38.3/fs/xfs/xfs_bmap.c linux-2.6.38.3/fs/xfs/xfs_bmap.c 34905diff -urNp linux-2.6.38.2/fs/xfs/xfs_bmap.c linux-2.6.38.2/fs/xfs/xfs_bmap.c
35879--- linux-2.6.38.3/fs/xfs/xfs_bmap.c 2011-03-14 21:20:32.000000000 -0400 34906--- linux-2.6.38.2/fs/xfs/xfs_bmap.c 2011-03-14 21:20:32.000000000 -0400
35880+++ linux-2.6.38.3/fs/xfs/xfs_bmap.c 2011-04-17 15:57:32.000000000 -0400 34907+++ linux-2.6.38.2/fs/xfs/xfs_bmap.c 2011-03-21 18:31:35.000000000 -0400
35881@@ -287,7 +287,7 @@ xfs_bmap_validate_ret( 34908@@ -287,7 +287,7 @@ xfs_bmap_validate_ret(
35882 int nmap, 34909 int nmap,
35883 int ret_nmap); 34910 int ret_nmap);
@@ -35887,29 +34914,9 @@ diff -urNp linux-2.6.38.3/fs/xfs/xfs_bmap.c linux-2.6.38.3/fs/xfs/xfs_bmap.c
35887 #endif /* DEBUG */ 34914 #endif /* DEBUG */
35888 34915
35889 STATIC int 34916 STATIC int
35890diff -urNp linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 34917diff -urNp linux-2.6.38.2/grsecurity/gracl_alloc.c linux-2.6.38.2/grsecurity/gracl_alloc.c
35891--- linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-03-14 21:20:32.000000000 -0400 34918--- linux-2.6.38.2/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500
35892+++ linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-04-18 22:03:12.000000000 -0400 34919+++ linux-2.6.38.2/grsecurity/gracl_alloc.c 2011-03-21 18:31:35.000000000 -0400
35893@@ -780,7 +780,15 @@ xfs_dir2_sf_getdents(
35894 }
35895
35896 ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep));
35897- if (filldir(dirent, (char *)sfep->name, sfep->namelen,
35898+ if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
35899+ char name[sfep->namelen];
35900+ memcpy(name, sfep->name, sfep->namelen);
35901+ if (filldir(dirent, name, sfep->namelen,
35902+ off & 0x7fffffff, ino, DT_UNKNOWN)) {
35903+ *offset = off & 0x7fffffff;
35904+ return 0;
35905+ }
35906+ } else if (filldir(dirent, (char *)sfep->name, sfep->namelen,
35907 off & 0x7fffffff, ino, DT_UNKNOWN)) {
35908 *offset = off & 0x7fffffff;
35909 return 0;
35910diff -urNp linux-2.6.38.3/grsecurity/gracl_alloc.c linux-2.6.38.3/grsecurity/gracl_alloc.c
35911--- linux-2.6.38.3/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500
35912+++ linux-2.6.38.3/grsecurity/gracl_alloc.c 2011-04-17 15:57:32.000000000 -0400
35913@@ -0,0 +1,105 @@ 34920@@ -0,0 +1,105 @@
35914+#include <linux/kernel.h> 34921+#include <linux/kernel.h>
35915+#include <linux/mm.h> 34922+#include <linux/mm.h>
@@ -36016,9 +35023,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_alloc.c linux-2.6.38.3/grsecurity/gra
36016+ else 35023+ else
36017+ return 1; 35024+ return 1;
36018+} 35025+}
36019diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c 35026diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c
36020--- linux-2.6.38.3/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500 35027--- linux-2.6.38.2/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500
36021+++ linux-2.6.38.3/grsecurity/gracl.c 2011-04-17 15:57:32.000000000 -0400 35028+++ linux-2.6.38.2/grsecurity/gracl.c 2011-03-28 17:16:45.000000000 -0400
36022@@ -0,0 +1,4074 @@ 35029@@ -0,0 +1,4074 @@
36023+#include <linux/kernel.h> 35030+#include <linux/kernel.h>
36024+#include <linux/module.h> 35031+#include <linux/module.h>
@@ -37849,9 +36856,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
37849+ write_seqlock(&rename_lock); 36856+ write_seqlock(&rename_lock);
37850+ br_read_lock(vfsmount_lock); 36857+ br_read_lock(vfsmount_lock);
37851+ 36858+
37852+ if (unlikely((mnt == shm_mnt && dentry->d_inode->i_nlink == 0) || mnt == pipe_mnt || mnt == sock_mnt || 36859+ if (unlikely(mnt == shm_mnt || mnt == pipe_mnt || mnt == sock_mnt ||
37853+#ifdef CONFIG_HUGETLBFS 36860+#ifdef CONFIG_HUGETLBFS
37854+ (mnt == hugetlbfs_vfsmount && dentry->d_inode->i_nlink == 0) || 36861+ mnt == hugetlbfs_vfsmount ||
37855+#endif 36862+#endif
37856+ /* ignore Eric Biederman */ 36863+ /* ignore Eric Biederman */
37857+ IS_PRIVATE(l_dentry->d_inode))) { 36864+ IS_PRIVATE(l_dentry->d_inode))) {
@@ -39830,7 +38837,7 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
39830+ struct acl_object_label *obj, *obj2; 38837+ struct acl_object_label *obj, *obj2;
39831+ 38838+
39832+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) && 38839+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
39833+ !task->is_writable && S_ISREG(filp->f_path.dentry->d_inode->i_mode) && (filp->f_path.mnt != shm_mnt || (filp->f_path.dentry->d_inode->i_nlink > 0))) { 38840+ !task->is_writable && S_ISREG(filp->f_path.dentry->d_inode->i_mode) && filp->f_path.mnt != shm_mnt) {
39834+ obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, default_role->root_label); 38841+ obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, default_role->root_label);
39835+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, 38842+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt,
39836+ task->role->root_label); 38843+ task->role->root_label);
@@ -40094,9 +39101,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
40094+EXPORT_SYMBOL(gr_check_group_change); 39101+EXPORT_SYMBOL(gr_check_group_change);
40095+#endif 39102+#endif
40096+ 39103+
40097diff -urNp linux-2.6.38.3/grsecurity/gracl_cap.c linux-2.6.38.3/grsecurity/gracl_cap.c 39104diff -urNp linux-2.6.38.2/grsecurity/gracl_cap.c linux-2.6.38.2/grsecurity/gracl_cap.c
40098--- linux-2.6.38.3/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500 39105--- linux-2.6.38.2/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500
40099+++ linux-2.6.38.3/grsecurity/gracl_cap.c 2011-04-17 15:57:32.000000000 -0400 39106+++ linux-2.6.38.2/grsecurity/gracl_cap.c 2011-03-21 20:22:36.000000000 -0400
40100@@ -0,0 +1,139 @@ 39107@@ -0,0 +1,139 @@
40101+#include <linux/kernel.h> 39108+#include <linux/kernel.h>
40102+#include <linux/module.h> 39109+#include <linux/module.h>
@@ -40237,9 +39244,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_cap.c linux-2.6.38.3/grsecurity/gracl
40237+ return 0; 39244+ return 0;
40238+} 39245+}
40239+ 39246+
40240diff -urNp linux-2.6.38.3/grsecurity/gracl_fs.c linux-2.6.38.3/grsecurity/gracl_fs.c 39247diff -urNp linux-2.6.38.2/grsecurity/gracl_fs.c linux-2.6.38.2/grsecurity/gracl_fs.c
40241--- linux-2.6.38.3/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500 39248--- linux-2.6.38.2/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500
40242+++ linux-2.6.38.3/grsecurity/gracl_fs.c 2011-04-17 15:57:32.000000000 -0400 39249+++ linux-2.6.38.2/grsecurity/gracl_fs.c 2011-03-26 14:32:42.000000000 -0400
40243@@ -0,0 +1,431 @@ 39250@@ -0,0 +1,431 @@
40244+#include <linux/kernel.h> 39251+#include <linux/kernel.h>
40245+#include <linux/sched.h> 39252+#include <linux/sched.h>
@@ -40672,9 +39679,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_fs.c linux-2.6.38.3/grsecurity/gracl_
40672+ 39679+
40673+ return 0; 39680+ return 0;
40674+} 39681+}
40675diff -urNp linux-2.6.38.3/grsecurity/gracl_ip.c linux-2.6.38.3/grsecurity/gracl_ip.c 39682diff -urNp linux-2.6.38.2/grsecurity/gracl_ip.c linux-2.6.38.2/grsecurity/gracl_ip.c
40676--- linux-2.6.38.3/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500 39683--- linux-2.6.38.2/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500
40677+++ linux-2.6.38.3/grsecurity/gracl_ip.c 2011-04-17 15:57:32.000000000 -0400 39684+++ linux-2.6.38.2/grsecurity/gracl_ip.c 2011-03-21 18:31:35.000000000 -0400
40678@@ -0,0 +1,382 @@ 39685@@ -0,0 +1,382 @@
40679+#include <linux/kernel.h> 39686+#include <linux/kernel.h>
40680+#include <asm/uaccess.h> 39687+#include <asm/uaccess.h>
@@ -41058,9 +40065,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_ip.c linux-2.6.38.3/grsecurity/gracl_
41058+ 40065+
41059+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM); 40066+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
41060+} 40067+}
41061diff -urNp linux-2.6.38.3/grsecurity/gracl_learn.c linux-2.6.38.3/grsecurity/gracl_learn.c 40068diff -urNp linux-2.6.38.2/grsecurity/gracl_learn.c linux-2.6.38.2/grsecurity/gracl_learn.c
41062--- linux-2.6.38.3/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500 40069--- linux-2.6.38.2/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500
41063+++ linux-2.6.38.3/grsecurity/gracl_learn.c 2011-04-17 15:57:32.000000000 -0400 40070+++ linux-2.6.38.2/grsecurity/gracl_learn.c 2011-03-21 18:31:35.000000000 -0400
41064@@ -0,0 +1,211 @@ 40071@@ -0,0 +1,211 @@
41065+#include <linux/kernel.h> 40072+#include <linux/kernel.h>
41066+#include <linux/mm.h> 40073+#include <linux/mm.h>
@@ -41273,9 +40280,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_learn.c linux-2.6.38.3/grsecurity/gra
41273+ .release = close_learn, 40280+ .release = close_learn,
41274+ .poll = poll_learn, 40281+ .poll = poll_learn,
41275+}; 40282+};
41276diff -urNp linux-2.6.38.3/grsecurity/gracl_res.c linux-2.6.38.3/grsecurity/gracl_res.c 40283diff -urNp linux-2.6.38.2/grsecurity/gracl_res.c linux-2.6.38.2/grsecurity/gracl_res.c
41277--- linux-2.6.38.3/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500 40284--- linux-2.6.38.2/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500
41278+++ linux-2.6.38.3/grsecurity/gracl_res.c 2011-04-17 15:57:32.000000000 -0400 40285+++ linux-2.6.38.2/grsecurity/gracl_res.c 2011-03-21 18:31:35.000000000 -0400
41279@@ -0,0 +1,68 @@ 40286@@ -0,0 +1,68 @@
41280+#include <linux/kernel.h> 40287+#include <linux/kernel.h>
41281+#include <linux/sched.h> 40288+#include <linux/sched.h>
@@ -41345,10 +40352,10 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_res.c linux-2.6.38.3/grsecurity/gracl
41345+ rcu_read_unlock(); 40352+ rcu_read_unlock();
41346+ return; 40353+ return;
41347+} 40354+}
41348diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/gracl_segv.c 40355diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/gracl_segv.c
41349--- linux-2.6.38.3/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500 40356--- linux-2.6.38.2/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500
41350+++ linux-2.6.38.3/grsecurity/gracl_segv.c 2011-04-17 15:57:32.000000000 -0400 40357+++ linux-2.6.38.2/grsecurity/gracl_segv.c 2011-03-24 23:09:37.000000000 -0400
41351@@ -0,0 +1,300 @@ 40358@@ -0,0 +1,326 @@
41352+#include <linux/kernel.h> 40359+#include <linux/kernel.h>
41353+#include <linux/mm.h> 40360+#include <linux/mm.h>
41354+#include <asm/uaccess.h> 40361+#include <asm/uaccess.h>
@@ -41375,6 +40382,8 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/grac
41375+extern struct acl_subject_label * 40382+extern struct acl_subject_label *
41376+ lookup_acl_subj_label(const ino_t inode, const dev_t dev, 40383+ lookup_acl_subj_label(const ino_t inode, const dev_t dev,
41377+ struct acl_role_label *role); 40384+ struct acl_role_label *role);
40385+extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
40386+
41378+ 40387+
41379+#ifdef CONFIG_BTRFS_FS 40388+#ifdef CONFIG_BTRFS_FS
41380+extern dev_t get_btrfs_dev_from_inode(struct inode *inode); 40389+extern dev_t get_btrfs_dev_from_inode(struct inode *inode);
@@ -41524,8 +40533,32 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/grac
41524+ 40533+
41525+ return 0; 40534+ return 0;
41526+} 40535+}
40536+static __inline__ int
40537+gr_fake_force_sig(int sig, struct task_struct *t)
40538+{
40539+ unsigned long int flags;
40540+ int ret, blocked, ignored;
40541+ struct k_sigaction *action;
41527+ 40542+
41528+extern int gr_fake_force_sig(int sig, struct task_struct *t); 40543+ spin_lock_irqsave(&t->sighand->siglock, flags);
40544+ action = &t->sighand->action[sig-1];
40545+ ignored = action->sa.sa_handler == SIG_IGN;
40546+ blocked = sigismember(&t->blocked, sig);
40547+ if (blocked || ignored) {
40548+ action->sa.sa_handler = SIG_DFL;
40549+ if (blocked) {
40550+ sigdelset(&t->blocked, sig);
40551+ recalc_sigpending_and_wake(t);
40552+ }
40553+ }
40554+ if (action->sa.sa_handler == SIG_DFL)
40555+ t->signal->flags &= ~SIGNAL_UNKILLABLE;
40556+ ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
40557+
40558+ spin_unlock_irqrestore(&t->sighand->siglock, flags);
40559+
40560+ return ret;
40561+}
41529+ 40562+
41530+void 40563+void
41531+gr_handle_crash(struct task_struct *task, const int sig) 40564+gr_handle_crash(struct task_struct *task, const int sig)
@@ -41649,9 +40682,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/grac
41649+ 40682+
41650+ return; 40683+ return;
41651+} 40684+}
41652diff -urNp linux-2.6.38.3/grsecurity/gracl_shm.c linux-2.6.38.3/grsecurity/gracl_shm.c 40685diff -urNp linux-2.6.38.2/grsecurity/gracl_shm.c linux-2.6.38.2/grsecurity/gracl_shm.c
41653--- linux-2.6.38.3/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500 40686--- linux-2.6.38.2/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500
41654+++ linux-2.6.38.3/grsecurity/gracl_shm.c 2011-04-17 15:57:32.000000000 -0400 40687+++ linux-2.6.38.2/grsecurity/gracl_shm.c 2011-03-21 18:31:35.000000000 -0400
41655@@ -0,0 +1,40 @@ 40688@@ -0,0 +1,40 @@
41656+#include <linux/kernel.h> 40689+#include <linux/kernel.h>
41657+#include <linux/mm.h> 40690+#include <linux/mm.h>
@@ -41693,9 +40726,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_shm.c linux-2.6.38.3/grsecurity/gracl
41693+ 40726+
41694+ return 1; 40727+ return 1;
41695+} 40728+}
41696diff -urNp linux-2.6.38.3/grsecurity/grsec_chdir.c linux-2.6.38.3/grsecurity/grsec_chdir.c 40729diff -urNp linux-2.6.38.2/grsecurity/grsec_chdir.c linux-2.6.38.2/grsecurity/grsec_chdir.c
41697--- linux-2.6.38.3/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500 40730--- linux-2.6.38.2/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500
41698+++ linux-2.6.38.3/grsecurity/grsec_chdir.c 2011-04-17 15:57:32.000000000 -0400 40731+++ linux-2.6.38.2/grsecurity/grsec_chdir.c 2011-03-21 18:31:35.000000000 -0400
41699@@ -0,0 +1,19 @@ 40732@@ -0,0 +1,19 @@
41700+#include <linux/kernel.h> 40733+#include <linux/kernel.h>
41701+#include <linux/sched.h> 40734+#include <linux/sched.h>
@@ -41716,10 +40749,10 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chdir.c linux-2.6.38.3/grsecurity/grs
41716+#endif 40749+#endif
41717+ return; 40750+ return;
41718+} 40751+}
41719diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/grsec_chroot.c 40752diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/grsec_chroot.c
41720--- linux-2.6.38.3/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500 40753--- linux-2.6.38.2/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500
41721+++ linux-2.6.38.3/grsecurity/grsec_chroot.c 2011-04-17 15:57:32.000000000 -0400 40754+++ linux-2.6.38.2/grsecurity/grsec_chroot.c 2011-03-21 21:24:10.000000000 -0400
41722@@ -0,0 +1,355 @@ 40755@@ -0,0 +1,351 @@
41723+#include <linux/kernel.h> 40756+#include <linux/kernel.h>
41724+#include <linux/module.h> 40757+#include <linux/module.h>
41725+#include <linux/sched.h> 40758+#include <linux/sched.h>
@@ -41769,7 +40802,7 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41769+ rcu_read_lock(); 40802+ rcu_read_lock();
41770+ read_lock(&tasklist_lock); 40803+ read_lock(&tasklist_lock);
41771+ p = pid_task(pid, PIDTYPE_PID); 40804+ p = pid_task(pid, PIDTYPE_PID);
41772+ if (unlikely(p && !have_same_root(current, p))) { 40805+ if (unlikely(!have_same_root(current, p))) {
41773+ read_unlock(&tasklist_lock); 40806+ read_unlock(&tasklist_lock);
41774+ rcu_read_unlock(); 40807+ rcu_read_unlock();
41775+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG); 40808+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
@@ -41912,8 +40945,6 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41912+ if (pid) { 40945+ if (pid) {
41913+ struct task_struct *p; 40946+ struct task_struct *p;
41914+ p = pid_task(pid, PIDTYPE_PID); 40947+ p = pid_task(pid, PIDTYPE_PID);
41915+ if (p == NULL)
41916+ goto unlock;
41917+ starttime = p->start_time.tv_sec; 40948+ starttime = p->start_time.tv_sec;
41918+ if (unlikely(!have_same_root(current, p) && 40949+ if (unlikely(!have_same_root(current, p) &&
41919+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) { 40950+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) {
@@ -41927,8 +40958,6 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41927+ if (pid) { 40958+ if (pid) {
41928+ struct task_struct *p; 40959+ struct task_struct *p;
41929+ p = pid_task(pid, PIDTYPE_PID); 40960+ p = pid_task(pid, PIDTYPE_PID);
41930+ if (p == NULL)
41931+ goto unlock;
41932+ if (unlikely(!have_same_root(current, p))) { 40961+ if (unlikely(!have_same_root(current, p))) {
41933+ read_unlock(&tasklist_lock); 40962+ read_unlock(&tasklist_lock);
41934+ rcu_read_unlock(); 40963+ rcu_read_unlock();
@@ -41937,7 +40966,7 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41937+ } 40966+ }
41938+ } 40967+ }
41939+ } 40968+ }
41940+unlock: 40969+
41941+ read_unlock(&tasklist_lock); 40970+ read_unlock(&tasklist_lock);
41942+ rcu_read_unlock(); 40971+ rcu_read_unlock();
41943+#endif 40972+#endif
@@ -42075,9 +41104,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
42075+#ifdef CONFIG_SECURITY 41104+#ifdef CONFIG_SECURITY
42076+EXPORT_SYMBOL(gr_handle_chroot_caps); 41105+EXPORT_SYMBOL(gr_handle_chroot_caps);
42077+#endif 41106+#endif
42078diff -urNp linux-2.6.38.3/grsecurity/grsec_disabled.c linux-2.6.38.3/grsecurity/grsec_disabled.c 41107diff -urNp linux-2.6.38.2/grsecurity/grsec_disabled.c linux-2.6.38.2/grsecurity/grsec_disabled.c
42079--- linux-2.6.38.3/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500 41108--- linux-2.6.38.2/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500
42080+++ linux-2.6.38.3/grsecurity/grsec_disabled.c 2011-04-17 15:57:32.000000000 -0400 41109+++ linux-2.6.38.2/grsecurity/grsec_disabled.c 2011-03-25 18:57:41.000000000 -0400
42081@@ -0,0 +1,447 @@ 41110@@ -0,0 +1,447 @@
42082+#include <linux/kernel.h> 41111+#include <linux/kernel.h>
42083+#include <linux/module.h> 41112+#include <linux/module.h>
@@ -42526,9 +41555,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_disabled.c linux-2.6.38.3/grsecurity/
42526+EXPORT_SYMBOL(gr_check_user_change); 41555+EXPORT_SYMBOL(gr_check_user_change);
42527+EXPORT_SYMBOL(gr_check_group_change); 41556+EXPORT_SYMBOL(gr_check_group_change);
42528+#endif 41557+#endif
42529diff -urNp linux-2.6.38.3/grsecurity/grsec_exec.c linux-2.6.38.3/grsecurity/grsec_exec.c 41558diff -urNp linux-2.6.38.2/grsecurity/grsec_exec.c linux-2.6.38.2/grsecurity/grsec_exec.c
42530--- linux-2.6.38.3/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500 41559--- linux-2.6.38.2/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500
42531+++ linux-2.6.38.3/grsecurity/grsec_exec.c 2011-04-17 15:57:32.000000000 -0400 41560+++ linux-2.6.38.2/grsecurity/grsec_exec.c 2011-03-21 18:31:35.000000000 -0400
42532@@ -0,0 +1,147 @@ 41561@@ -0,0 +1,147 @@
42533+#include <linux/kernel.h> 41562+#include <linux/kernel.h>
42534+#include <linux/sched.h> 41563+#include <linux/sched.h>
@@ -42677,9 +41706,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_exec.c linux-2.6.38.3/grsecurity/grse
42677+ return; 41706+ return;
42678+} 41707+}
42679+#endif 41708+#endif
42680diff -urNp linux-2.6.38.3/grsecurity/grsec_fifo.c linux-2.6.38.3/grsecurity/grsec_fifo.c 41709diff -urNp linux-2.6.38.2/grsecurity/grsec_fifo.c linux-2.6.38.2/grsecurity/grsec_fifo.c
42681--- linux-2.6.38.3/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500 41710--- linux-2.6.38.2/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500
42682+++ linux-2.6.38.3/grsecurity/grsec_fifo.c 2011-04-17 15:57:32.000000000 -0400 41711+++ linux-2.6.38.2/grsecurity/grsec_fifo.c 2011-03-21 20:33:29.000000000 -0400
42683@@ -0,0 +1,24 @@ 41712@@ -0,0 +1,24 @@
42684+#include <linux/kernel.h> 41713+#include <linux/kernel.h>
42685+#include <linux/sched.h> 41714+#include <linux/sched.h>
@@ -42705,9 +41734,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_fifo.c linux-2.6.38.3/grsecurity/grse
42705+#endif 41734+#endif
42706+ return 0; 41735+ return 0;
42707+} 41736+}
42708diff -urNp linux-2.6.38.3/grsecurity/grsec_fork.c linux-2.6.38.3/grsecurity/grsec_fork.c 41737diff -urNp linux-2.6.38.2/grsecurity/grsec_fork.c linux-2.6.38.2/grsecurity/grsec_fork.c
42709--- linux-2.6.38.3/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500 41738--- linux-2.6.38.2/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500
42710+++ linux-2.6.38.3/grsecurity/grsec_fork.c 2011-04-17 15:57:32.000000000 -0400 41739+++ linux-2.6.38.2/grsecurity/grsec_fork.c 2011-03-21 18:31:35.000000000 -0400
42711@@ -0,0 +1,23 @@ 41740@@ -0,0 +1,23 @@
42712+#include <linux/kernel.h> 41741+#include <linux/kernel.h>
42713+#include <linux/sched.h> 41742+#include <linux/sched.h>
@@ -42732,9 +41761,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_fork.c linux-2.6.38.3/grsecurity/grse
42732+#endif 41761+#endif
42733+ return; 41762+ return;
42734+} 41763+}
42735diff -urNp linux-2.6.38.3/grsecurity/grsec_init.c linux-2.6.38.3/grsecurity/grsec_init.c 41764diff -urNp linux-2.6.38.2/grsecurity/grsec_init.c linux-2.6.38.2/grsecurity/grsec_init.c
42736--- linux-2.6.38.3/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500 41765--- linux-2.6.38.2/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500
42737+++ linux-2.6.38.3/grsecurity/grsec_init.c 2011-04-17 15:57:32.000000000 -0400 41766+++ linux-2.6.38.2/grsecurity/grsec_init.c 2011-03-21 18:31:35.000000000 -0400
42738@@ -0,0 +1,270 @@ 41767@@ -0,0 +1,270 @@
42739+#include <linux/kernel.h> 41768+#include <linux/kernel.h>
42740+#include <linux/sched.h> 41769+#include <linux/sched.h>
@@ -43006,9 +42035,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_init.c linux-2.6.38.3/grsecurity/grse
43006+ 42035+
43007+ return; 42036+ return;
43008+} 42037+}
43009diff -urNp linux-2.6.38.3/grsecurity/grsec_link.c linux-2.6.38.3/grsecurity/grsec_link.c 42038diff -urNp linux-2.6.38.2/grsecurity/grsec_link.c linux-2.6.38.2/grsecurity/grsec_link.c
43010--- linux-2.6.38.3/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500 42039--- linux-2.6.38.2/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500
43011+++ linux-2.6.38.3/grsecurity/grsec_link.c 2011-04-17 15:57:32.000000000 -0400 42040+++ linux-2.6.38.2/grsecurity/grsec_link.c 2011-03-21 20:34:41.000000000 -0400
43012@@ -0,0 +1,43 @@ 42041@@ -0,0 +1,43 @@
43013+#include <linux/kernel.h> 42042+#include <linux/kernel.h>
43014+#include <linux/sched.h> 42043+#include <linux/sched.h>
@@ -43053,9 +42082,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_link.c linux-2.6.38.3/grsecurity/grse
43053+#endif 42082+#endif
43054+ return 0; 42083+ return 0;
43055+} 42084+}
43056diff -urNp linux-2.6.38.3/grsecurity/grsec_log.c linux-2.6.38.3/grsecurity/grsec_log.c 42085diff -urNp linux-2.6.38.2/grsecurity/grsec_log.c linux-2.6.38.2/grsecurity/grsec_log.c
43057--- linux-2.6.38.3/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500 42086--- linux-2.6.38.2/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500
43058+++ linux-2.6.38.3/grsecurity/grsec_log.c 2011-04-17 15:57:32.000000000 -0400 42087+++ linux-2.6.38.2/grsecurity/grsec_log.c 2011-03-21 18:31:35.000000000 -0400
43059@@ -0,0 +1,310 @@ 42088@@ -0,0 +1,310 @@
43060+#include <linux/kernel.h> 42089+#include <linux/kernel.h>
43061+#include <linux/sched.h> 42090+#include <linux/sched.h>
@@ -43367,10 +42396,10 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_log.c linux-2.6.38.3/grsecurity/grsec
43367+ gr_log_end(audit); 42396+ gr_log_end(audit);
43368+ END_LOCKS(audit); 42397+ END_LOCKS(audit);
43369+} 42398+}
43370diff -urNp linux-2.6.38.3/grsecurity/grsec_mem.c linux-2.6.38.3/grsecurity/grsec_mem.c 42399diff -urNp linux-2.6.38.2/grsecurity/grsec_mem.c linux-2.6.38.2/grsecurity/grsec_mem.c
43371--- linux-2.6.38.3/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500 42400--- linux-2.6.38.2/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500
43372+++ linux-2.6.38.3/grsecurity/grsec_mem.c 2011-04-17 15:57:32.000000000 -0400 42401+++ linux-2.6.38.2/grsecurity/grsec_mem.c 2011-03-26 14:40:33.000000000 -0400
43373@@ -0,0 +1,33 @@ 42402@@ -0,0 +1,100 @@
43374+#include <linux/kernel.h> 42403+#include <linux/kernel.h>
43375+#include <linux/sched.h> 42404+#include <linux/sched.h>
43376+#include <linux/mm.h> 42405+#include <linux/mm.h>
@@ -43392,21 +42421,88 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_mem.c linux-2.6.38.3/grsecurity/grsec
43392+} 42421+}
43393+ 42422+
43394+void 42423+void
43395+gr_handle_mem_readwrite(u64 from, u64 to) 42424+gr_handle_mem_write(void)
42425+{
42426+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_WRITE_MSG);
42427+ return;
42428+}
42429+
42430+void
42431+gr_handle_kmem_write(void)
43396+{ 42432+{
43397+ gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to); 42433+ gr_log_noargs(GR_DONT_AUDIT, GR_KMEM_MSG);
43398+ return; 42434+ return;
43399+} 42435+}
43400+ 42436+
43401+void 42437+void
42438+gr_handle_open_port(void)
42439+{
42440+ gr_log_noargs(GR_DONT_AUDIT, GR_PORT_OPEN_MSG);
42441+ return;
42442+}
42443+
42444+int
42445+gr_handle_mem_mmap(const unsigned long offset, struct vm_area_struct *vma)
42446+{
42447+ unsigned long start, end;
42448+
42449+ start = offset;
42450+ end = start + vma->vm_end - vma->vm_start;
42451+
42452+ if (start > end) {
42453+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_MMAP_MSG);
42454+ return -EPERM;
42455+ }
42456+
42457+/* if raw i/o is disabled, prevent writes to /dev/mem entirely */
42458+#ifndef CONFIG_GRKERNSEC_IO
42459+ /* allowed ranges : ISA I/O BIOS */
42460+ if ((start >= __pa(high_memory))
42461+#if defined(CONFIG_X86) || defined(CONFIG_PPC)
42462+ || (start >= 0x000a0000 && end <= 0x00100000)
42463+ || (start >= 0x00000000 && end <= 0x00001000)
42464+#endif
42465+ )
42466+ return 0;
42467+#endif
42468+
42469+ if (vma->vm_flags & VM_WRITE) {
42470+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_MMAP_MSG);
42471+ return -EPERM;
42472+ } else
42473+ vma->vm_flags &= ~VM_MAYWRITE;
42474+
42475+ return 0;
42476+}
42477+
42478+void
42479+gr_log_nonroot_mod_load(const char *modname)
42480+{
42481+ if (1
42482+#if !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE)
42483+ /* There are known knowns. These are things we know
42484+ that we know. There are known unknowns. That is to say,
42485+ there are things that we know we don't know. But there are
42486+ also unknown unknowns. There are things we don't know
42487+ we don't know.
42488+ This here is a known unknown.
42489+ */
42490+ && strcmp(modname, "net-pf-10")
42491+#endif
42492+ )
42493+ gr_log_str(GR_DONT_AUDIT, GR_NONROOT_MODLOAD_MSG, modname);
42494+ return;
42495+}
42496+
42497+void
43402+gr_handle_vm86(void) 42498+gr_handle_vm86(void)
43403+{ 42499+{
43404+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG); 42500+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
43405+ return; 42501+ return;
43406+} 42502+}
43407diff -urNp linux-2.6.38.3/grsecurity/grsec_mount.c linux-2.6.38.3/grsecurity/grsec_mount.c 42503diff -urNp linux-2.6.38.2/grsecurity/grsec_mount.c linux-2.6.38.2/grsecurity/grsec_mount.c
43408--- linux-2.6.38.3/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500 42504--- linux-2.6.38.2/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500
43409+++ linux-2.6.38.3/grsecurity/grsec_mount.c 2011-04-17 15:57:32.000000000 -0400 42505+++ linux-2.6.38.2/grsecurity/grsec_mount.c 2011-03-21 18:31:35.000000000 -0400
43410@@ -0,0 +1,62 @@ 42506@@ -0,0 +1,62 @@
43411+#include <linux/kernel.h> 42507+#include <linux/kernel.h>
43412+#include <linux/sched.h> 42508+#include <linux/sched.h>
@@ -43470,9 +42566,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_mount.c linux-2.6.38.3/grsecurity/grs
43470+#endif 42566+#endif
43471+ return 0; 42567+ return 0;
43472+} 42568+}
43473diff -urNp linux-2.6.38.3/grsecurity/grsec_pax.c linux-2.6.38.3/grsecurity/grsec_pax.c 42569diff -urNp linux-2.6.38.2/grsecurity/grsec_pax.c linux-2.6.38.2/grsecurity/grsec_pax.c
43474--- linux-2.6.38.3/grsecurity/grsec_pax.c 1969-12-31 19:00:00.000000000 -0500 42570--- linux-2.6.38.2/grsecurity/grsec_pax.c 1969-12-31 19:00:00.000000000 -0500
43475+++ linux-2.6.38.3/grsecurity/grsec_pax.c 2011-04-17 15:57:32.000000000 -0400 42571+++ linux-2.6.38.2/grsecurity/grsec_pax.c 2011-03-21 18:31:35.000000000 -0400
43476@@ -0,0 +1,36 @@ 42572@@ -0,0 +1,36 @@
43477+#include <linux/kernel.h> 42573+#include <linux/kernel.h>
43478+#include <linux/sched.h> 42574+#include <linux/sched.h>
@@ -43510,9 +42606,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_pax.c linux-2.6.38.3/grsecurity/grsec
43510+#endif 42606+#endif
43511+ return; 42607+ return;
43512+} 42608+}
43513diff -urNp linux-2.6.38.3/grsecurity/grsec_ptrace.c linux-2.6.38.3/grsecurity/grsec_ptrace.c 42609diff -urNp linux-2.6.38.2/grsecurity/grsec_ptrace.c linux-2.6.38.2/grsecurity/grsec_ptrace.c
43514--- linux-2.6.38.3/grsecurity/grsec_ptrace.c 1969-12-31 19:00:00.000000000 -0500 42610--- linux-2.6.38.2/grsecurity/grsec_ptrace.c 1969-12-31 19:00:00.000000000 -0500
43515+++ linux-2.6.38.3/grsecurity/grsec_ptrace.c 2011-04-17 15:57:32.000000000 -0400 42611+++ linux-2.6.38.2/grsecurity/grsec_ptrace.c 2011-03-21 18:31:35.000000000 -0400
43516@@ -0,0 +1,14 @@ 42612@@ -0,0 +1,14 @@
43517+#include <linux/kernel.h> 42613+#include <linux/kernel.h>
43518+#include <linux/sched.h> 42614+#include <linux/sched.h>
@@ -43528,16 +42624,15 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_ptrace.c linux-2.6.38.3/grsecurity/gr
43528+#endif 42624+#endif
43529+ return; 42625+ return;
43530+} 42626+}
43531diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec_sig.c 42627diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec_sig.c
43532--- linux-2.6.38.3/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500 42628--- linux-2.6.38.2/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500
43533+++ linux-2.6.38.3/grsecurity/grsec_sig.c 2011-04-17 15:57:32.000000000 -0400 42629+++ linux-2.6.38.2/grsecurity/grsec_sig.c 2011-03-26 19:58:27.000000000 -0400
43534@@ -0,0 +1,197 @@ 42630@@ -0,0 +1,65 @@
43535+#include <linux/kernel.h> 42631+#include <linux/kernel.h>
43536+#include <linux/sched.h> 42632+#include <linux/sched.h>
43537+#include <linux/delay.h> 42633+#include <linux/delay.h>
43538+#include <linux/grsecurity.h> 42634+#include <linux/grsecurity.h>
43539+#include <linux/grinternal.h> 42635+#include <linux/grinternal.h>
43540+#include <linux/hardirq.h>
43541+ 42636+
43542+char *signames[] = { 42637+char *signames[] = {
43543+ [SIGSEGV] = "Segmentation fault", 42638+ [SIGSEGV] = "Segmentation fault",
@@ -43576,91 +42671,15 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec
43576+ return 0; 42671+ return 0;
43577+} 42672+}
43578+ 42673+
43579+#ifdef CONFIG_GRKERNSEC 42674+void gr_handle_brute_attach(struct task_struct *p)
43580+extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
43581+
43582+int gr_fake_force_sig(int sig, struct task_struct *t)
43583+{
43584+ unsigned long int flags;
43585+ int ret, blocked, ignored;
43586+ struct k_sigaction *action;
43587+
43588+ spin_lock_irqsave(&t->sighand->siglock, flags);
43589+ action = &t->sighand->action[sig-1];
43590+ ignored = action->sa.sa_handler == SIG_IGN;
43591+ blocked = sigismember(&t->blocked, sig);
43592+ if (blocked || ignored) {
43593+ action->sa.sa_handler = SIG_DFL;
43594+ if (blocked) {
43595+ sigdelset(&t->blocked, sig);
43596+ recalc_sigpending_and_wake(t);
43597+ }
43598+ }
43599+ if (action->sa.sa_handler == SIG_DFL)
43600+ t->signal->flags &= ~SIGNAL_UNKILLABLE;
43601+ ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
43602+
43603+ spin_unlock_irqrestore(&t->sighand->siglock, flags);
43604+
43605+ return ret;
43606+}
43607+#endif
43608+
43609+#ifdef CONFIG_GRKERNSEC_BRUTE
43610+#define GR_USER_BAN_TIME (15 * 60)
43611+
43612+static int __get_dumpable(unsigned long mm_flags)
43613+{
43614+ int ret;
43615+
43616+ ret = mm_flags & MMF_DUMPABLE_MASK;
43617+ return (ret >= 2) ? 2 : ret;
43618+}
43619+#endif
43620+
43621+void gr_handle_brute_attach(struct task_struct *p, unsigned long mm_flags)
43622+{ 42675+{
43623+#ifdef CONFIG_GRKERNSEC_BRUTE 42676+#ifdef CONFIG_GRKERNSEC_BRUTE
43624+ uid_t uid = 0;
43625+
43626+ rcu_read_lock();
43627+ read_lock(&tasklist_lock); 42677+ read_lock(&tasklist_lock);
43628+ read_lock(&grsec_exec_file_lock); 42678+ read_lock(&grsec_exec_file_lock);
43629+ if (p->real_parent && p->real_parent->exec_file == p->exec_file) 42679+ if (p->real_parent && p->real_parent->exec_file == p->exec_file)
43630+ p->real_parent->brute = 1; 42680+ p->real_parent->brute = 1;
43631+ else {
43632+ const struct cred *cred = __task_cred(p), *cred2;
43633+ struct task_struct *tsk, *tsk2;
43634+
43635+ if (!__get_dumpable(mm_flags) && cred->uid) {
43636+ struct user_struct *user;
43637+
43638+ uid = cred->uid;
43639+
43640+ /* this is put upon execution past expiration */
43641+ user = find_user(uid);
43642+ if (user == NULL)
43643+ goto unlock;
43644+ user->banned = 1;
43645+ user->ban_expires = get_seconds() + GR_USER_BAN_TIME;
43646+ if (user->ban_expires == ~0UL)
43647+ user->ban_expires--;
43648+
43649+ do_each_thread(tsk2, tsk) {
43650+ cred2 = __task_cred(tsk);
43651+ if (tsk != p && cred2->uid == uid)
43652+ gr_fake_force_sig(SIGKILL, tsk);
43653+ } while_each_thread(tsk2, tsk);
43654+ }
43655+ }
43656+unlock:
43657+ read_unlock(&grsec_exec_file_lock); 42681+ read_unlock(&grsec_exec_file_lock);
43658+ read_unlock(&tasklist_lock); 42682+ read_unlock(&tasklist_lock);
43659+ rcu_read_unlock();
43660+
43661+ if (uid)
43662+ printk(KERN_ALERT "grsec: bruteforce prevention initiated against uid %u, banning for %d minutes\n", uid, GR_USER_BAN_TIME / 60);
43663+
43664+#endif 42683+#endif
43665+ return; 42684+ return;
43666+} 42685+}
@@ -43674,64 +42693,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec
43674+ return; 42693+ return;
43675+} 42694+}
43676+ 42695+
43677+void gr_handle_kernel_exploit(void) 42696diff -urNp linux-2.6.38.2/grsecurity/grsec_sock.c linux-2.6.38.2/grsecurity/grsec_sock.c
43678+{ 42697--- linux-2.6.38.2/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500
43679+#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT 42698+++ linux-2.6.38.2/grsecurity/grsec_sock.c 2011-03-21 18:31:35.000000000 -0400
43680+ const struct cred *cred;
43681+ struct task_struct *tsk, *tsk2;
43682+ struct user_struct *user;
43683+ uid_t uid;
43684+
43685+ if (in_irq() || in_serving_softirq() || in_nmi())
43686+ panic("grsec: halting the system due to suspicious kernel crash caused in interrupt context");
43687+
43688+ uid = current_uid();
43689+
43690+ if (uid == 0)
43691+ panic("grsec: halting the system due to suspicious kernel crash caused by root");
43692+ else {
43693+ /* kill all the processes of this user, hold a reference
43694+ to their creds struct, and prevent them from creating
43695+ another process until system reset
43696+ */
43697+ printk(KERN_ALERT "grsec: banning user with uid %u until system restart for suspicious kernel crash\n", uid);
43698+ /* we intentionally leak this ref */
43699+ user = get_uid(current->cred->user);
43700+ if (user) {
43701+ user->banned = 1;
43702+ user->ban_expires = ~0UL;
43703+ }
43704+
43705+ read_lock(&tasklist_lock);
43706+ do_each_thread(tsk2, tsk) {
43707+ cred = __task_cred(tsk);
43708+ if (cred->uid == uid)
43709+ gr_fake_force_sig(SIGKILL, tsk);
43710+ } while_each_thread(tsk2, tsk);
43711+ read_unlock(&tasklist_lock);
43712+ }
43713+#endif
43714+}
43715+
43716+int gr_process_user_ban(void)
43717+{
43718+#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT) || defined(CONFIG_GRKERNSEC_BRUTE)
43719+ if (unlikely(current->cred->user->banned)) {
43720+ struct user_struct *user = current->cred->user;
43721+ if (user->ban_expires != ~0UL && time_after_eq(get_seconds(), user->ban_expires)) {
43722+ user->banned = 0;
43723+ user->ban_expires = 0;
43724+ free_uid(user);
43725+ } else
43726+ return -EPERM;
43727+ }
43728+#endif
43729+ return 0;
43730+
43731+}
43732diff -urNp linux-2.6.38.3/grsecurity/grsec_sock.c linux-2.6.38.3/grsecurity/grsec_sock.c
43733--- linux-2.6.38.3/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500
43734+++ linux-2.6.38.3/grsecurity/grsec_sock.c 2011-04-17 15:57:32.000000000 -0400
43735@@ -0,0 +1,275 @@ 42699@@ -0,0 +1,275 @@
43736+#include <linux/kernel.h> 42700+#include <linux/kernel.h>
43737+#include <linux/module.h> 42701+#include <linux/module.h>
@@ -44008,9 +42972,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sock.c linux-2.6.38.3/grsecurity/grse
44008+ return current_cap(); 42972+ return current_cap();
44009+#endif 42973+#endif
44010+} 42974+}
44011diff -urNp linux-2.6.38.3/grsecurity/grsec_sysctl.c linux-2.6.38.3/grsecurity/grsec_sysctl.c 42975diff -urNp linux-2.6.38.2/grsecurity/grsec_sysctl.c linux-2.6.38.2/grsecurity/grsec_sysctl.c
44012--- linux-2.6.38.3/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500 42976--- linux-2.6.38.2/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500
44013+++ linux-2.6.38.3/grsecurity/grsec_sysctl.c 2011-04-17 15:57:32.000000000 -0400 42977+++ linux-2.6.38.2/grsecurity/grsec_sysctl.c 2011-03-21 18:31:35.000000000 -0400
44014@@ -0,0 +1,433 @@ 42978@@ -0,0 +1,433 @@
44015+#include <linux/kernel.h> 42979+#include <linux/kernel.h>
44016+#include <linux/sched.h> 42980+#include <linux/sched.h>
@@ -44445,9 +43409,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sysctl.c linux-2.6.38.3/grsecurity/gr
44445+ { } 43409+ { }
44446+}; 43410+};
44447+#endif 43411+#endif
44448diff -urNp linux-2.6.38.3/grsecurity/grsec_time.c linux-2.6.38.3/grsecurity/grsec_time.c 43412diff -urNp linux-2.6.38.2/grsecurity/grsec_time.c linux-2.6.38.2/grsecurity/grsec_time.c
44449--- linux-2.6.38.3/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500 43413--- linux-2.6.38.2/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500
44450+++ linux-2.6.38.3/grsecurity/grsec_time.c 2011-04-17 15:57:32.000000000 -0400 43414+++ linux-2.6.38.2/grsecurity/grsec_time.c 2011-03-21 18:31:35.000000000 -0400
44451@@ -0,0 +1,16 @@ 43415@@ -0,0 +1,16 @@
44452+#include <linux/kernel.h> 43416+#include <linux/kernel.h>
44453+#include <linux/sched.h> 43417+#include <linux/sched.h>
@@ -44465,9 +43429,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_time.c linux-2.6.38.3/grsecurity/grse
44465+} 43429+}
44466+ 43430+
44467+EXPORT_SYMBOL(gr_log_timechange); 43431+EXPORT_SYMBOL(gr_log_timechange);
44468diff -urNp linux-2.6.38.3/grsecurity/grsec_tpe.c linux-2.6.38.3/grsecurity/grsec_tpe.c 43432diff -urNp linux-2.6.38.2/grsecurity/grsec_tpe.c linux-2.6.38.2/grsecurity/grsec_tpe.c
44469--- linux-2.6.38.3/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500 43433--- linux-2.6.38.2/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500
44470+++ linux-2.6.38.3/grsecurity/grsec_tpe.c 2011-04-17 15:57:32.000000000 -0400 43434+++ linux-2.6.38.2/grsecurity/grsec_tpe.c 2011-03-21 18:31:35.000000000 -0400
44471@@ -0,0 +1,39 @@ 43435@@ -0,0 +1,39 @@
44472+#include <linux/kernel.h> 43436+#include <linux/kernel.h>
44473+#include <linux/sched.h> 43437+#include <linux/sched.h>
@@ -44508,9 +43472,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_tpe.c linux-2.6.38.3/grsecurity/grsec
44508+#endif 43472+#endif
44509+ return 1; 43473+ return 1;
44510+} 43474+}
44511diff -urNp linux-2.6.38.3/grsecurity/grsum.c linux-2.6.38.3/grsecurity/grsum.c 43475diff -urNp linux-2.6.38.2/grsecurity/grsum.c linux-2.6.38.2/grsecurity/grsum.c
44512--- linux-2.6.38.3/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500 43476--- linux-2.6.38.2/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500
44513+++ linux-2.6.38.3/grsecurity/grsum.c 2011-04-17 15:57:32.000000000 -0400 43477+++ linux-2.6.38.2/grsecurity/grsum.c 2011-03-21 18:31:35.000000000 -0400
44514@@ -0,0 +1,61 @@ 43478@@ -0,0 +1,61 @@
44515+#include <linux/err.h> 43479+#include <linux/err.h>
44516+#include <linux/kernel.h> 43480+#include <linux/kernel.h>
@@ -44573,10 +43537,10 @@ diff -urNp linux-2.6.38.3/grsecurity/grsum.c linux-2.6.38.3/grsecurity/grsum.c
44573+ 43537+
44574+ return retval; 43538+ return retval;
44575+} 43539+}
44576diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig 43540diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
44577--- linux-2.6.38.3/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500 43541--- linux-2.6.38.2/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500
44578+++ linux-2.6.38.3/grsecurity/Kconfig 2011-04-17 15:57:32.000000000 -0400 43542+++ linux-2.6.38.2/grsecurity/Kconfig 2011-03-26 19:54:37.000000000 -0400
44579@@ -0,0 +1,1045 @@ 43543@@ -0,0 +1,1020 @@
44580+# 43544+#
44581+# grecurity configuration 43545+# grecurity configuration
44582+# 43546+#
@@ -44719,7 +43683,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44719+ select GRKERNSEC_MODHARDEN if (MODULES) 43683+ select GRKERNSEC_MODHARDEN if (MODULES)
44720+ select GRKERNSEC_HARDEN_PTRACE 43684+ select GRKERNSEC_HARDEN_PTRACE
44721+ select GRKERNSEC_VM86 if (X86_32) 43685+ select GRKERNSEC_VM86 if (X86_32)
44722+ select GRKERNSEC_KERN_LOCKOUT if (X86)
44723+ select PAX 43686+ select PAX
44724+ select PAX_RANDUSTACK 43687+ select PAX_RANDUSTACK
44725+ select PAX_ASLR 43688+ select PAX_ASLR
@@ -44731,7 +43694,7 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44731+ select PAX_HAVE_ACL_FLAGS 43694+ select PAX_HAVE_ACL_FLAGS
44732+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN) 43695+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN)
44733+ select PAX_MEMORY_UDEREF if (X86 && !XEN) 43696+ select PAX_MEMORY_UDEREF if (X86 && !XEN)
44734+ select PAX_RANDKSTACK if (X86_TSC && X86) 43697+ select PAX_RANDKSTACK if (X86_TSC && !X86_64)
44735+ select PAX_SEGMEXEC if (X86_32) 43698+ select PAX_SEGMEXEC if (X86_32)
44736+ select PAX_PAGEEXEC 43699+ select PAX_PAGEEXEC
44737+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64) 43700+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64)
@@ -44772,7 +43735,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44772+ - Ptrace restrictions 43735+ - Ptrace restrictions
44773+ - Restricted vm86 mode 43736+ - Restricted vm86 mode
44774+ - Restricted sysfs/debugfs 43737+ - Restricted sysfs/debugfs
44775+ - Active kernel exploit response
44776+ 43738+
44777+config GRKERNSEC_CUSTOM 43739+config GRKERNSEC_CUSTOM
44778+ bool "Custom" 43740+ bool "Custom"
@@ -44791,7 +43753,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44791+ 43753+
44792+config GRKERNSEC_KMEM 43754+config GRKERNSEC_KMEM
44793+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port" 43755+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port"
44794+ select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
44795+ help 43756+ help
44796+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to 43757+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to
44797+ be written to via mmap or otherwise to modify the running kernel. 43758+ be written to via mmap or otherwise to modify the running kernel.
@@ -44858,18 +43819,13 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44858+ bool "Deter exploit bruteforcing" 43819+ bool "Deter exploit bruteforcing"
44859+ help 43820+ help
44860+ If you say Y here, attempts to bruteforce exploits against forking 43821+ If you say Y here, attempts to bruteforce exploits against forking
44861+ daemons such as apache or sshd, as well as against suid/sgid binaries 43822+ daemons such as apache or sshd will be deterred. When a child of a
44862+ will be deterred. When a child of a forking daemon is killed by PaX 43823+ forking daemon is killed by PaX or crashes due to an illegal
44863+ or crashes due to an illegal instruction or other suspicious signal, 43824+ instruction, the parent process will be delayed 30 seconds upon every
44864+ the parent process will be delayed 30 seconds upon every subsequent 43825+ subsequent fork until the administrator is able to assess the
44865+ fork until the administrator is able to assess the situation and 43826+ situation and restart the daemon. It is recommended that you also
44866+ restart the daemon. 43827+ enable signal logging in the auditing section so that logs are
44867+ In the suid/sgid case, the attempt is logged, the user has all their 43828+ generated when a process performs an illegal instruction.
44868+ processes terminated, and they are prevented from executing any further
44869+ processes for 15 minutes.
44870+ It is recommended that you also enable signal logging in the auditing
44871+ section so that logs are generated when a process triggers a suspicious
44872+ signal.
44873+ 43829+
44874+config GRKERNSEC_MODHARDEN 43830+config GRKERNSEC_MODHARDEN
44875+ bool "Harden module auto-loading" 43831+ bool "Harden module auto-loading"
@@ -44917,23 +43873,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44917+ useful protection against local kernel exploitation of overflows 43873+ useful protection against local kernel exploitation of overflows
44918+ and arbitrary read/write vulnerabilities. 43874+ and arbitrary read/write vulnerabilities.
44919+ 43875+
44920+config GRKERNSEC_KERN_LOCKOUT
44921+ bool "Active kernel exploit response"
44922+ depends on X86
44923+ help
44924+ If you say Y here, when a PaX alert is triggered due to suspicious
44925+ activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
44926+ or an OOPs occurs due to bad memory accesses, instead of just
44927+ terminating the offending process (and potentially allowing
44928+ a subsequent exploit from the same user), we will take one of two
44929+ actions:
44930+ If the user was root, we will panic the system
44931+ If the user was non-root, we will log the attempt, terminate
44932+ all processes owned by the user, then prevent them from creating
44933+ any new processes until the system is restarted
44934+ This deters repeated kernel exploitation/bruteforcing attempts
44935+ and is useful for later forensics.
44936+
44937+endmenu 43876+endmenu
44938+menu "Role Based Access Control Options" 43877+menu "Role Based Access Control Options"
44939+depends on GRKERNSEC 43878+depends on GRKERNSEC
@@ -45622,9 +44561,9 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
45622+endmenu 44561+endmenu
45623+ 44562+
45624+endmenu 44563+endmenu
45625diff -urNp linux-2.6.38.3/grsecurity/Makefile linux-2.6.38.3/grsecurity/Makefile 44564diff -urNp linux-2.6.38.2/grsecurity/Makefile linux-2.6.38.2/grsecurity/Makefile
45626--- linux-2.6.38.3/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500 44565--- linux-2.6.38.2/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500
45627+++ linux-2.6.38.3/grsecurity/Makefile 2011-04-17 15:57:32.000000000 -0400 44566+++ linux-2.6.38.2/grsecurity/Makefile 2011-03-21 18:31:35.000000000 -0400
45628@@ -0,0 +1,29 @@ 44567@@ -0,0 +1,29 @@
45629+# grsecurity's ACL system was originally written in 2001 by Michael Dalton 44568+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
45630+# during 2001-2009 it has been completely redesigned by Brad Spengler 44569+# during 2001-2009 it has been completely redesigned by Brad Spengler
@@ -45655,9 +44594,9 @@ diff -urNp linux-2.6.38.3/grsecurity/Makefile linux-2.6.38.3/grsecurity/Makefile
45655+ @-chmod -f 700 . 44594+ @-chmod -f 700 .
45656+ @echo ' grsec: protected kernel image paths' 44595+ @echo ' grsec: protected kernel image paths'
45657+endif 44596+endif
45658diff -urNp linux-2.6.38.3/include/acpi/acoutput.h linux-2.6.38.3/include/acpi/acoutput.h 44597diff -urNp linux-2.6.38.2/include/acpi/acoutput.h linux-2.6.38.2/include/acpi/acoutput.h
45659--- linux-2.6.38.3/include/acpi/acoutput.h 2011-03-14 21:20:32.000000000 -0400 44598--- linux-2.6.38.2/include/acpi/acoutput.h 2011-03-14 21:20:32.000000000 -0400
45660+++ linux-2.6.38.3/include/acpi/acoutput.h 2011-04-17 15:57:32.000000000 -0400 44599+++ linux-2.6.38.2/include/acpi/acoutput.h 2011-03-21 18:31:35.000000000 -0400
45661@@ -269,8 +269,8 @@ 44600@@ -269,8 +269,8 @@
45662 * leaving no executable debug code! 44601 * leaving no executable debug code!
45663 */ 44602 */
@@ -45669,9 +44608,9 @@ diff -urNp linux-2.6.38.3/include/acpi/acoutput.h linux-2.6.38.3/include/acpi/ac
45669 44608
45670 #endif /* ACPI_DEBUG_OUTPUT */ 44609 #endif /* ACPI_DEBUG_OUTPUT */
45671 44610
45672diff -urNp linux-2.6.38.3/include/acpi/acpi_drivers.h linux-2.6.38.3/include/acpi/acpi_drivers.h 44611diff -urNp linux-2.6.38.2/include/acpi/acpi_drivers.h linux-2.6.38.2/include/acpi/acpi_drivers.h
45673--- linux-2.6.38.3/include/acpi/acpi_drivers.h 2011-03-14 21:20:32.000000000 -0400 44612--- linux-2.6.38.2/include/acpi/acpi_drivers.h 2011-03-14 21:20:32.000000000 -0400
45674+++ linux-2.6.38.3/include/acpi/acpi_drivers.h 2011-04-17 15:57:32.000000000 -0400 44613+++ linux-2.6.38.2/include/acpi/acpi_drivers.h 2011-03-21 18:31:35.000000000 -0400
45675@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void); 44614@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void);
45676 Dock Station 44615 Dock Station
45677 -------------------------------------------------------------------------- */ 44616 -------------------------------------------------------------------------- */
@@ -45701,9 +44640,9 @@ diff -urNp linux-2.6.38.3/include/acpi/acpi_drivers.h linux-2.6.38.3/include/acp
45701 void *context) 44640 void *context)
45702 { 44641 {
45703 return -ENODEV; 44642 return -ENODEV;
45704diff -urNp linux-2.6.38.3/include/asm-generic/atomic-long.h linux-2.6.38.3/include/asm-generic/atomic-long.h 44643diff -urNp linux-2.6.38.2/include/asm-generic/atomic-long.h linux-2.6.38.2/include/asm-generic/atomic-long.h
45705--- linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-03-14 21:20:32.000000000 -0400 44644--- linux-2.6.38.2/include/asm-generic/atomic-long.h 2011-03-14 21:20:32.000000000 -0400
45706+++ linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-04-17 15:57:32.000000000 -0400 44645+++ linux-2.6.38.2/include/asm-generic/atomic-long.h 2011-03-21 18:31:35.000000000 -0400
45707@@ -22,6 +22,12 @@ 44646@@ -22,6 +22,12 @@
45708 44647
45709 typedef atomic64_t atomic_long_t; 44648 typedef atomic64_t atomic_long_t;
@@ -45996,9 +44935,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/atomic-long.h linux-2.6.38.3/inclu
45996+#endif 44935+#endif
45997+ 44936+
45998 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */ 44937 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */
45999diff -urNp linux-2.6.38.3/include/asm-generic/dma-mapping-common.h linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 44938diff -urNp linux-2.6.38.2/include/asm-generic/dma-mapping-common.h linux-2.6.38.2/include/asm-generic/dma-mapping-common.h
46000--- linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 2011-03-14 21:20:32.000000000 -0400 44939--- linux-2.6.38.2/include/asm-generic/dma-mapping-common.h 2011-03-14 21:20:32.000000000 -0400
46001+++ linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 2011-04-17 15:57:32.000000000 -0400 44940+++ linux-2.6.38.2/include/asm-generic/dma-mapping-common.h 2011-03-21 18:31:35.000000000 -0400
46002@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_ 44941@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_
46003 enum dma_data_direction dir, 44942 enum dma_data_direction dir,
46004 struct dma_attrs *attrs) 44943 struct dma_attrs *attrs)
@@ -46089,9 +45028,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/dma-mapping-common.h linux-2.6.38.
46089 45028
46090 BUG_ON(!valid_dma_direction(dir)); 45029 BUG_ON(!valid_dma_direction(dir));
46091 if (ops->sync_sg_for_device) 45030 if (ops->sync_sg_for_device)
46092diff -urNp linux-2.6.38.3/include/asm-generic/futex.h linux-2.6.38.3/include/asm-generic/futex.h 45031diff -urNp linux-2.6.38.2/include/asm-generic/futex.h linux-2.6.38.2/include/asm-generic/futex.h
46093--- linux-2.6.38.3/include/asm-generic/futex.h 2011-03-14 21:20:32.000000000 -0400 45032--- linux-2.6.38.2/include/asm-generic/futex.h 2011-03-14 21:20:32.000000000 -0400
46094+++ linux-2.6.38.3/include/asm-generic/futex.h 2011-04-17 15:57:32.000000000 -0400 45033+++ linux-2.6.38.2/include/asm-generic/futex.h 2011-03-21 18:31:35.000000000 -0400
46095@@ -6,7 +6,7 @@ 45034@@ -6,7 +6,7 @@
46096 #include <asm/errno.h> 45035 #include <asm/errno.h>
46097 45036
@@ -46110,9 +45049,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/futex.h linux-2.6.38.3/include/asm
46110 { 45049 {
46111 return -ENOSYS; 45050 return -ENOSYS;
46112 } 45051 }
46113diff -urNp linux-2.6.38.3/include/asm-generic/int-l64.h linux-2.6.38.3/include/asm-generic/int-l64.h 45052diff -urNp linux-2.6.38.2/include/asm-generic/int-l64.h linux-2.6.38.2/include/asm-generic/int-l64.h
46114--- linux-2.6.38.3/include/asm-generic/int-l64.h 2011-03-14 21:20:32.000000000 -0400 45053--- linux-2.6.38.2/include/asm-generic/int-l64.h 2011-03-14 21:20:32.000000000 -0400
46115+++ linux-2.6.38.3/include/asm-generic/int-l64.h 2011-04-17 15:57:32.000000000 -0400 45054+++ linux-2.6.38.2/include/asm-generic/int-l64.h 2011-03-21 18:31:35.000000000 -0400
46116@@ -46,6 +46,8 @@ typedef unsigned int u32; 45055@@ -46,6 +46,8 @@ typedef unsigned int u32;
46117 typedef signed long s64; 45056 typedef signed long s64;
46118 typedef unsigned long u64; 45057 typedef unsigned long u64;
@@ -46122,9 +45061,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/int-l64.h linux-2.6.38.3/include/a
46122 #define S8_C(x) x 45061 #define S8_C(x) x
46123 #define U8_C(x) x ## U 45062 #define U8_C(x) x ## U
46124 #define S16_C(x) x 45063 #define S16_C(x) x
46125diff -urNp linux-2.6.38.3/include/asm-generic/int-ll64.h linux-2.6.38.3/include/asm-generic/int-ll64.h 45064diff -urNp linux-2.6.38.2/include/asm-generic/int-ll64.h linux-2.6.38.2/include/asm-generic/int-ll64.h
46126--- linux-2.6.38.3/include/asm-generic/int-ll64.h 2011-03-14 21:20:32.000000000 -0400 45065--- linux-2.6.38.2/include/asm-generic/int-ll64.h 2011-03-14 21:20:32.000000000 -0400
46127+++ linux-2.6.38.3/include/asm-generic/int-ll64.h 2011-04-17 15:57:32.000000000 -0400 45066+++ linux-2.6.38.2/include/asm-generic/int-ll64.h 2011-03-21 18:31:35.000000000 -0400
46128@@ -51,6 +51,8 @@ typedef unsigned int u32; 45067@@ -51,6 +51,8 @@ typedef unsigned int u32;
46129 typedef signed long long s64; 45068 typedef signed long long s64;
46130 typedef unsigned long long u64; 45069 typedef unsigned long long u64;
@@ -46134,9 +45073,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/int-ll64.h linux-2.6.38.3/include/
46134 #define S8_C(x) x 45073 #define S8_C(x) x
46135 #define U8_C(x) x ## U 45074 #define U8_C(x) x ## U
46136 #define S16_C(x) x 45075 #define S16_C(x) x
46137diff -urNp linux-2.6.38.3/include/asm-generic/kmap_types.h linux-2.6.38.3/include/asm-generic/kmap_types.h 45076diff -urNp linux-2.6.38.2/include/asm-generic/kmap_types.h linux-2.6.38.2/include/asm-generic/kmap_types.h
46138--- linux-2.6.38.3/include/asm-generic/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 45077--- linux-2.6.38.2/include/asm-generic/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
46139+++ linux-2.6.38.3/include/asm-generic/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 45078+++ linux-2.6.38.2/include/asm-generic/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
46140@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE, 45079@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE,
46141 KMAP_D(17) KM_NMI, 45080 KMAP_D(17) KM_NMI,
46142 KMAP_D(18) KM_NMI_PTE, 45081 KMAP_D(18) KM_NMI_PTE,
@@ -46150,9 +45089,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/kmap_types.h linux-2.6.38.3/includ
46150 }; 45089 };
46151 45090
46152 #undef KMAP_D 45091 #undef KMAP_D
46153diff -urNp linux-2.6.38.3/include/asm-generic/pgtable.h linux-2.6.38.3/include/asm-generic/pgtable.h 45092diff -urNp linux-2.6.38.2/include/asm-generic/pgtable.h linux-2.6.38.2/include/asm-generic/pgtable.h
46154--- linux-2.6.38.3/include/asm-generic/pgtable.h 2011-03-14 21:20:32.000000000 -0400 45093--- linux-2.6.38.2/include/asm-generic/pgtable.h 2011-03-14 21:20:32.000000000 -0400
46155+++ linux-2.6.38.3/include/asm-generic/pgtable.h 2011-04-17 15:57:32.000000000 -0400 45094+++ linux-2.6.38.2/include/asm-generic/pgtable.h 2011-03-21 18:31:35.000000000 -0400
46156@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd) 45095@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd)
46157 #endif /* __HAVE_ARCH_PMD_WRITE */ 45096 #endif /* __HAVE_ARCH_PMD_WRITE */
46158 #endif 45097 #endif
@@ -46168,9 +45107,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/pgtable.h linux-2.6.38.3/include/a
46168 #endif /* !__ASSEMBLY__ */ 45107 #endif /* !__ASSEMBLY__ */
46169 45108
46170 #endif /* _ASM_GENERIC_PGTABLE_H */ 45109 #endif /* _ASM_GENERIC_PGTABLE_H */
46171diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 45110diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h
46172--- linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-03-14 21:20:32.000000000 -0400 45111--- linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h 2011-03-14 21:20:32.000000000 -0400
46173+++ linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-04-17 15:57:32.000000000 -0400 45112+++ linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h 2011-03-21 18:31:35.000000000 -0400
46174@@ -1,14 +1,19 @@ 45113@@ -1,14 +1,19 @@
46175 #ifndef _PGTABLE_NOPMD_H 45114 #ifndef _PGTABLE_NOPMD_H
46176 #define _PGTABLE_NOPMD_H 45115 #define _PGTABLE_NOPMD_H
@@ -46207,9 +45146,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h linux-2.6.38.3/inc
46207 /* 45146 /*
46208 * The "pud_xxx()" functions here are trivial for a folded two-level 45147 * The "pud_xxx()" functions here are trivial for a folded two-level
46209 * setup: the pmd is never bad, and a pmd always exists (as it's folded 45148 * setup: the pmd is never bad, and a pmd always exists (as it's folded
46210diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopud.h linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 45149diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopud.h linux-2.6.38.2/include/asm-generic/pgtable-nopud.h
46211--- linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-03-14 21:20:32.000000000 -0400 45150--- linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 2011-03-14 21:20:32.000000000 -0400
46212+++ linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-04-17 15:57:32.000000000 -0400 45151+++ linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 2011-03-21 18:31:35.000000000 -0400
46213@@ -1,10 +1,15 @@ 45152@@ -1,10 +1,15 @@
46214 #ifndef _PGTABLE_NOPUD_H 45153 #ifndef _PGTABLE_NOPUD_H
46215 #define _PGTABLE_NOPUD_H 45154 #define _PGTABLE_NOPUD_H
@@ -46240,9 +45179,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopud.h linux-2.6.38.3/inc
46240 /* 45179 /*
46241 * The "pgd_xxx()" functions here are trivial for a folded two-level 45180 * The "pgd_xxx()" functions here are trivial for a folded two-level
46242 * setup: the pud is never bad, and a pud always exists (as it's folded 45181 * setup: the pud is never bad, and a pud always exists (as it's folded
46243diff -urNp linux-2.6.38.3/include/asm-generic/vmlinux.lds.h linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 45182diff -urNp linux-2.6.38.2/include/asm-generic/vmlinux.lds.h linux-2.6.38.2/include/asm-generic/vmlinux.lds.h
46244--- linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-03-14 21:20:32.000000000 -0400 45183--- linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 2011-03-14 21:20:32.000000000 -0400
46245+++ linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-04-17 15:57:32.000000000 -0400 45184+++ linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 2011-03-21 18:31:35.000000000 -0400
46246@@ -213,6 +213,7 @@ 45185@@ -213,6 +213,7 @@
46247 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 45186 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
46248 VMLINUX_SYMBOL(__start_rodata) = .; \ 45187 VMLINUX_SYMBOL(__start_rodata) = .; \
@@ -46279,19 +45218,19 @@ diff -urNp linux-2.6.38.3/include/asm-generic/vmlinux.lds.h linux-2.6.38.3/inclu
46279 45218
46280 /** 45219 /**
46281 * PERCPU - define output section for percpu area, simple version 45220 * PERCPU - define output section for percpu area, simple version
46282diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/drm_pciids.h 45221diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/drm_pciids.h
46283--- linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-18 17:27:18.000000000 -0400 45222--- linux-2.6.38.2/include/drm/drm_pciids.h 2011-03-14 21:20:32.000000000 -0400
46284+++ linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-17 16:58:34.000000000 -0400 45223+++ linux-2.6.38.2/include/drm/drm_pciids.h 2011-03-21 18:31:35.000000000 -0400
46285@@ -460,7 +460,7 @@ 45224@@ -458,7 +458,7 @@
45225 {0x1002, 0x9803, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
45226 {0x1002, 0x9804, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46286 {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ 45227 {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46287 {0x1002, 0x9806, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46288 {0x1002, 0x9807, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46289- {0, 0, 0} 45228- {0, 0, 0}
46290+ {0, 0, 0, 0, 0, 0} 45229+ {0, 0, 0, 0, 0, 0}
46291 45230
46292 #define r128_PCI_IDS \ 45231 #define r128_PCI_IDS \
46293 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45232 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46294@@ -500,14 +500,14 @@ 45233@@ -498,14 +498,14 @@
46295 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45234 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46296 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45235 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46297 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45236 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46308,7 +45247,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46308 45247
46309 #define mach64_PCI_IDS \ 45248 #define mach64_PCI_IDS \
46310 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45249 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46311@@ -530,7 +530,7 @@ 45250@@ -528,7 +528,7 @@
46312 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45251 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46313 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45252 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46314 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45253 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46317,7 +45256,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46317 45256
46318 #define sisdrv_PCI_IDS \ 45257 #define sisdrv_PCI_IDS \
46319 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45258 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46320@@ -541,7 +541,7 @@ 45259@@ -539,7 +539,7 @@
46321 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45260 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46322 {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ 45261 {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
46323 {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ 45262 {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
@@ -46326,7 +45265,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46326 45265
46327 #define tdfx_PCI_IDS \ 45266 #define tdfx_PCI_IDS \
46328 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45267 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46329@@ -550,7 +550,7 @@ 45268@@ -548,7 +548,7 @@
46330 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45269 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46331 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45270 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46332 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45271 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46335,7 +45274,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46335 45274
46336 #define viadrv_PCI_IDS \ 45275 #define viadrv_PCI_IDS \
46337 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45276 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46338@@ -562,14 +562,14 @@ 45277@@ -560,14 +560,14 @@
46339 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45278 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46340 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \ 45279 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \
46341 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \ 45280 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
@@ -46352,7 +45291,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46352 45291
46353 #define i830_PCI_IDS \ 45292 #define i830_PCI_IDS \
46354 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45293 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46355@@ -577,11 +577,11 @@ 45294@@ -575,11 +575,11 @@
46356 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45295 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46357 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45296 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46358 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45297 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46366,7 +45305,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46366 45305
46367 #define savage_PCI_IDS \ 45306 #define savage_PCI_IDS \
46368 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \ 45307 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \
46369@@ -607,10 +607,10 @@ 45308@@ -605,10 +605,10 @@
46370 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \ 45309 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \
46371 {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ 45310 {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
46372 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ 45311 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
@@ -46379,15 +45318,15 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46379 45318
46380 #define i915_PCI_IDS \ 45319 #define i915_PCI_IDS \
46381 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45320 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46382@@ -644,4 +644,4 @@ 45321@@ -642,4 +642,4 @@
46383 {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45322 {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46384 {0x8086, 0x0046, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45323 {0x8086, 0x0046, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46385 {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45324 {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46386- {0, 0, 0} 45325- {0, 0, 0}
46387+ {0, 0, 0, 0, 0, 0} 45326+ {0, 0, 0, 0, 0, 0}
46388diff -urNp linux-2.6.38.3/include/drm/drmP.h linux-2.6.38.3/include/drm/drmP.h 45327diff -urNp linux-2.6.38.2/include/drm/drmP.h linux-2.6.38.2/include/drm/drmP.h
46389--- linux-2.6.38.3/include/drm/drmP.h 2011-03-14 21:20:32.000000000 -0400 45328--- linux-2.6.38.2/include/drm/drmP.h 2011-03-14 21:20:32.000000000 -0400
46390+++ linux-2.6.38.3/include/drm/drmP.h 2011-04-17 15:57:32.000000000 -0400 45329+++ linux-2.6.38.2/include/drm/drmP.h 2011-03-21 18:31:35.000000000 -0400
46391@@ -73,6 +73,7 @@ 45330@@ -73,6 +73,7 @@
46392 #include <linux/workqueue.h> 45331 #include <linux/workqueue.h>
46393 #include <linux/poll.h> 45332 #include <linux/poll.h>
@@ -46441,9 +45380,9 @@ diff -urNp linux-2.6.38.3/include/drm/drmP.h linux-2.6.38.3/include/drm/drmP.h
46441 void *dev_private; /**< device private data */ 45380 void *dev_private; /**< device private data */
46442 void *mm_private; 45381 void *mm_private;
46443 struct address_space *dev_mapping; 45382 struct address_space *dev_mapping;
46444diff -urNp linux-2.6.38.3/include/linux/a.out.h linux-2.6.38.3/include/linux/a.out.h 45383diff -urNp linux-2.6.38.2/include/linux/a.out.h linux-2.6.38.2/include/linux/a.out.h
46445--- linux-2.6.38.3/include/linux/a.out.h 2011-03-14 21:20:32.000000000 -0400 45384--- linux-2.6.38.2/include/linux/a.out.h 2011-03-14 21:20:32.000000000 -0400
46446+++ linux-2.6.38.3/include/linux/a.out.h 2011-04-17 15:57:32.000000000 -0400 45385+++ linux-2.6.38.2/include/linux/a.out.h 2011-03-21 18:31:35.000000000 -0400
46447@@ -39,6 +39,14 @@ enum machine_type { 45386@@ -39,6 +39,14 @@ enum machine_type {
46448 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */ 45387 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
46449 }; 45388 };
@@ -46459,9 +45398,9 @@ diff -urNp linux-2.6.38.3/include/linux/a.out.h linux-2.6.38.3/include/linux/a.o
46459 #if !defined (N_MAGIC) 45398 #if !defined (N_MAGIC)
46460 #define N_MAGIC(exec) ((exec).a_info & 0xffff) 45399 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
46461 #endif 45400 #endif
46462diff -urNp linux-2.6.38.3/include/linux/atmdev.h linux-2.6.38.3/include/linux/atmdev.h 45401diff -urNp linux-2.6.38.2/include/linux/atmdev.h linux-2.6.38.2/include/linux/atmdev.h
46463--- linux-2.6.38.3/include/linux/atmdev.h 2011-04-18 17:27:18.000000000 -0400 45402--- linux-2.6.38.2/include/linux/atmdev.h 2011-03-14 21:20:32.000000000 -0400
46464+++ linux-2.6.38.3/include/linux/atmdev.h 2011-04-17 16:53:48.000000000 -0400 45403+++ linux-2.6.38.2/include/linux/atmdev.h 2011-03-21 18:31:35.000000000 -0400
46465@@ -237,7 +237,7 @@ struct compat_atm_iobuf { 45404@@ -237,7 +237,7 @@ struct compat_atm_iobuf {
46466 #endif 45405 #endif
46467 45406
@@ -46471,9 +45410,9 @@ diff -urNp linux-2.6.38.3/include/linux/atmdev.h linux-2.6.38.3/include/linux/at
46471 __AAL_STAT_ITEMS 45410 __AAL_STAT_ITEMS
46472 #undef __HANDLE_ITEM 45411 #undef __HANDLE_ITEM
46473 }; 45412 };
46474diff -urNp linux-2.6.38.3/include/linux/binfmts.h linux-2.6.38.3/include/linux/binfmts.h 45413diff -urNp linux-2.6.38.2/include/linux/binfmts.h linux-2.6.38.2/include/linux/binfmts.h
46475--- linux-2.6.38.3/include/linux/binfmts.h 2011-03-14 21:20:32.000000000 -0400 45414--- linux-2.6.38.2/include/linux/binfmts.h 2011-03-14 21:20:32.000000000 -0400
46476+++ linux-2.6.38.3/include/linux/binfmts.h 2011-04-17 15:57:32.000000000 -0400 45415+++ linux-2.6.38.2/include/linux/binfmts.h 2011-03-21 18:31:35.000000000 -0400
46477@@ -92,6 +92,7 @@ struct linux_binfmt { 45416@@ -92,6 +92,7 @@ struct linux_binfmt {
46478 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); 45417 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
46479 int (*load_shlib)(struct file *); 45418 int (*load_shlib)(struct file *);
@@ -46482,9 +45421,9 @@ diff -urNp linux-2.6.38.3/include/linux/binfmts.h linux-2.6.38.3/include/linux/b
46482 unsigned long min_coredump; /* minimal dump size */ 45421 unsigned long min_coredump; /* minimal dump size */
46483 }; 45422 };
46484 45423
46485diff -urNp linux-2.6.38.3/include/linux/blkdev.h linux-2.6.38.3/include/linux/blkdev.h 45424diff -urNp linux-2.6.38.2/include/linux/blkdev.h linux-2.6.38.2/include/linux/blkdev.h
46486--- linux-2.6.38.3/include/linux/blkdev.h 2011-03-14 21:20:32.000000000 -0400 45425--- linux-2.6.38.2/include/linux/blkdev.h 2011-03-14 21:20:32.000000000 -0400
46487+++ linux-2.6.38.3/include/linux/blkdev.h 2011-04-17 15:57:32.000000000 -0400 45426+++ linux-2.6.38.2/include/linux/blkdev.h 2011-03-21 18:31:35.000000000 -0400
46488@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ 45427@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ
46489 #endif /* CONFIG_BLK_DEV_INTEGRITY */ 45428 #endif /* CONFIG_BLK_DEV_INTEGRITY */
46490 45429
@@ -46520,9 +45459,9 @@ diff -urNp linux-2.6.38.3/include/linux/blkdev.h linux-2.6.38.3/include/linux/bl
46520 }; 45459 };
46521 45460
46522 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, 45461 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
46523diff -urNp linux-2.6.38.3/include/linux/byteorder/little_endian.h linux-2.6.38.3/include/linux/byteorder/little_endian.h 45462diff -urNp linux-2.6.38.2/include/linux/byteorder/little_endian.h linux-2.6.38.2/include/linux/byteorder/little_endian.h
46524--- linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-03-14 21:20:32.000000000 -0400 45463--- linux-2.6.38.2/include/linux/byteorder/little_endian.h 2011-03-14 21:20:32.000000000 -0400
46525+++ linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-04-17 15:57:32.000000000 -0400 45464+++ linux-2.6.38.2/include/linux/byteorder/little_endian.h 2011-03-21 18:31:35.000000000 -0400
46526@@ -42,51 +42,51 @@ 45465@@ -42,51 +42,51 @@
46527 45466
46528 static inline __le64 __cpu_to_le64p(const __u64 *p) 45467 static inline __le64 __cpu_to_le64p(const __u64 *p)
@@ -46587,9 +45526,9 @@ diff -urNp linux-2.6.38.3/include/linux/byteorder/little_endian.h linux-2.6.38.3
46587 } 45526 }
46588 #define __cpu_to_le64s(x) do { (void)(x); } while (0) 45527 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
46589 #define __le64_to_cpus(x) do { (void)(x); } while (0) 45528 #define __le64_to_cpus(x) do { (void)(x); } while (0)
46590diff -urNp linux-2.6.38.3/include/linux/cache.h linux-2.6.38.3/include/linux/cache.h 45529diff -urNp linux-2.6.38.2/include/linux/cache.h linux-2.6.38.2/include/linux/cache.h
46591--- linux-2.6.38.3/include/linux/cache.h 2011-03-14 21:20:32.000000000 -0400 45530--- linux-2.6.38.2/include/linux/cache.h 2011-03-14 21:20:32.000000000 -0400
46592+++ linux-2.6.38.3/include/linux/cache.h 2011-04-17 15:57:32.000000000 -0400 45531+++ linux-2.6.38.2/include/linux/cache.h 2011-03-21 18:31:35.000000000 -0400
46593@@ -16,6 +16,10 @@ 45532@@ -16,6 +16,10 @@
46594 #define __read_mostly 45533 #define __read_mostly
46595 #endif 45534 #endif
@@ -46601,9 +45540,9 @@ diff -urNp linux-2.6.38.3/include/linux/cache.h linux-2.6.38.3/include/linux/cac
46601 #ifndef ____cacheline_aligned 45540 #ifndef ____cacheline_aligned
46602 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) 45541 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
46603 #endif 45542 #endif
46604diff -urNp linux-2.6.38.3/include/linux/capability.h linux-2.6.38.3/include/linux/capability.h 45543diff -urNp linux-2.6.38.2/include/linux/capability.h linux-2.6.38.2/include/linux/capability.h
46605--- linux-2.6.38.3/include/linux/capability.h 2011-03-14 21:20:32.000000000 -0400 45544--- linux-2.6.38.2/include/linux/capability.h 2011-03-14 21:20:32.000000000 -0400
46606+++ linux-2.6.38.3/include/linux/capability.h 2011-04-17 15:57:32.000000000 -0400 45545+++ linux-2.6.38.2/include/linux/capability.h 2011-03-21 18:31:35.000000000 -0400
46607@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff 45546@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff
46608 (security_real_capable_noaudit((t), (cap)) == 0) 45547 (security_real_capable_noaudit((t), (cap)) == 0)
46609 45548
@@ -46612,9 +45551,9 @@ diff -urNp linux-2.6.38.3/include/linux/capability.h linux-2.6.38.3/include/linu
46612 45551
46613 /* audit system wants to get cap info from files as well */ 45552 /* audit system wants to get cap info from files as well */
46614 struct dentry; 45553 struct dentry;
46615diff -urNp linux-2.6.38.3/include/linux/compiler-gcc4.h linux-2.6.38.3/include/linux/compiler-gcc4.h 45554diff -urNp linux-2.6.38.2/include/linux/compiler-gcc4.h linux-2.6.38.2/include/linux/compiler-gcc4.h
46616--- linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-03-14 21:20:32.000000000 -0400 45555--- linux-2.6.38.2/include/linux/compiler-gcc4.h 2011-03-14 21:20:32.000000000 -0400
46617+++ linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-04-17 15:57:32.000000000 -0400 45556+++ linux-2.6.38.2/include/linux/compiler-gcc4.h 2011-03-21 18:31:35.000000000 -0400
46618@@ -54,6 +54,10 @@ 45557@@ -54,6 +54,10 @@
46619 45558
46620 #endif 45559 #endif
@@ -46626,9 +45565,9 @@ diff -urNp linux-2.6.38.3/include/linux/compiler-gcc4.h linux-2.6.38.3/include/l
46626 #endif 45565 #endif
46627 45566
46628 #if __GNUC_MINOR__ > 0 45567 #if __GNUC_MINOR__ > 0
46629diff -urNp linux-2.6.38.3/include/linux/compiler.h linux-2.6.38.3/include/linux/compiler.h 45568diff -urNp linux-2.6.38.2/include/linux/compiler.h linux-2.6.38.2/include/linux/compiler.h
46630--- linux-2.6.38.3/include/linux/compiler.h 2011-03-14 21:20:32.000000000 -0400 45569--- linux-2.6.38.2/include/linux/compiler.h 2011-03-14 21:20:32.000000000 -0400
46631+++ linux-2.6.38.3/include/linux/compiler.h 2011-04-17 15:57:32.000000000 -0400 45570+++ linux-2.6.38.2/include/linux/compiler.h 2011-03-21 18:31:35.000000000 -0400
46632@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_ 45571@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_
46633 #define __cold 45572 #define __cold
46634 #endif 45573 #endif
@@ -46661,9 +45600,9 @@ diff -urNp linux-2.6.38.3/include/linux/compiler.h linux-2.6.38.3/include/linux/
46661+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x)) 45600+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
46662 45601
46663 #endif /* __LINUX_COMPILER_H */ 45602 #endif /* __LINUX_COMPILER_H */
46664diff -urNp linux-2.6.38.3/include/linux/cpuset.h linux-2.6.38.3/include/linux/cpuset.h 45603diff -urNp linux-2.6.38.2/include/linux/cpuset.h linux-2.6.38.2/include/linux/cpuset.h
46665--- linux-2.6.38.3/include/linux/cpuset.h 2011-03-14 21:20:32.000000000 -0400 45604--- linux-2.6.38.2/include/linux/cpuset.h 2011-03-14 21:20:32.000000000 -0400
46666+++ linux-2.6.38.3/include/linux/cpuset.h 2011-04-17 15:57:32.000000000 -0400 45605+++ linux-2.6.38.2/include/linux/cpuset.h 2011-03-21 18:31:35.000000000 -0400
46667@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void 45606@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void
46668 * nodemask. 45607 * nodemask.
46669 */ 45608 */
@@ -46673,9 +45612,9 @@ diff -urNp linux-2.6.38.3/include/linux/cpuset.h linux-2.6.38.3/include/linux/cp
46673 } 45612 }
46674 45613
46675 static inline void set_mems_allowed(nodemask_t nodemask) 45614 static inline void set_mems_allowed(nodemask_t nodemask)
46676diff -urNp linux-2.6.38.3/include/linux/decompress/mm.h linux-2.6.38.3/include/linux/decompress/mm.h 45615diff -urNp linux-2.6.38.2/include/linux/decompress/mm.h linux-2.6.38.2/include/linux/decompress/mm.h
46677--- linux-2.6.38.3/include/linux/decompress/mm.h 2011-03-14 21:20:32.000000000 -0400 45616--- linux-2.6.38.2/include/linux/decompress/mm.h 2011-03-14 21:20:32.000000000 -0400
46678+++ linux-2.6.38.3/include/linux/decompress/mm.h 2011-04-17 15:57:32.000000000 -0400 45617+++ linux-2.6.38.2/include/linux/decompress/mm.h 2011-03-21 18:31:35.000000000 -0400
46679@@ -77,7 +77,7 @@ static void free(void *where) 45618@@ -77,7 +77,7 @@ static void free(void *where)
46680 * warnings when not needed (indeed large_malloc / large_free are not 45619 * warnings when not needed (indeed large_malloc / large_free are not
46681 * needed by inflate */ 45620 * needed by inflate */
@@ -46685,9 +45624,9 @@ diff -urNp linux-2.6.38.3/include/linux/decompress/mm.h linux-2.6.38.3/include/l
46685 #define free(a) kfree(a) 45624 #define free(a) kfree(a)
46686 45625
46687 #define large_malloc(a) vmalloc(a) 45626 #define large_malloc(a) vmalloc(a)
46688diff -urNp linux-2.6.38.3/include/linux/dma-mapping.h linux-2.6.38.3/include/linux/dma-mapping.h 45627diff -urNp linux-2.6.38.2/include/linux/dma-mapping.h linux-2.6.38.2/include/linux/dma-mapping.h
46689--- linux-2.6.38.3/include/linux/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 45628--- linux-2.6.38.2/include/linux/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
46690+++ linux-2.6.38.3/include/linux/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 45629+++ linux-2.6.38.2/include/linux/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
46691@@ -16,40 +16,40 @@ enum dma_data_direction { 45630@@ -16,40 +16,40 @@ enum dma_data_direction {
46692 }; 45631 };
46693 45632
@@ -46743,9 +45682,9 @@ diff -urNp linux-2.6.38.3/include/linux/dma-mapping.h linux-2.6.38.3/include/lin
46743 }; 45682 };
46744 45683
46745 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) 45684 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
46746diff -urNp linux-2.6.38.3/include/linux/elf.h linux-2.6.38.3/include/linux/elf.h 45685diff -urNp linux-2.6.38.2/include/linux/elf.h linux-2.6.38.2/include/linux/elf.h
46747--- linux-2.6.38.3/include/linux/elf.h 2011-03-14 21:20:32.000000000 -0400 45686--- linux-2.6.38.2/include/linux/elf.h 2011-03-14 21:20:32.000000000 -0400
46748+++ linux-2.6.38.3/include/linux/elf.h 2011-04-17 15:57:32.000000000 -0400 45687+++ linux-2.6.38.2/include/linux/elf.h 2011-03-21 18:31:35.000000000 -0400
46749@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword; 45688@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword;
46750 #define PT_GNU_EH_FRAME 0x6474e550 45689 #define PT_GNU_EH_FRAME 0x6474e550
46751 45690
@@ -46818,9 +45757,9 @@ diff -urNp linux-2.6.38.3/include/linux/elf.h linux-2.6.38.3/include/linux/elf.h
46818 45757
46819 #endif 45758 #endif
46820 45759
46821diff -urNp linux-2.6.38.3/include/linux/fs.h linux-2.6.38.3/include/linux/fs.h 45760diff -urNp linux-2.6.38.2/include/linux/fs.h linux-2.6.38.2/include/linux/fs.h
46822--- linux-2.6.38.3/include/linux/fs.h 2011-03-14 21:20:32.000000000 -0400 45761--- linux-2.6.38.2/include/linux/fs.h 2011-03-14 21:20:32.000000000 -0400
46823+++ linux-2.6.38.3/include/linux/fs.h 2011-04-17 15:57:32.000000000 -0400 45762+++ linux-2.6.38.2/include/linux/fs.h 2011-03-21 18:31:35.000000000 -0400
46824@@ -105,6 +105,11 @@ struct inodes_stat_t { 45763@@ -105,6 +105,11 @@ struct inodes_stat_t {
46825 /* File was opened by fanotify and shouldn't generate fanotify events */ 45764 /* File was opened by fanotify and shouldn't generate fanotify events */
46826 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000) 45765 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000)
@@ -46969,9 +45908,9 @@ diff -urNp linux-2.6.38.3/include/linux/fs.h linux-2.6.38.3/include/linux/fs.h
46969 }; 45908 };
46970 45909
46971 /* 45910 /*
46972diff -urNp linux-2.6.38.3/include/linux/fs_struct.h linux-2.6.38.3/include/linux/fs_struct.h 45911diff -urNp linux-2.6.38.2/include/linux/fs_struct.h linux-2.6.38.2/include/linux/fs_struct.h
46973--- linux-2.6.38.3/include/linux/fs_struct.h 2011-03-14 21:20:32.000000000 -0400 45912--- linux-2.6.38.2/include/linux/fs_struct.h 2011-03-14 21:20:32.000000000 -0400
46974+++ linux-2.6.38.3/include/linux/fs_struct.h 2011-04-17 15:57:32.000000000 -0400 45913+++ linux-2.6.38.2/include/linux/fs_struct.h 2011-03-21 18:31:35.000000000 -0400
46975@@ -6,7 +6,7 @@ 45914@@ -6,7 +6,7 @@
46976 #include <linux/seqlock.h> 45915 #include <linux/seqlock.h>
46977 45916
@@ -46981,9 +45920,9 @@ diff -urNp linux-2.6.38.3/include/linux/fs_struct.h linux-2.6.38.3/include/linux
46981 spinlock_t lock; 45920 spinlock_t lock;
46982 seqcount_t seq; 45921 seqcount_t seq;
46983 int umask; 45922 int umask;
46984diff -urNp linux-2.6.38.3/include/linux/genhd.h linux-2.6.38.3/include/linux/genhd.h 45923diff -urNp linux-2.6.38.2/include/linux/genhd.h linux-2.6.38.2/include/linux/genhd.h
46985--- linux-2.6.38.3/include/linux/genhd.h 2011-03-14 21:20:32.000000000 -0400 45924--- linux-2.6.38.2/include/linux/genhd.h 2011-03-14 21:20:32.000000000 -0400
46986+++ linux-2.6.38.3/include/linux/genhd.h 2011-04-17 15:57:32.000000000 -0400 45925+++ linux-2.6.38.2/include/linux/genhd.h 2011-03-21 18:31:35.000000000 -0400
46987@@ -183,7 +183,7 @@ struct gendisk { 45926@@ -183,7 +183,7 @@ struct gendisk {
46988 struct kobject *slave_dir; 45927 struct kobject *slave_dir;
46989 45928
@@ -46993,9 +45932,9 @@ diff -urNp linux-2.6.38.3/include/linux/genhd.h linux-2.6.38.3/include/linux/gen
46993 struct disk_events *ev; 45932 struct disk_events *ev;
46994 #ifdef CONFIG_BLK_DEV_INTEGRITY 45933 #ifdef CONFIG_BLK_DEV_INTEGRITY
46995 struct blk_integrity *integrity; 45934 struct blk_integrity *integrity;
46996diff -urNp linux-2.6.38.3/include/linux/gracl.h linux-2.6.38.3/include/linux/gracl.h 45935diff -urNp linux-2.6.38.2/include/linux/gracl.h linux-2.6.38.2/include/linux/gracl.h
46997--- linux-2.6.38.3/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500 45936--- linux-2.6.38.2/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500
46998+++ linux-2.6.38.3/include/linux/gracl.h 2011-04-17 15:57:32.000000000 -0400 45937+++ linux-2.6.38.2/include/linux/gracl.h 2011-03-26 14:27:27.000000000 -0400
46999@@ -0,0 +1,317 @@ 45938@@ -0,0 +1,317 @@
47000+#ifndef GR_ACL_H 45939+#ifndef GR_ACL_H
47001+#define GR_ACL_H 45940+#define GR_ACL_H
@@ -47314,9 +46253,9 @@ diff -urNp linux-2.6.38.3/include/linux/gracl.h linux-2.6.38.3/include/linux/gra
47314+ 46253+
47315+#endif 46254+#endif
47316+ 46255+
47317diff -urNp linux-2.6.38.3/include/linux/gralloc.h linux-2.6.38.3/include/linux/gralloc.h 46256diff -urNp linux-2.6.38.2/include/linux/gralloc.h linux-2.6.38.2/include/linux/gralloc.h
47318--- linux-2.6.38.3/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500 46257--- linux-2.6.38.2/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500
47319+++ linux-2.6.38.3/include/linux/gralloc.h 2011-04-17 15:57:32.000000000 -0400 46258+++ linux-2.6.38.2/include/linux/gralloc.h 2011-03-21 18:31:35.000000000 -0400
47320@@ -0,0 +1,9 @@ 46259@@ -0,0 +1,9 @@
47321+#ifndef __GRALLOC_H 46260+#ifndef __GRALLOC_H
47322+#define __GRALLOC_H 46261+#define __GRALLOC_H
@@ -47327,9 +46266,9 @@ diff -urNp linux-2.6.38.3/include/linux/gralloc.h linux-2.6.38.3/include/linux/g
47327+void *acl_alloc_num(unsigned long num, unsigned long len); 46266+void *acl_alloc_num(unsigned long num, unsigned long len);
47328+ 46267+
47329+#endif 46268+#endif
47330diff -urNp linux-2.6.38.3/include/linux/grdefs.h linux-2.6.38.3/include/linux/grdefs.h 46269diff -urNp linux-2.6.38.2/include/linux/grdefs.h linux-2.6.38.2/include/linux/grdefs.h
47331--- linux-2.6.38.3/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500 46270--- linux-2.6.38.2/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500
47332+++ linux-2.6.38.3/include/linux/grdefs.h 2011-04-17 15:57:32.000000000 -0400 46271+++ linux-2.6.38.2/include/linux/grdefs.h 2011-03-26 16:39:14.000000000 -0400
47333@@ -0,0 +1,139 @@ 46272@@ -0,0 +1,139 @@
47334+#ifndef GRDEFS_H 46273+#ifndef GRDEFS_H
47335+#define GRDEFS_H 46274+#define GRDEFS_H
@@ -47470,10 +46409,10 @@ diff -urNp linux-2.6.38.3/include/linux/grdefs.h linux-2.6.38.3/include/linux/gr
47470+}; 46409+};
47471+ 46410+
47472+#endif 46411+#endif
47473diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linux/grinternal.h 46412diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linux/grinternal.h
47474--- linux-2.6.38.3/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500 46413--- linux-2.6.38.2/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500
47475+++ linux-2.6.38.3/include/linux/grinternal.h 2011-04-17 15:57:32.000000000 -0400 46414+++ linux-2.6.38.2/include/linux/grinternal.h 2011-03-26 16:51:07.000000000 -0400
47476@@ -0,0 +1,219 @@ 46415@@ -0,0 +1,217 @@
47477+#ifndef __GRINTERNAL_H 46416+#ifndef __GRINTERNAL_H
47478+#define __GRINTERNAL_H 46417+#define __GRINTERNAL_H
47479+ 46418+
@@ -47630,7 +46569,6 @@ diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linu
47630+ GR_STR_INT, 46569+ GR_STR_INT,
47631+ GR_TWO_STR_INT, 46570+ GR_TWO_STR_INT,
47632+ GR_TWO_INT, 46571+ GR_TWO_INT,
47633+ GR_TWO_U64,
47634+ GR_THREE_INT, 46572+ GR_THREE_INT,
47635+ GR_FIVE_INT_TWO_STR, 46573+ GR_FIVE_INT_TWO_STR,
47636+ GR_TWO_STR, 46574+ GR_TWO_STR,
@@ -47666,7 +46604,6 @@ diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linu
47666+#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str) 46604+#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
47667+#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num) 46605+#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
47668+#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2) 46606+#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
47669+#define gr_log_two_u64(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_U64, num1, num2)
47670+#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3) 46607+#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
47671+#define gr_log_int5_str2(audit, msg, num1, num2, str1, str2) gr_log_varargs(audit, msg, GR_FIVE_INT_TWO_STR, num1, num2, str1, str2) 46608+#define gr_log_int5_str2(audit, msg, num1, num2, str1, str2) gr_log_varargs(audit, msg, GR_FIVE_INT_TWO_STR, num1, num2, str1, str2)
47672+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2) 46609+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
@@ -47693,10 +46630,10 @@ diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linu
47693+#endif 46630+#endif
47694+ 46631+
47695+#endif 46632+#endif
47696diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grmsg.h 46633diff -urNp linux-2.6.38.2/include/linux/grmsg.h linux-2.6.38.2/include/linux/grmsg.h
47697--- linux-2.6.38.3/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500 46634--- linux-2.6.38.2/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500
47698+++ linux-2.6.38.3/include/linux/grmsg.h 2011-04-17 15:57:32.000000000 -0400 46635+++ linux-2.6.38.2/include/linux/grmsg.h 2011-03-26 16:52:08.000000000 -0400
47699@@ -0,0 +1,108 @@ 46636@@ -0,0 +1,112 @@
47700+#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" 46637+#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"
47701+#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%pI4 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:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u" 46638+#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%pI4 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:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u"
47702+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by " 46639+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
@@ -47708,7 +46645,10 @@ diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grm
47708+#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by " 46645+#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
47709+#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by " 46646+#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
47710+#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by " 46647+#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
47711+#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem by " 46648+#define GR_KMEM_MSG "denied write of /dev/kmem by "
46649+#define GR_PORT_OPEN_MSG "denied open of /dev/port by "
46650+#define GR_MEM_WRITE_MSG "denied write of /dev/mem by "
46651+#define GR_MEM_MMAP_MSG "denied mmap write of /dev/[k]mem by "
47712+#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by " 46652+#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
47713+#define GR_LEARN_AUDIT_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%lu\t%lu\t%.4095s\t%lu\t%pI4" 46653+#define GR_LEARN_AUDIT_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%lu\t%lu\t%.4095s\t%lu\t%pI4"
47714+#define GR_ID_LEARN_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%c\t%d\t%d\t%d\t%pI4" 46654+#define GR_ID_LEARN_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%c\t%d\t%d\t%d\t%pI4"
@@ -47802,13 +46742,14 @@ diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grm
47802+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by " 46742+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
47803+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by " 46743+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
47804+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by " 46744+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by "
46745+#define GR_NONROOT_MODLOAD_MSG "denied kernel module auto-load of %.64s by "
47805+#define GR_VM86_MSG "denied use of vm86 by " 46746+#define GR_VM86_MSG "denied use of vm86 by "
47806+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by " 46747+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
47807+#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by " 46748+#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
47808diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linux/grsecurity.h 46749diff -urNp linux-2.6.38.2/include/linux/grsecurity.h linux-2.6.38.2/include/linux/grsecurity.h
47809--- linux-2.6.38.3/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500 46750--- linux-2.6.38.2/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500
47810+++ linux-2.6.38.3/include/linux/grsecurity.h 2011-04-17 15:57:32.000000000 -0400 46751+++ linux-2.6.38.2/include/linux/grsecurity.h 2011-03-26 19:58:41.000000000 -0400
47811@@ -0,0 +1,212 @@ 46752@@ -0,0 +1,215 @@
47812+#ifndef GR_SECURITY_H 46753+#ifndef GR_SECURITY_H
47813+#define GR_SECURITY_H 46754+#define GR_SECURITY_H
47814+#include <linux/fs.h> 46755+#include <linux/fs.h>
@@ -47834,10 +46775,8 @@ diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linu
47834+#error "CONFIG_PAX enabled, but no PaX options are enabled." 46775+#error "CONFIG_PAX enabled, but no PaX options are enabled."
47835+#endif 46776+#endif
47836+ 46777+
47837+void gr_handle_brute_attach(struct task_struct *p, unsigned long mm_flags); 46778+void gr_handle_brute_attach(struct task_struct *p);
47838+void gr_handle_brute_check(void); 46779+void gr_handle_brute_check(void);
47839+void gr_handle_kernel_exploit(void);
47840+int gr_process_user_ban(void);
47841+ 46780+
47842+char gr_roletype_to_char(void); 46781+char gr_roletype_to_char(void);
47843+ 46782+
@@ -48013,17 +46952,22 @@ diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linu
48013+ 46952+
48014+#ifdef CONFIG_GRKERNSEC 46953+#ifdef CONFIG_GRKERNSEC
48015+void task_grsec_rbac(struct seq_file *m, struct task_struct *p); 46954+void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
46955+void gr_log_nonroot_mod_load(const char *modname);
48016+void gr_handle_vm86(void); 46956+void gr_handle_vm86(void);
48017+void gr_handle_mem_readwrite(u64 from, u64 to); 46957+void gr_handle_mem_write(void);
46958+void gr_handle_kmem_write(void);
46959+void gr_handle_open_port(void);
46960+int gr_handle_mem_mmap(const unsigned long offset,
46961+ struct vm_area_struct *vma);
48018+ 46962+
48019+extern int grsec_enable_dmesg; 46963+extern int grsec_enable_dmesg;
48020+extern int grsec_disable_privio; 46964+extern int grsec_disable_privio;
48021+#endif 46965+#endif
48022+ 46966+
48023+#endif 46967+#endif
48024diff -urNp linux-2.6.38.3/include/linux/grsock.h linux-2.6.38.3/include/linux/grsock.h 46968diff -urNp linux-2.6.38.2/include/linux/grsock.h linux-2.6.38.2/include/linux/grsock.h
48025--- linux-2.6.38.3/include/linux/grsock.h 1969-12-31 19:00:00.000000000 -0500 46969--- linux-2.6.38.2/include/linux/grsock.h 1969-12-31 19:00:00.000000000 -0500
48026+++ linux-2.6.38.3/include/linux/grsock.h 2011-04-17 15:57:32.000000000 -0400 46970+++ linux-2.6.38.2/include/linux/grsock.h 2011-03-21 18:31:35.000000000 -0400
48027@@ -0,0 +1,19 @@ 46971@@ -0,0 +1,19 @@
48028+#ifndef __GRSOCK_H 46972+#ifndef __GRSOCK_H
48029+#define __GRSOCK_H 46973+#define __GRSOCK_H
@@ -48044,9 +46988,9 @@ diff -urNp linux-2.6.38.3/include/linux/grsock.h linux-2.6.38.3/include/linux/gr
48044+ const int protocol); 46988+ const int protocol);
48045+ 46989+
48046+#endif 46990+#endif
48047diff -urNp linux-2.6.38.3/include/linux/highmem.h linux-2.6.38.3/include/linux/highmem.h 46991diff -urNp linux-2.6.38.2/include/linux/highmem.h linux-2.6.38.2/include/linux/highmem.h
48048--- linux-2.6.38.3/include/linux/highmem.h 2011-03-14 21:20:32.000000000 -0400 46992--- linux-2.6.38.2/include/linux/highmem.h 2011-03-14 21:20:32.000000000 -0400
48049+++ linux-2.6.38.3/include/linux/highmem.h 2011-04-17 15:57:32.000000000 -0400 46993+++ linux-2.6.38.2/include/linux/highmem.h 2011-03-21 18:31:35.000000000 -0400
48050@@ -185,6 +185,18 @@ static inline void clear_highpage(struct 46994@@ -185,6 +185,18 @@ static inline void clear_highpage(struct
48051 kunmap_atomic(kaddr, KM_USER0); 46995 kunmap_atomic(kaddr, KM_USER0);
48052 } 46996 }
@@ -48066,9 +47010,9 @@ diff -urNp linux-2.6.38.3/include/linux/highmem.h linux-2.6.38.3/include/linux/h
48066 static inline void zero_user_segments(struct page *page, 47010 static inline void zero_user_segments(struct page *page,
48067 unsigned start1, unsigned end1, 47011 unsigned start1, unsigned end1,
48068 unsigned start2, unsigned end2) 47012 unsigned start2, unsigned end2)
48069diff -urNp linux-2.6.38.3/include/linux/init.h linux-2.6.38.3/include/linux/init.h 47013diff -urNp linux-2.6.38.2/include/linux/init.h linux-2.6.38.2/include/linux/init.h
48070--- linux-2.6.38.3/include/linux/init.h 2011-03-14 21:20:32.000000000 -0400 47014--- linux-2.6.38.2/include/linux/init.h 2011-03-14 21:20:32.000000000 -0400
48071+++ linux-2.6.38.3/include/linux/init.h 2011-04-17 15:57:32.000000000 -0400 47015+++ linux-2.6.38.2/include/linux/init.h 2011-03-21 18:31:35.000000000 -0400
48072@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm 47016@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm
48073 47017
48074 /* Each module must use one module_init(). */ 47018 /* Each module must use one module_init(). */
@@ -48085,33 +47029,9 @@ diff -urNp linux-2.6.38.3/include/linux/init.h linux-2.6.38.3/include/linux/init
48085 { return exitfn; } \ 47029 { return exitfn; } \
48086 void cleanup_module(void) __attribute__((alias(#exitfn))); 47030 void cleanup_module(void) __attribute__((alias(#exitfn)));
48087 47031
48088diff -urNp linux-2.6.38.3/include/linux/init_task.h linux-2.6.38.3/include/linux/init_task.h 47032diff -urNp linux-2.6.38.2/include/linux/interrupt.h linux-2.6.38.2/include/linux/interrupt.h
48089--- linux-2.6.38.3/include/linux/init_task.h 2011-03-14 21:20:32.000000000 -0400 47033--- linux-2.6.38.2/include/linux/interrupt.h 2011-03-14 21:20:32.000000000 -0400
48090+++ linux-2.6.38.3/include/linux/init_task.h 2011-04-18 18:02:13.000000000 -0400 47034+++ linux-2.6.38.2/include/linux/interrupt.h 2011-03-21 18:31:35.000000000 -0400
48091@@ -83,6 +83,12 @@ extern struct group_info init_groups;
48092 #define INIT_IDS
48093 #endif
48094
48095+#ifdef CONFIG_X86
48096+#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
48097+#else
48098+#define INIT_TASK_THREAD_INFO
48099+#endif
48100+
48101 /*
48102 * Because of the reduced scope of CAP_SETPCAP when filesystem
48103 * capabilities are in effect, it is safe to allow CAP_SETPCAP to
48104@@ -163,6 +169,7 @@ extern struct cred init_cred;
48105 RCU_INIT_POINTER(.cred, &init_cred), \
48106 .comm = "swapper", \
48107 .thread = INIT_THREAD, \
48108+ INIT_TASK_THREAD_INFO \
48109 .fs = &init_fs, \
48110 .files = &init_files, \
48111 .signal = &init_signals, \
48112diff -urNp linux-2.6.38.3/include/linux/interrupt.h linux-2.6.38.3/include/linux/interrupt.h
48113--- linux-2.6.38.3/include/linux/interrupt.h 2011-03-14 21:20:32.000000000 -0400
48114+++ linux-2.6.38.3/include/linux/interrupt.h 2011-04-17 15:57:32.000000000 -0400
48115@@ -393,7 +393,7 @@ enum 47035@@ -393,7 +393,7 @@ enum
48116 /* map softirq index to softirq name. update 'softirq_to_name' in 47036 /* map softirq index to softirq name. update 'softirq_to_name' in
48117 * kernel/softirq.c when adding a new softirq. 47037 * kernel/softirq.c when adding a new softirq.
@@ -48136,9 +47056,9 @@ diff -urNp linux-2.6.38.3/include/linux/interrupt.h linux-2.6.38.3/include/linux
48136 extern void softirq_init(void); 47056 extern void softirq_init(void);
48137 static inline void __raise_softirq_irqoff(unsigned int nr) 47057 static inline void __raise_softirq_irqoff(unsigned int nr)
48138 { 47058 {
48139diff -urNp linux-2.6.38.3/include/linux/jbd2.h linux-2.6.38.3/include/linux/jbd2.h 47059diff -urNp linux-2.6.38.2/include/linux/jbd2.h linux-2.6.38.2/include/linux/jbd2.h
48140--- linux-2.6.38.3/include/linux/jbd2.h 2011-03-14 21:20:32.000000000 -0400 47060--- linux-2.6.38.2/include/linux/jbd2.h 2011-03-14 21:20:32.000000000 -0400
48141+++ linux-2.6.38.3/include/linux/jbd2.h 2011-04-17 15:57:32.000000000 -0400 47061+++ linux-2.6.38.2/include/linux/jbd2.h 2011-03-21 18:31:35.000000000 -0400
48142@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug; 47062@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug;
48143 } \ 47063 } \
48144 } while (0) 47064 } while (0)
@@ -48148,9 +47068,9 @@ diff -urNp linux-2.6.38.3/include/linux/jbd2.h linux-2.6.38.3/include/linux/jbd2
48148 #endif 47068 #endif
48149 47069
48150 extern void *jbd2_alloc(size_t size, gfp_t flags); 47070 extern void *jbd2_alloc(size_t size, gfp_t flags);
48151diff -urNp linux-2.6.38.3/include/linux/jbd.h linux-2.6.38.3/include/linux/jbd.h 47071diff -urNp linux-2.6.38.2/include/linux/jbd.h linux-2.6.38.2/include/linux/jbd.h
48152--- linux-2.6.38.3/include/linux/jbd.h 2011-03-14 21:20:32.000000000 -0400 47072--- linux-2.6.38.2/include/linux/jbd.h 2011-03-14 21:20:32.000000000 -0400
48153+++ linux-2.6.38.3/include/linux/jbd.h 2011-04-17 15:57:32.000000000 -0400 47073+++ linux-2.6.38.2/include/linux/jbd.h 2011-03-21 18:31:35.000000000 -0400
48154@@ -67,7 +67,7 @@ extern u8 journal_enable_debug; 47074@@ -67,7 +67,7 @@ extern u8 journal_enable_debug;
48155 } \ 47075 } \
48156 } while (0) 47076 } while (0)
@@ -48160,9 +47080,9 @@ diff -urNp linux-2.6.38.3/include/linux/jbd.h linux-2.6.38.3/include/linux/jbd.h
48160 #endif 47080 #endif
48161 47081
48162 static inline void *jbd_alloc(size_t size, gfp_t flags) 47082 static inline void *jbd_alloc(size_t size, gfp_t flags)
48163diff -urNp linux-2.6.38.3/include/linux/kallsyms.h linux-2.6.38.3/include/linux/kallsyms.h 47083diff -urNp linux-2.6.38.2/include/linux/kallsyms.h linux-2.6.38.2/include/linux/kallsyms.h
48164--- linux-2.6.38.3/include/linux/kallsyms.h 2011-03-14 21:20:32.000000000 -0400 47084--- linux-2.6.38.2/include/linux/kallsyms.h 2011-03-14 21:20:32.000000000 -0400
48165+++ linux-2.6.38.3/include/linux/kallsyms.h 2011-04-17 15:57:32.000000000 -0400 47085+++ linux-2.6.38.2/include/linux/kallsyms.h 2011-03-21 18:31:35.000000000 -0400
48166@@ -15,7 +15,8 @@ 47086@@ -15,7 +15,8 @@
48167 47087
48168 struct module; 47088 struct module;
@@ -48189,9 +47109,9 @@ diff -urNp linux-2.6.38.3/include/linux/kallsyms.h linux-2.6.38.3/include/linux/
48189 47109
48190 /* This macro allows us to keep printk typechecking */ 47110 /* This macro allows us to keep printk typechecking */
48191 static void __check_printsym_format(const char *fmt, ...) 47111 static void __check_printsym_format(const char *fmt, ...)
48192diff -urNp linux-2.6.38.3/include/linux/kgdb.h linux-2.6.38.3/include/linux/kgdb.h 47112diff -urNp linux-2.6.38.2/include/linux/kgdb.h linux-2.6.38.2/include/linux/kgdb.h
48193--- linux-2.6.38.3/include/linux/kgdb.h 2011-03-14 21:20:32.000000000 -0400 47113--- linux-2.6.38.2/include/linux/kgdb.h 2011-03-14 21:20:32.000000000 -0400
48194+++ linux-2.6.38.3/include/linux/kgdb.h 2011-04-17 15:57:32.000000000 -0400 47114+++ linux-2.6.38.2/include/linux/kgdb.h 2011-03-21 18:31:35.000000000 -0400
48195@@ -269,22 +269,22 @@ struct kgdb_arch { 47115@@ -269,22 +269,22 @@ struct kgdb_arch {
48196 */ 47116 */
48197 struct kgdb_io { 47117 struct kgdb_io {
@@ -48225,21 +47145,9 @@ diff -urNp linux-2.6.38.3/include/linux/kgdb.h linux-2.6.38.3/include/linux/kgdb
48225 47145
48226 extern int kgdb_hex2long(char **ptr, unsigned long *long_val); 47146 extern int kgdb_hex2long(char **ptr, unsigned long *long_val);
48227 extern char *kgdb_mem2hex(char *mem, char *buf, int count); 47147 extern char *kgdb_mem2hex(char *mem, char *buf, int count);
48228diff -urNp linux-2.6.38.3/include/linux/kmod.h linux-2.6.38.3/include/linux/kmod.h 47148diff -urNp linux-2.6.38.2/include/linux/kvm_host.h linux-2.6.38.2/include/linux/kvm_host.h
48229--- linux-2.6.38.3/include/linux/kmod.h 2011-03-14 21:20:32.000000000 -0400 47149--- linux-2.6.38.2/include/linux/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
48230+++ linux-2.6.38.3/include/linux/kmod.h 2011-04-17 15:57:32.000000000 -0400 47150+++ linux-2.6.38.2/include/linux/kvm_host.h 2011-03-21 18:31:35.000000000 -0400
48231@@ -33,6 +33,8 @@ extern char modprobe_path[]; /* for sysc
48232 * usually useless though. */
48233 extern int __request_module(bool wait, const char *name, ...) \
48234 __attribute__((format(printf, 2, 3)));
48235+extern int ___request_module(bool wait, char *param_name, const char *name, ...) \
48236+ __attribute__((format(printf, 3, 4)));
48237 #define request_module(mod...) __request_module(true, mod)
48238 #define request_module_nowait(mod...) __request_module(false, mod)
48239 #define try_then_request_module(x, mod...) \
48240diff -urNp linux-2.6.38.3/include/linux/kvm_host.h linux-2.6.38.3/include/linux/kvm_host.h
48241--- linux-2.6.38.3/include/linux/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
48242+++ linux-2.6.38.3/include/linux/kvm_host.h 2011-04-17 15:57:32.000000000 -0400
48243@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc 47151@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc
48244 void vcpu_load(struct kvm_vcpu *vcpu); 47152 void vcpu_load(struct kvm_vcpu *vcpu);
48245 void vcpu_put(struct kvm_vcpu *vcpu); 47153 void vcpu_put(struct kvm_vcpu *vcpu);
@@ -48258,9 +47166,9 @@ diff -urNp linux-2.6.38.3/include/linux/kvm_host.h linux-2.6.38.3/include/linux/
48258 void kvm_arch_exit(void); 47166 void kvm_arch_exit(void);
48259 47167
48260 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); 47168 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
48261diff -urNp linux-2.6.38.3/include/linux/libata.h linux-2.6.38.3/include/linux/libata.h 47169diff -urNp linux-2.6.38.2/include/linux/libata.h linux-2.6.38.2/include/linux/libata.h
48262--- linux-2.6.38.3/include/linux/libata.h 2011-03-14 21:20:32.000000000 -0400 47170--- linux-2.6.38.2/include/linux/libata.h 2011-03-14 21:20:32.000000000 -0400
48263+++ linux-2.6.38.3/include/linux/libata.h 2011-04-17 15:57:32.000000000 -0400 47171+++ linux-2.6.38.2/include/linux/libata.h 2011-03-21 18:31:35.000000000 -0400
48264@@ -65,11 +65,11 @@ 47172@@ -65,11 +65,11 @@
48265 #ifdef ATA_VERBOSE_DEBUG 47173 #ifdef ATA_VERBOSE_DEBUG
48266 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args) 47174 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
@@ -48326,9 +47234,9 @@ diff -urNp linux-2.6.38.3/include/linux/libata.h linux-2.6.38.3/include/linux/li
48326 extern int ata_scsi_detect(struct scsi_host_template *sht); 47234 extern int ata_scsi_detect(struct scsi_host_template *sht);
48327 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); 47235 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);
48328 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); 47236 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
48329diff -urNp linux-2.6.38.3/include/linux/lockd/bind.h linux-2.6.38.3/include/linux/lockd/bind.h 47237diff -urNp linux-2.6.38.2/include/linux/lockd/bind.h linux-2.6.38.2/include/linux/lockd/bind.h
48330--- linux-2.6.38.3/include/linux/lockd/bind.h 2011-03-14 21:20:32.000000000 -0400 47238--- linux-2.6.38.2/include/linux/lockd/bind.h 2011-03-14 21:20:32.000000000 -0400
48331+++ linux-2.6.38.3/include/linux/lockd/bind.h 2011-04-17 15:57:32.000000000 -0400 47239+++ linux-2.6.38.2/include/linux/lockd/bind.h 2011-03-21 18:31:35.000000000 -0400
48332@@ -23,13 +23,13 @@ struct svc_rqst; 47240@@ -23,13 +23,13 @@ struct svc_rqst;
48333 * This is the set of functions for lockd->nfsd communication 47241 * This is the set of functions for lockd->nfsd communication
48334 */ 47242 */
@@ -48346,9 +47254,9 @@ diff -urNp linux-2.6.38.3/include/linux/lockd/bind.h linux-2.6.38.3/include/linu
48346 47254
48347 /* 47255 /*
48348 * Similar to nfs_client_initdata, but without the NFS-specific 47256 * Similar to nfs_client_initdata, but without the NFS-specific
48349diff -urNp linux-2.6.38.3/include/linux/mm.h linux-2.6.38.3/include/linux/mm.h 47257diff -urNp linux-2.6.38.2/include/linux/mm.h linux-2.6.38.2/include/linux/mm.h
48350--- linux-2.6.38.3/include/linux/mm.h 2011-04-18 17:27:16.000000000 -0400 47258--- linux-2.6.38.2/include/linux/mm.h 2011-03-28 17:42:40.000000000 -0400
48351+++ linux-2.6.38.3/include/linux/mm.h 2011-04-17 15:57:32.000000000 -0400 47259+++ linux-2.6.38.2/include/linux/mm.h 2011-03-28 17:42:53.000000000 -0400
48352@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void 47260@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void
48353 47261
48354 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */ 47262 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */
@@ -48449,9 +47357,9 @@ diff -urNp linux-2.6.38.3/include/linux/mm.h linux-2.6.38.3/include/linux/mm.h
48449+ 47357+
48450 #endif /* __KERNEL__ */ 47358 #endif /* __KERNEL__ */
48451 #endif /* _LINUX_MM_H */ 47359 #endif /* _LINUX_MM_H */
48452diff -urNp linux-2.6.38.3/include/linux/mm_types.h linux-2.6.38.3/include/linux/mm_types.h 47360diff -urNp linux-2.6.38.2/include/linux/mm_types.h linux-2.6.38.2/include/linux/mm_types.h
48453--- linux-2.6.38.3/include/linux/mm_types.h 2011-03-14 21:20:32.000000000 -0400 47361--- linux-2.6.38.2/include/linux/mm_types.h 2011-03-14 21:20:32.000000000 -0400
48454+++ linux-2.6.38.3/include/linux/mm_types.h 2011-04-17 15:57:32.000000000 -0400 47362+++ linux-2.6.38.2/include/linux/mm_types.h 2011-03-21 18:31:35.000000000 -0400
48455@@ -183,6 +183,8 @@ struct vm_area_struct { 47363@@ -183,6 +183,8 @@ struct vm_area_struct {
48456 #ifdef CONFIG_NUMA 47364 #ifdef CONFIG_NUMA
48457 struct mempolicy *vm_policy; /* NUMA policy for the VMA */ 47365 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
@@ -48486,9 +47394,9 @@ diff -urNp linux-2.6.38.3/include/linux/mm_types.h linux-2.6.38.3/include/linux/
48486 }; 47394 };
48487 47395
48488 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ 47396 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
48489diff -urNp linux-2.6.38.3/include/linux/mmu_notifier.h linux-2.6.38.3/include/linux/mmu_notifier.h 47397diff -urNp linux-2.6.38.2/include/linux/mmu_notifier.h linux-2.6.38.2/include/linux/mmu_notifier.h
48490--- linux-2.6.38.3/include/linux/mmu_notifier.h 2011-03-14 21:20:32.000000000 -0400 47398--- linux-2.6.38.2/include/linux/mmu_notifier.h 2011-03-14 21:20:32.000000000 -0400
48491+++ linux-2.6.38.3/include/linux/mmu_notifier.h 2011-04-17 15:57:32.000000000 -0400 47399+++ linux-2.6.38.2/include/linux/mmu_notifier.h 2011-03-21 18:31:35.000000000 -0400
48492@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr 47400@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr
48493 */ 47401 */
48494 #define ptep_clear_flush_notify(__vma, __address, __ptep) \ 47402 #define ptep_clear_flush_notify(__vma, __address, __ptep) \
@@ -48505,9 +47413,9 @@ diff -urNp linux-2.6.38.3/include/linux/mmu_notifier.h linux-2.6.38.3/include/li
48505 }) 47413 })
48506 47414
48507 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \ 47415 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \
48508diff -urNp linux-2.6.38.3/include/linux/mmzone.h linux-2.6.38.3/include/linux/mmzone.h 47416diff -urNp linux-2.6.38.2/include/linux/mmzone.h linux-2.6.38.2/include/linux/mmzone.h
48509--- linux-2.6.38.3/include/linux/mmzone.h 2011-03-14 21:20:32.000000000 -0400 47417--- linux-2.6.38.2/include/linux/mmzone.h 2011-03-14 21:20:32.000000000 -0400
48510+++ linux-2.6.38.3/include/linux/mmzone.h 2011-04-17 15:57:32.000000000 -0400 47418+++ linux-2.6.38.2/include/linux/mmzone.h 2011-03-21 18:31:35.000000000 -0400
48511@@ -355,7 +355,7 @@ struct zone { 47419@@ -355,7 +355,7 @@ struct zone {
48512 unsigned long flags; /* zone flags, see below */ 47420 unsigned long flags; /* zone flags, see below */
48513 47421
@@ -48517,9 +47425,9 @@ diff -urNp linux-2.6.38.3/include/linux/mmzone.h linux-2.6.38.3/include/linux/mm
48517 47425
48518 /* 47426 /*
48519 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on 47427 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
48520diff -urNp linux-2.6.38.3/include/linux/mod_devicetable.h linux-2.6.38.3/include/linux/mod_devicetable.h 47428diff -urNp linux-2.6.38.2/include/linux/mod_devicetable.h linux-2.6.38.2/include/linux/mod_devicetable.h
48521--- linux-2.6.38.3/include/linux/mod_devicetable.h 2011-03-14 21:20:32.000000000 -0400 47429--- linux-2.6.38.2/include/linux/mod_devicetable.h 2011-03-14 21:20:32.000000000 -0400
48522+++ linux-2.6.38.3/include/linux/mod_devicetable.h 2011-04-17 15:57:32.000000000 -0400 47430+++ linux-2.6.38.2/include/linux/mod_devicetable.h 2011-03-21 18:31:35.000000000 -0400
48523@@ -12,7 +12,7 @@ 47431@@ -12,7 +12,7 @@
48524 typedef unsigned long kernel_ulong_t; 47432 typedef unsigned long kernel_ulong_t;
48525 #endif 47433 #endif
@@ -48538,9 +47446,9 @@ diff -urNp linux-2.6.38.3/include/linux/mod_devicetable.h linux-2.6.38.3/include
48538 47446
48539 struct hid_device_id { 47447 struct hid_device_id {
48540 __u16 bus; 47448 __u16 bus;
48541diff -urNp linux-2.6.38.3/include/linux/module.h linux-2.6.38.3/include/linux/module.h 47449diff -urNp linux-2.6.38.2/include/linux/module.h linux-2.6.38.2/include/linux/module.h
48542--- linux-2.6.38.3/include/linux/module.h 2011-03-14 21:20:32.000000000 -0400 47450--- linux-2.6.38.2/include/linux/module.h 2011-03-14 21:20:32.000000000 -0400
48543+++ linux-2.6.38.3/include/linux/module.h 2011-04-17 15:57:32.000000000 -0400 47451+++ linux-2.6.38.2/include/linux/module.h 2011-03-21 18:31:35.000000000 -0400
48544@@ -324,19 +324,16 @@ struct module 47452@@ -324,19 +324,16 @@ struct module
48545 int (*init)(void); 47453 int (*init)(void);
48546 47454
@@ -48616,9 +47524,9 @@ diff -urNp linux-2.6.38.3/include/linux/module.h linux-2.6.38.3/include/linux/mo
48616 } 47524 }
48617 47525
48618 /* Search for module by name: must hold module_mutex. */ 47526 /* Search for module by name: must hold module_mutex. */
48619diff -urNp linux-2.6.38.3/include/linux/moduleloader.h linux-2.6.38.3/include/linux/moduleloader.h 47527diff -urNp linux-2.6.38.2/include/linux/moduleloader.h linux-2.6.38.2/include/linux/moduleloader.h
48620--- linux-2.6.38.3/include/linux/moduleloader.h 2011-03-14 21:20:32.000000000 -0400 47528--- linux-2.6.38.2/include/linux/moduleloader.h 2011-03-14 21:20:32.000000000 -0400
48621+++ linux-2.6.38.3/include/linux/moduleloader.h 2011-04-17 15:57:32.000000000 -0400 47529+++ linux-2.6.38.2/include/linux/moduleloader.h 2011-03-21 18:31:35.000000000 -0400
48622@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st 47530@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st
48623 sections. Returns NULL on failure. */ 47531 sections. Returns NULL on failure. */
48624 void *module_alloc(unsigned long size); 47532 void *module_alloc(unsigned long size);
@@ -48641,9 +47549,9 @@ diff -urNp linux-2.6.38.3/include/linux/moduleloader.h linux-2.6.38.3/include/li
48641 /* Apply the given relocation to the (simplified) ELF. Return -error 47549 /* Apply the given relocation to the (simplified) ELF. Return -error
48642 or 0. */ 47550 or 0. */
48643 int apply_relocate(Elf_Shdr *sechdrs, 47551 int apply_relocate(Elf_Shdr *sechdrs,
48644diff -urNp linux-2.6.38.3/include/linux/moduleparam.h linux-2.6.38.3/include/linux/moduleparam.h 47552diff -urNp linux-2.6.38.2/include/linux/moduleparam.h linux-2.6.38.2/include/linux/moduleparam.h
48645--- linux-2.6.38.3/include/linux/moduleparam.h 2011-03-14 21:20:32.000000000 -0400 47553--- linux-2.6.38.2/include/linux/moduleparam.h 2011-03-14 21:20:32.000000000 -0400
48646+++ linux-2.6.38.3/include/linux/moduleparam.h 2011-04-17 15:57:32.000000000 -0400 47554+++ linux-2.6.38.2/include/linux/moduleparam.h 2011-03-21 18:31:35.000000000 -0400
48647@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock 47555@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock
48648 * @len is usually just sizeof(string). 47556 * @len is usually just sizeof(string).
48649 */ 47557 */
@@ -48662,21 +47570,9 @@ diff -urNp linux-2.6.38.3/include/linux/moduleparam.h linux-2.6.38.3/include/lin
48662 = { ARRAY_SIZE(array), nump, &param_ops_##type, \ 47570 = { ARRAY_SIZE(array), nump, &param_ops_##type, \
48663 sizeof(array[0]), array }; \ 47571 sizeof(array[0]), array }; \
48664 __module_param_call(MODULE_PARAM_PREFIX, name, \ 47572 __module_param_call(MODULE_PARAM_PREFIX, name, \
48665diff -urNp linux-2.6.38.3/include/linux/mutex.h linux-2.6.38.3/include/linux/mutex.h 47573diff -urNp linux-2.6.38.2/include/linux/namei.h linux-2.6.38.2/include/linux/namei.h
48666--- linux-2.6.38.3/include/linux/mutex.h 2011-03-14 21:20:32.000000000 -0400 47574--- linux-2.6.38.2/include/linux/namei.h 2011-03-14 21:20:32.000000000 -0400
48667+++ linux-2.6.38.3/include/linux/mutex.h 2011-04-17 17:44:37.000000000 -0400 47575+++ linux-2.6.38.2/include/linux/namei.h 2011-03-21 18:31:35.000000000 -0400
48668@@ -51,7 +51,7 @@ struct mutex {
48669 spinlock_t wait_lock;
48670 struct list_head wait_list;
48671 #if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_SMP)
48672- struct thread_info *owner;
48673+ struct task_struct *owner;
48674 #endif
48675 #ifdef CONFIG_DEBUG_MUTEXES
48676 const char *name;
48677diff -urNp linux-2.6.38.3/include/linux/namei.h linux-2.6.38.3/include/linux/namei.h
48678--- linux-2.6.38.3/include/linux/namei.h 2011-03-14 21:20:32.000000000 -0400
48679+++ linux-2.6.38.3/include/linux/namei.h 2011-04-17 15:57:32.000000000 -0400
48680@@ -25,7 +25,7 @@ struct nameidata { 47576@@ -25,7 +25,7 @@ struct nameidata {
48681 unsigned seq; 47577 unsigned seq;
48682 int last_type; 47578 int last_type;
@@ -48701,9 +47597,9 @@ diff -urNp linux-2.6.38.3/include/linux/namei.h linux-2.6.38.3/include/linux/nam
48701 { 47597 {
48702 return nd->saved_names[nd->depth]; 47598 return nd->saved_names[nd->depth];
48703 } 47599 }
48704diff -urNp linux-2.6.38.3/include/linux/netfilter/xt_gradm.h linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 47600diff -urNp linux-2.6.38.2/include/linux/netfilter/xt_gradm.h linux-2.6.38.2/include/linux/netfilter/xt_gradm.h
48705--- linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 1969-12-31 19:00:00.000000000 -0500 47601--- linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 1969-12-31 19:00:00.000000000 -0500
48706+++ linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 2011-04-17 15:57:32.000000000 -0400 47602+++ linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 2011-03-21 18:31:35.000000000 -0400
48707@@ -0,0 +1,9 @@ 47603@@ -0,0 +1,9 @@
48708+#ifndef _LINUX_NETFILTER_XT_GRADM_H 47604+#ifndef _LINUX_NETFILTER_XT_GRADM_H
48709+#define _LINUX_NETFILTER_XT_GRADM_H 1 47605+#define _LINUX_NETFILTER_XT_GRADM_H 1
@@ -48714,9 +47610,9 @@ diff -urNp linux-2.6.38.3/include/linux/netfilter/xt_gradm.h linux-2.6.38.3/incl
48714+}; 47610+};
48715+ 47611+
48716+#endif 47612+#endif
48717diff -urNp linux-2.6.38.3/include/linux/oprofile.h linux-2.6.38.3/include/linux/oprofile.h 47613diff -urNp linux-2.6.38.2/include/linux/oprofile.h linux-2.6.38.2/include/linux/oprofile.h
48718--- linux-2.6.38.3/include/linux/oprofile.h 2011-03-14 21:20:32.000000000 -0400 47614--- linux-2.6.38.2/include/linux/oprofile.h 2011-03-14 21:20:32.000000000 -0400
48719+++ linux-2.6.38.3/include/linux/oprofile.h 2011-04-17 15:57:32.000000000 -0400 47615+++ linux-2.6.38.2/include/linux/oprofile.h 2011-03-21 18:31:35.000000000 -0400
48720@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super 47616@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super
48721 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root, 47617 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root,
48722 char const * name, ulong * val); 47618 char const * name, ulong * val);
@@ -48729,21 +47625,9 @@ diff -urNp linux-2.6.38.3/include/linux/oprofile.h linux-2.6.38.3/include/linux/
48729 47625
48730 /** create a directory */ 47626 /** create a directory */
48731 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, 47627 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
48732diff -urNp linux-2.6.38.3/include/linux/pid.h linux-2.6.38.3/include/linux/pid.h 47628diff -urNp linux-2.6.38.2/include/linux/pipe_fs_i.h linux-2.6.38.2/include/linux/pipe_fs_i.h
48733--- linux-2.6.38.3/include/linux/pid.h 2011-03-14 21:20:32.000000000 -0400 47629--- linux-2.6.38.2/include/linux/pipe_fs_i.h 2011-03-14 21:20:32.000000000 -0400
48734+++ linux-2.6.38.3/include/linux/pid.h 2011-04-18 19:21:21.000000000 -0400 47630+++ linux-2.6.38.2/include/linux/pipe_fs_i.h 2011-03-21 18:31:35.000000000 -0400
48735@@ -117,7 +117,7 @@ extern struct pid *find_vpid(int nr);
48736 */
48737 extern struct pid *find_get_pid(int nr);
48738 extern struct pid *find_ge_pid(int nr, struct pid_namespace *);
48739-int next_pidmap(struct pid_namespace *pid_ns, int last);
48740+int next_pidmap(struct pid_namespace *pid_ns, unsigned int last);
48741
48742 extern struct pid *alloc_pid(struct pid_namespace *ns);
48743 extern void free_pid(struct pid *pid);
48744diff -urNp linux-2.6.38.3/include/linux/pipe_fs_i.h linux-2.6.38.3/include/linux/pipe_fs_i.h
48745--- linux-2.6.38.3/include/linux/pipe_fs_i.h 2011-03-14 21:20:32.000000000 -0400
48746+++ linux-2.6.38.3/include/linux/pipe_fs_i.h 2011-04-17 15:57:32.000000000 -0400
48747@@ -46,9 +46,9 @@ struct pipe_buffer { 47631@@ -46,9 +46,9 @@ struct pipe_buffer {
48748 struct pipe_inode_info { 47632 struct pipe_inode_info {
48749 wait_queue_head_t wait; 47633 wait_queue_head_t wait;
@@ -48757,9 +47641,9 @@ diff -urNp linux-2.6.38.3/include/linux/pipe_fs_i.h linux-2.6.38.3/include/linux
48757 unsigned int r_counter; 47641 unsigned int r_counter;
48758 unsigned int w_counter; 47642 unsigned int w_counter;
48759 struct page *tmp_page; 47643 struct page *tmp_page;
48760diff -urNp linux-2.6.38.3/include/linux/pm_runtime.h linux-2.6.38.3/include/linux/pm_runtime.h 47644diff -urNp linux-2.6.38.2/include/linux/pm_runtime.h linux-2.6.38.2/include/linux/pm_runtime.h
48761--- linux-2.6.38.3/include/linux/pm_runtime.h 2011-03-14 21:20:32.000000000 -0400 47645--- linux-2.6.38.2/include/linux/pm_runtime.h 2011-03-14 21:20:32.000000000 -0400
48762+++ linux-2.6.38.3/include/linux/pm_runtime.h 2011-04-17 15:57:32.000000000 -0400 47646+++ linux-2.6.38.2/include/linux/pm_runtime.h 2011-03-21 18:31:35.000000000 -0400
48763@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st 47647@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st
48764 47648
48765 static inline void pm_runtime_mark_last_busy(struct device *dev) 47649 static inline void pm_runtime_mark_last_busy(struct device *dev)
@@ -48769,9 +47653,9 @@ diff -urNp linux-2.6.38.3/include/linux/pm_runtime.h linux-2.6.38.3/include/linu
48769 } 47653 }
48770 47654
48771 #else /* !CONFIG_PM_RUNTIME */ 47655 #else /* !CONFIG_PM_RUNTIME */
48772diff -urNp linux-2.6.38.3/include/linux/poison.h linux-2.6.38.3/include/linux/poison.h 47656diff -urNp linux-2.6.38.2/include/linux/poison.h linux-2.6.38.2/include/linux/poison.h
48773--- linux-2.6.38.3/include/linux/poison.h 2011-03-14 21:20:32.000000000 -0400 47657--- linux-2.6.38.2/include/linux/poison.h 2011-03-14 21:20:32.000000000 -0400
48774+++ linux-2.6.38.3/include/linux/poison.h 2011-04-17 15:57:32.000000000 -0400 47658+++ linux-2.6.38.2/include/linux/poison.h 2011-03-21 18:31:35.000000000 -0400
48775@@ -19,8 +19,8 @@ 47659@@ -19,8 +19,8 @@
48776 * under normal circumstances, used to verify that nobody uses 47660 * under normal circumstances, used to verify that nobody uses
48777 * non-initialized list entries. 47661 * non-initialized list entries.
@@ -48783,9 +47667,9 @@ diff -urNp linux-2.6.38.3/include/linux/poison.h linux-2.6.38.3/include/linux/po
48783 47667
48784 /********** include/linux/timer.h **********/ 47668 /********** include/linux/timer.h **********/
48785 /* 47669 /*
48786diff -urNp linux-2.6.38.3/include/linux/proc_fs.h linux-2.6.38.3/include/linux/proc_fs.h 47670diff -urNp linux-2.6.38.2/include/linux/proc_fs.h linux-2.6.38.2/include/linux/proc_fs.h
48787--- linux-2.6.38.3/include/linux/proc_fs.h 2011-03-14 21:20:32.000000000 -0400 47671--- linux-2.6.38.2/include/linux/proc_fs.h 2011-03-14 21:20:32.000000000 -0400
48788+++ linux-2.6.38.3/include/linux/proc_fs.h 2011-04-17 15:57:32.000000000 -0400 47672+++ linux-2.6.38.2/include/linux/proc_fs.h 2011-03-21 18:31:35.000000000 -0400
48789@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro 47673@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro
48790 return proc_create_data(name, mode, parent, proc_fops, NULL); 47674 return proc_create_data(name, mode, parent, proc_fops, NULL);
48791 } 47675 }
@@ -48806,9 +47690,9 @@ diff -urNp linux-2.6.38.3/include/linux/proc_fs.h linux-2.6.38.3/include/linux/p
48806 static inline struct proc_dir_entry *create_proc_read_entry(const char *name, 47690 static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
48807 mode_t mode, struct proc_dir_entry *base, 47691 mode_t mode, struct proc_dir_entry *base,
48808 read_proc_t *read_proc, void * data) 47692 read_proc_t *read_proc, void * data)
48809diff -urNp linux-2.6.38.3/include/linux/ptrace.h linux-2.6.38.3/include/linux/ptrace.h 47693diff -urNp linux-2.6.38.2/include/linux/ptrace.h linux-2.6.38.2/include/linux/ptrace.h
48810--- linux-2.6.38.3/include/linux/ptrace.h 2011-03-14 21:20:32.000000000 -0400 47694--- linux-2.6.38.2/include/linux/ptrace.h 2011-03-14 21:20:32.000000000 -0400
48811+++ linux-2.6.38.3/include/linux/ptrace.h 2011-04-17 15:57:32.000000000 -0400 47695+++ linux-2.6.38.2/include/linux/ptrace.h 2011-03-26 11:36:13.000000000 -0400
48812@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_ 47696@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_
48813 extern void exit_ptrace(struct task_struct *tracer); 47697 extern void exit_ptrace(struct task_struct *tracer);
48814 #define PTRACE_MODE_READ 1 47698 #define PTRACE_MODE_READ 1
@@ -48822,9 +47706,9 @@ diff -urNp linux-2.6.38.3/include/linux/ptrace.h linux-2.6.38.3/include/linux/pt
48822 47706
48823 static inline int ptrace_reparented(struct task_struct *child) 47707 static inline int ptrace_reparented(struct task_struct *child)
48824 { 47708 {
48825diff -urNp linux-2.6.38.3/include/linux/random.h linux-2.6.38.3/include/linux/random.h 47709diff -urNp linux-2.6.38.2/include/linux/random.h linux-2.6.38.2/include/linux/random.h
48826--- linux-2.6.38.3/include/linux/random.h 2011-03-14 21:20:32.000000000 -0400 47710--- linux-2.6.38.2/include/linux/random.h 2011-03-14 21:20:32.000000000 -0400
48827+++ linux-2.6.38.3/include/linux/random.h 2011-04-17 15:57:32.000000000 -0400 47711+++ linux-2.6.38.2/include/linux/random.h 2011-03-21 18:31:35.000000000 -0400
48828@@ -80,12 +80,17 @@ void srandom32(u32 seed); 47712@@ -80,12 +80,17 @@ void srandom32(u32 seed);
48829 47713
48830 u32 prandom32(struct rnd_state *); 47714 u32 prandom32(struct rnd_state *);
@@ -48844,9 +47728,9 @@ diff -urNp linux-2.6.38.3/include/linux/random.h linux-2.6.38.3/include/linux/ra
48844 } 47728 }
48845 47729
48846 /** 47730 /**
48847diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs.h linux-2.6.38.3/include/linux/reiserfs_fs.h 47731diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs.h linux-2.6.38.2/include/linux/reiserfs_fs.h
48848--- linux-2.6.38.3/include/linux/reiserfs_fs.h 2011-03-14 21:20:32.000000000 -0400 47732--- linux-2.6.38.2/include/linux/reiserfs_fs.h 2011-03-14 21:20:32.000000000 -0400
48849+++ linux-2.6.38.3/include/linux/reiserfs_fs.h 2011-04-17 15:57:32.000000000 -0400 47733+++ linux-2.6.38.2/include/linux/reiserfs_fs.h 2011-03-21 18:31:35.000000000 -0400
48850@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset 47734@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset
48851 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */ 47735 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */
48852 47736
@@ -48893,9 +47777,9 @@ diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs.h linux-2.6.38.3/include/lin
48893 47777
48894 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, bsize) 47778 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, bsize)
48895 #define op_is_left_mergeable(key,bsize) item_ops[le_key_k_type (le_key_version (key), key)]->is_left_mergeable (key, bsize) 47779 #define op_is_left_mergeable(key,bsize) item_ops[le_key_k_type (le_key_version (key), key)]->is_left_mergeable (key, bsize)
48896diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs_sb.h linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 47780diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs_sb.h linux-2.6.38.2/include/linux/reiserfs_fs_sb.h
48897--- linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 2011-03-14 21:20:32.000000000 -0400 47781--- linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 2011-03-14 21:20:32.000000000 -0400
48898+++ linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 2011-04-17 15:57:32.000000000 -0400 47782+++ linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 2011-03-21 18:31:35.000000000 -0400
48899@@ -386,7 +386,7 @@ struct reiserfs_sb_info { 47783@@ -386,7 +386,7 @@ struct reiserfs_sb_info {
48900 /* Comment? -Hans */ 47784 /* Comment? -Hans */
48901 wait_queue_head_t s_wait; 47785 wait_queue_head_t s_wait;
@@ -48905,9 +47789,9 @@ diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs_sb.h linux-2.6.38.3/include/
48905 // tree gets re-balanced 47789 // tree gets re-balanced
48906 unsigned long s_properties; /* File system properties. Currently holds 47790 unsigned long s_properties; /* File system properties. Currently holds
48907 on-disk FS format */ 47791 on-disk FS format */
48908diff -urNp linux-2.6.38.3/include/linux/rmap.h linux-2.6.38.3/include/linux/rmap.h 47792diff -urNp linux-2.6.38.2/include/linux/rmap.h linux-2.6.38.2/include/linux/rmap.h
48909--- linux-2.6.38.3/include/linux/rmap.h 2011-03-14 21:20:32.000000000 -0400 47793--- linux-2.6.38.2/include/linux/rmap.h 2011-03-14 21:20:32.000000000 -0400
48910+++ linux-2.6.38.3/include/linux/rmap.h 2011-04-17 15:57:32.000000000 -0400 47794+++ linux-2.6.38.2/include/linux/rmap.h 2011-03-21 18:31:35.000000000 -0400
48911@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc 47795@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc
48912 void anon_vma_init(void); /* create anon_vma_cachep */ 47796 void anon_vma_init(void); /* create anon_vma_cachep */
48913 int anon_vma_prepare(struct vm_area_struct *); 47797 int anon_vma_prepare(struct vm_area_struct *);
@@ -48919,9 +47803,9 @@ diff -urNp linux-2.6.38.3/include/linux/rmap.h linux-2.6.38.3/include/linux/rmap
48919 void __anon_vma_link(struct vm_area_struct *); 47803 void __anon_vma_link(struct vm_area_struct *);
48920 void anon_vma_free(struct anon_vma *); 47804 void anon_vma_free(struct anon_vma *);
48921 47805
48922diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sched.h 47806diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sched.h
48923--- linux-2.6.38.3/include/linux/sched.h 2011-03-14 21:20:32.000000000 -0400 47807--- linux-2.6.38.2/include/linux/sched.h 2011-03-14 21:20:32.000000000 -0400
48924+++ linux-2.6.38.3/include/linux/sched.h 2011-04-18 22:03:12.000000000 -0400 47808+++ linux-2.6.38.2/include/linux/sched.h 2011-03-26 17:18:15.000000000 -0400
48925@@ -99,6 +99,7 @@ struct robust_list_head; 47809@@ -99,6 +99,7 @@ struct robust_list_head;
48926 struct bio_list; 47810 struct bio_list;
48927 struct fs_struct; 47811 struct fs_struct;
@@ -48930,15 +47814,6 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
48930 47814
48931 /* 47815 /*
48932 * List of flags we want to share for kernel threads, 47816 * List of flags we want to share for kernel threads,
48933@@ -359,7 +360,7 @@ extern signed long schedule_timeout_inte
48934 extern signed long schedule_timeout_killable(signed long timeout);
48935 extern signed long schedule_timeout_uninterruptible(signed long timeout);
48936 asmlinkage void schedule(void);
48937-extern int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner);
48938+extern int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner);
48939
48940 struct nsproxy;
48941 struct user_namespace;
48942@@ -380,10 +381,13 @@ struct user_namespace; 47817@@ -380,10 +381,13 @@ struct user_namespace;
48943 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN) 47818 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
48944 47819
@@ -48971,19 +47846,16 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
48971 #ifdef CONFIG_AUDIT 47846 #ifdef CONFIG_AUDIT
48972 unsigned audit_tty; 47847 unsigned audit_tty;
48973 struct tty_audit_buf *tty_audit_buf; 47848 struct tty_audit_buf *tty_audit_buf;
48974@@ -700,6 +715,11 @@ struct user_struct { 47849@@ -1192,7 +1207,7 @@ enum perf_event_task_context {
48975 struct key *session_keyring; /* UID's default session keyring */ 47850
48976 #endif 47851 struct task_struct {
48977 47852 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
48978+#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT) || defined(CONFIG_GRKERNSEC_BRUTE) 47853- void *stack;
48979+ unsigned int banned; 47854+ struct thread_info *stack;
48980+ unsigned long ban_expires; 47855 atomic_t usage;
48981+#endif 47856 unsigned int flags; /* per process flags, defined below */
48982+ 47857 unsigned int ptrace;
48983 /* Hash table maintenance information */ 47858@@ -1307,8 +1322,8 @@ struct task_struct {
48984 struct hlist_node uidhash_node;
48985 uid_t uid;
48986@@ -1307,8 +1327,8 @@ struct task_struct {
48987 struct list_head thread_group; 47859 struct list_head thread_group;
48988 47860
48989 struct completion *vfork_done; /* for vfork() */ 47861 struct completion *vfork_done; /* for vfork() */
@@ -48994,7 +47866,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
48994 47866
48995 cputime_t utime, stime, utimescaled, stimescaled; 47867 cputime_t utime, stime, utimescaled, stimescaled;
48996 cputime_t gtime; 47868 cputime_t gtime;
48997@@ -1324,13 +1344,6 @@ struct task_struct { 47869@@ -1324,13 +1339,6 @@ struct task_struct {
48998 struct task_cputime cputime_expires; 47870 struct task_cputime cputime_expires;
48999 struct list_head cpu_timers[3]; 47871 struct list_head cpu_timers[3];
49000 47872
@@ -49008,14 +47880,8 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49008 char comm[TASK_COMM_LEN]; /* executable name excluding path 47880 char comm[TASK_COMM_LEN]; /* executable name excluding path
49009 - access with [gs]et_task_comm (which lock 47881 - access with [gs]et_task_comm (which lock
49010 it with task_lock()) 47882 it with task_lock())
49011@@ -1347,8 +1360,16 @@ struct task_struct { 47883@@ -1349,6 +1357,10 @@ struct task_struct {
49012 #endif
49013 /* CPU-specific state of this task */
49014 struct thread_struct thread; 47884 struct thread_struct thread;
49015+/* thread_info moved to task_struct */
49016+#ifdef CONFIG_X86
49017+ struct thread_info tinfo;
49018+#endif
49019 /* filesystem information */ 47885 /* filesystem information */
49020 struct fs_struct *fs; 47886 struct fs_struct *fs;
49021+ 47887+
@@ -49025,7 +47891,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49025 /* open file information */ 47891 /* open file information */
49026 struct files_struct *files; 47892 struct files_struct *files;
49027 /* namespaces */ 47893 /* namespaces */
49028@@ -1395,6 +1416,11 @@ struct task_struct { 47894@@ -1395,6 +1407,11 @@ struct task_struct {
49029 struct rt_mutex_waiter *pi_blocked_on; 47895 struct rt_mutex_waiter *pi_blocked_on;
49030 #endif 47896 #endif
49031 47897
@@ -49037,7 +47903,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49037 #ifdef CONFIG_DEBUG_MUTEXES 47903 #ifdef CONFIG_DEBUG_MUTEXES
49038 /* mutex deadlock detection */ 47904 /* mutex deadlock detection */
49039 struct mutex_waiter *blocked_on; 47905 struct mutex_waiter *blocked_on;
49040@@ -1499,6 +1525,21 @@ struct task_struct { 47906@@ -1499,6 +1516,21 @@ struct task_struct {
49041 unsigned long default_timer_slack_ns; 47907 unsigned long default_timer_slack_ns;
49042 47908
49043 struct list_head *scm_work_list; 47909 struct list_head *scm_work_list;
@@ -49059,7 +47925,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49059 #ifdef CONFIG_FUNCTION_GRAPH_TRACER 47925 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
49060 /* Index of current stored address in ret_stack */ 47926 /* Index of current stored address in ret_stack */
49061 int curr_ret_stack; 47927 int curr_ret_stack;
49062@@ -1530,6 +1571,51 @@ struct task_struct { 47928@@ -1530,6 +1562,52 @@ struct task_struct {
49063 #endif 47929 #endif
49064 }; 47930 };
49065 47931
@@ -49106,22 +47972,13 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49106+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp); 47972+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
49107+void pax_report_insns(void *pc, void *sp); 47973+void pax_report_insns(void *pc, void *sp);
49108+void pax_report_refcount_overflow(struct pt_regs *regs); 47974+void pax_report_refcount_overflow(struct pt_regs *regs);
49109+void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type); 47975+void pax_report_leak_to_user(const void *ptr, unsigned long len);
47976+void pax_report_overflow_from_user(const void *ptr, unsigned long len);
49110+ 47977+
49111 /* Future-safe accessor for struct task_struct's cpus_allowed. */ 47978 /* Future-safe accessor for struct task_struct's cpus_allowed. */
49112 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) 47979 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
49113 47980
49114@@ -1999,7 +2085,9 @@ void yield(void); 47981@@ -2169,7 +2247,7 @@ extern void __cleanup_sighand(struct sig
49115 extern struct exec_domain default_exec_domain;
49116
49117 union thread_union {
49118+#ifndef CONFIG_X86
49119 struct thread_info thread_info;
49120+#endif
49121 unsigned long stack[THREAD_SIZE/sizeof(long)];
49122 };
49123
49124@@ -2169,7 +2257,7 @@ extern void __cleanup_sighand(struct sig
49125 extern void exit_itimers(struct signal_struct *); 47982 extern void exit_itimers(struct signal_struct *);
49126 extern void flush_itimer_signals(void); 47983 extern void flush_itimer_signals(void);
49127 47984
@@ -49130,7 +47987,18 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49130 47987
49131 extern void daemonize(const char *, ...); 47988 extern void daemonize(const char *, ...);
49132 extern int allow_signal(int); 47989 extern int allow_signal(int);
49133@@ -2310,13 +2398,17 @@ static inline unsigned long *end_of_stac 47990@@ -2294,8 +2372,8 @@ static inline void unlock_task_sighand(s
47991
47992 #ifndef __HAVE_THREAD_FUNCTIONS
47993
47994-#define task_thread_info(task) ((struct thread_info *)(task)->stack)
47995-#define task_stack_page(task) ((task)->stack)
47996+#define task_thread_info(task) ((task)->stack)
47997+#define task_stack_page(task) ((void *)(task)->stack)
47998
47999 static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org)
48000 {
48001@@ -2310,13 +2388,17 @@ static inline unsigned long *end_of_stac
49134 48002
49135 #endif 48003 #endif
49136 48004
@@ -49150,9 +48018,9 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49150 extern void thread_info_cache_init(void); 48018 extern void thread_info_cache_init(void);
49151 48019
49152 #ifdef CONFIG_DEBUG_STACK_USAGE 48020 #ifdef CONFIG_DEBUG_STACK_USAGE
49153diff -urNp linux-2.6.38.3/include/linux/screen_info.h linux-2.6.38.3/include/linux/screen_info.h 48021diff -urNp linux-2.6.38.2/include/linux/screen_info.h linux-2.6.38.2/include/linux/screen_info.h
49154--- linux-2.6.38.3/include/linux/screen_info.h 2011-03-14 21:20:32.000000000 -0400 48022--- linux-2.6.38.2/include/linux/screen_info.h 2011-03-14 21:20:32.000000000 -0400
49155+++ linux-2.6.38.3/include/linux/screen_info.h 2011-04-17 15:57:32.000000000 -0400 48023+++ linux-2.6.38.2/include/linux/screen_info.h 2011-03-21 18:31:35.000000000 -0400
49156@@ -43,7 +43,8 @@ struct screen_info { 48024@@ -43,7 +43,8 @@ struct screen_info {
49157 __u16 pages; /* 0x32 */ 48025 __u16 pages; /* 0x32 */
49158 __u16 vesa_attributes; /* 0x34 */ 48026 __u16 vesa_attributes; /* 0x34 */
@@ -49163,9 +48031,9 @@ diff -urNp linux-2.6.38.3/include/linux/screen_info.h linux-2.6.38.3/include/lin
49163 } __attribute__((packed)); 48031 } __attribute__((packed));
49164 48032
49165 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ 48033 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
49166diff -urNp linux-2.6.38.3/include/linux/security.h linux-2.6.38.3/include/linux/security.h 48034diff -urNp linux-2.6.38.2/include/linux/security.h linux-2.6.38.2/include/linux/security.h
49167--- linux-2.6.38.3/include/linux/security.h 2011-03-14 21:20:32.000000000 -0400 48035--- linux-2.6.38.2/include/linux/security.h 2011-03-14 21:20:32.000000000 -0400
49168+++ linux-2.6.38.3/include/linux/security.h 2011-04-17 15:57:32.000000000 -0400 48036+++ linux-2.6.38.2/include/linux/security.h 2011-03-21 18:31:35.000000000 -0400
49169@@ -35,6 +35,7 @@ 48037@@ -35,6 +35,7 @@
49170 #include <linux/key.h> 48038 #include <linux/key.h>
49171 #include <linux/xfrm.h> 48039 #include <linux/xfrm.h>
@@ -49174,9 +48042,9 @@ diff -urNp linux-2.6.38.3/include/linux/security.h linux-2.6.38.3/include/linux/
49174 #include <net/flow.h> 48042 #include <net/flow.h>
49175 48043
49176 /* Maximum number of letters for an LSM name string */ 48044 /* Maximum number of letters for an LSM name string */
49177diff -urNp linux-2.6.38.3/include/linux/shm.h linux-2.6.38.3/include/linux/shm.h 48045diff -urNp linux-2.6.38.2/include/linux/shm.h linux-2.6.38.2/include/linux/shm.h
49178--- linux-2.6.38.3/include/linux/shm.h 2011-03-14 21:20:32.000000000 -0400 48046--- linux-2.6.38.2/include/linux/shm.h 2011-03-14 21:20:32.000000000 -0400
49179+++ linux-2.6.38.3/include/linux/shm.h 2011-04-17 15:57:32.000000000 -0400 48047+++ linux-2.6.38.2/include/linux/shm.h 2011-03-21 18:31:35.000000000 -0400
49180@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke 48048@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke
49181 pid_t shm_cprid; 48049 pid_t shm_cprid;
49182 pid_t shm_lprid; 48050 pid_t shm_lprid;
@@ -49188,9 +48056,9 @@ diff -urNp linux-2.6.38.3/include/linux/shm.h linux-2.6.38.3/include/linux/shm.h
49188 }; 48056 };
49189 48057
49190 /* shm_mode upper byte flags */ 48058 /* shm_mode upper byte flags */
49191diff -urNp linux-2.6.38.3/include/linux/skbuff.h linux-2.6.38.3/include/linux/skbuff.h 48059diff -urNp linux-2.6.38.2/include/linux/skbuff.h linux-2.6.38.2/include/linux/skbuff.h
49192--- linux-2.6.38.3/include/linux/skbuff.h 2011-03-14 21:20:32.000000000 -0400 48060--- linux-2.6.38.2/include/linux/skbuff.h 2011-03-14 21:20:32.000000000 -0400
49193+++ linux-2.6.38.3/include/linux/skbuff.h 2011-04-17 15:57:32.000000000 -0400 48061+++ linux-2.6.38.2/include/linux/skbuff.h 2011-03-21 18:31:35.000000000 -0400
49194@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp 48062@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp
49195 */ 48063 */
49196 static inline int skb_queue_empty(const struct sk_buff_head *list) 48064 static inline int skb_queue_empty(const struct sk_buff_head *list)
@@ -49218,10 +48086,10 @@ diff -urNp linux-2.6.38.3/include/linux/skbuff.h linux-2.6.38.3/include/linux/sk
49218 } 48086 }
49219 48087
49220 /** 48088 /**
49221diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab.h 48089diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab.h
49222--- linux-2.6.38.3/include/linux/slab.h 2011-03-14 21:20:32.000000000 -0400 48090--- linux-2.6.38.2/include/linux/slab.h 2011-03-14 21:20:32.000000000 -0400
49223+++ linux-2.6.38.3/include/linux/slab.h 2011-04-17 15:57:32.000000000 -0400 48091+++ linux-2.6.38.2/include/linux/slab.h 2011-03-21 18:31:35.000000000 -0400
49224@@ -11,12 +11,20 @@ 48092@@ -11,6 +11,7 @@
49225 48093
49226 #include <linux/gfp.h> 48094 #include <linux/gfp.h>
49227 #include <linux/types.h> 48095 #include <linux/types.h>
@@ -49229,20 +48097,7 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49229 48097
49230 /* 48098 /*
49231 * Flags to pass to kmem_cache_create(). 48099 * Flags to pass to kmem_cache_create().
49232 * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set. 48100@@ -87,10 +88,13 @@
49233 */
49234 #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
49235+
49236+#ifdef CONFIG_PAX_USERCOPY
49237+#define SLAB_USERCOPY 0x00000200UL /* PaX: Allow copying objs to/from userland */
49238+#else
49239+#define SLAB_USERCOPY 0x00000000UL
49240+#endif
49241+
49242 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
49243 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
49244 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
49245@@ -87,10 +95,13 @@
49246 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. 48101 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
49247 * Both make kfree a no-op. 48102 * Both make kfree a no-op.
49248 */ 48103 */
@@ -49259,7 +48114,7 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49259 48114
49260 /* 48115 /*
49261 * struct kmem_cache related prototypes 48116 * struct kmem_cache related prototypes
49262@@ -142,6 +153,7 @@ void * __must_check krealloc(const void 48117@@ -142,6 +146,7 @@ void * __must_check krealloc(const void
49263 void kfree(const void *); 48118 void kfree(const void *);
49264 void kzfree(const void *); 48119 void kzfree(const void *);
49265 size_t ksize(const void *); 48120 size_t ksize(const void *);
@@ -49267,7 +48122,7 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49267 48122
49268 /* 48123 /*
49269 * Allocator specific definitions. These are mainly used to establish optimized 48124 * Allocator specific definitions. These are mainly used to establish optimized
49270@@ -334,4 +346,37 @@ static inline void *kzalloc_node(size_t 48125@@ -334,4 +339,37 @@ static inline void *kzalloc_node(size_t
49271 48126
49272 void __init kmem_cache_init_late(void); 48127 void __init kmem_cache_init_late(void);
49273 48128
@@ -49305,9 +48160,9 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49305+}) 48160+})
49306+ 48161+
49307 #endif /* _LINUX_SLAB_H */ 48162 #endif /* _LINUX_SLAB_H */
49308diff -urNp linux-2.6.38.3/include/linux/slub_def.h linux-2.6.38.3/include/linux/slub_def.h 48163diff -urNp linux-2.6.38.2/include/linux/slub_def.h linux-2.6.38.2/include/linux/slub_def.h
49309--- linux-2.6.38.3/include/linux/slub_def.h 2011-03-14 21:20:32.000000000 -0400 48164--- linux-2.6.38.2/include/linux/slub_def.h 2011-03-14 21:20:32.000000000 -0400
49310+++ linux-2.6.38.3/include/linux/slub_def.h 2011-04-17 15:57:32.000000000 -0400 48165+++ linux-2.6.38.2/include/linux/slub_def.h 2011-03-21 18:31:35.000000000 -0400
49311@@ -79,7 +79,7 @@ struct kmem_cache { 48166@@ -79,7 +79,7 @@ struct kmem_cache {
49312 struct kmem_cache_order_objects max; 48167 struct kmem_cache_order_objects max;
49313 struct kmem_cache_order_objects min; 48168 struct kmem_cache_order_objects min;
@@ -49317,9 +48172,9 @@ diff -urNp linux-2.6.38.3/include/linux/slub_def.h linux-2.6.38.3/include/linux/
49317 void (*ctor)(void *); 48172 void (*ctor)(void *);
49318 int inuse; /* Offset to metadata */ 48173 int inuse; /* Offset to metadata */
49319 int align; /* Alignment */ 48174 int align; /* Alignment */
49320diff -urNp linux-2.6.38.3/include/linux/sonet.h linux-2.6.38.3/include/linux/sonet.h 48175diff -urNp linux-2.6.38.2/include/linux/sonet.h linux-2.6.38.2/include/linux/sonet.h
49321--- linux-2.6.38.3/include/linux/sonet.h 2011-03-14 21:20:32.000000000 -0400 48176--- linux-2.6.38.2/include/linux/sonet.h 2011-03-14 21:20:32.000000000 -0400
49322+++ linux-2.6.38.3/include/linux/sonet.h 2011-04-17 15:57:32.000000000 -0400 48177+++ linux-2.6.38.2/include/linux/sonet.h 2011-03-21 18:31:35.000000000 -0400
49323@@ -61,7 +61,7 @@ struct sonet_stats { 48178@@ -61,7 +61,7 @@ struct sonet_stats {
49324 #include <asm/atomic.h> 48179 #include <asm/atomic.h>
49325 48180
@@ -49329,9 +48184,9 @@ diff -urNp linux-2.6.38.3/include/linux/sonet.h linux-2.6.38.3/include/linux/son
49329 __SONET_ITEMS 48184 __SONET_ITEMS
49330 #undef __HANDLE_ITEM 48185 #undef __HANDLE_ITEM
49331 }; 48186 };
49332diff -urNp linux-2.6.38.3/include/linux/sunrpc/clnt.h linux-2.6.38.3/include/linux/sunrpc/clnt.h 48187diff -urNp linux-2.6.38.2/include/linux/sunrpc/clnt.h linux-2.6.38.2/include/linux/sunrpc/clnt.h
49333--- linux-2.6.38.3/include/linux/sunrpc/clnt.h 2011-03-14 21:20:32.000000000 -0400 48188--- linux-2.6.38.2/include/linux/sunrpc/clnt.h 2011-03-14 21:20:32.000000000 -0400
49334+++ linux-2.6.38.3/include/linux/sunrpc/clnt.h 2011-04-17 15:57:32.000000000 -0400 48189+++ linux-2.6.38.2/include/linux/sunrpc/clnt.h 2011-03-21 18:31:35.000000000 -0400
49335@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por 48190@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por
49336 { 48191 {
49337 switch (sap->sa_family) { 48192 switch (sap->sa_family) {
@@ -49362,9 +48217,9 @@ diff -urNp linux-2.6.38.3/include/linux/sunrpc/clnt.h linux-2.6.38.3/include/lin
49362 } 48217 }
49363 48218
49364 #endif /* __KERNEL__ */ 48219 #endif /* __KERNEL__ */
49365diff -urNp linux-2.6.38.3/include/linux/suspend.h linux-2.6.38.3/include/linux/suspend.h 48220diff -urNp linux-2.6.38.2/include/linux/suspend.h linux-2.6.38.2/include/linux/suspend.h
49366--- linux-2.6.38.3/include/linux/suspend.h 2011-03-14 21:20:32.000000000 -0400 48221--- linux-2.6.38.2/include/linux/suspend.h 2011-03-14 21:20:32.000000000 -0400
49367+++ linux-2.6.38.3/include/linux/suspend.h 2011-04-17 15:57:32.000000000 -0400 48222+++ linux-2.6.38.2/include/linux/suspend.h 2011-03-21 18:31:35.000000000 -0400
49368@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t; 48223@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t;
49369 * which require special recovery actions in that situation. 48224 * which require special recovery actions in that situation.
49370 */ 48225 */
@@ -49417,9 +48272,9 @@ diff -urNp linux-2.6.38.3/include/linux/suspend.h linux-2.6.38.3/include/linux/s
49417 }; 48272 };
49418 48273
49419 #ifdef CONFIG_HIBERNATION 48274 #ifdef CONFIG_HIBERNATION
49420diff -urNp linux-2.6.38.3/include/linux/sysctl.h linux-2.6.38.3/include/linux/sysctl.h 48275diff -urNp linux-2.6.38.2/include/linux/sysctl.h linux-2.6.38.2/include/linux/sysctl.h
49421--- linux-2.6.38.3/include/linux/sysctl.h 2011-03-14 21:20:32.000000000 -0400 48276--- linux-2.6.38.2/include/linux/sysctl.h 2011-03-14 21:20:32.000000000 -0400
49422+++ linux-2.6.38.3/include/linux/sysctl.h 2011-04-17 15:57:32.000000000 -0400 48277+++ linux-2.6.38.2/include/linux/sysctl.h 2011-03-21 18:31:35.000000000 -0400
49423@@ -155,7 +155,11 @@ enum 48278@@ -155,7 +155,11 @@ enum
49424 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ 48279 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
49425 }; 48280 };
@@ -49442,9 +48297,9 @@ diff -urNp linux-2.6.38.3/include/linux/sysctl.h linux-2.6.38.3/include/linux/sy
49442 extern int proc_dointvec(struct ctl_table *, int, 48297 extern int proc_dointvec(struct ctl_table *, int,
49443 void __user *, size_t *, loff_t *); 48298 void __user *, size_t *, loff_t *);
49444 extern int proc_dointvec_minmax(struct ctl_table *, int, 48299 extern int proc_dointvec_minmax(struct ctl_table *, int,
49445diff -urNp linux-2.6.38.3/include/linux/sysfs.h linux-2.6.38.3/include/linux/sysfs.h 48300diff -urNp linux-2.6.38.2/include/linux/sysfs.h linux-2.6.38.2/include/linux/sysfs.h
49446--- linux-2.6.38.3/include/linux/sysfs.h 2011-03-14 21:20:32.000000000 -0400 48301--- linux-2.6.38.2/include/linux/sysfs.h 2011-03-14 21:20:32.000000000 -0400
49447+++ linux-2.6.38.3/include/linux/sysfs.h 2011-04-17 15:57:32.000000000 -0400 48302+++ linux-2.6.38.2/include/linux/sysfs.h 2011-03-21 18:31:35.000000000 -0400
49448@@ -110,8 +110,8 @@ struct bin_attribute { 48303@@ -110,8 +110,8 @@ struct bin_attribute {
49449 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr) 48304 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr)
49450 48305
@@ -49456,9 +48311,9 @@ diff -urNp linux-2.6.38.3/include/linux/sysfs.h linux-2.6.38.3/include/linux/sys
49456 }; 48311 };
49457 48312
49458 struct sysfs_dirent; 48313 struct sysfs_dirent;
49459diff -urNp linux-2.6.38.3/include/linux/tty.h linux-2.6.38.3/include/linux/tty.h 48314diff -urNp linux-2.6.38.2/include/linux/tty.h linux-2.6.38.2/include/linux/tty.h
49460--- linux-2.6.38.3/include/linux/tty.h 2011-03-14 21:20:32.000000000 -0400 48315--- linux-2.6.38.2/include/linux/tty.h 2011-03-14 21:20:32.000000000 -0400
49461+++ linux-2.6.38.3/include/linux/tty.h 2011-04-17 15:57:32.000000000 -0400 48316+++ linux-2.6.38.2/include/linux/tty.h 2011-03-21 18:31:35.000000000 -0400
49462@@ -13,6 +13,8 @@ 48317@@ -13,6 +13,8 @@
49463 #include <linux/tty_driver.h> 48318 #include <linux/tty_driver.h>
49464 #include <linux/tty_ldisc.h> 48319 #include <linux/tty_ldisc.h>
@@ -49495,9 +48350,9 @@ diff -urNp linux-2.6.38.3/include/linux/tty.h linux-2.6.38.3/include/linux/tty.h
49495 48350
49496 /* n_tty.c */ 48351 /* n_tty.c */
49497 extern struct tty_ldisc_ops tty_ldisc_N_TTY; 48352 extern struct tty_ldisc_ops tty_ldisc_N_TTY;
49498diff -urNp linux-2.6.38.3/include/linux/tty_ldisc.h linux-2.6.38.3/include/linux/tty_ldisc.h 48353diff -urNp linux-2.6.38.2/include/linux/tty_ldisc.h linux-2.6.38.2/include/linux/tty_ldisc.h
49499--- linux-2.6.38.3/include/linux/tty_ldisc.h 2011-03-14 21:20:32.000000000 -0400 48354--- linux-2.6.38.2/include/linux/tty_ldisc.h 2011-03-14 21:20:32.000000000 -0400
49500+++ linux-2.6.38.3/include/linux/tty_ldisc.h 2011-04-17 15:57:32.000000000 -0400 48355+++ linux-2.6.38.2/include/linux/tty_ldisc.h 2011-03-21 18:31:35.000000000 -0400
49501@@ -148,7 +148,7 @@ struct tty_ldisc_ops { 48356@@ -148,7 +148,7 @@ struct tty_ldisc_ops {
49502 48357
49503 struct module *owner; 48358 struct module *owner;
@@ -49507,9 +48362,9 @@ diff -urNp linux-2.6.38.3/include/linux/tty_ldisc.h linux-2.6.38.3/include/linux
49507 }; 48362 };
49508 48363
49509 struct tty_ldisc { 48364 struct tty_ldisc {
49510diff -urNp linux-2.6.38.3/include/linux/types.h linux-2.6.38.3/include/linux/types.h 48365diff -urNp linux-2.6.38.2/include/linux/types.h linux-2.6.38.2/include/linux/types.h
49511--- linux-2.6.38.3/include/linux/types.h 2011-03-14 21:20:32.000000000 -0400 48366--- linux-2.6.38.2/include/linux/types.h 2011-03-14 21:20:32.000000000 -0400
49512+++ linux-2.6.38.3/include/linux/types.h 2011-04-17 15:57:32.000000000 -0400 48367+++ linux-2.6.38.2/include/linux/types.h 2011-03-21 18:31:35.000000000 -0400
49513@@ -207,10 +207,26 @@ typedef struct { 48368@@ -207,10 +207,26 @@ typedef struct {
49514 int counter; 48369 int counter;
49515 } atomic_t; 48370 } atomic_t;
@@ -49537,9 +48392,9 @@ diff -urNp linux-2.6.38.3/include/linux/types.h linux-2.6.38.3/include/linux/typ
49537 #endif 48392 #endif
49538 48393
49539 struct list_head { 48394 struct list_head {
49540diff -urNp linux-2.6.38.3/include/linux/uaccess.h linux-2.6.38.3/include/linux/uaccess.h 48395diff -urNp linux-2.6.38.2/include/linux/uaccess.h linux-2.6.38.2/include/linux/uaccess.h
49541--- linux-2.6.38.3/include/linux/uaccess.h 2011-03-14 21:20:32.000000000 -0400 48396--- linux-2.6.38.2/include/linux/uaccess.h 2011-03-14 21:20:32.000000000 -0400
49542+++ linux-2.6.38.3/include/linux/uaccess.h 2011-04-17 15:57:32.000000000 -0400 48397+++ linux-2.6.38.2/include/linux/uaccess.h 2011-03-21 18:31:35.000000000 -0400
49543@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_ 48398@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_
49544 long ret; \ 48399 long ret; \
49545 mm_segment_t old_fs = get_fs(); \ 48400 mm_segment_t old_fs = get_fs(); \
@@ -49575,9 +48430,9 @@ diff -urNp linux-2.6.38.3/include/linux/uaccess.h linux-2.6.38.3/include/linux/u
49575+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size); 48430+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size);
49576 48431
49577 #endif /* __LINUX_UACCESS_H__ */ 48432 #endif /* __LINUX_UACCESS_H__ */
49578diff -urNp linux-2.6.38.3/include/linux/unaligned/access_ok.h linux-2.6.38.3/include/linux/unaligned/access_ok.h 48433diff -urNp linux-2.6.38.2/include/linux/unaligned/access_ok.h linux-2.6.38.2/include/linux/unaligned/access_ok.h
49579--- linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-03-14 21:20:32.000000000 -0400 48434--- linux-2.6.38.2/include/linux/unaligned/access_ok.h 2011-03-14 21:20:32.000000000 -0400
49580+++ linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-04-17 15:57:32.000000000 -0400 48435+++ linux-2.6.38.2/include/linux/unaligned/access_ok.h 2011-03-21 18:31:35.000000000 -0400
49581@@ -6,32 +6,32 @@ 48436@@ -6,32 +6,32 @@
49582 48437
49583 static inline u16 get_unaligned_le16(const void *p) 48438 static inline u16 get_unaligned_le16(const void *p)
@@ -49617,9 +48472,9 @@ diff -urNp linux-2.6.38.3/include/linux/unaligned/access_ok.h linux-2.6.38.3/inc
49617 } 48472 }
49618 48473
49619 static inline void put_unaligned_le16(u16 val, void *p) 48474 static inline void put_unaligned_le16(u16 val, void *p)
49620diff -urNp linux-2.6.38.3/include/linux/usb/hcd.h linux-2.6.38.3/include/linux/usb/hcd.h 48475diff -urNp linux-2.6.38.2/include/linux/usb/hcd.h linux-2.6.38.2/include/linux/usb/hcd.h
49621--- linux-2.6.38.3/include/linux/usb/hcd.h 2011-04-18 17:27:14.000000000 -0400 48476--- linux-2.6.38.2/include/linux/usb/hcd.h 2011-03-23 17:20:08.000000000 -0400
49622+++ linux-2.6.38.3/include/linux/usb/hcd.h 2011-04-17 15:57:32.000000000 -0400 48477+++ linux-2.6.38.2/include/linux/usb/hcd.h 2011-03-23 17:21:51.000000000 -0400
49623@@ -589,7 +589,7 @@ struct usb_mon_operations { 48478@@ -589,7 +589,7 @@ struct usb_mon_operations {
49624 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */ 48479 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */
49625 }; 48480 };
@@ -49638,9 +48493,9 @@ diff -urNp linux-2.6.38.3/include/linux/usb/hcd.h linux-2.6.38.3/include/linux/u
49638 void usb_mon_deregister(void); 48493 void usb_mon_deregister(void);
49639 48494
49640 #else 48495 #else
49641diff -urNp linux-2.6.38.3/include/linux/vmalloc.h linux-2.6.38.3/include/linux/vmalloc.h 48496diff -urNp linux-2.6.38.2/include/linux/vmalloc.h linux-2.6.38.2/include/linux/vmalloc.h
49642--- linux-2.6.38.3/include/linux/vmalloc.h 2011-03-14 21:20:32.000000000 -0400 48497--- linux-2.6.38.2/include/linux/vmalloc.h 2011-03-14 21:20:32.000000000 -0400
49643+++ linux-2.6.38.3/include/linux/vmalloc.h 2011-04-17 15:57:32.000000000 -0400 48498+++ linux-2.6.38.2/include/linux/vmalloc.h 2011-03-21 18:31:35.000000000 -0400
49644@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining 48499@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining
49645 #define VM_MAP 0x00000004 /* vmap()ed pages */ 48500 #define VM_MAP 0x00000004 /* vmap()ed pages */
49646 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ 48501 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
@@ -49757,9 +48612,9 @@ diff -urNp linux-2.6.38.3/include/linux/vmalloc.h linux-2.6.38.3/include/linux/v
49757+}) 48612+})
49758+ 48613+
49759 #endif /* _LINUX_VMALLOC_H */ 48614 #endif /* _LINUX_VMALLOC_H */
49760diff -urNp linux-2.6.38.3/include/linux/vmstat.h linux-2.6.38.3/include/linux/vmstat.h 48615diff -urNp linux-2.6.38.2/include/linux/vmstat.h linux-2.6.38.2/include/linux/vmstat.h
49761--- linux-2.6.38.3/include/linux/vmstat.h 2011-03-14 21:20:32.000000000 -0400 48616--- linux-2.6.38.2/include/linux/vmstat.h 2011-03-14 21:20:32.000000000 -0400
49762+++ linux-2.6.38.3/include/linux/vmstat.h 2011-04-17 15:57:32.000000000 -0400 48617+++ linux-2.6.38.2/include/linux/vmstat.h 2011-03-21 18:31:35.000000000 -0400
49763@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in 48618@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in
49764 /* 48619 /*
49765 * Zone based page accounting with per cpu differentials. 48620 * Zone based page accounting with per cpu differentials.
@@ -49823,9 +48678,9 @@ diff -urNp linux-2.6.38.3/include/linux/vmstat.h linux-2.6.38.3/include/linux/vm
49823 } 48678 }
49824 48679
49825 static inline void __dec_zone_page_state(struct page *page, 48680 static inline void __dec_zone_page_state(struct page *page,
49826diff -urNp linux-2.6.38.3/include/net/inetpeer.h linux-2.6.38.3/include/net/inetpeer.h 48681diff -urNp linux-2.6.38.2/include/net/inetpeer.h linux-2.6.38.2/include/net/inetpeer.h
49827--- linux-2.6.38.3/include/net/inetpeer.h 2011-03-14 21:20:32.000000000 -0400 48682--- linux-2.6.38.2/include/net/inetpeer.h 2011-03-14 21:20:32.000000000 -0400
49828+++ linux-2.6.38.3/include/net/inetpeer.h 2011-04-17 15:57:32.000000000 -0400 48683+++ linux-2.6.38.2/include/net/inetpeer.h 2011-03-21 18:31:35.000000000 -0400
49829@@ -38,8 +38,8 @@ struct inet_peer { 48684@@ -38,8 +38,8 @@ struct inet_peer {
49830 */ 48685 */
49831 union { 48686 union {
@@ -49846,9 +48701,9 @@ diff -urNp linux-2.6.38.3/include/net/inetpeer.h linux-2.6.38.3/include/net/inet
49846 } 48701 }
49847 48702
49848 #endif /* _NET_INETPEER_H */ 48703 #endif /* _NET_INETPEER_H */
49849diff -urNp linux-2.6.38.3/include/net/irda/ircomm_tty.h linux-2.6.38.3/include/net/irda/ircomm_tty.h 48704diff -urNp linux-2.6.38.2/include/net/irda/ircomm_tty.h linux-2.6.38.2/include/net/irda/ircomm_tty.h
49850--- linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-03-14 21:20:32.000000000 -0400 48705--- linux-2.6.38.2/include/net/irda/ircomm_tty.h 2011-03-14 21:20:32.000000000 -0400
49851+++ linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-04-17 15:57:32.000000000 -0400 48706+++ linux-2.6.38.2/include/net/irda/ircomm_tty.h 2011-03-21 18:31:35.000000000 -0400
49852@@ -35,6 +35,7 @@ 48707@@ -35,6 +35,7 @@
49853 #include <linux/termios.h> 48708 #include <linux/termios.h>
49854 #include <linux/timer.h> 48709 #include <linux/timer.h>
@@ -49868,9 +48723,9 @@ diff -urNp linux-2.6.38.3/include/net/irda/ircomm_tty.h linux-2.6.38.3/include/n
49868 48723
49869 /* Protect concurent access to : 48724 /* Protect concurent access to :
49870 * o self->open_count 48725 * o self->open_count
49871diff -urNp linux-2.6.38.3/include/net/neighbour.h linux-2.6.38.3/include/net/neighbour.h 48726diff -urNp linux-2.6.38.2/include/net/neighbour.h linux-2.6.38.2/include/net/neighbour.h
49872--- linux-2.6.38.3/include/net/neighbour.h 2011-03-14 21:20:32.000000000 -0400 48727--- linux-2.6.38.2/include/net/neighbour.h 2011-03-14 21:20:32.000000000 -0400
49873+++ linux-2.6.38.3/include/net/neighbour.h 2011-04-17 15:57:32.000000000 -0400 48728+++ linux-2.6.38.2/include/net/neighbour.h 2011-03-21 18:31:35.000000000 -0400
49874@@ -118,12 +118,12 @@ struct neighbour { 48729@@ -118,12 +118,12 @@ struct neighbour {
49875 48730
49876 struct neigh_ops { 48731 struct neigh_ops {
@@ -49890,9 +48745,9 @@ diff -urNp linux-2.6.38.3/include/net/neighbour.h linux-2.6.38.3/include/net/nei
49890 }; 48745 };
49891 48746
49892 struct pneigh_entry { 48747 struct pneigh_entry {
49893diff -urNp linux-2.6.38.3/include/net/netlink.h linux-2.6.38.3/include/net/netlink.h 48748diff -urNp linux-2.6.38.2/include/net/netlink.h linux-2.6.38.2/include/net/netlink.h
49894--- linux-2.6.38.3/include/net/netlink.h 2011-03-14 21:20:32.000000000 -0400 48749--- linux-2.6.38.2/include/net/netlink.h 2011-03-14 21:20:32.000000000 -0400
49895+++ linux-2.6.38.3/include/net/netlink.h 2011-04-17 15:57:32.000000000 -0400 48750+++ linux-2.6.38.2/include/net/netlink.h 2011-03-21 18:31:35.000000000 -0400
49896@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct 48751@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct
49897 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark) 48752 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
49898 { 48753 {
@@ -49902,9 +48757,9 @@ diff -urNp linux-2.6.38.3/include/net/netlink.h linux-2.6.38.3/include/net/netli
49902 } 48757 }
49903 48758
49904 /** 48759 /**
49905diff -urNp linux-2.6.38.3/include/net/sctp/sctp.h linux-2.6.38.3/include/net/sctp/sctp.h 48760diff -urNp linux-2.6.38.2/include/net/sctp/sctp.h linux-2.6.38.2/include/net/sctp/sctp.h
49906--- linux-2.6.38.3/include/net/sctp/sctp.h 2011-03-14 21:20:32.000000000 -0400 48761--- linux-2.6.38.2/include/net/sctp/sctp.h 2011-03-14 21:20:32.000000000 -0400
49907+++ linux-2.6.38.3/include/net/sctp/sctp.h 2011-04-17 15:57:32.000000000 -0400 48762+++ linux-2.6.38.2/include/net/sctp/sctp.h 2011-03-21 18:31:35.000000000 -0400
49908@@ -316,9 +316,9 @@ do { \ 48763@@ -316,9 +316,9 @@ do { \
49909 48764
49910 #else /* SCTP_DEBUG */ 48765 #else /* SCTP_DEBUG */
@@ -49918,9 +48773,9 @@ diff -urNp linux-2.6.38.3/include/net/sctp/sctp.h linux-2.6.38.3/include/net/sct
49918 #define SCTP_ENABLE_DEBUG 48773 #define SCTP_ENABLE_DEBUG
49919 #define SCTP_DISABLE_DEBUG 48774 #define SCTP_DISABLE_DEBUG
49920 #define SCTP_ASSERT(expr, str, func) 48775 #define SCTP_ASSERT(expr, str, func)
49921diff -urNp linux-2.6.38.3/include/net/tcp.h linux-2.6.38.3/include/net/tcp.h 48776diff -urNp linux-2.6.38.2/include/net/tcp.h linux-2.6.38.2/include/net/tcp.h
49922--- linux-2.6.38.3/include/net/tcp.h 2011-03-14 21:20:32.000000000 -0400 48777--- linux-2.6.38.2/include/net/tcp.h 2011-03-14 21:20:32.000000000 -0400
49923+++ linux-2.6.38.3/include/net/tcp.h 2011-04-17 15:57:32.000000000 -0400 48778+++ linux-2.6.38.2/include/net/tcp.h 2011-03-21 18:31:35.000000000 -0400
49924@@ -1382,7 +1382,7 @@ enum tcp_seq_states { 48779@@ -1382,7 +1382,7 @@ enum tcp_seq_states {
49925 struct tcp_seq_afinfo { 48780 struct tcp_seq_afinfo {
49926 char *name; 48781 char *name;
@@ -49930,9 +48785,9 @@ diff -urNp linux-2.6.38.3/include/net/tcp.h linux-2.6.38.3/include/net/tcp.h
49930 struct seq_operations seq_ops; 48785 struct seq_operations seq_ops;
49931 }; 48786 };
49932 48787
49933diff -urNp linux-2.6.38.3/include/net/udp.h linux-2.6.38.3/include/net/udp.h 48788diff -urNp linux-2.6.38.2/include/net/udp.h linux-2.6.38.2/include/net/udp.h
49934--- linux-2.6.38.3/include/net/udp.h 2011-03-14 21:20:32.000000000 -0400 48789--- linux-2.6.38.2/include/net/udp.h 2011-03-14 21:20:32.000000000 -0400
49935+++ linux-2.6.38.3/include/net/udp.h 2011-04-17 15:57:32.000000000 -0400 48790+++ linux-2.6.38.2/include/net/udp.h 2011-03-21 18:31:35.000000000 -0400
49936@@ -223,7 +223,7 @@ struct udp_seq_afinfo { 48791@@ -223,7 +223,7 @@ struct udp_seq_afinfo {
49937 char *name; 48792 char *name;
49938 sa_family_t family; 48793 sa_family_t family;
@@ -49942,9 +48797,9 @@ diff -urNp linux-2.6.38.3/include/net/udp.h linux-2.6.38.3/include/net/udp.h
49942 struct seq_operations seq_ops; 48797 struct seq_operations seq_ops;
49943 }; 48798 };
49944 48799
49945diff -urNp linux-2.6.38.3/include/sound/ac97_codec.h linux-2.6.38.3/include/sound/ac97_codec.h 48800diff -urNp linux-2.6.38.2/include/sound/ac97_codec.h linux-2.6.38.2/include/sound/ac97_codec.h
49946--- linux-2.6.38.3/include/sound/ac97_codec.h 2011-03-14 21:20:32.000000000 -0400 48801--- linux-2.6.38.2/include/sound/ac97_codec.h 2011-03-14 21:20:32.000000000 -0400
49947+++ linux-2.6.38.3/include/sound/ac97_codec.h 2011-04-17 15:57:32.000000000 -0400 48802+++ linux-2.6.38.2/include/sound/ac97_codec.h 2011-03-21 18:31:35.000000000 -0400
49948@@ -419,15 +419,15 @@ 48803@@ -419,15 +419,15 @@
49949 struct snd_ac97; 48804 struct snd_ac97;
49950 48805
@@ -49968,9 +48823,9 @@ diff -urNp linux-2.6.38.3/include/sound/ac97_codec.h linux-2.6.38.3/include/soun
49968 }; 48823 };
49969 48824
49970 struct snd_ac97_bus_ops { 48825 struct snd_ac97_bus_ops {
49971diff -urNp linux-2.6.38.3/include/trace/events/irq.h linux-2.6.38.3/include/trace/events/irq.h 48826diff -urNp linux-2.6.38.2/include/trace/events/irq.h linux-2.6.38.2/include/trace/events/irq.h
49972--- linux-2.6.38.3/include/trace/events/irq.h 2011-03-14 21:20:32.000000000 -0400 48827--- linux-2.6.38.2/include/trace/events/irq.h 2011-03-14 21:20:32.000000000 -0400
49973+++ linux-2.6.38.3/include/trace/events/irq.h 2011-04-17 15:57:32.000000000 -0400 48828+++ linux-2.6.38.2/include/trace/events/irq.h 2011-03-21 18:31:35.000000000 -0400
49974@@ -36,7 +36,7 @@ struct softirq_action; 48829@@ -36,7 +36,7 @@ struct softirq_action;
49975 */ 48830 */
49976 TRACE_EVENT(irq_handler_entry, 48831 TRACE_EVENT(irq_handler_entry,
@@ -49989,9 +48844,9 @@ diff -urNp linux-2.6.38.3/include/trace/events/irq.h linux-2.6.38.3/include/trac
49989 48844
49990 TP_ARGS(irq, action, ret), 48845 TP_ARGS(irq, action, ret),
49991 48846
49992diff -urNp linux-2.6.38.3/include/video/uvesafb.h linux-2.6.38.3/include/video/uvesafb.h 48847diff -urNp linux-2.6.38.2/include/video/uvesafb.h linux-2.6.38.2/include/video/uvesafb.h
49993--- linux-2.6.38.3/include/video/uvesafb.h 2011-03-14 21:20:32.000000000 -0400 48848--- linux-2.6.38.2/include/video/uvesafb.h 2011-03-14 21:20:32.000000000 -0400
49994+++ linux-2.6.38.3/include/video/uvesafb.h 2011-04-17 15:57:32.000000000 -0400 48849+++ linux-2.6.38.2/include/video/uvesafb.h 2011-03-21 18:31:35.000000000 -0400
49995@@ -177,6 +177,7 @@ struct uvesafb_par { 48850@@ -177,6 +177,7 @@ struct uvesafb_par {
49996 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */ 48851 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
49997 u8 pmi_setpal; /* PMI for palette changes */ 48852 u8 pmi_setpal; /* PMI for palette changes */
@@ -50000,9 +48855,9 @@ diff -urNp linux-2.6.38.3/include/video/uvesafb.h linux-2.6.38.3/include/video/u
50000 void *pmi_start; 48855 void *pmi_start;
50001 void *pmi_pal; 48856 void *pmi_pal;
50002 u8 *vbe_state_orig; /* 48857 u8 *vbe_state_orig; /*
50003diff -urNp linux-2.6.38.3/init/do_mounts.c linux-2.6.38.3/init/do_mounts.c 48858diff -urNp linux-2.6.38.2/init/do_mounts.c linux-2.6.38.2/init/do_mounts.c
50004--- linux-2.6.38.3/init/do_mounts.c 2011-03-14 21:20:32.000000000 -0400 48859--- linux-2.6.38.2/init/do_mounts.c 2011-03-14 21:20:32.000000000 -0400
50005+++ linux-2.6.38.3/init/do_mounts.c 2011-04-17 15:57:32.000000000 -0400 48860+++ linux-2.6.38.2/init/do_mounts.c 2011-03-21 18:31:35.000000000 -0400
50006@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa 48861@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa
50007 48862
50008 static int __init do_mount_root(char *name, char *fs, int flags, void *data) 48863 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
@@ -50042,9 +48897,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts.c linux-2.6.38.3/init/do_mounts.c
50042+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL); 48897+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL);
50043 sys_chroot((const char __user __force *)"."); 48898 sys_chroot((const char __user __force *)".");
50044 } 48899 }
50045diff -urNp linux-2.6.38.3/init/do_mounts.h linux-2.6.38.3/init/do_mounts.h 48900diff -urNp linux-2.6.38.2/init/do_mounts.h linux-2.6.38.2/init/do_mounts.h
50046--- linux-2.6.38.3/init/do_mounts.h 2011-03-14 21:20:32.000000000 -0400 48901--- linux-2.6.38.2/init/do_mounts.h 2011-03-14 21:20:32.000000000 -0400
50047+++ linux-2.6.38.3/init/do_mounts.h 2011-04-17 15:57:32.000000000 -0400 48902+++ linux-2.6.38.2/init/do_mounts.h 2011-03-21 18:31:35.000000000 -0400
50048@@ -15,15 +15,15 @@ extern int root_mountflags; 48903@@ -15,15 +15,15 @@ extern int root_mountflags;
50049 48904
50050 static inline int create_dev(char *name, dev_t dev) 48905 static inline int create_dev(char *name, dev_t dev)
@@ -50064,9 +48919,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts.h linux-2.6.38.3/init/do_mounts.h
50064 return 0; 48919 return 0;
50065 if (!S_ISBLK(stat.st_mode)) 48920 if (!S_ISBLK(stat.st_mode))
50066 return 0; 48921 return 0;
50067diff -urNp linux-2.6.38.3/init/do_mounts_initrd.c linux-2.6.38.3/init/do_mounts_initrd.c 48922diff -urNp linux-2.6.38.2/init/do_mounts_initrd.c linux-2.6.38.2/init/do_mounts_initrd.c
50068--- linux-2.6.38.3/init/do_mounts_initrd.c 2011-03-14 21:20:32.000000000 -0400 48923--- linux-2.6.38.2/init/do_mounts_initrd.c 2011-03-14 21:20:32.000000000 -0400
50069+++ linux-2.6.38.3/init/do_mounts_initrd.c 2011-04-17 15:57:32.000000000 -0400 48924+++ linux-2.6.38.2/init/do_mounts_initrd.c 2011-03-21 18:31:35.000000000 -0400
50070@@ -44,13 +44,13 @@ static void __init handle_initrd(void) 48925@@ -44,13 +44,13 @@ static void __init handle_initrd(void)
50071 create_dev("/dev/root.old", Root_RAM0); 48926 create_dev("/dev/root.old", Root_RAM0);
50072 /* mount initrd on rootfs' /root */ 48927 /* mount initrd on rootfs' /root */
@@ -50141,9 +48996,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts_initrd.c linux-2.6.38.3/init/do_mounts_
50141+ sys_unlink((__force const char __user *)"/initrd.image"); 48996+ sys_unlink((__force const char __user *)"/initrd.image");
50142 return 0; 48997 return 0;
50143 } 48998 }
50144diff -urNp linux-2.6.38.3/init/do_mounts_md.c linux-2.6.38.3/init/do_mounts_md.c 48999diff -urNp linux-2.6.38.2/init/do_mounts_md.c linux-2.6.38.2/init/do_mounts_md.c
50145--- linux-2.6.38.3/init/do_mounts_md.c 2011-03-14 21:20:32.000000000 -0400 49000--- linux-2.6.38.2/init/do_mounts_md.c 2011-03-14 21:20:32.000000000 -0400
50146+++ linux-2.6.38.3/init/do_mounts_md.c 2011-04-17 15:57:32.000000000 -0400 49001+++ linux-2.6.38.2/init/do_mounts_md.c 2011-03-21 18:31:35.000000000 -0400
50147@@ -170,7 +170,7 @@ static void __init md_setup_drive(void) 49002@@ -170,7 +170,7 @@ static void __init md_setup_drive(void)
50148 partitioned ? "_d" : "", minor, 49003 partitioned ? "_d" : "", minor,
50149 md_setup_args[ent].device_names); 49004 md_setup_args[ent].device_names);
@@ -50162,9 +49017,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts_md.c linux-2.6.38.3/init/do_mounts_md.c
50162 sys_ioctl(fd, BLKRRPART, 0); 49017 sys_ioctl(fd, BLKRRPART, 0);
50163 } 49018 }
50164 sys_close(fd); 49019 sys_close(fd);
50165diff -urNp linux-2.6.38.3/init/initramfs.c linux-2.6.38.3/init/initramfs.c 49020diff -urNp linux-2.6.38.2/init/initramfs.c linux-2.6.38.2/init/initramfs.c
50166--- linux-2.6.38.3/init/initramfs.c 2011-03-14 21:20:32.000000000 -0400 49021--- linux-2.6.38.2/init/initramfs.c 2011-03-14 21:20:32.000000000 -0400
50167+++ linux-2.6.38.3/init/initramfs.c 2011-04-17 15:57:32.000000000 -0400 49022+++ linux-2.6.38.2/init/initramfs.c 2011-03-21 18:31:35.000000000 -0400
50168@@ -74,7 +74,7 @@ static void __init free_hash(void) 49023@@ -74,7 +74,7 @@ static void __init free_hash(void)
50169 } 49024 }
50170 } 49025 }
@@ -50273,9 +49128,9 @@ diff -urNp linux-2.6.38.3/init/initramfs.c linux-2.6.38.3/init/initramfs.c
50273 state = SkipIt; 49128 state = SkipIt;
50274 next_state = Reset; 49129 next_state = Reset;
50275 return 0; 49130 return 0;
50276diff -urNp linux-2.6.38.3/init/Kconfig linux-2.6.38.3/init/Kconfig 49131diff -urNp linux-2.6.38.2/init/Kconfig linux-2.6.38.2/init/Kconfig
50277--- linux-2.6.38.3/init/Kconfig 2011-03-14 21:20:32.000000000 -0400 49132--- linux-2.6.38.2/init/Kconfig 2011-03-14 21:20:32.000000000 -0400
50278+++ linux-2.6.38.3/init/Kconfig 2011-04-17 15:57:32.000000000 -0400 49133+++ linux-2.6.38.2/init/Kconfig 2011-03-21 18:31:35.000000000 -0400
50279@@ -1185,7 +1185,7 @@ config SLUB_DEBUG 49134@@ -1185,7 +1185,7 @@ config SLUB_DEBUG
50280 49135
50281 config COMPAT_BRK 49136 config COMPAT_BRK
@@ -50285,9 +49140,9 @@ diff -urNp linux-2.6.38.3/init/Kconfig linux-2.6.38.3/init/Kconfig
50285 help 49140 help
50286 Randomizing heap placement makes heap exploits harder, but it 49141 Randomizing heap placement makes heap exploits harder, but it
50287 also breaks ancient binaries (including anything libc5 based). 49142 also breaks ancient binaries (including anything libc5 based).
50288diff -urNp linux-2.6.38.3/init/main.c linux-2.6.38.3/init/main.c 49143diff -urNp linux-2.6.38.2/init/main.c linux-2.6.38.2/init/main.c
50289--- linux-2.6.38.3/init/main.c 2011-03-14 21:20:32.000000000 -0400 49144--- linux-2.6.38.2/init/main.c 2011-03-14 21:20:32.000000000 -0400
50290+++ linux-2.6.38.3/init/main.c 2011-04-17 15:57:32.000000000 -0400 49145+++ linux-2.6.38.2/init/main.c 2011-03-21 18:31:35.000000000 -0400
50291@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void) 49146@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void)
50292 extern void tc_init(void); 49147 extern void tc_init(void);
50293 #endif 49148 #endif
@@ -50397,9 +49252,9 @@ diff -urNp linux-2.6.38.3/init/main.c linux-2.6.38.3/init/main.c
50397 /* 49252 /*
50398 * Ok, we have completed the initial bootup, and 49253 * Ok, we have completed the initial bootup, and
50399 * we're essentially up and running. Get rid of the 49254 * we're essentially up and running. Get rid of the
50400diff -urNp linux-2.6.38.3/ipc/mqueue.c linux-2.6.38.3/ipc/mqueue.c 49255diff -urNp linux-2.6.38.2/ipc/mqueue.c linux-2.6.38.2/ipc/mqueue.c
50401--- linux-2.6.38.3/ipc/mqueue.c 2011-03-14 21:20:32.000000000 -0400 49256--- linux-2.6.38.2/ipc/mqueue.c 2011-03-14 21:20:32.000000000 -0400
50402+++ linux-2.6.38.3/ipc/mqueue.c 2011-04-17 15:57:32.000000000 -0400 49257+++ linux-2.6.38.2/ipc/mqueue.c 2011-03-21 18:31:35.000000000 -0400
50403@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st 49258@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st
50404 mq_bytes = (mq_msg_tblsz + 49259 mq_bytes = (mq_msg_tblsz +
50405 (info->attr.mq_maxmsg * info->attr.mq_msgsize)); 49260 (info->attr.mq_maxmsg * info->attr.mq_msgsize));
@@ -50408,9 +49263,9 @@ diff -urNp linux-2.6.38.3/ipc/mqueue.c linux-2.6.38.3/ipc/mqueue.c
50408 spin_lock(&mq_lock); 49263 spin_lock(&mq_lock);
50409 if (u->mq_bytes + mq_bytes < u->mq_bytes || 49264 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
50410 u->mq_bytes + mq_bytes > 49265 u->mq_bytes + mq_bytes >
50411diff -urNp linux-2.6.38.3/ipc/shm.c linux-2.6.38.3/ipc/shm.c 49266diff -urNp linux-2.6.38.2/ipc/shm.c linux-2.6.38.2/ipc/shm.c
50412--- linux-2.6.38.3/ipc/shm.c 2011-03-14 21:20:32.000000000 -0400 49267--- linux-2.6.38.2/ipc/shm.c 2011-03-14 21:20:32.000000000 -0400
50413+++ linux-2.6.38.3/ipc/shm.c 2011-04-17 15:57:32.000000000 -0400 49268+++ linux-2.6.38.2/ipc/shm.c 2011-03-21 18:31:35.000000000 -0400
50414@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name 49269@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name
50415 static int sysvipc_shm_proc_show(struct seq_file *s, void *it); 49270 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
50416 #endif 49271 #endif
@@ -50472,9 +49327,9 @@ diff -urNp linux-2.6.38.3/ipc/shm.c linux-2.6.38.3/ipc/shm.c
50472 size = i_size_read(path.dentry->d_inode); 49327 size = i_size_read(path.dentry->d_inode);
50473 shm_unlock(shp); 49328 shm_unlock(shp);
50474 49329
50475diff -urNp linux-2.6.38.3/kernel/acct.c linux-2.6.38.3/kernel/acct.c 49330diff -urNp linux-2.6.38.2/kernel/acct.c linux-2.6.38.2/kernel/acct.c
50476--- linux-2.6.38.3/kernel/acct.c 2011-03-14 21:20:32.000000000 -0400 49331--- linux-2.6.38.2/kernel/acct.c 2011-03-14 21:20:32.000000000 -0400
50477+++ linux-2.6.38.3/kernel/acct.c 2011-04-17 15:57:32.000000000 -0400 49332+++ linux-2.6.38.2/kernel/acct.c 2011-03-21 18:31:35.000000000 -0400
50478@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a 49333@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a
50479 */ 49334 */
50480 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; 49335 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
@@ -50484,9 +49339,9 @@ diff -urNp linux-2.6.38.3/kernel/acct.c linux-2.6.38.3/kernel/acct.c
50484 sizeof(acct_t), &file->f_pos); 49339 sizeof(acct_t), &file->f_pos);
50485 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; 49340 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
50486 set_fs(fs); 49341 set_fs(fs);
50487diff -urNp linux-2.6.38.3/kernel/capability.c linux-2.6.38.3/kernel/capability.c 49342diff -urNp linux-2.6.38.2/kernel/capability.c linux-2.6.38.2/kernel/capability.c
50488--- linux-2.6.38.3/kernel/capability.c 2011-03-14 21:20:32.000000000 -0400 49343--- linux-2.6.38.2/kernel/capability.c 2011-03-14 21:20:32.000000000 -0400
50489+++ linux-2.6.38.3/kernel/capability.c 2011-04-17 15:57:32.000000000 -0400 49344+++ linux-2.6.38.2/kernel/capability.c 2011-03-21 18:31:35.000000000 -0400
50490@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_ 49345@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_
50491 * before modification is attempted and the application 49346 * before modification is attempted and the application
50492 * fails. 49347 * fails.
@@ -50525,9 +49380,9 @@ diff -urNp linux-2.6.38.3/kernel/capability.c linux-2.6.38.3/kernel/capability.c
50525+ 49380+
50526 EXPORT_SYMBOL(capable); 49381 EXPORT_SYMBOL(capable);
50527+EXPORT_SYMBOL(capable_nolog); 49382+EXPORT_SYMBOL(capable_nolog);
50528diff -urNp linux-2.6.38.3/kernel/compat.c linux-2.6.38.3/kernel/compat.c 49383diff -urNp linux-2.6.38.2/kernel/compat.c linux-2.6.38.2/kernel/compat.c
50529--- linux-2.6.38.3/kernel/compat.c 2011-03-14 21:20:32.000000000 -0400 49384--- linux-2.6.38.2/kernel/compat.c 2011-03-14 21:20:32.000000000 -0400
50530+++ linux-2.6.38.3/kernel/compat.c 2011-04-17 15:57:32.000000000 -0400 49385+++ linux-2.6.38.2/kernel/compat.c 2011-03-21 18:31:35.000000000 -0400
50531@@ -13,6 +13,7 @@ 49386@@ -13,6 +13,7 @@
50532 49387
50533 #include <linux/linkage.h> 49388 #include <linux/linkage.h>
@@ -50536,9 +49391,9 @@ diff -urNp linux-2.6.38.3/kernel/compat.c linux-2.6.38.3/kernel/compat.c
50536 #include <linux/errno.h> 49391 #include <linux/errno.h>
50537 #include <linux/time.h> 49392 #include <linux/time.h>
50538 #include <linux/signal.h> 49393 #include <linux/signal.h>
50539diff -urNp linux-2.6.38.3/kernel/configs.c linux-2.6.38.3/kernel/configs.c 49394diff -urNp linux-2.6.38.2/kernel/configs.c linux-2.6.38.2/kernel/configs.c
50540--- linux-2.6.38.3/kernel/configs.c 2011-03-14 21:20:32.000000000 -0400 49395--- linux-2.6.38.2/kernel/configs.c 2011-03-14 21:20:32.000000000 -0400
50541+++ linux-2.6.38.3/kernel/configs.c 2011-04-17 15:57:32.000000000 -0400 49396+++ linux-2.6.38.2/kernel/configs.c 2011-03-21 18:31:35.000000000 -0400
50542@@ -74,8 +74,19 @@ static int __init ikconfig_init(void) 49397@@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
50543 struct proc_dir_entry *entry; 49398 struct proc_dir_entry *entry;
50544 49399
@@ -50559,9 +49414,9 @@ diff -urNp linux-2.6.38.3/kernel/configs.c linux-2.6.38.3/kernel/configs.c
50559 if (!entry) 49414 if (!entry)
50560 return -ENOMEM; 49415 return -ENOMEM;
50561 49416
50562diff -urNp linux-2.6.38.3/kernel/cred.c linux-2.6.38.3/kernel/cred.c 49417diff -urNp linux-2.6.38.2/kernel/cred.c linux-2.6.38.2/kernel/cred.c
50563--- linux-2.6.38.3/kernel/cred.c 2011-03-14 21:20:32.000000000 -0400 49418--- linux-2.6.38.2/kernel/cred.c 2011-03-14 21:20:32.000000000 -0400
50564+++ linux-2.6.38.3/kernel/cred.c 2011-04-17 15:57:32.000000000 -0400 49419+++ linux-2.6.38.2/kernel/cred.c 2011-03-21 18:31:35.000000000 -0400
50565@@ -483,6 +483,8 @@ int commit_creds(struct cred *new) 49420@@ -483,6 +483,8 @@ int commit_creds(struct cred *new)
50566 49421
50567 get_cred(new); /* we will require a ref for the subj creds too */ 49422 get_cred(new); /* we will require a ref for the subj creds too */
@@ -50571,9 +49426,9 @@ diff -urNp linux-2.6.38.3/kernel/cred.c linux-2.6.38.3/kernel/cred.c
50571 /* dumpability changes */ 49426 /* dumpability changes */
50572 if (old->euid != new->euid || 49427 if (old->euid != new->euid ||
50573 old->egid != new->egid || 49428 old->egid != new->egid ||
50574diff -urNp linux-2.6.38.3/kernel/debug/debug_core.c linux-2.6.38.3/kernel/debug/debug_core.c 49429diff -urNp linux-2.6.38.2/kernel/debug/debug_core.c linux-2.6.38.2/kernel/debug/debug_core.c
50575--- linux-2.6.38.3/kernel/debug/debug_core.c 2011-03-14 21:20:32.000000000 -0400 49430--- linux-2.6.38.2/kernel/debug/debug_core.c 2011-03-14 21:20:32.000000000 -0400
50576+++ linux-2.6.38.3/kernel/debug/debug_core.c 2011-04-17 15:57:32.000000000 -0400 49431+++ linux-2.6.38.2/kernel/debug/debug_core.c 2011-03-21 18:31:35.000000000 -0400
50577@@ -72,7 +72,7 @@ int kgdb_io_module_registered; 49432@@ -72,7 +72,7 @@ int kgdb_io_module_registered;
50578 /* Guard for recursive entry */ 49433 /* Guard for recursive entry */
50579 static int exception_level; 49434 static int exception_level;
@@ -50601,9 +49456,9 @@ diff -urNp linux-2.6.38.3/kernel/debug/debug_core.c linux-2.6.38.3/kernel/debug/
50601 { 49456 {
50602 BUG_ON(kgdb_connected); 49457 BUG_ON(kgdb_connected);
50603 49458
50604diff -urNp linux-2.6.38.3/kernel/debug/kdb/kdb_main.c linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 49459diff -urNp linux-2.6.38.2/kernel/debug/kdb/kdb_main.c linux-2.6.38.2/kernel/debug/kdb/kdb_main.c
50605--- linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 2011-03-14 21:20:32.000000000 -0400 49460--- linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 2011-03-14 21:20:32.000000000 -0400
50606+++ linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 2011-04-17 15:57:32.000000000 -0400 49461+++ linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 2011-03-21 18:31:35.000000000 -0400
50607@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha 49462@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha
50608 list_for_each_entry(mod, kdb_modules, list) { 49463 list_for_each_entry(mod, kdb_modules, list) {
50609 49464
@@ -50622,9 +49477,9 @@ diff -urNp linux-2.6.38.3/kernel/debug/kdb/kdb_main.c linux-2.6.38.3/kernel/debu
50622 49477
50623 #ifdef CONFIG_MODULE_UNLOAD 49478 #ifdef CONFIG_MODULE_UNLOAD
50624 { 49479 {
50625diff -urNp linux-2.6.38.3/kernel/exit.c linux-2.6.38.3/kernel/exit.c 49480diff -urNp linux-2.6.38.2/kernel/exit.c linux-2.6.38.2/kernel/exit.c
50626--- linux-2.6.38.3/kernel/exit.c 2011-03-14 21:20:32.000000000 -0400 49481--- linux-2.6.38.2/kernel/exit.c 2011-03-14 21:20:32.000000000 -0400
50627+++ linux-2.6.38.3/kernel/exit.c 2011-04-17 15:57:32.000000000 -0400 49482+++ linux-2.6.38.2/kernel/exit.c 2011-03-21 18:31:35.000000000 -0400
50628@@ -57,6 +57,10 @@ 49483@@ -57,6 +57,10 @@
50629 #include <asm/pgtable.h> 49484 #include <asm/pgtable.h>
50630 #include <asm/mmu_context.h> 49485 #include <asm/mmu_context.h>
@@ -50744,9 +49599,9 @@ diff -urNp linux-2.6.38.3/kernel/exit.c linux-2.6.38.3/kernel/exit.c
50744 exit_mm(tsk); 49599 exit_mm(tsk);
50745 49600
50746 if (group_dead) 49601 if (group_dead)
50747diff -urNp linux-2.6.38.3/kernel/fork.c linux-2.6.38.3/kernel/fork.c 49602diff -urNp linux-2.6.38.2/kernel/fork.c linux-2.6.38.2/kernel/fork.c
50748--- linux-2.6.38.3/kernel/fork.c 2011-03-14 21:20:32.000000000 -0400 49603--- linux-2.6.38.2/kernel/fork.c 2011-03-14 21:20:32.000000000 -0400
50749+++ linux-2.6.38.3/kernel/fork.c 2011-04-17 15:57:32.000000000 -0400 49604+++ linux-2.6.38.2/kernel/fork.c 2011-03-21 18:31:35.000000000 -0400
50750@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru 49605@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru
50751 *stackend = STACK_END_MAGIC; /* for overflow detection */ 49606 *stackend = STACK_END_MAGIC; /* for overflow detection */
50752 49607
@@ -51043,9 +49898,9 @@ diff -urNp linux-2.6.38.3/kernel/fork.c linux-2.6.38.3/kernel/fork.c
51043 new_fs = NULL; 49898 new_fs = NULL;
51044 else 49899 else
51045 new_fs = fs; 49900 new_fs = fs;
51046diff -urNp linux-2.6.38.3/kernel/futex.c linux-2.6.38.3/kernel/futex.c 49901diff -urNp linux-2.6.38.2/kernel/futex.c linux-2.6.38.2/kernel/futex.c
51047--- linux-2.6.38.3/kernel/futex.c 2011-03-14 21:20:32.000000000 -0400 49902--- linux-2.6.38.2/kernel/futex.c 2011-03-14 21:20:32.000000000 -0400
51048+++ linux-2.6.38.3/kernel/futex.c 2011-04-17 15:57:32.000000000 -0400 49903+++ linux-2.6.38.2/kernel/futex.c 2011-03-21 18:31:35.000000000 -0400
51049@@ -54,6 +54,7 @@ 49904@@ -54,6 +54,7 @@
51050 #include <linux/mount.h> 49905 #include <linux/mount.h>
51051 #include <linux/pagemap.h> 49906 #include <linux/pagemap.h>
@@ -51112,9 +49967,9 @@ diff -urNp linux-2.6.38.3/kernel/futex.c linux-2.6.38.3/kernel/futex.c
51112 if (curval == -EFAULT) 49967 if (curval == -EFAULT)
51113 futex_cmpxchg_enabled = 1; 49968 futex_cmpxchg_enabled = 1;
51114 49969
51115diff -urNp linux-2.6.38.3/kernel/futex_compat.c linux-2.6.38.3/kernel/futex_compat.c 49970diff -urNp linux-2.6.38.2/kernel/futex_compat.c linux-2.6.38.2/kernel/futex_compat.c
51116--- linux-2.6.38.3/kernel/futex_compat.c 2011-03-14 21:20:32.000000000 -0400 49971--- linux-2.6.38.2/kernel/futex_compat.c 2011-03-14 21:20:32.000000000 -0400
51117+++ linux-2.6.38.3/kernel/futex_compat.c 2011-04-17 15:57:32.000000000 -0400 49972+++ linux-2.6.38.2/kernel/futex_compat.c 2011-03-21 18:31:35.000000000 -0400
51118@@ -10,6 +10,7 @@ 49973@@ -10,6 +10,7 @@
51119 #include <linux/compat.h> 49974 #include <linux/compat.h>
51120 #include <linux/nsproxy.h> 49975 #include <linux/nsproxy.h>
@@ -51152,9 +50007,9 @@ diff -urNp linux-2.6.38.3/kernel/futex_compat.c linux-2.6.38.3/kernel/futex_comp
51152 head = p->compat_robust_list; 50007 head = p->compat_robust_list;
51153 rcu_read_unlock(); 50008 rcu_read_unlock();
51154 } 50009 }
51155diff -urNp linux-2.6.38.3/kernel/gcov/base.c linux-2.6.38.3/kernel/gcov/base.c 50010diff -urNp linux-2.6.38.2/kernel/gcov/base.c linux-2.6.38.2/kernel/gcov/base.c
51156--- linux-2.6.38.3/kernel/gcov/base.c 2011-03-14 21:20:32.000000000 -0400 50011--- linux-2.6.38.2/kernel/gcov/base.c 2011-03-14 21:20:32.000000000 -0400
51157+++ linux-2.6.38.3/kernel/gcov/base.c 2011-04-17 15:57:32.000000000 -0400 50012+++ linux-2.6.38.2/kernel/gcov/base.c 2011-03-21 18:31:35.000000000 -0400
51158@@ -102,11 +102,6 @@ void gcov_enable_events(void) 50013@@ -102,11 +102,6 @@ void gcov_enable_events(void)
51159 } 50014 }
51160 50015
@@ -51176,9 +50031,9 @@ diff -urNp linux-2.6.38.3/kernel/gcov/base.c linux-2.6.38.3/kernel/gcov/base.c
51176 if (prev) 50031 if (prev)
51177 prev->next = info->next; 50032 prev->next = info->next;
51178 else 50033 else
51179diff -urNp linux-2.6.38.3/kernel/hrtimer.c linux-2.6.38.3/kernel/hrtimer.c 50034diff -urNp linux-2.6.38.2/kernel/hrtimer.c linux-2.6.38.2/kernel/hrtimer.c
51180--- linux-2.6.38.3/kernel/hrtimer.c 2011-03-14 21:20:32.000000000 -0400 50035--- linux-2.6.38.2/kernel/hrtimer.c 2011-03-14 21:20:32.000000000 -0400
51181+++ linux-2.6.38.3/kernel/hrtimer.c 2011-04-17 15:57:32.000000000 -0400 50036+++ linux-2.6.38.2/kernel/hrtimer.c 2011-03-21 18:31:35.000000000 -0400
51182@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void) 50037@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void)
51183 local_irq_restore(flags); 50038 local_irq_restore(flags);
51184 } 50039 }
@@ -51188,9 +50043,9 @@ diff -urNp linux-2.6.38.3/kernel/hrtimer.c linux-2.6.38.3/kernel/hrtimer.c
51188 { 50043 {
51189 hrtimer_peek_ahead_timers(); 50044 hrtimer_peek_ahead_timers();
51190 } 50045 }
51191diff -urNp linux-2.6.38.3/kernel/jump_label.c linux-2.6.38.3/kernel/jump_label.c 50046diff -urNp linux-2.6.38.2/kernel/jump_label.c linux-2.6.38.2/kernel/jump_label.c
51192--- linux-2.6.38.3/kernel/jump_label.c 2011-03-14 21:20:32.000000000 -0400 50047--- linux-2.6.38.2/kernel/jump_label.c 2011-03-14 21:20:32.000000000 -0400
51193+++ linux-2.6.38.3/kernel/jump_label.c 2011-04-17 15:57:32.000000000 -0400 50048+++ linux-2.6.38.2/kernel/jump_label.c 2011-03-21 18:31:35.000000000 -0400
51194@@ -49,6 +49,17 @@ void jump_label_unlock(void) 50049@@ -49,6 +49,17 @@ void jump_label_unlock(void)
51195 mutex_unlock(&jump_label_mutex); 50050 mutex_unlock(&jump_label_mutex);
51196 } 50051 }
@@ -51231,9 +50086,9 @@ diff -urNp linux-2.6.38.3/kernel/jump_label.c linux-2.6.38.3/kernel/jump_label.c
51231 iter++; 50086 iter++;
51232 } 50087 }
51233 } 50088 }
51234diff -urNp linux-2.6.38.3/kernel/kallsyms.c linux-2.6.38.3/kernel/kallsyms.c 50089diff -urNp linux-2.6.38.2/kernel/kallsyms.c linux-2.6.38.2/kernel/kallsyms.c
51235--- linux-2.6.38.3/kernel/kallsyms.c 2011-03-14 21:20:32.000000000 -0400 50090--- linux-2.6.38.2/kernel/kallsyms.c 2011-03-14 21:20:32.000000000 -0400
51236+++ linux-2.6.38.3/kernel/kallsyms.c 2011-04-17 15:57:32.000000000 -0400 50091+++ linux-2.6.38.2/kernel/kallsyms.c 2011-03-21 18:31:35.000000000 -0400
51237@@ -11,6 +11,9 @@ 50092@@ -11,6 +11,9 @@
51238 * Changed the compression method from stem compression to "table lookup" 50093 * Changed the compression method from stem compression to "table lookup"
51239 * compression (see scripts/kallsyms.c for a more complete description) 50094 * compression (see scripts/kallsyms.c for a more complete description)
@@ -51336,108 +50191,31 @@ diff -urNp linux-2.6.38.3/kernel/kallsyms.c linux-2.6.38.3/kernel/kallsyms.c
51336 if (!iter) 50191 if (!iter)
51337 return -ENOMEM; 50192 return -ENOMEM;
51338 reset_iter(iter, 0); 50193 reset_iter(iter, 0);
51339diff -urNp linux-2.6.38.3/kernel/kmod.c linux-2.6.38.3/kernel/kmod.c 50194diff -urNp linux-2.6.38.2/kernel/kmod.c linux-2.6.38.2/kernel/kmod.c
51340--- linux-2.6.38.3/kernel/kmod.c 2011-03-14 21:20:32.000000000 -0400 50195--- linux-2.6.38.2/kernel/kmod.c 2011-03-14 21:20:32.000000000 -0400
51341+++ linux-2.6.38.3/kernel/kmod.c 2011-04-17 15:57:32.000000000 -0400 50196+++ linux-2.6.38.2/kernel/kmod.c 2011-03-26 13:28:34.000000000 -0400
51342@@ -65,13 +65,12 @@ char modprobe_path[KMOD_PATH_LEN] = "/sb 50197@@ -90,6 +90,18 @@ int __request_module(bool wait, const ch
51343 * If module auto-loading support is disabled then this function
51344 * becomes a no-operation.
51345 */
51346-int __request_module(bool wait, const char *fmt, ...)
51347+static int ____request_module(bool wait, char *module_param, const char *fmt, va_list ap)
51348 {
51349- va_list args;
51350 char module_name[MODULE_NAME_LEN];
51351 unsigned int max_modprobes;
51352 int ret;
51353- char *argv[] = { modprobe_path, "-q", "--", module_name, NULL };
51354+ char *argv[] = { modprobe_path, "-q", "--", module_name, module_param, NULL };
51355 static char *envp[] = { "HOME=/",
51356 "TERM=linux",
51357 "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
51358@@ -80,9 +79,7 @@ int __request_module(bool wait, const ch
51359 #define MAX_KMOD_CONCURRENT 50 /* Completely arbitrary value - KAO */
51360 static int kmod_loop_msg;
51361
51362- va_start(args, fmt);
51363- ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
51364- va_end(args);
51365+ ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, ap);
51366 if (ret >= MODULE_NAME_LEN)
51367 return -ENAMETOOLONG;
51368
51369@@ -90,6 +87,20 @@ int __request_module(bool wait, const ch
51370 if (ret) 50198 if (ret)
51371 return ret; 50199 return ret;
51372 50200
51373+#ifdef CONFIG_GRKERNSEC_MODHARDEN 50201+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51374+ if (!current_uid()) { 50202+ /* we could do a tighter check here, but some distros
51375+ /* hack to workaround consolekit/udisks stupidity */ 50203+ are taking it upon themselves to remove CAP_SYS_MODULE
51376+ read_lock(&tasklist_lock); 50204+ from even root-running apps which cause modules to be
51377+ if (!strcmp(current->comm, "mount") && 50205+ auto-loaded
51378+ current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) { 50206+ */
51379+ read_unlock(&tasklist_lock); 50207+ if (current_uid()) {
51380+ printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name); 50208+ gr_log_nonroot_mod_load(module_name);
51381+ return -EPERM; 50209+ return -EPERM;
51382+ }
51383+ read_unlock(&tasklist_lock);
51384+ } 50210+ }
51385+#endif 50211+#endif
51386+ 50212+
51387 /* If modprobe needs a service that is in a module, we get a recursive 50213 /* If modprobe needs a service that is in a module, we get a recursive
51388 * loop. Limit the number of running kmod threads to max_threads/2 or 50214 * loop. Limit the number of running kmod threads to max_threads/2 or
51389 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method 50215 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
51390@@ -123,6 +134,47 @@ int __request_module(bool wait, const ch 50216diff -urNp linux-2.6.38.2/kernel/kprobes.c linux-2.6.38.2/kernel/kprobes.c
51391 atomic_dec(&kmod_concurrent); 50217--- linux-2.6.38.2/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
51392 return ret; 50218+++ linux-2.6.38.2/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400
51393 }
51394+
51395+int ___request_module(bool wait, char *module_param, const char *fmt, ...)
51396+{
51397+ va_list args;
51398+ int ret;
51399+
51400+ va_start(args, fmt);
51401+ ret = ____request_module(wait, module_param, fmt, args);
51402+ va_end(args);
51403+
51404+ return ret;
51405+}
51406+
51407+int __request_module(bool wait, const char *fmt, ...)
51408+{
51409+ va_list args;
51410+ int ret;
51411+
51412+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51413+ if (current_uid()) {
51414+ char module_param[MODULE_NAME_LEN];
51415+
51416+ memset(module_param, 0, sizeof(module_param));
51417+
51418+ snprintf(module_param, sizeof(module_param) - 1, "grsec_modharden_normal%u_", current_uid());
51419+
51420+ va_start(args, fmt);
51421+ ret = ____request_module(wait, module_param, fmt, args);
51422+ va_end(args);
51423+
51424+ return ret;
51425+ }
51426+#endif
51427+
51428+ va_start(args, fmt);
51429+ ret = ____request_module(wait, NULL, fmt, args);
51430+ va_end(args);
51431+
51432+ return ret;
51433+}
51434+
51435 EXPORT_SYMBOL(__request_module);
51436 #endif /* CONFIG_MODULES */
51437
51438diff -urNp linux-2.6.38.3/kernel/kprobes.c linux-2.6.38.3/kernel/kprobes.c
51439--- linux-2.6.38.3/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
51440+++ linux-2.6.38.3/kernel/kprobes.c 2011-04-17 15:57:32.000000000 -0400
51441@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_ 50219@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_
51442 * kernel image and loaded module images reside. This is required 50220 * kernel image and loaded module images reside. This is required
51443 * so x86_64 can correctly handle the %rip-relative fixups. 50221 * so x86_64 can correctly handle the %rip-relative fixups.
@@ -51474,9 +50252,9 @@ diff -urNp linux-2.6.38.3/kernel/kprobes.c linux-2.6.38.3/kernel/kprobes.c
51474 50252
51475 head = &kprobe_table[i]; 50253 head = &kprobe_table[i];
51476 preempt_disable(); 50254 preempt_disable();
51477diff -urNp linux-2.6.38.3/kernel/lockdep.c linux-2.6.38.3/kernel/lockdep.c 50255diff -urNp linux-2.6.38.2/kernel/lockdep.c linux-2.6.38.2/kernel/lockdep.c
51478--- linux-2.6.38.3/kernel/lockdep.c 2011-03-14 21:20:32.000000000 -0400 50256--- linux-2.6.38.2/kernel/lockdep.c 2011-03-14 21:20:32.000000000 -0400
51479+++ linux-2.6.38.3/kernel/lockdep.c 2011-04-17 15:57:32.000000000 -0400 50257+++ linux-2.6.38.2/kernel/lockdep.c 2011-03-21 18:31:35.000000000 -0400
51480@@ -571,6 +571,10 @@ static int static_obj(void *obj) 50258@@ -571,6 +571,10 @@ static int static_obj(void *obj)
51481 end = (unsigned long) &_end, 50259 end = (unsigned long) &_end,
51482 addr = (unsigned long) obj; 50260 addr = (unsigned long) obj;
@@ -51505,9 +50283,9 @@ diff -urNp linux-2.6.38.3/kernel/lockdep.c linux-2.6.38.3/kernel/lockdep.c
51505 if (very_verbose(class)) { 50283 if (very_verbose(class)) {
51506 printk("\nacquire class [%p] %s", class->key, class->name); 50284 printk("\nacquire class [%p] %s", class->key, class->name);
51507 if (class->name_version > 1) 50285 if (class->name_version > 1)
51508diff -urNp linux-2.6.38.3/kernel/lockdep_proc.c linux-2.6.38.3/kernel/lockdep_proc.c 50286diff -urNp linux-2.6.38.2/kernel/lockdep_proc.c linux-2.6.38.2/kernel/lockdep_proc.c
51509--- linux-2.6.38.3/kernel/lockdep_proc.c 2011-03-14 21:20:32.000000000 -0400 50287--- linux-2.6.38.2/kernel/lockdep_proc.c 2011-03-14 21:20:32.000000000 -0400
51510+++ linux-2.6.38.3/kernel/lockdep_proc.c 2011-04-17 15:57:32.000000000 -0400 50288+++ linux-2.6.38.2/kernel/lockdep_proc.c 2011-03-21 18:31:35.000000000 -0400
51511@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v 50289@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v
51512 50290
51513 static void print_name(struct seq_file *m, struct lock_class *class) 50291 static void print_name(struct seq_file *m, struct lock_class *class)
@@ -51517,18 +50295,10 @@ diff -urNp linux-2.6.38.3/kernel/lockdep_proc.c linux-2.6.38.3/kernel/lockdep_pr
51517 const char *name = class->name; 50295 const char *name = class->name;
51518 50296
51519 if (!name) { 50297 if (!name) {
51520diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c 50298diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
51521--- linux-2.6.38.3/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 50299--- linux-2.6.38.2/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
51522+++ linux-2.6.38.3/kernel/module.c 2011-04-17 16:05:04.000000000 -0400 50300+++ linux-2.6.38.2/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
51523@@ -57,6 +57,7 @@ 50301@@ -118,7 +118,8 @@ static BLOCKING_NOTIFIER_HEAD(module_not
51524 #include <linux/kmemleak.h>
51525 #include <linux/jump_label.h>
51526 #include <linux/pfn.h>
51527+#include <linux/grsecurity.h>
51528
51529 #define CREATE_TRACE_POINTS
51530 #include <trace/events/module.h>
51531@@ -118,7 +119,8 @@ static BLOCKING_NOTIFIER_HEAD(module_not
51532 50302
51533 /* Bounds of module allocation, for speeding __module_address. 50303 /* Bounds of module allocation, for speeding __module_address.
51534 * Protected by module_mutex. */ 50304 * Protected by module_mutex. */
@@ -51538,7 +50308,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51538 50308
51539 int register_module_notifier(struct notifier_block * nb) 50309 int register_module_notifier(struct notifier_block * nb)
51540 { 50310 {
51541@@ -282,7 +284,7 @@ bool each_symbol(bool (*fn)(const struct 50311@@ -282,7 +283,7 @@ bool each_symbol(bool (*fn)(const struct
51542 return true; 50312 return true;
51543 50313
51544 list_for_each_entry_rcu(mod, &modules, list) { 50314 list_for_each_entry_rcu(mod, &modules, list) {
@@ -51547,7 +50317,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51547 { mod->syms, mod->syms + mod->num_syms, mod->crcs, 50317 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
51548 NOT_GPL_ONLY, false }, 50318 NOT_GPL_ONLY, false },
51549 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, 50319 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
51550@@ -304,7 +306,7 @@ bool each_symbol(bool (*fn)(const struct 50320@@ -304,7 +305,7 @@ bool each_symbol(bool (*fn)(const struct
51551 #endif 50321 #endif
51552 }; 50322 };
51553 50323
@@ -51556,7 +50326,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51556 return true; 50326 return true;
51557 } 50327 }
51558 return false; 50328 return false;
51559@@ -415,7 +417,7 @@ static inline void __percpu *mod_percpu( 50329@@ -415,7 +416,7 @@ static inline void __percpu *mod_percpu(
51560 static int percpu_modalloc(struct module *mod, 50330 static int percpu_modalloc(struct module *mod,
51561 unsigned long size, unsigned long align) 50331 unsigned long size, unsigned long align)
51562 { 50332 {
@@ -51565,7 +50335,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51565 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n", 50335 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
51566 mod->name, align, PAGE_SIZE); 50336 mod->name, align, PAGE_SIZE);
51567 align = PAGE_SIZE; 50337 align = PAGE_SIZE;
51568@@ -1143,7 +1145,7 @@ resolve_symbol_wait(struct module *mod, 50338@@ -1143,7 +1144,7 @@ resolve_symbol_wait(struct module *mod,
51569 */ 50339 */
51570 #ifdef CONFIG_SYSFS 50340 #ifdef CONFIG_SYSFS
51571 50341
@@ -51574,7 +50344,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51574 static inline bool sect_empty(const Elf_Shdr *sect) 50344 static inline bool sect_empty(const Elf_Shdr *sect)
51575 { 50345 {
51576 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; 50346 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
51577@@ -1612,17 +1614,17 @@ void unset_section_ro_nx(struct module * 50347@@ -1612,17 +1613,17 @@ void unset_section_ro_nx(struct module *
51578 { 50348 {
51579 unsigned long total_pages; 50349 unsigned long total_pages;
51580 50350
@@ -51600,7 +50370,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51600 } 50370 }
51601 } 50371 }
51602 50372
51603@@ -1633,14 +1635,14 @@ void set_all_modules_text_rw() 50373@@ -1633,14 +1634,14 @@ void set_all_modules_text_rw()
51604 50374
51605 mutex_lock(&module_mutex); 50375 mutex_lock(&module_mutex);
51606 list_for_each_entry_rcu(mod, &modules, list) { 50376 list_for_each_entry_rcu(mod, &modules, list) {
@@ -51621,7 +50391,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51621 set_memory_rw); 50391 set_memory_rw);
51622 } 50392 }
51623 } 50393 }
51624@@ -1654,14 +1656,14 @@ void set_all_modules_text_ro() 50394@@ -1654,14 +1655,14 @@ void set_all_modules_text_ro()
51625 50395
51626 mutex_lock(&module_mutex); 50396 mutex_lock(&module_mutex);
51627 list_for_each_entry_rcu(mod, &modules, list) { 50397 list_for_each_entry_rcu(mod, &modules, list) {
@@ -51642,7 +50412,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51642 set_memory_ro); 50412 set_memory_ro);
51643 } 50413 }
51644 } 50414 }
51645@@ -1696,17 +1698,20 @@ static void free_module(struct module *m 50415@@ -1696,17 +1697,20 @@ static void free_module(struct module *m
51646 destroy_params(mod->kp, mod->num_kp); 50416 destroy_params(mod->kp, mod->num_kp);
51647 50417
51648 /* This may be NULL, but that's OK */ 50418 /* This may be NULL, but that's OK */
@@ -51668,33 +50438,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51668 50438
51669 #ifdef CONFIG_MPU 50439 #ifdef CONFIG_MPU
51670 update_protections(current->mm); 50440 update_protections(current->mm);
51671@@ -1775,10 +1780,25 @@ static int simplify_symbols(struct modul 50441@@ -1799,7 +1803,9 @@ static int simplify_symbols(struct modul
51672 unsigned int i;
51673 int ret = 0;
51674 const struct kernel_symbol *ksym;
51675+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51676+ int is_fs_load = 0;
51677+ int register_filesystem_found = 0;
51678+
51679+ if (strstr(mod->args, "grsec_modharden_fs"))
51680+ is_fs_load = 1;
51681+#endif
51682
51683 for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
51684 const char *name = info->strtab + sym[i].st_name;
51685
51686+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51687+ /* it's a real shame this will never get ripped and copied
51688+ upstream! ;(
51689+ */
51690+ if (is_fs_load && !strcmp(name, "register_filesystem"))
51691+ register_filesystem_found = 1;
51692+#endif
51693+
51694 switch (sym[i].st_shndx) {
51695 case SHN_COMMON:
51696 /* We compiled with -fno-common. These are not
51697@@ -1799,7 +1819,9 @@ static int simplify_symbols(struct modul
51698 ksym = resolve_symbol_wait(mod, info, name); 50442 ksym = resolve_symbol_wait(mod, info, name);
51699 /* Ok if resolved. */ 50443 /* Ok if resolved. */
51700 if (ksym && !IS_ERR(ksym)) { 50444 if (ksym && !IS_ERR(ksym)) {
@@ -51704,7 +50448,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51704 break; 50448 break;
51705 } 50449 }
51706 50450
51707@@ -1818,11 +1840,20 @@ static int simplify_symbols(struct modul 50451@@ -1818,7 +1824,9 @@ static int simplify_symbols(struct modul
51708 secbase = (unsigned long)mod_percpu(mod); 50452 secbase = (unsigned long)mod_percpu(mod);
51709 else 50453 else
51710 secbase = info->sechdrs[sym[i].st_shndx].sh_addr; 50454 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -51714,18 +50458,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51714 break; 50458 break;
51715 } 50459 }
51716 } 50460 }
51717 50461@@ -1906,22 +1914,12 @@ static void layout_sections(struct modul
51718+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51719+ if (is_fs_load && !register_filesystem_found) {
51720+ printk(KERN_ALERT "grsec: Denied attempt to load non-fs module %.64s through mount\n", mod->name);
51721+ ret = -EPERM;
51722+ }
51723+#endif
51724+
51725 return ret;
51726 }
51727
51728@@ -1906,22 +1937,12 @@ static void layout_sections(struct modul
51729 || s->sh_entsize != ~0UL 50462 || s->sh_entsize != ~0UL
51730 || strstarts(sname, ".init")) 50463 || strstarts(sname, ".init"))
51731 continue; 50464 continue;
@@ -51752,7 +50485,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51752 } 50485 }
51753 50486
51754 DEBUGP("Init section allocation order:\n"); 50487 DEBUGP("Init section allocation order:\n");
51755@@ -1935,23 +1956,13 @@ static void layout_sections(struct modul 50488@@ -1935,23 +1933,13 @@ static void layout_sections(struct modul
51756 || s->sh_entsize != ~0UL 50489 || s->sh_entsize != ~0UL
51757 || !strstarts(sname, ".init")) 50490 || !strstarts(sname, ".init"))
51758 continue; 50491 continue;
@@ -51781,7 +50514,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51781 } 50514 }
51782 } 50515 }
51783 50516
51784@@ -2119,7 +2130,7 @@ static void layout_symtab(struct module 50517@@ -2119,7 +2107,7 @@ static void layout_symtab(struct module
51785 50518
51786 /* Put symbol section at end of init part of module. */ 50519 /* Put symbol section at end of init part of module. */
51787 symsect->sh_flags |= SHF_ALLOC; 50520 symsect->sh_flags |= SHF_ALLOC;
@@ -51790,7 +50523,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51790 info->index.sym) | INIT_OFFSET_MASK; 50523 info->index.sym) | INIT_OFFSET_MASK;
51791 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name); 50524 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name);
51792 50525
51793@@ -2136,19 +2147,19 @@ static void layout_symtab(struct module 50526@@ -2136,19 +2124,19 @@ static void layout_symtab(struct module
51794 } 50527 }
51795 50528
51796 /* Append room for core symbols at end of core part. */ 50529 /* Append room for core symbols at end of core part. */
@@ -51815,7 +50548,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51815 } 50548 }
51816 50549
51817 static void add_kallsyms(struct module *mod, const struct load_info *info) 50550 static void add_kallsyms(struct module *mod, const struct load_info *info)
51818@@ -2164,11 +2175,13 @@ static void add_kallsyms(struct module * 50551@@ -2164,11 +2152,13 @@ static void add_kallsyms(struct module *
51819 /* Make sure we get permanent strtab: don't use info->strtab. */ 50552 /* Make sure we get permanent strtab: don't use info->strtab. */
51820 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr; 50553 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
51821 50554
@@ -51830,7 +50563,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51830 src = mod->symtab; 50563 src = mod->symtab;
51831 *dst = *src; 50564 *dst = *src;
51832 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) { 50565 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) {
51833@@ -2181,10 +2194,12 @@ static void add_kallsyms(struct module * 50566@@ -2181,10 +2171,12 @@ static void add_kallsyms(struct module *
51834 } 50567 }
51835 mod->core_num_syms = ndst; 50568 mod->core_num_syms = ndst;
51836 50569
@@ -51844,7 +50577,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51844 } 50577 }
51845 #else 50578 #else
51846 static inline void layout_symtab(struct module *mod, struct load_info *info) 50579 static inline void layout_symtab(struct module *mod, struct load_info *info)
51847@@ -2213,17 +2228,33 @@ static void dynamic_debug_remove(struct 50580@@ -2213,17 +2205,33 @@ static void dynamic_debug_remove(struct
51848 ddebug_remove_module(debug->modname); 50581 ddebug_remove_module(debug->modname);
51849 } 50582 }
51850 50583
@@ -51883,7 +50616,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51883 mutex_unlock(&module_mutex); 50616 mutex_unlock(&module_mutex);
51884 } 50617 }
51885 return ret; 50618 return ret;
51886@@ -2516,7 +2547,7 @@ static int move_module(struct module *mo 50619@@ -2516,7 +2524,7 @@ static int move_module(struct module *mo
51887 void *ptr; 50620 void *ptr;
51888 50621
51889 /* Do the allocs. */ 50622 /* Do the allocs. */
@@ -51892,7 +50625,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51892 /* 50625 /*
51893 * The pointer to this block is stored in the module structure 50626 * The pointer to this block is stored in the module structure
51894 * which is inside the block. Just mark it as not being a 50627 * which is inside the block. Just mark it as not being a
51895@@ -2526,23 +2557,50 @@ static int move_module(struct module *mo 50628@@ -2526,23 +2534,50 @@ static int move_module(struct module *mo
51896 if (!ptr) 50629 if (!ptr)
51897 return -ENOMEM; 50630 return -ENOMEM;
51898 50631
@@ -51951,7 +50684,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51951 50684
51952 /* Transfer each section which specifies SHF_ALLOC */ 50685 /* Transfer each section which specifies SHF_ALLOC */
51953 DEBUGP("final section addresses:\n"); 50686 DEBUGP("final section addresses:\n");
51954@@ -2553,16 +2611,45 @@ static int move_module(struct module *mo 50687@@ -2553,16 +2588,45 @@ static int move_module(struct module *mo
51955 if (!(shdr->sh_flags & SHF_ALLOC)) 50688 if (!(shdr->sh_flags & SHF_ALLOC))
51956 continue; 50689 continue;
51957 50690
@@ -52004,7 +50737,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52004 DEBUGP("\t0x%lx %s\n", 50737 DEBUGP("\t0x%lx %s\n",
52005 shdr->sh_addr, info->secstrings + shdr->sh_name); 50738 shdr->sh_addr, info->secstrings + shdr->sh_name);
52006 } 50739 }
52007@@ -2613,12 +2700,12 @@ static void flush_module_icache(const st 50740@@ -2613,12 +2677,12 @@ static void flush_module_icache(const st
52008 * Do it before processing of module parameters, so the module 50741 * Do it before processing of module parameters, so the module
52009 * can provide parameter accessor functions of its own. 50742 * can provide parameter accessor functions of its own.
52010 */ 50743 */
@@ -52023,7 +50756,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52023 50756
52024 set_fs(old_fs); 50757 set_fs(old_fs);
52025 } 50758 }
52026@@ -2690,8 +2777,10 @@ static void module_deallocate(struct mod 50759@@ -2690,8 +2754,10 @@ static void module_deallocate(struct mod
52027 { 50760 {
52028 kfree(info->strmap); 50761 kfree(info->strmap);
52029 percpu_modfree(mod); 50762 percpu_modfree(mod);
@@ -52036,73 +50769,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52036 } 50769 }
52037 50770
52038 static int post_relocation(struct module *mod, const struct load_info *info) 50771 static int post_relocation(struct module *mod, const struct load_info *info)
52039@@ -2748,9 +2837,38 @@ static struct module *load_module(void _ 50772@@ -2877,16 +2943,16 @@ SYSCALL_DEFINE3(init_module, void __user
52040 if (err)
52041 goto free_unload;
52042
52043+ /* Now copy in args */
52044+ mod->args = strndup_user(uargs, ~0UL >> 1);
52045+ if (IS_ERR(mod->args)) {
52046+ err = PTR_ERR(mod->args);
52047+ goto free_unload;
52048+ }
52049+
52050 /* Set up MODINFO_ATTR fields */
52051 setup_modinfo(mod, &info);
52052
52053+#ifdef CONFIG_GRKERNSEC_MODHARDEN
52054+ {
52055+ char *p, *p2;
52056+
52057+ if (strstr(mod->args, "grsec_modharden_netdev")) {
52058+ printk(KERN_ALERT "grsec: denied auto-loading kernel module for a network device with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%.64s instead.", mod->name);
52059+ err = -EPERM;
52060+ goto free_modinfo;
52061+ } else if ((p = strstr(mod->args, "grsec_modharden_normal"))) {
52062+ p += strlen("grsec_modharden_normal");
52063+ p2 = strstr(p, "_");
52064+ if (p2) {
52065+ *p2 = '\0';
52066+ printk(KERN_ALERT "grsec: denied kernel module auto-load of %.64s by uid %.9s\n", mod->name, p);
52067+ *p2 = '_';
52068+ }
52069+ err = -EPERM;
52070+ goto free_modinfo;
52071+ }
52072+ }
52073+#endif
52074+
52075 /* Fix up syms, so that st_value is a pointer to location. */
52076 err = simplify_symbols(mod, &info);
52077 if (err < 0)
52078@@ -2766,13 +2884,6 @@ static struct module *load_module(void _
52079
52080 flush_module_icache(mod);
52081
52082- /* Now copy in args */
52083- mod->args = strndup_user(uargs, ~0UL >> 1);
52084- if (IS_ERR(mod->args)) {
52085- err = PTR_ERR(mod->args);
52086- goto free_arch_cleanup;
52087- }
52088-
52089 /* Mark state as coming so strong_try_module_get() ignores us. */
52090 mod->state = MODULE_STATE_COMING;
52091
52092@@ -2832,11 +2943,10 @@ static struct module *load_module(void _
52093 unlock:
52094 mutex_unlock(&module_mutex);
52095 synchronize_sched();
52096- kfree(mod->args);
52097- free_arch_cleanup:
52098 module_arch_cleanup(mod);
52099 free_modinfo:
52100 free_modinfo(mod);
52101+ kfree(mod->args);
52102 free_unload:
52103 module_unload_free(mod);
52104 free_module:
52105@@ -2877,16 +2987,16 @@ SYSCALL_DEFINE3(init_module, void __user
52106 MODULE_STATE_COMING, mod); 50773 MODULE_STATE_COMING, mod);
52107 50774
52108 /* Set RO and NX regions for core */ 50775 /* Set RO and NX regions for core */
@@ -52127,7 +50794,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52127 50794
52128 do_mod_ctors(mod); 50795 do_mod_ctors(mod);
52129 /* Start the module */ 50796 /* Start the module */
52130@@ -2931,11 +3041,13 @@ SYSCALL_DEFINE3(init_module, void __user 50797@@ -2931,11 +2997,13 @@ SYSCALL_DEFINE3(init_module, void __user
52131 mod->symtab = mod->core_symtab; 50798 mod->symtab = mod->core_symtab;
52132 mod->strtab = mod->core_strtab; 50799 mod->strtab = mod->core_strtab;
52133 #endif 50800 #endif
@@ -52146,7 +50813,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52146 mutex_unlock(&module_mutex); 50813 mutex_unlock(&module_mutex);
52147 50814
52148 return 0; 50815 return 0;
52149@@ -2966,10 +3078,16 @@ static const char *get_ksymbol(struct mo 50816@@ -2966,10 +3034,16 @@ static const char *get_ksymbol(struct mo
52150 unsigned long nextval; 50817 unsigned long nextval;
52151 50818
52152 /* At worse, next value is at end of module */ 50819 /* At worse, next value is at end of module */
@@ -52166,7 +50833,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52166 50833
52167 /* Scan for closest preceeding symbol, and next symbol. (ELF 50834 /* Scan for closest preceeding symbol, and next symbol. (ELF
52168 starts real symbols at 1). */ 50835 starts real symbols at 1). */
52169@@ -3215,7 +3333,7 @@ static int m_show(struct seq_file *m, vo 50836@@ -3215,7 +3289,7 @@ static int m_show(struct seq_file *m, vo
52170 char buf[8]; 50837 char buf[8];
52171 50838
52172 seq_printf(m, "%s %u", 50839 seq_printf(m, "%s %u",
@@ -52175,7 +50842,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52175 print_unload_info(m, mod); 50842 print_unload_info(m, mod);
52176 50843
52177 /* Informative for users. */ 50844 /* Informative for users. */
52178@@ -3224,7 +3342,7 @@ static int m_show(struct seq_file *m, vo 50845@@ -3224,7 +3298,7 @@ static int m_show(struct seq_file *m, vo
52179 mod->state == MODULE_STATE_COMING ? "Loading": 50846 mod->state == MODULE_STATE_COMING ? "Loading":
52180 "Live"); 50847 "Live");
52181 /* Used by oprofile and other similar tools. */ 50848 /* Used by oprofile and other similar tools. */
@@ -52184,7 +50851,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52184 50851
52185 /* Taints info */ 50852 /* Taints info */
52186 if (mod->taints) 50853 if (mod->taints)
52187@@ -3260,7 +3378,17 @@ static const struct file_operations proc 50854@@ -3260,7 +3334,17 @@ static const struct file_operations proc
52188 50855
52189 static int __init proc_modules_init(void) 50856 static int __init proc_modules_init(void)
52190 { 50857 {
@@ -52202,7 +50869,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52202 return 0; 50869 return 0;
52203 } 50870 }
52204 module_init(proc_modules_init); 50871 module_init(proc_modules_init);
52205@@ -3319,12 +3447,12 @@ struct module *__module_address(unsigned 50872@@ -3319,12 +3403,12 @@ struct module *__module_address(unsigned
52206 { 50873 {
52207 struct module *mod; 50874 struct module *mod;
52208 50875
@@ -52218,7 +50885,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52218 return mod; 50885 return mod;
52219 return NULL; 50886 return NULL;
52220 } 50887 }
52221@@ -3358,11 +3486,20 @@ bool is_module_text_address(unsigned lon 50888@@ -3358,11 +3442,20 @@ bool is_module_text_address(unsigned lon
52222 */ 50889 */
52223 struct module *__module_text_address(unsigned long addr) 50890 struct module *__module_text_address(unsigned long addr)
52224 { 50891 {
@@ -52242,124 +50909,9 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52242 mod = NULL; 50909 mod = NULL;
52243 } 50910 }
52244 return mod; 50911 return mod;
52245diff -urNp linux-2.6.38.3/kernel/mutex.c linux-2.6.38.3/kernel/mutex.c 50912diff -urNp linux-2.6.38.2/kernel/panic.c linux-2.6.38.2/kernel/panic.c
52246--- linux-2.6.38.3/kernel/mutex.c 2011-03-14 21:20:32.000000000 -0400 50913--- linux-2.6.38.2/kernel/panic.c 2011-03-14 21:20:32.000000000 -0400
52247+++ linux-2.6.38.3/kernel/mutex.c 2011-04-17 16:24:38.000000000 -0400 50914+++ linux-2.6.38.2/kernel/panic.c 2011-03-21 18:31:35.000000000 -0400
52248@@ -160,7 +160,7 @@ __mutex_lock_common(struct mutex *lock,
52249 */
52250
52251 for (;;) {
52252- struct thread_info *owner;
52253+ struct task_struct *owner;
52254
52255 /*
52256 * If we own the BKL, then don't spin. The owner of
52257@@ -205,7 +205,7 @@ __mutex_lock_common(struct mutex *lock,
52258 spin_lock_mutex(&lock->wait_lock, flags);
52259
52260 debug_mutex_lock_common(lock, &waiter);
52261- debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
52262+ debug_mutex_add_waiter(lock, &waiter, task);
52263
52264 /* add waiting tasks to the end of the waitqueue (FIFO): */
52265 list_add_tail(&waiter.list, &lock->wait_list);
52266@@ -234,8 +234,7 @@ __mutex_lock_common(struct mutex *lock,
52267 * TASK_UNINTERRUPTIBLE case.)
52268 */
52269 if (unlikely(signal_pending_state(state, task))) {
52270- mutex_remove_waiter(lock, &waiter,
52271- task_thread_info(task));
52272+ mutex_remove_waiter(lock, &waiter, task);
52273 mutex_release(&lock->dep_map, 1, ip);
52274 spin_unlock_mutex(&lock->wait_lock, flags);
52275
52276@@ -256,7 +255,7 @@ __mutex_lock_common(struct mutex *lock,
52277 done:
52278 lock_acquired(&lock->dep_map, ip);
52279 /* got the lock - rejoice! */
52280- mutex_remove_waiter(lock, &waiter, current_thread_info());
52281+ mutex_remove_waiter(lock, &waiter, current);
52282 mutex_set_owner(lock);
52283
52284 /* set it to 0 if there are no waiters left: */
52285diff -urNp linux-2.6.38.3/kernel/mutex-debug.c linux-2.6.38.3/kernel/mutex-debug.c
52286--- linux-2.6.38.3/kernel/mutex-debug.c 2011-03-14 21:20:32.000000000 -0400
52287+++ linux-2.6.38.3/kernel/mutex-debug.c 2011-04-17 16:23:07.000000000 -0400
52288@@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mute
52289 }
52290
52291 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
52292- struct thread_info *ti)
52293+ struct task_struct *task)
52294 {
52295 SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
52296
52297 /* Mark the current thread as blocked on the lock: */
52298- ti->task->blocked_on = waiter;
52299+ task->blocked_on = waiter;
52300 }
52301
52302 void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
52303- struct thread_info *ti)
52304+ struct task_struct *task)
52305 {
52306 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
52307- DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
52308- DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
52309- ti->task->blocked_on = NULL;
52310+ DEBUG_LOCKS_WARN_ON(waiter->task != task);
52311+ DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter->task);
52312+ task->blocked_on = NULL;
52313
52314 list_del_init(&waiter->list);
52315 waiter->task = NULL;
52316@@ -75,7 +75,7 @@ void debug_mutex_unlock(struct mutex *lo
52317 return;
52318
52319 DEBUG_LOCKS_WARN_ON(lock->magic != lock);
52320- DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
52321+ DEBUG_LOCKS_WARN_ON(lock->owner != current);
52322 DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
52323 mutex_clear_owner(lock);
52324 }
52325diff -urNp linux-2.6.38.3/kernel/mutex-debug.h linux-2.6.38.3/kernel/mutex-debug.h
52326--- linux-2.6.38.3/kernel/mutex-debug.h 2011-03-14 21:20:32.000000000 -0400
52327+++ linux-2.6.38.3/kernel/mutex-debug.h 2011-04-17 16:26:49.000000000 -0400
52328@@ -20,16 +20,16 @@ extern void debug_mutex_wake_waiter(stru
52329 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
52330 extern void debug_mutex_add_waiter(struct mutex *lock,
52331 struct mutex_waiter *waiter,
52332- struct thread_info *ti);
52333+ struct task_struct *task);
52334 extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
52335- struct thread_info *ti);
52336+ struct task_struct *task);
52337 extern void debug_mutex_unlock(struct mutex *lock);
52338 extern void debug_mutex_init(struct mutex *lock, const char *name,
52339 struct lock_class_key *key);
52340
52341 static inline void mutex_set_owner(struct mutex *lock)
52342 {
52343- lock->owner = current_thread_info();
52344+ lock->owner = current;
52345 }
52346
52347 static inline void mutex_clear_owner(struct mutex *lock)
52348diff -urNp linux-2.6.38.3/kernel/mutex.h linux-2.6.38.3/kernel/mutex.h
52349--- linux-2.6.38.3/kernel/mutex.h 2011-03-14 21:20:32.000000000 -0400
52350+++ linux-2.6.38.3/kernel/mutex.h 2011-04-17 16:24:51.000000000 -0400
52351@@ -19,7 +19,7 @@
52352 #ifdef CONFIG_SMP
52353 static inline void mutex_set_owner(struct mutex *lock)
52354 {
52355- lock->owner = current_thread_info();
52356+ lock->owner = current;
52357 }
52358
52359 static inline void mutex_clear_owner(struct mutex *lock)
52360diff -urNp linux-2.6.38.3/kernel/panic.c linux-2.6.38.3/kernel/panic.c
52361--- linux-2.6.38.3/kernel/panic.c 2011-03-14 21:20:32.000000000 -0400
52362+++ linux-2.6.38.3/kernel/panic.c 2011-04-17 15:57:32.000000000 -0400
52363@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c 50915@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c
52364 const char *board; 50916 const char *board;
52365 50917
@@ -52379,9 +50931,9 @@ diff -urNp linux-2.6.38.3/kernel/panic.c linux-2.6.38.3/kernel/panic.c
52379 __builtin_return_address(0)); 50931 __builtin_return_address(0));
52380 } 50932 }
52381 EXPORT_SYMBOL(__stack_chk_fail); 50933 EXPORT_SYMBOL(__stack_chk_fail);
52382diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c 50934diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c
52383--- linux-2.6.38.3/kernel/pid.c 2011-03-14 21:20:32.000000000 -0400 50935--- linux-2.6.38.2/kernel/pid.c 2011-03-14 21:20:32.000000000 -0400
52384+++ linux-2.6.38.3/kernel/pid.c 2011-04-18 19:22:06.000000000 -0400 50936+++ linux-2.6.38.2/kernel/pid.c 2011-03-21 18:31:35.000000000 -0400
52385@@ -33,6 +33,7 @@ 50937@@ -33,6 +33,7 @@
52386 #include <linux/rculist.h> 50938 #include <linux/rculist.h>
52387 #include <linux/bootmem.h> 50939 #include <linux/bootmem.h>
@@ -52399,23 +50951,7 @@ diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c
52399 50951
52400 int pid_max_min = RESERVED_PIDS + 1; 50952 int pid_max_min = RESERVED_PIDS + 1;
52401 int pid_max_max = PID_MAX_LIMIT; 50953 int pid_max_max = PID_MAX_LIMIT;
52402@@ -217,11 +218,14 @@ static int alloc_pidmap(struct pid_names 50954@@ -416,8 +417,15 @@ EXPORT_SYMBOL(pid_task);
52403 return -1;
52404 }
52405
52406-int next_pidmap(struct pid_namespace *pid_ns, int last)
52407+int next_pidmap(struct pid_namespace *pid_ns, unsigned int last)
52408 {
52409 int offset;
52410 struct pidmap *map, *end;
52411
52412+ if (last >= PID_MAX_LIMIT)
52413+ return -1;
52414+
52415 offset = (last + 1) & BITS_PER_PAGE_MASK;
52416 map = &pid_ns->pidmap[(last + 1)/BITS_PER_PAGE];
52417 end = &pid_ns->pidmap[PIDMAP_ENTRIES];
52418@@ -416,8 +420,15 @@ EXPORT_SYMBOL(pid_task);
52419 */ 50955 */
52420 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) 50956 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
52421 { 50957 {
@@ -52432,9 +50968,9 @@ diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c
52432 } 50968 }
52433 50969
52434 struct task_struct *find_task_by_vpid(pid_t vnr) 50970 struct task_struct *find_task_by_vpid(pid_t vnr)
52435diff -urNp linux-2.6.38.3/kernel/posix-cpu-timers.c linux-2.6.38.3/kernel/posix-cpu-timers.c 50971diff -urNp linux-2.6.38.2/kernel/posix-cpu-timers.c linux-2.6.38.2/kernel/posix-cpu-timers.c
52436--- linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-03-14 21:20:32.000000000 -0400 50972--- linux-2.6.38.2/kernel/posix-cpu-timers.c 2011-03-14 21:20:32.000000000 -0400
52437+++ linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-04-17 15:57:32.000000000 -0400 50973+++ linux-2.6.38.2/kernel/posix-cpu-timers.c 2011-03-21 18:31:35.000000000 -0400
52438@@ -6,6 +6,7 @@ 50974@@ -6,6 +6,7 @@
52439 #include <linux/posix-timers.h> 50975 #include <linux/posix-timers.h>
52440 #include <linux/errno.h> 50976 #include <linux/errno.h>
@@ -52443,9 +50979,9 @@ diff -urNp linux-2.6.38.3/kernel/posix-cpu-timers.c linux-2.6.38.3/kernel/posix-
52443 #include <asm/uaccess.h> 50979 #include <asm/uaccess.h>
52444 #include <linux/kernel_stat.h> 50980 #include <linux/kernel_stat.h>
52445 #include <trace/events/timer.h> 50981 #include <trace/events/timer.h>
52446diff -urNp linux-2.6.38.3/kernel/posix-timers.c linux-2.6.38.3/kernel/posix-timers.c 50982diff -urNp linux-2.6.38.2/kernel/posix-timers.c linux-2.6.38.2/kernel/posix-timers.c
52447--- linux-2.6.38.3/kernel/posix-timers.c 2011-03-14 21:20:32.000000000 -0400 50983--- linux-2.6.38.2/kernel/posix-timers.c 2011-03-14 21:20:32.000000000 -0400
52448+++ linux-2.6.38.3/kernel/posix-timers.c 2011-04-17 15:57:33.000000000 -0400 50984+++ linux-2.6.38.2/kernel/posix-timers.c 2011-03-21 18:31:35.000000000 -0400
52449@@ -42,6 +42,7 @@ 50985@@ -42,6 +42,7 @@
52450 #include <linux/compiler.h> 50986 #include <linux/compiler.h>
52451 #include <linux/idr.h> 50987 #include <linux/idr.h>
@@ -52468,9 +51004,9 @@ diff -urNp linux-2.6.38.3/kernel/posix-timers.c linux-2.6.38.3/kernel/posix-time
52468 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp)); 51004 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
52469 } 51005 }
52470 51006
52471diff -urNp linux-2.6.38.3/kernel/power/poweroff.c linux-2.6.38.3/kernel/power/poweroff.c 51007diff -urNp linux-2.6.38.2/kernel/power/poweroff.c linux-2.6.38.2/kernel/power/poweroff.c
52472--- linux-2.6.38.3/kernel/power/poweroff.c 2011-03-14 21:20:32.000000000 -0400 51008--- linux-2.6.38.2/kernel/power/poweroff.c 2011-03-14 21:20:32.000000000 -0400
52473+++ linux-2.6.38.3/kernel/power/poweroff.c 2011-04-17 15:57:33.000000000 -0400 51009+++ linux-2.6.38.2/kernel/power/poweroff.c 2011-03-21 18:31:35.000000000 -0400
52474@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof 51010@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof
52475 .enable_mask = SYSRQ_ENABLE_BOOT, 51011 .enable_mask = SYSRQ_ENABLE_BOOT,
52476 }; 51012 };
@@ -52480,9 +51016,9 @@ diff -urNp linux-2.6.38.3/kernel/power/poweroff.c linux-2.6.38.3/kernel/power/po
52480 { 51016 {
52481 register_sysrq_key('o', &sysrq_poweroff_op); 51017 register_sysrq_key('o', &sysrq_poweroff_op);
52482 return 0; 51018 return 0;
52483diff -urNp linux-2.6.38.3/kernel/power/process.c linux-2.6.38.3/kernel/power/process.c 51019diff -urNp linux-2.6.38.2/kernel/power/process.c linux-2.6.38.2/kernel/power/process.c
52484--- linux-2.6.38.3/kernel/power/process.c 2011-03-14 21:20:32.000000000 -0400 51020--- linux-2.6.38.2/kernel/power/process.c 2011-03-14 21:20:32.000000000 -0400
52485+++ linux-2.6.38.3/kernel/power/process.c 2011-04-17 15:57:33.000000000 -0400 51021+++ linux-2.6.38.2/kernel/power/process.c 2011-03-21 18:31:35.000000000 -0400
52486@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_ 51022@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_
52487 u64 elapsed_csecs64; 51023 u64 elapsed_csecs64;
52488 unsigned int elapsed_csecs; 51024 unsigned int elapsed_csecs;
@@ -52525,9 +51061,9 @@ diff -urNp linux-2.6.38.3/kernel/power/process.c linux-2.6.38.3/kernel/power/pro
52525 break; 51061 break;
52526 51062
52527 if (pm_wakeup_pending()) { 51063 if (pm_wakeup_pending()) {
52528diff -urNp linux-2.6.38.3/kernel/printk.c linux-2.6.38.3/kernel/printk.c 51064diff -urNp linux-2.6.38.2/kernel/printk.c linux-2.6.38.2/kernel/printk.c
52529--- linux-2.6.38.3/kernel/printk.c 2011-03-14 21:20:32.000000000 -0400 51065--- linux-2.6.38.2/kernel/printk.c 2011-03-14 21:20:32.000000000 -0400
52530+++ linux-2.6.38.3/kernel/printk.c 2011-04-17 15:57:33.000000000 -0400 51066+++ linux-2.6.38.2/kernel/printk.c 2011-03-23 22:30:08.000000000 -0400
52531@@ -279,12 +279,17 @@ static int check_syslog_permissions(int 51067@@ -279,12 +279,17 @@ static int check_syslog_permissions(int
52532 if (from_file && type != SYSLOG_ACTION_OPEN) 51068 if (from_file && type != SYSLOG_ACTION_OPEN)
52533 return 0; 51069 return 0;
@@ -52547,9 +51083,9 @@ diff -urNp linux-2.6.38.3/kernel/printk.c linux-2.6.38.3/kernel/printk.c
52547 "but no CAP_SYSLOG (deprecated).\n"); 51083 "but no CAP_SYSLOG (deprecated).\n");
52548 return 0; 51084 return 0;
52549 } 51085 }
52550diff -urNp linux-2.6.38.3/kernel/ptrace.c linux-2.6.38.3/kernel/ptrace.c 51086diff -urNp linux-2.6.38.2/kernel/ptrace.c linux-2.6.38.2/kernel/ptrace.c
52551--- linux-2.6.38.3/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400 51087--- linux-2.6.38.2/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
52552+++ linux-2.6.38.3/kernel/ptrace.c 2011-04-17 15:57:33.000000000 -0400 51088+++ linux-2.6.38.2/kernel/ptrace.c 2011-03-26 11:42:34.000000000 -0400
52553@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru 51089@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru
52554 return ret; 51090 return ret;
52555 } 51091 }
@@ -52691,9 +51227,9 @@ diff -urNp linux-2.6.38.3/kernel/ptrace.c linux-2.6.38.3/kernel/ptrace.c
52691 goto out_put_task_struct; 51227 goto out_put_task_struct;
52692 } 51228 }
52693 51229
52694diff -urNp linux-2.6.38.3/kernel/rcutree.c linux-2.6.38.3/kernel/rcutree.c 51230diff -urNp linux-2.6.38.2/kernel/rcutree.c linux-2.6.38.2/kernel/rcutree.c
52695--- linux-2.6.38.3/kernel/rcutree.c 2011-03-14 21:20:32.000000000 -0400 51231--- linux-2.6.38.2/kernel/rcutree.c 2011-03-14 21:20:32.000000000 -0400
52696+++ linux-2.6.38.3/kernel/rcutree.c 2011-04-17 15:57:33.000000000 -0400 51232+++ linux-2.6.38.2/kernel/rcutree.c 2011-03-21 18:31:35.000000000 -0400
52697@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state 51233@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state
52698 /* 51234 /*
52699 * Do softirq processing for the current CPU. 51235 * Do softirq processing for the current CPU.
@@ -52703,9 +51239,9 @@ diff -urNp linux-2.6.38.3/kernel/rcutree.c linux-2.6.38.3/kernel/rcutree.c
52703 { 51239 {
52704 /* 51240 /*
52705 * Memory references from any prior RCU read-side critical sections 51241 * Memory references from any prior RCU read-side critical sections
52706diff -urNp linux-2.6.38.3/kernel/rcutree_plugin.h linux-2.6.38.3/kernel/rcutree_plugin.h 51242diff -urNp linux-2.6.38.2/kernel/rcutree_plugin.h linux-2.6.38.2/kernel/rcutree_plugin.h
52707--- linux-2.6.38.3/kernel/rcutree_plugin.h 2011-03-14 21:20:32.000000000 -0400 51243--- linux-2.6.38.2/kernel/rcutree_plugin.h 2011-03-14 21:20:32.000000000 -0400
52708+++ linux-2.6.38.3/kernel/rcutree_plugin.h 2011-04-17 15:57:33.000000000 -0400 51244+++ linux-2.6.38.2/kernel/rcutree_plugin.h 2011-03-21 18:31:35.000000000 -0400
52709@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void) 51245@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void)
52710 51246
52711 /* Clean up and exit. */ 51247 /* Clean up and exit. */
@@ -52715,9 +51251,9 @@ diff -urNp linux-2.6.38.3/kernel/rcutree_plugin.h linux-2.6.38.3/kernel/rcutree_
52715 unlock_mb_ret: 51251 unlock_mb_ret:
52716 mutex_unlock(&sync_rcu_preempt_exp_mutex); 51252 mutex_unlock(&sync_rcu_preempt_exp_mutex);
52717 mb_ret: 51253 mb_ret:
52718diff -urNp linux-2.6.38.3/kernel/resource.c linux-2.6.38.3/kernel/resource.c 51254diff -urNp linux-2.6.38.2/kernel/resource.c linux-2.6.38.2/kernel/resource.c
52719--- linux-2.6.38.3/kernel/resource.c 2011-03-14 21:20:32.000000000 -0400 51255--- linux-2.6.38.2/kernel/resource.c 2011-03-14 21:20:32.000000000 -0400
52720+++ linux-2.6.38.3/kernel/resource.c 2011-04-17 15:57:33.000000000 -0400 51256+++ linux-2.6.38.2/kernel/resource.c 2011-03-21 18:31:35.000000000 -0400
52721@@ -133,8 +133,18 @@ static const struct file_operations proc 51257@@ -133,8 +133,18 @@ static const struct file_operations proc
52722 51258
52723 static int __init ioresources_init(void) 51259 static int __init ioresources_init(void)
@@ -52737,9 +51273,9 @@ diff -urNp linux-2.6.38.3/kernel/resource.c linux-2.6.38.3/kernel/resource.c
52737 return 0; 51273 return 0;
52738 } 51274 }
52739 __initcall(ioresources_init); 51275 __initcall(ioresources_init);
52740diff -urNp linux-2.6.38.3/kernel/rtmutex.c linux-2.6.38.3/kernel/rtmutex.c 51276diff -urNp linux-2.6.38.2/kernel/rtmutex.c linux-2.6.38.2/kernel/rtmutex.c
52741--- linux-2.6.38.3/kernel/rtmutex.c 2011-03-14 21:20:32.000000000 -0400 51277--- linux-2.6.38.2/kernel/rtmutex.c 2011-03-14 21:20:32.000000000 -0400
52742+++ linux-2.6.38.3/kernel/rtmutex.c 2011-04-17 15:57:33.000000000 -0400 51278+++ linux-2.6.38.2/kernel/rtmutex.c 2011-03-21 18:31:35.000000000 -0400
52743@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt 51279@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt
52744 */ 51280 */
52745 raw_spin_lock_irqsave(&pendowner->pi_lock, flags); 51281 raw_spin_lock_irqsave(&pendowner->pi_lock, flags);
@@ -52749,40 +51285,9 @@ diff -urNp linux-2.6.38.3/kernel/rtmutex.c linux-2.6.38.3/kernel/rtmutex.c
52749 WARN_ON(pendowner->pi_blocked_on != waiter); 51285 WARN_ON(pendowner->pi_blocked_on != waiter);
52750 WARN_ON(pendowner->pi_blocked_on->lock != lock); 51286 WARN_ON(pendowner->pi_blocked_on->lock != lock);
52751 51287
52752diff -urNp linux-2.6.38.3/kernel/sched.c linux-2.6.38.3/kernel/sched.c 51288diff -urNp linux-2.6.38.2/kernel/sched.c linux-2.6.38.2/kernel/sched.c
52753--- linux-2.6.38.3/kernel/sched.c 2011-04-18 17:27:14.000000000 -0400 51289--- linux-2.6.38.2/kernel/sched.c 2011-03-23 17:20:08.000000000 -0400
52754+++ linux-2.6.38.3/kernel/sched.c 2011-04-17 16:29:21.000000000 -0400 51290+++ linux-2.6.38.2/kernel/sched.c 2011-03-23 17:21:51.000000000 -0400
52755@@ -4024,7 +4024,7 @@ EXPORT_SYMBOL(schedule);
52756 * Look out! "owner" is an entirely speculative pointer
52757 * access and not reliable.
52758 */
52759-int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner)
52760+int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner)
52761 {
52762 unsigned int cpu;
52763 struct rq *rq;
52764@@ -4038,10 +4038,10 @@ int mutex_spin_on_owner(struct mutex *lo
52765 * DEBUG_PAGEALLOC could have unmapped it if
52766 * the mutex owner just released it and exited.
52767 */
52768- if (probe_kernel_address(&owner->cpu, cpu))
52769+ if (probe_kernel_address(&task_thread_info(owner)->cpu, cpu))
52770 return 0;
52771 #else
52772- cpu = owner->cpu;
52773+ cpu = task_thread_info(owner)->cpu;
52774 #endif
52775
52776 /*
52777@@ -4078,7 +4078,7 @@ int mutex_spin_on_owner(struct mutex *lo
52778 /*
52779 * Is that owner really running on that cpu?
52780 */
52781- if (task_thread_info(rq->curr) != owner || need_resched())
52782+ if (rq->curr != owner || need_resched())
52783 return 0;
52784
52785 arch_mutex_cpu_relax();
52786@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p 51291@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p
52787 /* convert nice value [19,-20] to rlimit style value [1,40] */ 51292 /* convert nice value [19,-20] to rlimit style value [1,40] */
52788 int nice_rlim = 20 - nice; 51293 int nice_rlim = 20 - nice;
@@ -52819,9 +51324,9 @@ diff -urNp linux-2.6.38.3/kernel/sched.c linux-2.6.38.3/kernel/sched.c
52819 51324
52820 if (cpu != group_first_cpu(sd->groups)) 51325 if (cpu != group_first_cpu(sd->groups))
52821 return; 51326 return;
52822diff -urNp linux-2.6.38.3/kernel/sched_fair.c linux-2.6.38.3/kernel/sched_fair.c 51327diff -urNp linux-2.6.38.2/kernel/sched_fair.c linux-2.6.38.2/kernel/sched_fair.c
52823--- linux-2.6.38.3/kernel/sched_fair.c 2011-03-14 21:20:32.000000000 -0400 51328--- linux-2.6.38.2/kernel/sched_fair.c 2011-03-14 21:20:32.000000000 -0400
52824+++ linux-2.6.38.3/kernel/sched_fair.c 2011-04-17 15:57:33.000000000 -0400 51329+++ linux-2.6.38.2/kernel/sched_fair.c 2011-03-21 18:31:35.000000000 -0400
52825@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c 51330@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c
52826 * run_rebalance_domains is triggered when needed from the scheduler tick. 51331 * run_rebalance_domains is triggered when needed from the scheduler tick.
52827 * Also triggered for nohz idle balancing (with nohz_balancing_kick set). 51332 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
@@ -52831,9 +51336,9 @@ diff -urNp linux-2.6.38.3/kernel/sched_fair.c linux-2.6.38.3/kernel/sched_fair.c
52831 { 51336 {
52832 int this_cpu = smp_processor_id(); 51337 int this_cpu = smp_processor_id();
52833 struct rq *this_rq = cpu_rq(this_cpu); 51338 struct rq *this_rq = cpu_rq(this_cpu);
52834diff -urNp linux-2.6.38.3/kernel/signal.c linux-2.6.38.3/kernel/signal.c 51339diff -urNp linux-2.6.38.2/kernel/signal.c linux-2.6.38.2/kernel/signal.c
52835--- linux-2.6.38.3/kernel/signal.c 2011-04-18 17:27:18.000000000 -0400 51340--- linux-2.6.38.2/kernel/signal.c 2011-03-28 17:42:40.000000000 -0400
52836+++ linux-2.6.38.3/kernel/signal.c 2011-04-17 16:53:48.000000000 -0400 51341+++ linux-2.6.38.2/kernel/signal.c 2011-03-28 17:42:53.000000000 -0400
52837@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache 51342@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache
52838 51343
52839 int print_fatal_signals __read_mostly; 51344 int print_fatal_signals __read_mostly;
@@ -52936,9 +51441,9 @@ diff -urNp linux-2.6.38.3/kernel/signal.c linux-2.6.38.3/kernel/signal.c
52936 51441
52937 return ret; 51442 return ret;
52938 } 51443 }
52939diff -urNp linux-2.6.38.3/kernel/smp.c linux-2.6.38.3/kernel/smp.c 51444diff -urNp linux-2.6.38.2/kernel/smp.c linux-2.6.38.2/kernel/smp.c
52940--- linux-2.6.38.3/kernel/smp.c 2011-04-18 17:27:14.000000000 -0400 51445--- linux-2.6.38.2/kernel/smp.c 2011-03-23 17:20:08.000000000 -0400
52941+++ linux-2.6.38.3/kernel/smp.c 2011-04-17 15:57:33.000000000 -0400 51446+++ linux-2.6.38.2/kernel/smp.c 2011-03-26 20:50:44.000000000 -0400
52942@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu 51447@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu
52943 } 51448 }
52944 EXPORT_SYMBOL(smp_call_function); 51449 EXPORT_SYMBOL(smp_call_function);
@@ -52966,9 +51471,9 @@ diff -urNp linux-2.6.38.3/kernel/smp.c linux-2.6.38.3/kernel/smp.c
52966 { 51471 {
52967 raw_spin_unlock_irq(&call_function.lock); 51472 raw_spin_unlock_irq(&call_function.lock);
52968 } 51473 }
52969diff -urNp linux-2.6.38.3/kernel/softirq.c linux-2.6.38.3/kernel/softirq.c 51474diff -urNp linux-2.6.38.2/kernel/softirq.c linux-2.6.38.2/kernel/softirq.c
52970--- linux-2.6.38.3/kernel/softirq.c 2011-03-14 21:20:32.000000000 -0400 51475--- linux-2.6.38.2/kernel/softirq.c 2011-03-14 21:20:32.000000000 -0400
52971+++ linux-2.6.38.3/kernel/softirq.c 2011-04-17 15:57:33.000000000 -0400 51476+++ linux-2.6.38.2/kernel/softirq.c 2011-03-21 18:31:35.000000000 -0400
52972@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec 51477@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec
52973 51478
52974 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd); 51479 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
@@ -53023,9 +51528,9 @@ diff -urNp linux-2.6.38.3/kernel/softirq.c linux-2.6.38.3/kernel/softirq.c
53023 { 51528 {
53024 struct tasklet_struct *list; 51529 struct tasklet_struct *list;
53025 51530
53026diff -urNp linux-2.6.38.3/kernel/sys.c linux-2.6.38.3/kernel/sys.c 51531diff -urNp linux-2.6.38.2/kernel/sys.c linux-2.6.38.2/kernel/sys.c
53027--- linux-2.6.38.3/kernel/sys.c 2011-03-14 21:20:32.000000000 -0400 51532--- linux-2.6.38.2/kernel/sys.c 2011-03-14 21:20:32.000000000 -0400
53028+++ linux-2.6.38.3/kernel/sys.c 2011-04-17 15:57:33.000000000 -0400 51533+++ linux-2.6.38.2/kernel/sys.c 2011-03-21 18:31:35.000000000 -0400
53029@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru 51534@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru
53030 error = -EACCES; 51535 error = -EACCES;
53031 goto out; 51536 goto out;
@@ -53147,9 +51652,9 @@ diff -urNp linux-2.6.38.3/kernel/sys.c linux-2.6.38.3/kernel/sys.c
53147 error = -EINVAL; 51652 error = -EINVAL;
53148 break; 51653 break;
53149 } 51654 }
53150diff -urNp linux-2.6.38.3/kernel/sysctl.c linux-2.6.38.3/kernel/sysctl.c 51655diff -urNp linux-2.6.38.2/kernel/sysctl.c linux-2.6.38.2/kernel/sysctl.c
53151--- linux-2.6.38.3/kernel/sysctl.c 2011-04-18 17:27:16.000000000 -0400 51656--- linux-2.6.38.2/kernel/sysctl.c 2011-03-28 17:42:40.000000000 -0400
53152+++ linux-2.6.38.3/kernel/sysctl.c 2011-04-17 15:57:33.000000000 -0400 51657+++ linux-2.6.38.2/kernel/sysctl.c 2011-03-28 17:49:17.000000000 -0400
53153@@ -84,6 +84,13 @@ 51658@@ -84,6 +84,13 @@
53154 51659
53155 51660
@@ -53338,9 +51843,9 @@ diff -urNp linux-2.6.38.3/kernel/sysctl.c linux-2.6.38.3/kernel/sysctl.c
53338 EXPORT_SYMBOL(proc_doulongvec_minmax); 51843 EXPORT_SYMBOL(proc_doulongvec_minmax);
53339 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax); 51844 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
53340 EXPORT_SYMBOL(register_sysctl_table); 51845 EXPORT_SYMBOL(register_sysctl_table);
53341diff -urNp linux-2.6.38.3/kernel/sysctl_check.c linux-2.6.38.3/kernel/sysctl_check.c 51846diff -urNp linux-2.6.38.2/kernel/sysctl_check.c linux-2.6.38.2/kernel/sysctl_check.c
53342--- linux-2.6.38.3/kernel/sysctl_check.c 2011-03-14 21:20:32.000000000 -0400 51847--- linux-2.6.38.2/kernel/sysctl_check.c 2011-03-14 21:20:32.000000000 -0400
53343+++ linux-2.6.38.3/kernel/sysctl_check.c 2011-04-17 15:57:33.000000000 -0400 51848+++ linux-2.6.38.2/kernel/sysctl_check.c 2011-03-21 18:31:35.000000000 -0400
53344@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n 51849@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n
53345 set_fail(&fail, table, "Directory with extra2"); 51850 set_fail(&fail, table, "Directory with extra2");
53346 } else { 51851 } else {
@@ -53349,9 +51854,9 @@ diff -urNp linux-2.6.38.3/kernel/sysctl_check.c linux-2.6.38.3/kernel/sysctl_che
53349 (table->proc_handler == proc_dointvec) || 51854 (table->proc_handler == proc_dointvec) ||
53350 (table->proc_handler == proc_dointvec_minmax) || 51855 (table->proc_handler == proc_dointvec_minmax) ||
53351 (table->proc_handler == proc_dointvec_jiffies) || 51856 (table->proc_handler == proc_dointvec_jiffies) ||
53352diff -urNp linux-2.6.38.3/kernel/taskstats.c linux-2.6.38.3/kernel/taskstats.c 51857diff -urNp linux-2.6.38.2/kernel/taskstats.c linux-2.6.38.2/kernel/taskstats.c
53353--- linux-2.6.38.3/kernel/taskstats.c 2011-03-14 21:20:32.000000000 -0400 51858--- linux-2.6.38.2/kernel/taskstats.c 2011-03-14 21:20:32.000000000 -0400
53354+++ linux-2.6.38.3/kernel/taskstats.c 2011-04-17 15:57:33.000000000 -0400 51859+++ linux-2.6.38.2/kernel/taskstats.c 2011-03-21 18:31:35.000000000 -0400
53355@@ -27,9 +27,12 @@ 51860@@ -27,9 +27,12 @@
53356 #include <linux/cgroup.h> 51861 #include <linux/cgroup.h>
53357 #include <linux/fs.h> 51862 #include <linux/fs.h>
@@ -53375,9 +51880,9 @@ diff -urNp linux-2.6.38.3/kernel/taskstats.c linux-2.6.38.3/kernel/taskstats.c
53375 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK]) 51880 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
53376 return cmd_attr_register_cpumask(info); 51881 return cmd_attr_register_cpumask(info);
53377 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK]) 51882 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
53378diff -urNp linux-2.6.38.3/kernel/time/tick-broadcast.c linux-2.6.38.3/kernel/time/tick-broadcast.c 51883diff -urNp linux-2.6.38.2/kernel/time/tick-broadcast.c linux-2.6.38.2/kernel/time/tick-broadcast.c
53379--- linux-2.6.38.3/kernel/time/tick-broadcast.c 2011-03-14 21:20:32.000000000 -0400 51884--- linux-2.6.38.2/kernel/time/tick-broadcast.c 2011-03-14 21:20:32.000000000 -0400
53380+++ linux-2.6.38.3/kernel/time/tick-broadcast.c 2011-04-17 15:57:33.000000000 -0400 51885+++ linux-2.6.38.2/kernel/time/tick-broadcast.c 2011-03-21 18:31:35.000000000 -0400
53381@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl 51886@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl
53382 * then clear the broadcast bit. 51887 * then clear the broadcast bit.
53383 */ 51888 */
@@ -53387,9 +51892,9 @@ diff -urNp linux-2.6.38.3/kernel/time/tick-broadcast.c linux-2.6.38.3/kernel/tim
53387 51892
53388 cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); 51893 cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
53389 tick_broadcast_clear_oneshot(cpu); 51894 tick_broadcast_clear_oneshot(cpu);
53390diff -urNp linux-2.6.38.3/kernel/time/timekeeping.c linux-2.6.38.3/kernel/time/timekeeping.c 51895diff -urNp linux-2.6.38.2/kernel/time/timekeeping.c linux-2.6.38.2/kernel/time/timekeeping.c
53391--- linux-2.6.38.3/kernel/time/timekeeping.c 2011-03-14 21:20:32.000000000 -0400 51896--- linux-2.6.38.2/kernel/time/timekeeping.c 2011-03-14 21:20:32.000000000 -0400
53392+++ linux-2.6.38.3/kernel/time/timekeeping.c 2011-04-17 15:57:33.000000000 -0400 51897+++ linux-2.6.38.2/kernel/time/timekeeping.c 2011-03-21 18:31:35.000000000 -0400
53393@@ -14,6 +14,7 @@ 51898@@ -14,6 +14,7 @@
53394 #include <linux/init.h> 51899 #include <linux/init.h>
53395 #include <linux/mm.h> 51900 #include <linux/mm.h>
@@ -53407,9 +51912,9 @@ diff -urNp linux-2.6.38.3/kernel/time/timekeeping.c linux-2.6.38.3/kernel/time/t
53407 write_seqlock_irqsave(&xtime_lock, flags); 51912 write_seqlock_irqsave(&xtime_lock, flags);
53408 51913
53409 timekeeping_forward_now(); 51914 timekeeping_forward_now();
53410diff -urNp linux-2.6.38.3/kernel/time/timer_list.c linux-2.6.38.3/kernel/time/timer_list.c 51915diff -urNp linux-2.6.38.2/kernel/time/timer_list.c linux-2.6.38.2/kernel/time/timer_list.c
53411--- linux-2.6.38.3/kernel/time/timer_list.c 2011-03-14 21:20:32.000000000 -0400 51916--- linux-2.6.38.2/kernel/time/timer_list.c 2011-03-14 21:20:32.000000000 -0400
53412+++ linux-2.6.38.3/kernel/time/timer_list.c 2011-04-17 15:57:33.000000000 -0400 51917+++ linux-2.6.38.2/kernel/time/timer_list.c 2011-03-21 18:31:35.000000000 -0400
53413@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, 51918@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base,
53414 51919
53415 static void print_name_offset(struct seq_file *m, void *sym) 51920 static void print_name_offset(struct seq_file *m, void *sym)
@@ -53451,9 +51956,9 @@ diff -urNp linux-2.6.38.3/kernel/time/timer_list.c linux-2.6.38.3/kernel/time/ti
53451 if (!pe) 51956 if (!pe)
53452 return -ENOMEM; 51957 return -ENOMEM;
53453 return 0; 51958 return 0;
53454diff -urNp linux-2.6.38.3/kernel/time/timer_stats.c linux-2.6.38.3/kernel/time/timer_stats.c 51959diff -urNp linux-2.6.38.2/kernel/time/timer_stats.c linux-2.6.38.2/kernel/time/timer_stats.c
53455--- linux-2.6.38.3/kernel/time/timer_stats.c 2011-03-14 21:20:32.000000000 -0400 51960--- linux-2.6.38.2/kernel/time/timer_stats.c 2011-03-14 21:20:32.000000000 -0400
53456+++ linux-2.6.38.3/kernel/time/timer_stats.c 2011-04-17 15:57:33.000000000 -0400 51961+++ linux-2.6.38.2/kernel/time/timer_stats.c 2011-03-21 18:31:35.000000000 -0400
53457@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time 51962@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time
53458 51963
53459 static void print_name_offset(struct seq_file *m, unsigned long addr) 51964 static void print_name_offset(struct seq_file *m, unsigned long addr)
@@ -53483,9 +51988,9 @@ diff -urNp linux-2.6.38.3/kernel/time/timer_stats.c linux-2.6.38.3/kernel/time/t
53483 if (!pe) 51988 if (!pe)
53484 return -ENOMEM; 51989 return -ENOMEM;
53485 return 0; 51990 return 0;
53486diff -urNp linux-2.6.38.3/kernel/time.c linux-2.6.38.3/kernel/time.c 51991diff -urNp linux-2.6.38.2/kernel/time.c linux-2.6.38.2/kernel/time.c
53487--- linux-2.6.38.3/kernel/time.c 2011-03-14 21:20:32.000000000 -0400 51992--- linux-2.6.38.2/kernel/time.c 2011-03-14 21:20:32.000000000 -0400
53488+++ linux-2.6.38.3/kernel/time.c 2011-04-17 15:57:33.000000000 -0400 51993+++ linux-2.6.38.2/kernel/time.c 2011-03-21 18:31:35.000000000 -0400
53489@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec 51994@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec
53490 return error; 51995 return error;
53491 51996
@@ -53498,9 +52003,9 @@ diff -urNp linux-2.6.38.3/kernel/time.c linux-2.6.38.3/kernel/time.c
53498 /* SMP safe, global irq locking makes it work. */ 52003 /* SMP safe, global irq locking makes it work. */
53499 sys_tz = *tz; 52004 sys_tz = *tz;
53500 update_vsyscall_tz(); 52005 update_vsyscall_tz();
53501diff -urNp linux-2.6.38.3/kernel/timer.c linux-2.6.38.3/kernel/timer.c 52006diff -urNp linux-2.6.38.2/kernel/timer.c linux-2.6.38.2/kernel/timer.c
53502--- linux-2.6.38.3/kernel/timer.c 2011-03-14 21:20:32.000000000 -0400 52007--- linux-2.6.38.2/kernel/timer.c 2011-03-14 21:20:32.000000000 -0400
53503+++ linux-2.6.38.3/kernel/timer.c 2011-04-17 15:57:33.000000000 -0400 52008+++ linux-2.6.38.2/kernel/timer.c 2011-03-21 18:31:35.000000000 -0400
53504@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick) 52009@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick)
53505 /* 52010 /*
53506 * This function runs timers and the timer-tq in bottom half context. 52011 * This function runs timers and the timer-tq in bottom half context.
@@ -53510,9 +52015,9 @@ diff -urNp linux-2.6.38.3/kernel/timer.c linux-2.6.38.3/kernel/timer.c
53510 { 52015 {
53511 struct tvec_base *base = __this_cpu_read(tvec_bases); 52016 struct tvec_base *base = __this_cpu_read(tvec_bases);
53512 52017
53513diff -urNp linux-2.6.38.3/kernel/trace/ftrace.c linux-2.6.38.3/kernel/trace/ftrace.c 52018diff -urNp linux-2.6.38.2/kernel/trace/ftrace.c linux-2.6.38.2/kernel/trace/ftrace.c
53514--- linux-2.6.38.3/kernel/trace/ftrace.c 2011-04-18 17:27:14.000000000 -0400 52019--- linux-2.6.38.2/kernel/trace/ftrace.c 2011-03-23 17:20:08.000000000 -0400
53515+++ linux-2.6.38.3/kernel/trace/ftrace.c 2011-04-17 15:57:33.000000000 -0400 52020+++ linux-2.6.38.2/kernel/trace/ftrace.c 2011-03-23 17:21:51.000000000 -0400
53516@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod, 52021@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod,
53517 52022
53518 ip = rec->ip; 52023 ip = rec->ip;
@@ -53534,9 +52039,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/ftrace.c linux-2.6.38.3/kernel/trace/ftra
53534 } 52039 }
53535 52040
53536 /* 52041 /*
53537diff -urNp linux-2.6.38.3/kernel/trace/ring_buffer.c linux-2.6.38.3/kernel/trace/ring_buffer.c 52042diff -urNp linux-2.6.38.2/kernel/trace/ring_buffer.c linux-2.6.38.2/kernel/trace/ring_buffer.c
53538--- linux-2.6.38.3/kernel/trace/ring_buffer.c 2011-03-14 21:20:32.000000000 -0400 52043--- linux-2.6.38.2/kernel/trace/ring_buffer.c 2011-03-14 21:20:32.000000000 -0400
53539+++ linux-2.6.38.3/kernel/trace/ring_buffer.c 2011-04-17 15:57:33.000000000 -0400 52044+++ linux-2.6.38.2/kernel/trace/ring_buffer.c 2011-03-21 18:31:35.000000000 -0400
53540@@ -669,7 +669,7 @@ static struct list_head *rb_list_head(st 52045@@ -669,7 +669,7 @@ static struct list_head *rb_list_head(st
53541 * the reader page). But if the next page is a header page, 52046 * the reader page). But if the next page is a header page,
53542 * its flags will be non zero. 52047 * its flags will be non zero.
@@ -53546,9 +52051,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/ring_buffer.c linux-2.6.38.3/kernel/trace
53546 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer, 52051 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
53547 struct buffer_page *page, struct list_head *list) 52052 struct buffer_page *page, struct list_head *list)
53548 { 52053 {
53549diff -urNp linux-2.6.38.3/kernel/trace/trace.c linux-2.6.38.3/kernel/trace/trace.c 52054diff -urNp linux-2.6.38.2/kernel/trace/trace.c linux-2.6.38.2/kernel/trace/trace.c
53550--- linux-2.6.38.3/kernel/trace/trace.c 2011-03-14 21:20:32.000000000 -0400 52055--- linux-2.6.38.2/kernel/trace/trace.c 2011-03-14 21:20:32.000000000 -0400
53551+++ linux-2.6.38.3/kernel/trace/trace.c 2011-04-17 15:57:33.000000000 -0400 52056+++ linux-2.6.38.2/kernel/trace/trace.c 2011-03-21 18:31:35.000000000 -0400
53552@@ -3967,10 +3967,9 @@ static const struct file_operations trac 52057@@ -3967,10 +3967,9 @@ static const struct file_operations trac
53553 }; 52058 };
53554 #endif 52059 #endif
@@ -53573,9 +52078,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace.c linux-2.6.38.3/kernel/trace/trace
53573 static int once; 52078 static int once;
53574 struct dentry *d_tracer; 52079 struct dentry *d_tracer;
53575 52080
53576diff -urNp linux-2.6.38.3/kernel/trace/trace_events.c linux-2.6.38.3/kernel/trace/trace_events.c 52081diff -urNp linux-2.6.38.2/kernel/trace/trace_events.c linux-2.6.38.2/kernel/trace/trace_events.c
53577--- linux-2.6.38.3/kernel/trace/trace_events.c 2011-03-14 21:20:32.000000000 -0400 52082--- linux-2.6.38.2/kernel/trace/trace_events.c 2011-03-14 21:20:32.000000000 -0400
53578+++ linux-2.6.38.3/kernel/trace/trace_events.c 2011-04-17 15:57:33.000000000 -0400 52083+++ linux-2.6.38.2/kernel/trace/trace_events.c 2011-03-21 18:31:35.000000000 -0400
53579@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list 52084@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list
53580 struct ftrace_module_file_ops { 52085 struct ftrace_module_file_ops {
53581 struct list_head list; 52086 struct list_head list;
@@ -53591,9 +52096,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace_events.c linux-2.6.38.3/kernel/trac
53591 }; 52096 };
53592 52097
53593 static struct ftrace_module_file_ops * 52098 static struct ftrace_module_file_ops *
53594diff -urNp linux-2.6.38.3/kernel/trace/trace_output.c linux-2.6.38.3/kernel/trace/trace_output.c 52099diff -urNp linux-2.6.38.2/kernel/trace/trace_output.c linux-2.6.38.2/kernel/trace/trace_output.c
53595--- linux-2.6.38.3/kernel/trace/trace_output.c 2011-03-14 21:20:32.000000000 -0400 52100--- linux-2.6.38.2/kernel/trace/trace_output.c 2011-03-14 21:20:32.000000000 -0400
53596+++ linux-2.6.38.3/kernel/trace/trace_output.c 2011-04-17 15:57:33.000000000 -0400 52101+++ linux-2.6.38.2/kernel/trace/trace_output.c 2011-03-21 18:31:35.000000000 -0400
53597@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s, 52102@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s,
53598 52103
53599 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); 52104 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
@@ -53603,9 +52108,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace_output.c linux-2.6.38.3/kernel/trac
53603 if (p) { 52108 if (p) {
53604 s->len = p - s->buffer; 52109 s->len = p - s->buffer;
53605 return 1; 52110 return 1;
53606diff -urNp linux-2.6.38.3/kernel/trace/trace_stack.c linux-2.6.38.3/kernel/trace/trace_stack.c 52111diff -urNp linux-2.6.38.2/kernel/trace/trace_stack.c linux-2.6.38.2/kernel/trace/trace_stack.c
53607--- linux-2.6.38.3/kernel/trace/trace_stack.c 2011-03-14 21:20:32.000000000 -0400 52112--- linux-2.6.38.2/kernel/trace/trace_stack.c 2011-03-14 21:20:32.000000000 -0400
53608+++ linux-2.6.38.3/kernel/trace/trace_stack.c 2011-04-17 15:57:33.000000000 -0400 52113+++ linux-2.6.38.2/kernel/trace/trace_stack.c 2011-03-21 18:31:35.000000000 -0400
53609@@ -50,7 +50,7 @@ static inline void check_stack(void) 52114@@ -50,7 +50,7 @@ static inline void check_stack(void)
53610 return; 52115 return;
53611 52116
@@ -53615,39 +52120,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace_stack.c linux-2.6.38.3/kernel/trace
53615 return; 52120 return;
53616 52121
53617 local_irq_save(flags); 52122 local_irq_save(flags);
53618diff -urNp linux-2.6.38.3/kernel/trace/trace_workqueue.c linux-2.6.38.3/kernel/trace/trace_workqueue.c 52123diff -urNp linux-2.6.38.2/lib/bug.c linux-2.6.38.2/lib/bug.c
53619--- linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-03-14 21:20:32.000000000 -0400 52124--- linux-2.6.38.2/lib/bug.c 2011-03-14 21:20:32.000000000 -0400
53620+++ linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-04-17 15:57:33.000000000 -0400 52125+++ linux-2.6.38.2/lib/bug.c 2011-03-21 18:31:35.000000000 -0400
53621@@ -22,7 +22,7 @@ struct cpu_workqueue_stats {
53622 int cpu;
53623 pid_t pid;
53624 /* Can be inserted from interrupt or user context, need to be atomic */
53625- atomic_t inserted;
53626+ atomic_unchecked_t inserted;
53627 /*
53628 * Don't need to be atomic, works are serialized in a single workqueue thread
53629 * on a single CPU.
53630@@ -60,7 +60,7 @@ probe_workqueue_insertion(void *ignore,
53631 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags);
53632 list_for_each_entry(node, &workqueue_cpu_stat(cpu)->list, list) {
53633 if (node->pid == wq_thread->pid) {
53634- atomic_inc(&node->inserted);
53635+ atomic_inc_unchecked(&node->inserted);
53636 goto found;
53637 }
53638 }
53639@@ -210,7 +210,7 @@ static int workqueue_stat_show(struct se
53640 tsk = get_pid_task(pid, PIDTYPE_PID);
53641 if (tsk) {
53642 seq_printf(s, "%3d %6d %6u %s\n", cws->cpu,
53643- atomic_read(&cws->inserted), cws->executed,
53644+ atomic_read_unchecked(&cws->inserted), cws->executed,
53645 tsk->comm);
53646 put_task_struct(tsk);
53647 }
53648diff -urNp linux-2.6.38.3/lib/bug.c linux-2.6.38.3/lib/bug.c
53649--- linux-2.6.38.3/lib/bug.c 2011-03-14 21:20:32.000000000 -0400
53650+++ linux-2.6.38.3/lib/bug.c 2011-04-17 15:57:33.000000000 -0400
53651@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l 52126@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l
53652 return BUG_TRAP_TYPE_NONE; 52127 return BUG_TRAP_TYPE_NONE;
53653 52128
@@ -53657,9 +52132,9 @@ diff -urNp linux-2.6.38.3/lib/bug.c linux-2.6.38.3/lib/bug.c
53657 52132
53658 file = NULL; 52133 file = NULL;
53659 line = 0; 52134 line = 0;
53660diff -urNp linux-2.6.38.3/lib/debugobjects.c linux-2.6.38.3/lib/debugobjects.c 52135diff -urNp linux-2.6.38.2/lib/debugobjects.c linux-2.6.38.2/lib/debugobjects.c
53661--- linux-2.6.38.3/lib/debugobjects.c 2011-03-14 21:20:32.000000000 -0400 52136--- linux-2.6.38.2/lib/debugobjects.c 2011-03-14 21:20:32.000000000 -0400
53662+++ linux-2.6.38.3/lib/debugobjects.c 2011-04-17 15:57:33.000000000 -0400 52137+++ linux-2.6.38.2/lib/debugobjects.c 2011-03-21 18:31:35.000000000 -0400
53663@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi 52138@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi
53664 if (limit > 4) 52139 if (limit > 4)
53665 return; 52140 return;
@@ -53669,9 +52144,9 @@ diff -urNp linux-2.6.38.3/lib/debugobjects.c linux-2.6.38.3/lib/debugobjects.c
53669 if (is_on_stack == onstack) 52144 if (is_on_stack == onstack)
53670 return; 52145 return;
53671 52146
53672diff -urNp linux-2.6.38.3/lib/dma-debug.c linux-2.6.38.3/lib/dma-debug.c 52147diff -urNp linux-2.6.38.2/lib/dma-debug.c linux-2.6.38.2/lib/dma-debug.c
53673--- linux-2.6.38.3/lib/dma-debug.c 2011-03-14 21:20:32.000000000 -0400 52148--- linux-2.6.38.2/lib/dma-debug.c 2011-03-14 21:20:32.000000000 -0400
53674+++ linux-2.6.38.3/lib/dma-debug.c 2011-04-17 15:57:33.000000000 -0400 52149+++ linux-2.6.38.2/lib/dma-debug.c 2011-03-21 18:31:35.000000000 -0400
53675@@ -862,7 +862,7 @@ out: 52150@@ -862,7 +862,7 @@ out:
53676 52151
53677 static void check_for_stack(struct device *dev, void *addr) 52152 static void check_for_stack(struct device *dev, void *addr)
@@ -53681,9 +52156,9 @@ diff -urNp linux-2.6.38.3/lib/dma-debug.c linux-2.6.38.3/lib/dma-debug.c
53681 err_printk(dev, NULL, "DMA-API: device driver maps memory from" 52156 err_printk(dev, NULL, "DMA-API: device driver maps memory from"
53682 "stack [addr=%p]\n", addr); 52157 "stack [addr=%p]\n", addr);
53683 } 52158 }
53684diff -urNp linux-2.6.38.3/lib/inflate.c linux-2.6.38.3/lib/inflate.c 52159diff -urNp linux-2.6.38.2/lib/inflate.c linux-2.6.38.2/lib/inflate.c
53685--- linux-2.6.38.3/lib/inflate.c 2011-03-14 21:20:32.000000000 -0400 52160--- linux-2.6.38.2/lib/inflate.c 2011-03-14 21:20:32.000000000 -0400
53686+++ linux-2.6.38.3/lib/inflate.c 2011-04-17 15:57:33.000000000 -0400 52161+++ linux-2.6.38.2/lib/inflate.c 2011-03-21 18:31:35.000000000 -0400
53687@@ -269,7 +269,7 @@ static void free(void *where) 52162@@ -269,7 +269,7 @@ static void free(void *where)
53688 malloc_ptr = free_mem_ptr; 52163 malloc_ptr = free_mem_ptr;
53689 } 52164 }
@@ -53693,9 +52168,9 @@ diff -urNp linux-2.6.38.3/lib/inflate.c linux-2.6.38.3/lib/inflate.c
53693 #define free(a) kfree(a) 52168 #define free(a) kfree(a)
53694 #endif 52169 #endif
53695 52170
53696diff -urNp linux-2.6.38.3/lib/Kconfig.debug linux-2.6.38.3/lib/Kconfig.debug 52171diff -urNp linux-2.6.38.2/lib/Kconfig.debug linux-2.6.38.2/lib/Kconfig.debug
53697--- linux-2.6.38.3/lib/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400 52172--- linux-2.6.38.2/lib/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400
53698+++ linux-2.6.38.3/lib/Kconfig.debug 2011-04-17 15:57:33.000000000 -0400 52173+++ linux-2.6.38.2/lib/Kconfig.debug 2011-03-21 18:31:35.000000000 -0400
53699@@ -1066,6 +1066,7 @@ config LATENCYTOP 52174@@ -1066,6 +1066,7 @@ config LATENCYTOP
53700 depends on DEBUG_KERNEL 52175 depends on DEBUG_KERNEL
53701 depends on STACKTRACE_SUPPORT 52176 depends on STACKTRACE_SUPPORT
@@ -53704,9 +52179,9 @@ diff -urNp linux-2.6.38.3/lib/Kconfig.debug linux-2.6.38.3/lib/Kconfig.debug
53704 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE 52179 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
53705 select KALLSYMS 52180 select KALLSYMS
53706 select KALLSYMS_ALL 52181 select KALLSYMS_ALL
53707diff -urNp linux-2.6.38.3/lib/kref.c linux-2.6.38.3/lib/kref.c 52182diff -urNp linux-2.6.38.2/lib/kref.c linux-2.6.38.2/lib/kref.c
53708--- linux-2.6.38.3/lib/kref.c 2011-03-14 21:20:32.000000000 -0400 52183--- linux-2.6.38.2/lib/kref.c 2011-03-14 21:20:32.000000000 -0400
53709+++ linux-2.6.38.3/lib/kref.c 2011-04-17 15:57:33.000000000 -0400 52184+++ linux-2.6.38.2/lib/kref.c 2011-03-21 18:31:35.000000000 -0400
53710@@ -52,7 +52,7 @@ void kref_get(struct kref *kref) 52185@@ -52,7 +52,7 @@ void kref_get(struct kref *kref)
53711 */ 52186 */
53712 int kref_put(struct kref *kref, void (*release)(struct kref *kref)) 52187 int kref_put(struct kref *kref, void (*release)(struct kref *kref))
@@ -53716,9 +52191,9 @@ diff -urNp linux-2.6.38.3/lib/kref.c linux-2.6.38.3/lib/kref.c
53716 WARN_ON(release == (void (*)(struct kref *))kfree); 52191 WARN_ON(release == (void (*)(struct kref *))kfree);
53717 52192
53718 if (atomic_dec_and_test(&kref->refcount)) { 52193 if (atomic_dec_and_test(&kref->refcount)) {
53719diff -urNp linux-2.6.38.3/lib/radix-tree.c linux-2.6.38.3/lib/radix-tree.c 52194diff -urNp linux-2.6.38.2/lib/radix-tree.c linux-2.6.38.2/lib/radix-tree.c
53720--- linux-2.6.38.3/lib/radix-tree.c 2011-03-14 21:20:32.000000000 -0400 52195--- linux-2.6.38.2/lib/radix-tree.c 2011-03-14 21:20:32.000000000 -0400
53721+++ linux-2.6.38.3/lib/radix-tree.c 2011-04-17 15:57:33.000000000 -0400 52196+++ linux-2.6.38.2/lib/radix-tree.c 2011-03-21 18:31:35.000000000 -0400
53722@@ -80,7 +80,7 @@ struct radix_tree_preload { 52197@@ -80,7 +80,7 @@ struct radix_tree_preload {
53723 int nr; 52198 int nr;
53724 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; 52199 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH];
@@ -53728,9 +52203,9 @@ diff -urNp linux-2.6.38.3/lib/radix-tree.c linux-2.6.38.3/lib/radix-tree.c
53728 52203
53729 static inline void *ptr_to_indirect(void *ptr) 52204 static inline void *ptr_to_indirect(void *ptr)
53730 { 52205 {
53731diff -urNp linux-2.6.38.3/lib/vsprintf.c linux-2.6.38.3/lib/vsprintf.c 52206diff -urNp linux-2.6.38.2/lib/vsprintf.c linux-2.6.38.2/lib/vsprintf.c
53732--- linux-2.6.38.3/lib/vsprintf.c 2011-03-14 21:20:32.000000000 -0400 52207--- linux-2.6.38.2/lib/vsprintf.c 2011-03-14 21:20:32.000000000 -0400
53733+++ linux-2.6.38.3/lib/vsprintf.c 2011-04-17 15:57:33.000000000 -0400 52208+++ linux-2.6.38.2/lib/vsprintf.c 2011-03-21 18:31:35.000000000 -0400
53734@@ -16,6 +16,9 @@ 52209@@ -16,6 +16,9 @@
53735 * - scnprintf and vscnprintf 52210 * - scnprintf and vscnprintf
53736 */ 52211 */
@@ -53824,14 +52299,14 @@ diff -urNp linux-2.6.38.3/lib/vsprintf.c linux-2.6.38.3/lib/vsprintf.c
53824 break; 52299 break;
53825 } 52300 }
53826 52301
53827diff -urNp linux-2.6.38.3/localversion-grsec linux-2.6.38.3/localversion-grsec 52302diff -urNp linux-2.6.38.2/localversion-grsec linux-2.6.38.2/localversion-grsec
53828--- linux-2.6.38.3/localversion-grsec 1969-12-31 19:00:00.000000000 -0500 52303--- linux-2.6.38.2/localversion-grsec 1969-12-31 19:00:00.000000000 -0500
53829+++ linux-2.6.38.3/localversion-grsec 2011-04-17 15:57:33.000000000 -0400 52304+++ linux-2.6.38.2/localversion-grsec 2011-03-21 18:31:35.000000000 -0400
53830@@ -0,0 +1 @@ 52305@@ -0,0 +1 @@
53831+-grsec 52306+-grsec
53832diff -urNp linux-2.6.38.3/Makefile linux-2.6.38.3/Makefile 52307diff -urNp linux-2.6.38.2/Makefile linux-2.6.38.2/Makefile
53833--- linux-2.6.38.3/Makefile 2011-04-18 17:27:18.000000000 -0400 52308--- linux-2.6.38.2/Makefile 2011-03-28 17:42:40.000000000 -0400
53834+++ linux-2.6.38.3/Makefile 2011-04-17 16:53:16.000000000 -0400 52309+++ linux-2.6.38.2/Makefile 2011-03-28 17:42:53.000000000 -0400
53835@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" 52310@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
53836 52311
53837 HOSTCC = gcc 52312 HOSTCC = gcc
@@ -53852,9 +52327,9 @@ diff -urNp linux-2.6.38.3/Makefile linux-2.6.38.3/Makefile
53852 52327
53853 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ 52328 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
53854 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ 52329 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
53855diff -urNp linux-2.6.38.3/mm/bootmem.c linux-2.6.38.3/mm/bootmem.c 52330diff -urNp linux-2.6.38.2/mm/bootmem.c linux-2.6.38.2/mm/bootmem.c
53856--- linux-2.6.38.3/mm/bootmem.c 2011-03-14 21:20:32.000000000 -0400 52331--- linux-2.6.38.2/mm/bootmem.c 2011-03-14 21:20:32.000000000 -0400
53857+++ linux-2.6.38.3/mm/bootmem.c 2011-04-17 15:57:33.000000000 -0400 52332+++ linux-2.6.38.2/mm/bootmem.c 2011-03-21 18:31:35.000000000 -0400
53858@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u 52333@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u
53859 unsigned long __init free_all_memory_core_early(int nodeid) 52334 unsigned long __init free_all_memory_core_early(int nodeid)
53860 { 52335 {
@@ -53888,9 +52363,9 @@ diff -urNp linux-2.6.38.3/mm/bootmem.c linux-2.6.38.3/mm/bootmem.c
53888 52363
53889 return count; 52364 return count;
53890 } 52365 }
53891diff -urNp linux-2.6.38.3/mm/filemap.c linux-2.6.38.3/mm/filemap.c 52366diff -urNp linux-2.6.38.2/mm/filemap.c linux-2.6.38.2/mm/filemap.c
53892--- linux-2.6.38.3/mm/filemap.c 2011-03-14 21:20:32.000000000 -0400 52367--- linux-2.6.38.2/mm/filemap.c 2011-03-14 21:20:32.000000000 -0400
53893+++ linux-2.6.38.3/mm/filemap.c 2011-04-17 15:57:33.000000000 -0400 52368+++ linux-2.6.38.2/mm/filemap.c 2011-03-21 18:31:35.000000000 -0400
53894@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file 52369@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file
53895 struct address_space *mapping = file->f_mapping; 52370 struct address_space *mapping = file->f_mapping;
53896 52371
@@ -53908,9 +52383,9 @@ diff -urNp linux-2.6.38.3/mm/filemap.c linux-2.6.38.3/mm/filemap.c
53908 if (*pos >= limit) { 52383 if (*pos >= limit) {
53909 send_sig(SIGXFSZ, current, 0); 52384 send_sig(SIGXFSZ, current, 0);
53910 return -EFBIG; 52385 return -EFBIG;
53911diff -urNp linux-2.6.38.3/mm/fremap.c linux-2.6.38.3/mm/fremap.c 52386diff -urNp linux-2.6.38.2/mm/fremap.c linux-2.6.38.2/mm/fremap.c
53912--- linux-2.6.38.3/mm/fremap.c 2011-03-14 21:20:32.000000000 -0400 52387--- linux-2.6.38.2/mm/fremap.c 2011-03-14 21:20:32.000000000 -0400
53913+++ linux-2.6.38.3/mm/fremap.c 2011-04-17 15:57:33.000000000 -0400 52388+++ linux-2.6.38.2/mm/fremap.c 2011-03-21 18:31:35.000000000 -0400
53914@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign 52389@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign
53915 retry: 52390 retry:
53916 vma = find_vma(mm, start); 52391 vma = find_vma(mm, start);
@@ -53932,9 +52407,9 @@ diff -urNp linux-2.6.38.3/mm/fremap.c linux-2.6.38.3/mm/fremap.c
53932 munlock_vma_pages_range(vma, start, start + size); 52407 munlock_vma_pages_range(vma, start, start + size);
53933 vma->vm_flags = saved_flags; 52408 vma->vm_flags = saved_flags;
53934 } 52409 }
53935diff -urNp linux-2.6.38.3/mm/highmem.c linux-2.6.38.3/mm/highmem.c 52410diff -urNp linux-2.6.38.2/mm/highmem.c linux-2.6.38.2/mm/highmem.c
53936--- linux-2.6.38.3/mm/highmem.c 2011-03-14 21:20:32.000000000 -0400 52411--- linux-2.6.38.2/mm/highmem.c 2011-03-14 21:20:32.000000000 -0400
53937+++ linux-2.6.38.3/mm/highmem.c 2011-04-17 15:57:33.000000000 -0400 52412+++ linux-2.6.38.2/mm/highmem.c 2011-03-21 18:31:35.000000000 -0400
53938@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void) 52413@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void)
53939 * So no dangers, even with speculative execution. 52414 * So no dangers, even with speculative execution.
53940 */ 52415 */
@@ -53960,9 +52435,9 @@ diff -urNp linux-2.6.38.3/mm/highmem.c linux-2.6.38.3/mm/highmem.c
53960 pkmap_count[last_pkmap_nr] = 1; 52435 pkmap_count[last_pkmap_nr] = 1;
53961 set_page_address(page, (void *)vaddr); 52436 set_page_address(page, (void *)vaddr);
53962 52437
53963diff -urNp linux-2.6.38.3/mm/hugetlb.c linux-2.6.38.3/mm/hugetlb.c 52438diff -urNp linux-2.6.38.2/mm/hugetlb.c linux-2.6.38.2/mm/hugetlb.c
53964--- linux-2.6.38.3/mm/hugetlb.c 2011-03-14 21:20:32.000000000 -0400 52439--- linux-2.6.38.2/mm/hugetlb.c 2011-03-14 21:20:32.000000000 -0400
53965+++ linux-2.6.38.3/mm/hugetlb.c 2011-04-17 15:57:33.000000000 -0400 52440+++ linux-2.6.38.2/mm/hugetlb.c 2011-03-21 18:31:35.000000000 -0400
53966@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s 52441@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s
53967 return 1; 52442 return 1;
53968 } 52443 }
@@ -54052,9 +52527,9 @@ diff -urNp linux-2.6.38.3/mm/hugetlb.c linux-2.6.38.3/mm/hugetlb.c
54052 ptep = huge_pte_alloc(mm, address, huge_page_size(h)); 52527 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
54053 if (!ptep) 52528 if (!ptep)
54054 return VM_FAULT_OOM; 52529 return VM_FAULT_OOM;
54055diff -urNp linux-2.6.38.3/mm/Kconfig linux-2.6.38.3/mm/Kconfig 52530diff -urNp linux-2.6.38.2/mm/Kconfig linux-2.6.38.2/mm/Kconfig
54056--- linux-2.6.38.3/mm/Kconfig 2011-03-14 21:20:32.000000000 -0400 52531--- linux-2.6.38.2/mm/Kconfig 2011-03-14 21:20:32.000000000 -0400
54057+++ linux-2.6.38.3/mm/Kconfig 2011-04-17 15:57:33.000000000 -0400 52532+++ linux-2.6.38.2/mm/Kconfig 2011-03-21 18:31:35.000000000 -0400
54058@@ -240,7 +240,7 @@ config KSM 52533@@ -240,7 +240,7 @@ config KSM
54059 config DEFAULT_MMAP_MIN_ADDR 52534 config DEFAULT_MMAP_MIN_ADDR
54060 int "Low address space to protect from user allocation" 52535 int "Low address space to protect from user allocation"
@@ -54064,9 +52539,9 @@ diff -urNp linux-2.6.38.3/mm/Kconfig linux-2.6.38.3/mm/Kconfig
54064 help 52539 help
54065 This is the portion of low virtual memory which should be protected 52540 This is the portion of low virtual memory which should be protected
54066 from userspace allocation. Keeping a user from writing to low pages 52541 from userspace allocation. Keeping a user from writing to low pages
54067diff -urNp linux-2.6.38.3/mm/kmemleak.c linux-2.6.38.3/mm/kmemleak.c 52542diff -urNp linux-2.6.38.2/mm/kmemleak.c linux-2.6.38.2/mm/kmemleak.c
54068--- linux-2.6.38.3/mm/kmemleak.c 2011-03-14 21:20:32.000000000 -0400 52543--- linux-2.6.38.2/mm/kmemleak.c 2011-03-14 21:20:32.000000000 -0400
54069+++ linux-2.6.38.3/mm/kmemleak.c 2011-04-17 15:57:33.000000000 -0400 52544+++ linux-2.6.38.2/mm/kmemleak.c 2011-03-21 18:31:35.000000000 -0400
54070@@ -357,7 +357,7 @@ static void print_unreferenced(struct se 52545@@ -357,7 +357,7 @@ static void print_unreferenced(struct se
54071 52546
54072 for (i = 0; i < object->trace_len; i++) { 52547 for (i = 0; i < object->trace_len; i++) {
@@ -54076,9 +52551,9 @@ diff -urNp linux-2.6.38.3/mm/kmemleak.c linux-2.6.38.3/mm/kmemleak.c
54076 } 52551 }
54077 } 52552 }
54078 52553
54079diff -urNp linux-2.6.38.3/mm/maccess.c linux-2.6.38.3/mm/maccess.c 52554diff -urNp linux-2.6.38.2/mm/maccess.c linux-2.6.38.2/mm/maccess.c
54080--- linux-2.6.38.3/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 52555--- linux-2.6.38.2/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
54081+++ linux-2.6.38.3/mm/maccess.c 2011-04-17 15:57:33.000000000 -0400 52556+++ linux-2.6.38.2/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400
54082@@ -15,10 +15,10 @@ 52557@@ -15,10 +15,10 @@
54083 * happens, handle that and return -EFAULT. 52558 * happens, handle that and return -EFAULT.
54084 */ 52559 */
@@ -54105,9 +52580,9 @@ diff -urNp linux-2.6.38.3/mm/maccess.c linux-2.6.38.3/mm/maccess.c
54105 { 52580 {
54106 long ret; 52581 long ret;
54107 mm_segment_t old_fs = get_fs(); 52582 mm_segment_t old_fs = get_fs();
54108diff -urNp linux-2.6.38.3/mm/madvise.c linux-2.6.38.3/mm/madvise.c 52583diff -urNp linux-2.6.38.2/mm/madvise.c linux-2.6.38.2/mm/madvise.c
54109--- linux-2.6.38.3/mm/madvise.c 2011-03-14 21:20:32.000000000 -0400 52584--- linux-2.6.38.2/mm/madvise.c 2011-03-14 21:20:32.000000000 -0400
54110+++ linux-2.6.38.3/mm/madvise.c 2011-04-17 15:57:33.000000000 -0400 52585+++ linux-2.6.38.2/mm/madvise.c 2011-03-21 18:31:35.000000000 -0400
54111@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a 52586@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a
54112 pgoff_t pgoff; 52587 pgoff_t pgoff;
54113 unsigned long new_flags = vma->vm_flags; 52588 unsigned long new_flags = vma->vm_flags;
@@ -54184,9 +52659,9 @@ diff -urNp linux-2.6.38.3/mm/madvise.c linux-2.6.38.3/mm/madvise.c
54184 error = 0; 52659 error = 0;
54185 if (end == start) 52660 if (end == start)
54186 goto out; 52661 goto out;
54187diff -urNp linux-2.6.38.3/mm/memory.c linux-2.6.38.3/mm/memory.c 52662diff -urNp linux-2.6.38.2/mm/memory.c linux-2.6.38.2/mm/memory.c
54188--- linux-2.6.38.3/mm/memory.c 2011-03-14 21:20:32.000000000 -0400 52663--- linux-2.6.38.2/mm/memory.c 2011-03-14 21:20:32.000000000 -0400
54189+++ linux-2.6.38.3/mm/memory.c 2011-04-17 15:57:33.000000000 -0400 52664+++ linux-2.6.38.2/mm/memory.c 2011-03-21 18:31:35.000000000 -0400
54190@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct 52665@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct
54191 return; 52666 return;
54192 52667
@@ -54716,9 +53191,9 @@ diff -urNp linux-2.6.38.3/mm/memory.c linux-2.6.38.3/mm/memory.c
54716 /* 53191 /*
54717 * Make sure the vDSO gets into every core dump. 53192 * Make sure the vDSO gets into every core dump.
54718 * Dumping its contents makes post-mortem fully interpretable later 53193 * Dumping its contents makes post-mortem fully interpretable later
54719diff -urNp linux-2.6.38.3/mm/memory-failure.c linux-2.6.38.3/mm/memory-failure.c 53194diff -urNp linux-2.6.38.2/mm/memory-failure.c linux-2.6.38.2/mm/memory-failure.c
54720--- linux-2.6.38.3/mm/memory-failure.c 2011-03-14 21:20:32.000000000 -0400 53195--- linux-2.6.38.2/mm/memory-failure.c 2011-03-14 21:20:32.000000000 -0400
54721+++ linux-2.6.38.3/mm/memory-failure.c 2011-04-17 15:57:33.000000000 -0400 53196+++ linux-2.6.38.2/mm/memory-failure.c 2011-03-21 18:31:35.000000000 -0400
54722@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r 53197@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r
54723 53198
54724 int sysctl_memory_failure_recovery __read_mostly = 1; 53199 int sysctl_memory_failure_recovery __read_mostly = 1;
@@ -54791,9 +53266,9 @@ diff -urNp linux-2.6.38.3/mm/memory-failure.c linux-2.6.38.3/mm/memory-failure.c
54791 SetPageHWPoison(page); 53266 SetPageHWPoison(page);
54792 /* keep elevated page count for bad page */ 53267 /* keep elevated page count for bad page */
54793 return ret; 53268 return ret;
54794diff -urNp linux-2.6.38.3/mm/mempolicy.c linux-2.6.38.3/mm/mempolicy.c 53269diff -urNp linux-2.6.38.2/mm/mempolicy.c linux-2.6.38.2/mm/mempolicy.c
54795--- linux-2.6.38.3/mm/mempolicy.c 2011-03-14 21:20:32.000000000 -0400 53270--- linux-2.6.38.2/mm/mempolicy.c 2011-03-14 21:20:32.000000000 -0400
54796+++ linux-2.6.38.3/mm/mempolicy.c 2011-04-17 15:57:33.000000000 -0400 53271+++ linux-2.6.38.2/mm/mempolicy.c 2011-03-21 18:31:35.000000000 -0400
54797@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct 53272@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct
54798 unsigned long vmstart; 53273 unsigned long vmstart;
54799 unsigned long vmend; 53274 unsigned long vmend;
@@ -54874,9 +53349,9 @@ diff -urNp linux-2.6.38.3/mm/mempolicy.c linux-2.6.38.3/mm/mempolicy.c
54874 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { 53349 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
54875 seq_printf(m, " heap"); 53350 seq_printf(m, " heap");
54876 } else if (vma->vm_start <= mm->start_stack && 53351 } else if (vma->vm_start <= mm->start_stack &&
54877diff -urNp linux-2.6.38.3/mm/migrate.c linux-2.6.38.3/mm/migrate.c 53352diff -urNp linux-2.6.38.2/mm/migrate.c linux-2.6.38.2/mm/migrate.c
54878--- linux-2.6.38.3/mm/migrate.c 2011-03-14 21:20:32.000000000 -0400 53353--- linux-2.6.38.2/mm/migrate.c 2011-03-14 21:20:32.000000000 -0400
54879+++ linux-2.6.38.3/mm/migrate.c 2011-04-17 15:57:33.000000000 -0400 53354+++ linux-2.6.38.2/mm/migrate.c 2011-03-21 18:31:35.000000000 -0400
54880@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, 53355@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid,
54881 if (!mm) 53356 if (!mm)
54882 return -EINVAL; 53357 return -EINVAL;
@@ -54902,9 +53377,9 @@ diff -urNp linux-2.6.38.3/mm/migrate.c linux-2.6.38.3/mm/migrate.c
54902 rcu_read_unlock(); 53377 rcu_read_unlock();
54903 err = -EPERM; 53378 err = -EPERM;
54904 goto out; 53379 goto out;
54905diff -urNp linux-2.6.38.3/mm/mlock.c linux-2.6.38.3/mm/mlock.c 53380diff -urNp linux-2.6.38.2/mm/mlock.c linux-2.6.38.2/mm/mlock.c
54906--- linux-2.6.38.3/mm/mlock.c 2011-03-14 21:20:32.000000000 -0400 53381--- linux-2.6.38.2/mm/mlock.c 2011-03-14 21:20:32.000000000 -0400
54907+++ linux-2.6.38.3/mm/mlock.c 2011-04-17 15:57:33.000000000 -0400 53382+++ linux-2.6.38.2/mm/mlock.c 2011-03-21 18:31:35.000000000 -0400
54908@@ -13,6 +13,7 @@ 53383@@ -13,6 +13,7 @@
54909 #include <linux/pagemap.h> 53384 #include <linux/pagemap.h>
54910 #include <linux/mempolicy.h> 53385 #include <linux/mempolicy.h>
@@ -55006,9 +53481,9 @@ diff -urNp linux-2.6.38.3/mm/mlock.c linux-2.6.38.3/mm/mlock.c
55006 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) || 53481 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
55007 capable(CAP_IPC_LOCK)) 53482 capable(CAP_IPC_LOCK))
55008 ret = do_mlockall(flags); 53483 ret = do_mlockall(flags);
55009diff -urNp linux-2.6.38.3/mm/mmap.c linux-2.6.38.3/mm/mmap.c 53484diff -urNp linux-2.6.38.2/mm/mmap.c linux-2.6.38.2/mm/mmap.c
55010--- linux-2.6.38.3/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 53485--- linux-2.6.38.2/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
55011+++ linux-2.6.38.3/mm/mmap.c 2011-04-17 15:57:33.000000000 -0400 53486+++ linux-2.6.38.2/mm/mmap.c 2011-03-21 23:47:41.000000000 -0400
55012@@ -46,6 +46,16 @@ 53487@@ -46,6 +46,16 @@
55013 #define arch_rebalance_pgtables(addr, len) (addr) 53488 #define arch_rebalance_pgtables(addr, len) (addr)
55014 #endif 53489 #endif
@@ -56269,9 +54744,9 @@ diff -urNp linux-2.6.38.3/mm/mmap.c linux-2.6.38.3/mm/mmap.c
56269 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND; 54744 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND;
56270 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 54745 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
56271 54746
56272diff -urNp linux-2.6.38.3/mm/mprotect.c linux-2.6.38.3/mm/mprotect.c 54747diff -urNp linux-2.6.38.2/mm/mprotect.c linux-2.6.38.2/mm/mprotect.c
56273--- linux-2.6.38.3/mm/mprotect.c 2011-03-14 21:20:32.000000000 -0400 54748--- linux-2.6.38.2/mm/mprotect.c 2011-03-14 21:20:32.000000000 -0400
56274+++ linux-2.6.38.3/mm/mprotect.c 2011-04-17 15:57:33.000000000 -0400 54749+++ linux-2.6.38.2/mm/mprotect.c 2011-03-21 18:31:35.000000000 -0400
56275@@ -23,10 +23,16 @@ 54750@@ -23,10 +23,16 @@
56276 #include <linux/mmu_notifier.h> 54751 #include <linux/mmu_notifier.h>
56277 #include <linux/migrate.h> 54752 #include <linux/migrate.h>
@@ -56498,9 +54973,9 @@ diff -urNp linux-2.6.38.3/mm/mprotect.c linux-2.6.38.3/mm/mprotect.c
56498 nstart = tmp; 54973 nstart = tmp;
56499 54974
56500 if (nstart < prev->vm_end) 54975 if (nstart < prev->vm_end)
56501diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c 54976diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
56502--- linux-2.6.38.3/mm/mremap.c 2011-04-18 17:27:18.000000000 -0400 54977--- linux-2.6.38.2/mm/mremap.c 2011-03-14 21:20:32.000000000 -0400
56503+++ linux-2.6.38.3/mm/mremap.c 2011-04-17 16:53:48.000000000 -0400 54978+++ linux-2.6.38.2/mm/mremap.c 2011-03-21 18:31:35.000000000 -0400
56504@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str 54979@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str
56505 continue; 54980 continue;
56506 pte = ptep_clear_flush(vma, old_addr, old_pte); 54981 pte = ptep_clear_flush(vma, old_addr, old_pte);
@@ -56526,7 +55001,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56526 /* We can't remap across vm area boundaries */ 55001 /* We can't remap across vm area boundaries */
56527 if (old_len > vma->vm_end - addr) 55002 if (old_len > vma->vm_end - addr)
56528 goto Efault; 55003 goto Efault;
56529@@ -329,20 +340,25 @@ static unsigned long mremap_to(unsigned 55004@@ -322,20 +333,25 @@ static unsigned long mremap_to(unsigned
56530 unsigned long ret = -EINVAL; 55005 unsigned long ret = -EINVAL;
56531 unsigned long charged = 0; 55006 unsigned long charged = 0;
56532 unsigned long map_flags; 55007 unsigned long map_flags;
@@ -56557,7 +55032,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56557 goto out; 55032 goto out;
56558 55033
56559 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 55034 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
56560@@ -414,6 +430,7 @@ unsigned long do_mremap(unsigned long ad 55035@@ -407,6 +423,7 @@ unsigned long do_mremap(unsigned long ad
56561 struct vm_area_struct *vma; 55036 struct vm_area_struct *vma;
56562 unsigned long ret = -EINVAL; 55037 unsigned long ret = -EINVAL;
56563 unsigned long charged = 0; 55038 unsigned long charged = 0;
@@ -56565,7 +55040,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56565 55040
56566 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) 55041 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
56567 goto out; 55042 goto out;
56568@@ -432,6 +449,17 @@ unsigned long do_mremap(unsigned long ad 55043@@ -425,6 +442,17 @@ unsigned long do_mremap(unsigned long ad
56569 if (!new_len) 55044 if (!new_len)
56570 goto out; 55045 goto out;
56571 55046
@@ -56583,7 +55058,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56583 if (flags & MREMAP_FIXED) { 55058 if (flags & MREMAP_FIXED) {
56584 if (flags & MREMAP_MAYMOVE) 55059 if (flags & MREMAP_MAYMOVE)
56585 ret = mremap_to(addr, old_len, new_addr, new_len); 55060 ret = mremap_to(addr, old_len, new_addr, new_len);
56586@@ -481,6 +509,7 @@ unsigned long do_mremap(unsigned long ad 55061@@ -474,6 +502,7 @@ unsigned long do_mremap(unsigned long ad
56587 addr + new_len); 55062 addr + new_len);
56588 } 55063 }
56589 ret = addr; 55064 ret = addr;
@@ -56591,7 +55066,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56591 goto out; 55066 goto out;
56592 } 55067 }
56593 } 55068 }
56594@@ -507,7 +536,13 @@ unsigned long do_mremap(unsigned long ad 55069@@ -500,7 +529,13 @@ unsigned long do_mremap(unsigned long ad
56595 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 55070 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
56596 if (ret) 55071 if (ret)
56597 goto out; 55072 goto out;
@@ -56605,9 +55080,9 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56605 } 55080 }
56606 out: 55081 out:
56607 if (ret & ~PAGE_MASK) 55082 if (ret & ~PAGE_MASK)
56608diff -urNp linux-2.6.38.3/mm/nommu.c linux-2.6.38.3/mm/nommu.c 55083diff -urNp linux-2.6.38.2/mm/nommu.c linux-2.6.38.2/mm/nommu.c
56609--- linux-2.6.38.3/mm/nommu.c 2011-03-14 21:20:32.000000000 -0400 55084--- linux-2.6.38.2/mm/nommu.c 2011-03-14 21:20:32.000000000 -0400
56610+++ linux-2.6.38.3/mm/nommu.c 2011-04-17 15:57:33.000000000 -0400 55085+++ linux-2.6.38.2/mm/nommu.c 2011-03-21 18:31:35.000000000 -0400
56611@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI 55086@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI
56612 int sysctl_overcommit_ratio = 50; /* default is 50% */ 55087 int sysctl_overcommit_ratio = 50; /* default is 50% */
56613 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT; 55088 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
@@ -56640,9 +55115,9 @@ diff -urNp linux-2.6.38.3/mm/nommu.c linux-2.6.38.3/mm/nommu.c
56640 *region = *vma->vm_region; 55115 *region = *vma->vm_region;
56641 new->vm_region = region; 55116 new->vm_region = region;
56642 55117
56643diff -urNp linux-2.6.38.3/mm/page_alloc.c linux-2.6.38.3/mm/page_alloc.c 55118diff -urNp linux-2.6.38.2/mm/page_alloc.c linux-2.6.38.2/mm/page_alloc.c
56644--- linux-2.6.38.3/mm/page_alloc.c 2011-04-18 17:27:16.000000000 -0400 55119--- linux-2.6.38.2/mm/page_alloc.c 2011-03-28 17:42:40.000000000 -0400
56645+++ linux-2.6.38.3/mm/page_alloc.c 2011-04-17 15:57:33.000000000 -0400 55120+++ linux-2.6.38.2/mm/page_alloc.c 2011-03-28 17:42:53.000000000 -0400
56646@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa 55121@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa
56647 int i; 55122 int i;
56648 int bad = 0; 55123 int bad = 0;
@@ -56678,9 +55153,9 @@ diff -urNp linux-2.6.38.3/mm/page_alloc.c linux-2.6.38.3/mm/page_alloc.c
56678 55153
56679 if (order && (gfp_flags & __GFP_COMP)) 55154 if (order && (gfp_flags & __GFP_COMP))
56680 prep_compound_page(page, order); 55155 prep_compound_page(page, order);
56681diff -urNp linux-2.6.38.3/mm/percpu.c linux-2.6.38.3/mm/percpu.c 55156diff -urNp linux-2.6.38.2/mm/percpu.c linux-2.6.38.2/mm/percpu.c
56682--- linux-2.6.38.3/mm/percpu.c 2011-03-14 21:20:32.000000000 -0400 55157--- linux-2.6.38.2/mm/percpu.c 2011-03-14 21:20:32.000000000 -0400
56683+++ linux-2.6.38.3/mm/percpu.c 2011-04-17 15:57:33.000000000 -0400 55158+++ linux-2.6.38.2/mm/percpu.c 2011-03-21 18:31:35.000000000 -0400
56684@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu 55159@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu
56685 static unsigned int pcpu_last_unit_cpu __read_mostly; 55160 static unsigned int pcpu_last_unit_cpu __read_mostly;
56686 55161
@@ -56690,9 +55165,9 @@ diff -urNp linux-2.6.38.3/mm/percpu.c linux-2.6.38.3/mm/percpu.c
56690 EXPORT_SYMBOL_GPL(pcpu_base_addr); 55165 EXPORT_SYMBOL_GPL(pcpu_base_addr);
56691 55166
56692 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */ 55167 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
56693diff -urNp linux-2.6.38.3/mm/rmap.c linux-2.6.38.3/mm/rmap.c 55168diff -urNp linux-2.6.38.2/mm/rmap.c linux-2.6.38.2/mm/rmap.c
56694--- linux-2.6.38.3/mm/rmap.c 2011-03-14 21:20:32.000000000 -0400 55169--- linux-2.6.38.2/mm/rmap.c 2011-03-14 21:20:32.000000000 -0400
56695+++ linux-2.6.38.3/mm/rmap.c 2011-04-17 15:57:33.000000000 -0400 55170+++ linux-2.6.38.2/mm/rmap.c 2011-03-21 18:31:35.000000000 -0400
56696@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru 55171@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru
56697 struct anon_vma *anon_vma = vma->anon_vma; 55172 struct anon_vma *anon_vma = vma->anon_vma;
56698 struct anon_vma_chain *avc; 55173 struct anon_vma_chain *avc;
@@ -56782,9 +55257,9 @@ diff -urNp linux-2.6.38.3/mm/rmap.c linux-2.6.38.3/mm/rmap.c
56782 { 55257 {
56783 struct anon_vma_chain *avc; 55258 struct anon_vma_chain *avc;
56784 struct anon_vma *anon_vma; 55259 struct anon_vma *anon_vma;
56785diff -urNp linux-2.6.38.3/mm/shmem.c linux-2.6.38.3/mm/shmem.c 55260diff -urNp linux-2.6.38.2/mm/shmem.c linux-2.6.38.2/mm/shmem.c
56786--- linux-2.6.38.3/mm/shmem.c 2011-04-18 17:27:16.000000000 -0400 55261--- linux-2.6.38.2/mm/shmem.c 2011-03-28 17:42:40.000000000 -0400
56787+++ linux-2.6.38.3/mm/shmem.c 2011-04-18 22:03:12.000000000 -0400 55262+++ linux-2.6.38.2/mm/shmem.c 2011-03-28 17:42:53.000000000 -0400
56788@@ -31,7 +31,7 @@ 55263@@ -31,7 +31,7 @@
56789 #include <linux/percpu_counter.h> 55264 #include <linux/percpu_counter.h>
56790 #include <linux/swap.h> 55265 #include <linux/swap.h>
@@ -56803,36 +55278,9 @@ diff -urNp linux-2.6.38.3/mm/shmem.c linux-2.6.38.3/mm/shmem.c
56803 if (entry->val) { 55278 if (entry->val) {
56804 /* 55279 /*
56805 * The more uptodate page coming down from a stacked 55280 * The more uptodate page coming down from a stacked
56806@@ -1995,7 +1997,7 @@ static int shmem_symlink(struct inode *d 55281diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
56807 55282--- linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:40.000000000 -0400
56808 info = SHMEM_I(inode); 55283+++ linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:53.000000000 -0400
56809 inode->i_size = len-1;
56810- if (len <= (char *)inode - (char *)info) {
56811+ if (len <= min((char *)inode - (char *)info, 64)) {
56812 /* do it inline */
56813 memcpy(info, symname, len);
56814 inode->i_op = &shmem_symlink_inline_operations;
56815diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56816--- linux-2.6.38.3/mm/slab.c 2011-04-18 17:27:16.000000000 -0400
56817+++ linux-2.6.38.3/mm/slab.c 2011-04-18 22:03:34.000000000 -0400
56818@@ -150,7 +150,7 @@
56819
56820 /* Legal flag mask for kmem_cache_create(). */
56821 #if DEBUG
56822-# define CREATE_MASK (SLAB_RED_ZONE | \
56823+# define CREATE_MASK (SLAB_USERCOPY | SLAB_RED_ZONE | \
56824 SLAB_POISON | SLAB_HWCACHE_ALIGN | \
56825 SLAB_CACHE_DMA | \
56826 SLAB_STORE_USER | \
56827@@ -158,7 +158,7 @@
56828 SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \
56829 SLAB_DEBUG_OBJECTS | SLAB_NOLEAKTRACE | SLAB_NOTRACK)
56830 #else
56831-# define CREATE_MASK (SLAB_HWCACHE_ALIGN | \
56832+# define CREATE_MASK (SLAB_USERCOPY | SLAB_HWCACHE_ALIGN | \
56833 SLAB_CACHE_DMA | \
56834 SLAB_RECLAIM_ACCOUNT | SLAB_PANIC | \
56835 SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \
56836@@ -284,7 +284,7 @@ struct kmem_list3 { 55284@@ -284,7 +284,7 @@ struct kmem_list3 {
56837 * Need this for bootstrapping a per node allocator. 55285 * Need this for bootstrapping a per node allocator.
56838 */ 55286 */
@@ -56869,33 +55317,6 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56869 55317
56870 /* internal cache of cache description objs */ 55318 /* internal cache of cache description objs */
56871 static struct kmem_cache cache_cache = { 55319 static struct kmem_cache cache_cache = {
56872@@ -1526,7 +1526,7 @@ void __init kmem_cache_init(void)
56873 sizes[INDEX_AC].cs_cachep = kmem_cache_create(names[INDEX_AC].name,
56874 sizes[INDEX_AC].cs_size,
56875 ARCH_KMALLOC_MINALIGN,
56876- ARCH_KMALLOC_FLAGS|SLAB_PANIC,
56877+ ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
56878 NULL);
56879
56880 if (INDEX_AC != INDEX_L3) {
56881@@ -1534,7 +1534,7 @@ void __init kmem_cache_init(void)
56882 kmem_cache_create(names[INDEX_L3].name,
56883 sizes[INDEX_L3].cs_size,
56884 ARCH_KMALLOC_MINALIGN,
56885- ARCH_KMALLOC_FLAGS|SLAB_PANIC,
56886+ ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
56887 NULL);
56888 }
56889
56890@@ -1552,7 +1552,7 @@ void __init kmem_cache_init(void)
56891 sizes->cs_cachep = kmem_cache_create(names->name,
56892 sizes->cs_size,
56893 ARCH_KMALLOC_MINALIGN,
56894- ARCH_KMALLOC_FLAGS|SLAB_PANIC,
56895+ ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
56896 NULL);
56897 }
56898 #ifdef CONFIG_ZONE_DMA
56899@@ -4535,15 +4535,66 @@ static const struct file_operations proc 55320@@ -4535,15 +4535,66 @@ static const struct file_operations proc
56900 55321
56901 static int __init slab_proc_init(void) 55322 static int __init slab_proc_init(void)
@@ -56921,9 +55342,9 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56921+{ 55342+{
56922+ 55343+
56923+#ifdef CONFIG_PAX_USERCOPY 55344+#ifdef CONFIG_PAX_USERCOPY
56924+ struct page *page; 55345+ struct kmem_cache *cachep;
56925+ struct kmem_cache *cachep = NULL;
56926+ struct slab *slabp; 55346+ struct slab *slabp;
55347+ struct page *page;
56927+ unsigned int objnr; 55348+ unsigned int objnr;
56928+ unsigned long offset; 55349+ unsigned long offset;
56929+ 55350+
@@ -56945,9 +55366,6 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56945+ } 55366+ }
56946+ 55367+
56947+ cachep = page_get_cache(page); 55368+ cachep = page_get_cache(page);
56948+ if (!(cachep->flags & SLAB_USERCOPY))
56949+ goto report;
56950+
56951+ slabp = page_get_slab(page); 55369+ slabp = page_get_slab(page);
56952+ objnr = obj_to_index(cachep, slabp, ptr); 55370+ objnr = obj_to_index(cachep, slabp, ptr);
56953+ BUG_ON(objnr >= cachep->num); 55371+ BUG_ON(objnr >= cachep->num);
@@ -56956,7 +55374,10 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56956+ return; 55374+ return;
56957+ 55375+
56958+report: 55376+report:
56959+ pax_report_usercopy(ptr, n, to, cachep ? cachep->name : NULL); 55377+ if (to)
55378+ pax_report_leak_to_user(ptr, n);
55379+ else
55380+ pax_report_overflow_from_user(ptr, n);
56960+#endif 55381+#endif
56961+ 55382+
56962+} 55383+}
@@ -56965,9 +55386,9 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56965 /** 55386 /**
56966 * ksize - get the actual amount of memory allocated for a given object 55387 * ksize - get the actual amount of memory allocated for a given object
56967 * @objp: Pointer to the object 55388 * @objp: Pointer to the object
56968diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c 55389diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
56969--- linux-2.6.38.3/mm/slob.c 2011-03-14 21:20:32.000000000 -0400 55390--- linux-2.6.38.2/mm/slob.c 2011-03-14 21:20:32.000000000 -0400
56970+++ linux-2.6.38.3/mm/slob.c 2011-04-17 15:57:33.000000000 -0400 55391+++ linux-2.6.38.2/mm/slob.c 2011-03-21 18:31:35.000000000 -0400
56971@@ -29,7 +29,7 @@ 55392@@ -29,7 +29,7 @@
56972 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls 55393 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls
56973 * alloc_pages() directly, allocating compound pages so the page order 55394 * alloc_pages() directly, allocating compound pages so the page order
@@ -57113,7 +55534,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57113 EXPORT_SYMBOL(__kmalloc_node); 55534 EXPORT_SYMBOL(__kmalloc_node);
57114 55535
57115 void kfree(const void *block) 55536 void kfree(const void *block)
57116@@ -531,13 +543,81 @@ void kfree(const void *block) 55537@@ -531,13 +543,84 @@ void kfree(const void *block)
57117 sp = slob_page(block); 55538 sp = slob_page(block);
57118 if (is_slob_page(sp)) { 55539 if (is_slob_page(sp)) {
57119 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 55540 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -57189,7 +55610,10 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57189+ } 55610+ }
57190+ 55611+
57191+report: 55612+report:
57192+ pax_report_usercopy(ptr, n, to, NULL); 55613+ if (to)
55614+ pax_report_leak_to_user(ptr, n);
55615+ else
55616+ pax_report_overflow_from_user(ptr, n);
57193+#endif 55617+#endif
57194+ 55618+
57195+} 55619+}
@@ -57198,7 +55622,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57198 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ 55622 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
57199 size_t ksize(const void *block) 55623 size_t ksize(const void *block)
57200 { 55624 {
57201@@ -550,10 +630,10 @@ size_t ksize(const void *block) 55625@@ -550,10 +633,10 @@ size_t ksize(const void *block)
57202 sp = slob_page(block); 55626 sp = slob_page(block);
57203 if (is_slob_page(sp)) { 55627 if (is_slob_page(sp)) {
57204 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 55628 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -57212,7 +55636,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57212 } 55636 }
57213 EXPORT_SYMBOL(ksize); 55637 EXPORT_SYMBOL(ksize);
57214 55638
57215@@ -608,17 +688,25 @@ void *kmem_cache_alloc_node(struct kmem_ 55639@@ -608,17 +691,25 @@ void *kmem_cache_alloc_node(struct kmem_
57216 { 55640 {
57217 void *b; 55641 void *b;
57218 55642
@@ -57238,7 +55662,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57238 55662
57239 if (c->ctor) 55663 if (c->ctor)
57240 c->ctor(b); 55664 c->ctor(b);
57241@@ -630,10 +718,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); 55665@@ -630,10 +721,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
57242 55666
57243 static void __kmem_cache_free(void *b, int size) 55667 static void __kmem_cache_free(void *b, int size)
57244 { 55668 {
@@ -57257,7 +55681,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57257 } 55681 }
57258 55682
57259 static void kmem_rcu_free(struct rcu_head *head) 55683 static void kmem_rcu_free(struct rcu_head *head)
57260@@ -646,14 +740,23 @@ static void kmem_rcu_free(struct rcu_hea 55684@@ -646,14 +743,23 @@ static void kmem_rcu_free(struct rcu_hea
57261 55685
57262 void kmem_cache_free(struct kmem_cache *c, void *b) 55686 void kmem_cache_free(struct kmem_cache *c, void *b)
57263 { 55687 {
@@ -57284,9 +55708,9 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57284 } 55708 }
57285 55709
57286 trace_kmem_cache_free(_RET_IP_, b); 55710 trace_kmem_cache_free(_RET_IP_, b);
57287diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c 55711diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
57288--- linux-2.6.38.3/mm/slub.c 2011-03-14 21:20:32.000000000 -0400 55712--- linux-2.6.38.2/mm/slub.c 2011-03-14 21:20:32.000000000 -0400
57289+++ linux-2.6.38.3/mm/slub.c 2011-04-17 15:57:33.000000000 -0400 55713+++ linux-2.6.38.2/mm/slub.c 2011-03-21 18:31:35.000000000 -0400
57290@@ -390,7 +390,7 @@ static void print_track(const char *s, s 55714@@ -390,7 +390,7 @@ static void print_track(const char *s, s
57291 if (!t->addr) 55715 if (!t->addr)
57292 return; 55716 return;
@@ -57342,7 +55766,7 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57342+ 55766+
57343+#ifdef CONFIG_PAX_USERCOPY 55767+#ifdef CONFIG_PAX_USERCOPY
57344+ struct page *page; 55768+ struct page *page;
57345+ struct kmem_cache *s = NULL; 55769+ struct kmem_cache *s;
57346+ unsigned long offset; 55770+ unsigned long offset;
57347+ 55771+
57348+ if (!n) 55772+ if (!n)
@@ -57363,15 +55787,15 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57363+ } 55787+ }
57364+ 55788+
57365+ s = page->slab; 55789+ s = page->slab;
57366+ if (!(s->flags & SLAB_USERCOPY))
57367+ goto report;
57368+
57369+ offset = (ptr - page_address(page)) % s->size; 55790+ offset = (ptr - page_address(page)) % s->size;
57370+ if (offset <= s->objsize && n <= s->objsize - offset) 55791+ if (offset <= s->objsize && n <= s->objsize - offset)
57371+ return; 55792+ return;
57372+ 55793+
57373+report: 55794+report:
57374+ pax_report_usercopy(ptr, n, to, s ? s->name : NULL); 55795+ if (to)
55796+ pax_report_leak_to_user(ptr, n);
55797+ else
55798+ pax_report_overflow_from_user(ptr, n);
57375+#endif 55799+#endif
57376+ 55800+
57377+} 55801+}
@@ -57389,27 +55813,6 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57389 55813
57390 for_each_node_state(node, N_NORMAL_MEMORY) { 55814 for_each_node_state(node, N_NORMAL_MEMORY) {
57391 struct kmem_cache_node *n = get_node(s, node); 55815 struct kmem_cache_node *n = get_node(s, node);
57392@@ -3075,17 +3116,17 @@ void __init kmem_cache_init(void)
57393
57394 /* Caches that are not of the two-to-the-power-of size */
57395 if (KMALLOC_MIN_SIZE <= 32) {
57396- kmalloc_caches[1] = create_kmalloc_cache("kmalloc-96", 96, 0);
57397+ kmalloc_caches[1] = create_kmalloc_cache("kmalloc-96", 96, SLAB_USERCOPY);
57398 caches++;
57399 }
57400
57401 if (KMALLOC_MIN_SIZE <= 64) {
57402- kmalloc_caches[2] = create_kmalloc_cache("kmalloc-192", 192, 0);
57403+ kmalloc_caches[2] = create_kmalloc_cache("kmalloc-192", 192, SLAB_USERCOPY);
57404 caches++;
57405 }
57406
57407 for (i = KMALLOC_SHIFT_LOW; i < SLUB_PAGE_SHIFT; i++) {
57408- kmalloc_caches[i] = create_kmalloc_cache("kmalloc", 1 << i, 0);
57409+ kmalloc_caches[i] = create_kmalloc_cache("kmalloc", 1 << i, SLAB_USERCOPY);
57410 caches++;
57411 }
57412
57413@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_ 55816@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_
57414 /* 55817 /*
57415 * We may have set a slab to be unmergeable during bootstrap. 55818 * We may have set a slab to be unmergeable during bootstrap.
@@ -57461,9 +55864,9 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57461 return 0; 55864 return 0;
57462 } 55865 }
57463 module_init(slab_proc_init); 55866 module_init(slab_proc_init);
57464diff -urNp linux-2.6.38.3/mm/util.c linux-2.6.38.3/mm/util.c 55867diff -urNp linux-2.6.38.2/mm/util.c linux-2.6.38.2/mm/util.c
57465--- linux-2.6.38.3/mm/util.c 2011-03-14 21:20:32.000000000 -0400 55868--- linux-2.6.38.2/mm/util.c 2011-03-14 21:20:32.000000000 -0400
57466+++ linux-2.6.38.3/mm/util.c 2011-04-17 15:57:33.000000000 -0400 55869+++ linux-2.6.38.2/mm/util.c 2011-03-21 18:31:35.000000000 -0400
57467@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user); 55870@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user);
57468 void arch_pick_mmap_layout(struct mm_struct *mm) 55871 void arch_pick_mmap_layout(struct mm_struct *mm)
57469 { 55872 {
@@ -57477,9 +55880,9 @@ diff -urNp linux-2.6.38.3/mm/util.c linux-2.6.38.3/mm/util.c
57477 mm->get_unmapped_area = arch_get_unmapped_area; 55880 mm->get_unmapped_area = arch_get_unmapped_area;
57478 mm->unmap_area = arch_unmap_area; 55881 mm->unmap_area = arch_unmap_area;
57479 } 55882 }
57480diff -urNp linux-2.6.38.3/mm/vmalloc.c linux-2.6.38.3/mm/vmalloc.c 55883diff -urNp linux-2.6.38.2/mm/vmalloc.c linux-2.6.38.2/mm/vmalloc.c
57481--- linux-2.6.38.3/mm/vmalloc.c 2011-03-14 21:20:32.000000000 -0400 55884--- linux-2.6.38.2/mm/vmalloc.c 2011-03-14 21:20:32.000000000 -0400
57482+++ linux-2.6.38.3/mm/vmalloc.c 2011-04-17 15:57:33.000000000 -0400 55885+++ linux-2.6.38.2/mm/vmalloc.c 2011-03-21 18:31:35.000000000 -0400
57483@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd, 55886@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd,
57484 55887
57485 pte = pte_offset_kernel(pmd, addr); 55888 pte = pte_offset_kernel(pmd, addr);
@@ -57712,9 +56115,9 @@ diff -urNp linux-2.6.38.3/mm/vmalloc.c linux-2.6.38.3/mm/vmalloc.c
57712 if ((PAGE_SIZE-1) & (unsigned long)addr) 56115 if ((PAGE_SIZE-1) & (unsigned long)addr)
57713 return -EINVAL; 56116 return -EINVAL;
57714 56117
57715diff -urNp linux-2.6.38.3/mm/vmstat.c linux-2.6.38.3/mm/vmstat.c 56118diff -urNp linux-2.6.38.2/mm/vmstat.c linux-2.6.38.2/mm/vmstat.c
57716--- linux-2.6.38.3/mm/vmstat.c 2011-03-14 21:20:32.000000000 -0400 56119--- linux-2.6.38.2/mm/vmstat.c 2011-03-14 21:20:32.000000000 -0400
57717+++ linux-2.6.38.3/mm/vmstat.c 2011-04-17 15:57:33.000000000 -0400 56120+++ linux-2.6.38.2/mm/vmstat.c 2011-03-21 18:31:35.000000000 -0400
57718@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu) 56121@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu)
57719 * 56122 *
57720 * vm_stat contains the global counters 56123 * vm_stat contains the global counters
@@ -57767,9 +56170,9 @@ diff -urNp linux-2.6.38.3/mm/vmstat.c linux-2.6.38.3/mm/vmstat.c
57767 #endif 56170 #endif
57768 return 0; 56171 return 0;
57769 } 56172 }
57770diff -urNp linux-2.6.38.3/net/8021q/vlan.c linux-2.6.38.3/net/8021q/vlan.c 56173diff -urNp linux-2.6.38.2/net/8021q/vlan.c linux-2.6.38.2/net/8021q/vlan.c
57771--- linux-2.6.38.3/net/8021q/vlan.c 2011-03-14 21:20:32.000000000 -0400 56174--- linux-2.6.38.2/net/8021q/vlan.c 2011-03-14 21:20:32.000000000 -0400
57772+++ linux-2.6.38.3/net/8021q/vlan.c 2011-04-17 15:57:33.000000000 -0400 56175+++ linux-2.6.38.2/net/8021q/vlan.c 2011-03-21 18:31:35.000000000 -0400
57773@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net 56176@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net
57774 err = -EPERM; 56177 err = -EPERM;
57775 if (!capable(CAP_NET_ADMIN)) 56178 if (!capable(CAP_NET_ADMIN))
@@ -57780,9 +56183,9 @@ diff -urNp linux-2.6.38.3/net/8021q/vlan.c linux-2.6.38.3/net/8021q/vlan.c
57780 struct vlan_net *vn; 56183 struct vlan_net *vn;
57781 56184
57782 vn = net_generic(net, vlan_net_id); 56185 vn = net_generic(net, vlan_net_id);
57783diff -urNp linux-2.6.38.3/net/atm/atm_misc.c linux-2.6.38.3/net/atm/atm_misc.c 56186diff -urNp linux-2.6.38.2/net/atm/atm_misc.c linux-2.6.38.2/net/atm/atm_misc.c
57784--- linux-2.6.38.3/net/atm/atm_misc.c 2011-03-14 21:20:32.000000000 -0400 56187--- linux-2.6.38.2/net/atm/atm_misc.c 2011-03-14 21:20:32.000000000 -0400
57785+++ linux-2.6.38.3/net/atm/atm_misc.c 2011-04-17 15:57:33.000000000 -0400 56188+++ linux-2.6.38.2/net/atm/atm_misc.c 2011-03-21 18:31:35.000000000 -0400
57786@@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int 56189@@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int
57787 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf) 56190 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
57788 return 1; 56191 return 1;
@@ -57819,9 +56222,9 @@ diff -urNp linux-2.6.38.3/net/atm/atm_misc.c linux-2.6.38.3/net/atm/atm_misc.c
57819 __SONET_ITEMS 56222 __SONET_ITEMS
57820 #undef __HANDLE_ITEM 56223 #undef __HANDLE_ITEM
57821 } 56224 }
57822diff -urNp linux-2.6.38.3/net/atm/proc.c linux-2.6.38.3/net/atm/proc.c 56225diff -urNp linux-2.6.38.2/net/atm/proc.c linux-2.6.38.2/net/atm/proc.c
57823--- linux-2.6.38.3/net/atm/proc.c 2011-03-14 21:20:32.000000000 -0400 56226--- linux-2.6.38.2/net/atm/proc.c 2011-03-14 21:20:32.000000000 -0400
57824+++ linux-2.6.38.3/net/atm/proc.c 2011-04-17 15:57:33.000000000 -0400 56227+++ linux-2.6.38.2/net/atm/proc.c 2011-03-21 18:31:35.000000000 -0400
57825@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s 56228@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s
57826 const struct k_atm_aal_stats *stats) 56229 const struct k_atm_aal_stats *stats)
57827 { 56230 {
@@ -57860,9 +56263,9 @@ diff -urNp linux-2.6.38.3/net/atm/proc.c linux-2.6.38.3/net/atm/proc.c
57860 else 56263 else
57861 seq_printf(seq, "%3d %3d %5d ", 56264 seq_printf(seq, "%3d %3d %5d ",
57862 vcc->dev->number, vcc->vpi, vcc->vci); 56265 vcc->dev->number, vcc->vpi, vcc->vci);
57863diff -urNp linux-2.6.38.3/net/atm/resources.c linux-2.6.38.3/net/atm/resources.c 56266diff -urNp linux-2.6.38.2/net/atm/resources.c linux-2.6.38.2/net/atm/resources.c
57864--- linux-2.6.38.3/net/atm/resources.c 2011-03-14 21:20:32.000000000 -0400 56267--- linux-2.6.38.2/net/atm/resources.c 2011-03-14 21:20:32.000000000 -0400
57865+++ linux-2.6.38.3/net/atm/resources.c 2011-04-17 15:57:33.000000000 -0400 56268+++ linux-2.6.38.2/net/atm/resources.c 2011-03-21 18:31:35.000000000 -0400
57866@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister); 56269@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
57867 static void copy_aal_stats(struct k_atm_aal_stats *from, 56270 static void copy_aal_stats(struct k_atm_aal_stats *from,
57868 struct atm_aal_stats *to) 56271 struct atm_aal_stats *to)
@@ -57881,9 +56284,31 @@ diff -urNp linux-2.6.38.3/net/atm/resources.c linux-2.6.38.3/net/atm/resources.c
57881 __AAL_STAT_ITEMS 56284 __AAL_STAT_ITEMS
57882 #undef __HANDLE_ITEM 56285 #undef __HANDLE_ITEM
57883 } 56286 }
57884diff -urNp linux-2.6.38.3/net/bridge/br_multicast.c linux-2.6.38.3/net/bridge/br_multicast.c 56287diff -urNp linux-2.6.38.2/net/bluetooth/bnep/sock.c linux-2.6.38.2/net/bluetooth/bnep/sock.c
57885--- linux-2.6.38.3/net/bridge/br_multicast.c 2011-03-14 21:20:32.000000000 -0400 56288--- linux-2.6.38.2/net/bluetooth/bnep/sock.c 2011-03-14 21:20:32.000000000 -0400
57886+++ linux-2.6.38.3/net/bridge/br_multicast.c 2011-04-17 15:57:33.000000000 -0400 56289+++ linux-2.6.38.2/net/bluetooth/bnep/sock.c 2011-03-21 18:31:35.000000000 -0400
56290@@ -88,6 +88,7 @@ static int bnep_sock_ioctl(struct socket
56291 sockfd_put(nsock);
56292 return -EBADFD;
56293 }
56294+ ca.device[sizeof(ca.device)-1] = 0;
56295
56296 err = bnep_add_connection(&ca, nsock);
56297 if (!err) {
56298diff -urNp linux-2.6.38.2/net/bluetooth/sco.c linux-2.6.38.2/net/bluetooth/sco.c
56299--- linux-2.6.38.2/net/bluetooth/sco.c 2011-03-14 21:20:32.000000000 -0400
56300+++ linux-2.6.38.2/net/bluetooth/sco.c 2011-03-21 18:31:35.000000000 -0400
56301@@ -703,6 +703,7 @@ static int sco_sock_getsockopt_old(struc
56302 break;
56303 }
56304
56305+ memset(&cinfo, 0, sizeof(cinfo));
56306 cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle;
56307 memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
56308
56309diff -urNp linux-2.6.38.2/net/bridge/br_multicast.c linux-2.6.38.2/net/bridge/br_multicast.c
56310--- linux-2.6.38.2/net/bridge/br_multicast.c 2011-03-14 21:20:32.000000000 -0400
56311+++ linux-2.6.38.2/net/bridge/br_multicast.c 2011-03-21 18:31:35.000000000 -0400
57887@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct 56312@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct
57888 nexthdr = ip6h->nexthdr; 56313 nexthdr = ip6h->nexthdr;
57889 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr); 56314 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr);
@@ -57893,10 +56318,19 @@ diff -urNp linux-2.6.38.3/net/bridge/br_multicast.c linux-2.6.38.3/net/bridge/br
57893 return 0; 56318 return 0;
57894 56319
57895 /* Okay, we found ICMPv6 header */ 56320 /* Okay, we found ICMPv6 header */
57896diff -urNp linux-2.6.38.3/net/bridge/netfilter/ebtables.c linux-2.6.38.3/net/bridge/netfilter/ebtables.c 56321diff -urNp linux-2.6.38.2/net/bridge/netfilter/ebtables.c linux-2.6.38.2/net/bridge/netfilter/ebtables.c
57897--- linux-2.6.38.3/net/bridge/netfilter/ebtables.c 2011-04-18 17:27:18.000000000 -0400 56322--- linux-2.6.38.2/net/bridge/netfilter/ebtables.c 2011-03-14 21:20:32.000000000 -0400
57898+++ linux-2.6.38.3/net/bridge/netfilter/ebtables.c 2011-04-17 17:00:29.000000000 -0400 56323+++ linux-2.6.38.2/net/bridge/netfilter/ebtables.c 2011-03-21 18:31:35.000000000 -0400
57899@@ -1512,7 +1512,7 @@ static int do_ebt_get_ctl(struct sock *s 56324@@ -1107,6 +1107,8 @@ static int do_replace(struct net *net, c
56325 if (tmp.num_counters >= INT_MAX / sizeof(struct ebt_counter))
56326 return -ENOMEM;
56327
56328+ tmp.name[sizeof(tmp.name)-1] = 0;
56329+
56330 countersize = COUNTER_OFFSET(tmp.nentries) * nr_cpu_ids;
56331 newinfo = vmalloc(sizeof(*newinfo) + countersize);
56332 if (!newinfo)
56333@@ -1510,7 +1512,7 @@ static int do_ebt_get_ctl(struct sock *s
57900 tmp.valid_hooks = t->table->valid_hooks; 56334 tmp.valid_hooks = t->table->valid_hooks;
57901 } 56335 }
57902 mutex_unlock(&ebt_mutex); 56336 mutex_unlock(&ebt_mutex);
@@ -57905,9 +56339,9 @@ diff -urNp linux-2.6.38.3/net/bridge/netfilter/ebtables.c linux-2.6.38.3/net/bri
57905 BUGPRINT("c2u Didn't work\n"); 56339 BUGPRINT("c2u Didn't work\n");
57906 ret = -EFAULT; 56340 ret = -EFAULT;
57907 break; 56341 break;
57908diff -urNp linux-2.6.38.3/net/can/bcm.c linux-2.6.38.3/net/can/bcm.c 56342diff -urNp linux-2.6.38.2/net/can/bcm.c linux-2.6.38.2/net/can/bcm.c
57909--- linux-2.6.38.3/net/can/bcm.c 2011-03-14 21:20:32.000000000 -0400 56343--- linux-2.6.38.2/net/can/bcm.c 2011-03-14 21:20:32.000000000 -0400
57910+++ linux-2.6.38.3/net/can/bcm.c 2011-04-17 15:57:33.000000000 -0400 56344+++ linux-2.6.38.2/net/can/bcm.c 2011-03-21 18:31:35.000000000 -0400
57911@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file 56345@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file
57912 struct bcm_sock *bo = bcm_sk(sk); 56346 struct bcm_sock *bo = bcm_sk(sk);
57913 struct bcm_op *op; 56347 struct bcm_op *op;
@@ -57924,25 +56358,19 @@ diff -urNp linux-2.6.38.3/net/can/bcm.c linux-2.6.38.3/net/can/bcm.c
57924 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs); 56358 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs);
57925 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex)); 56359 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex));
57926 seq_printf(m, " <<<\n"); 56360 seq_printf(m, " <<<\n");
57927diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c 56361diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c
57928--- linux-2.6.38.3/net/core/dev.c 2011-03-14 21:20:32.000000000 -0400 56362--- linux-2.6.38.2/net/core/dev.c 2011-03-14 21:20:32.000000000 -0400
57929+++ linux-2.6.38.3/net/core/dev.c 2011-04-17 15:57:33.000000000 -0400 56363+++ linux-2.6.38.2/net/core/dev.c 2011-03-21 18:31:35.000000000 -0400
57930@@ -1124,10 +1124,14 @@ void dev_load(struct net *net, const cha 56364@@ -1124,7 +1124,7 @@ void dev_load(struct net *net, const cha
57931 if (no_module && capable(CAP_NET_ADMIN)) 56365 if (no_module && capable(CAP_NET_ADMIN))
57932 no_module = request_module("netdev-%s", name); 56366 no_module = request_module("netdev-%s", name);
57933 if (no_module && capable(CAP_SYS_MODULE)) { 56367 if (no_module && capable(CAP_SYS_MODULE)) {
57934+#ifdef CONFIG_GRKERNSEC_MODHARDEN 56368- if (!request_module("%s", name))
57935+ ___request_module(true, "grsec_modharden_netdev", "%s", name); 56369+ if (!request_module("%s", name))
57936+#else
57937 if (!request_module("%s", name))
57938 pr_err("Loading kernel module for a network device " 56370 pr_err("Loading kernel module for a network device "
57939 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s " 56371 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s "
57940 "instead\n", name); 56372 "instead\n", name);
57941+#endif 56373@@ -2787,7 +2787,7 @@ int netif_rx_ni(struct sk_buff *skb)
57942 }
57943 }
57944 EXPORT_SYMBOL(dev_load);
57945@@ -2787,7 +2791,7 @@ int netif_rx_ni(struct sk_buff *skb)
57946 } 56374 }
57947 EXPORT_SYMBOL(netif_rx_ni); 56375 EXPORT_SYMBOL(netif_rx_ni);
57948 56376
@@ -57951,7 +56379,7 @@ diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c
57951 { 56379 {
57952 struct softnet_data *sd = &__get_cpu_var(softnet_data); 56380 struct softnet_data *sd = &__get_cpu_var(softnet_data);
57953 56381
57954@@ -3697,7 +3701,7 @@ void netif_napi_del(struct napi_struct * 56382@@ -3697,7 +3697,7 @@ void netif_napi_del(struct napi_struct *
57955 } 56383 }
57956 EXPORT_SYMBOL(netif_napi_del); 56384 EXPORT_SYMBOL(netif_napi_del);
57957 56385
@@ -57960,9 +56388,9 @@ diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c
57960 { 56388 {
57961 struct softnet_data *sd = &__get_cpu_var(softnet_data); 56389 struct softnet_data *sd = &__get_cpu_var(softnet_data);
57962 unsigned long time_limit = jiffies + 2; 56390 unsigned long time_limit = jiffies + 2;
57963diff -urNp linux-2.6.38.3/net/core/sock.c linux-2.6.38.3/net/core/sock.c 56391diff -urNp linux-2.6.38.2/net/core/sock.c linux-2.6.38.2/net/core/sock.c
57964--- linux-2.6.38.3/net/core/sock.c 2011-03-14 21:20:32.000000000 -0400 56392--- linux-2.6.38.2/net/core/sock.c 2011-03-14 21:20:32.000000000 -0400
57965+++ linux-2.6.38.3/net/core/sock.c 2011-04-17 15:57:33.000000000 -0400 56393+++ linux-2.6.38.2/net/core/sock.c 2011-03-21 18:31:35.000000000 -0400
57966@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock, 56394@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock,
57967 return -ENOTCONN; 56395 return -ENOTCONN;
57968 if (lv < len) 56396 if (lv < len)
@@ -57981,9 +56409,9 @@ diff -urNp linux-2.6.38.3/net/core/sock.c linux-2.6.38.3/net/core/sock.c
57981 return -EFAULT; 56409 return -EFAULT;
57982 lenout: 56410 lenout:
57983 if (put_user(len, optlen)) 56411 if (put_user(len, optlen))
57984diff -urNp linux-2.6.38.3/net/dccp/ccids/ccid3.c linux-2.6.38.3/net/dccp/ccids/ccid3.c 56412diff -urNp linux-2.6.38.2/net/dccp/ccids/ccid3.c linux-2.6.38.2/net/dccp/ccids/ccid3.c
57985--- linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-03-14 21:20:32.000000000 -0400 56413--- linux-2.6.38.2/net/dccp/ccids/ccid3.c 2011-03-14 21:20:32.000000000 -0400
57986+++ linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-04-17 15:57:33.000000000 -0400 56414+++ linux-2.6.38.2/net/dccp/ccids/ccid3.c 2011-03-21 18:31:35.000000000 -0400
57987@@ -41,7 +41,7 @@ 56415@@ -41,7 +41,7 @@
57988 static int ccid3_debug; 56416 static int ccid3_debug;
57989 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a) 56417 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a)
@@ -57993,9 +56421,9 @@ diff -urNp linux-2.6.38.3/net/dccp/ccids/ccid3.c linux-2.6.38.3/net/dccp/ccids/c
57993 #endif 56421 #endif
57994 56422
57995 /* 56423 /*
57996diff -urNp linux-2.6.38.3/net/dccp/dccp.h linux-2.6.38.3/net/dccp/dccp.h 56424diff -urNp linux-2.6.38.2/net/dccp/dccp.h linux-2.6.38.2/net/dccp/dccp.h
57997--- linux-2.6.38.3/net/dccp/dccp.h 2011-03-14 21:20:32.000000000 -0400 56425--- linux-2.6.38.2/net/dccp/dccp.h 2011-03-14 21:20:32.000000000 -0400
57998+++ linux-2.6.38.3/net/dccp/dccp.h 2011-04-17 15:57:33.000000000 -0400 56426+++ linux-2.6.38.2/net/dccp/dccp.h 2011-03-21 18:31:35.000000000 -0400
57999@@ -44,9 +44,9 @@ extern int dccp_debug; 56427@@ -44,9 +44,9 @@ extern int dccp_debug;
58000 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a) 56428 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a)
58001 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a) 56429 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a)
@@ -58009,9 +56437,9 @@ diff -urNp linux-2.6.38.3/net/dccp/dccp.h linux-2.6.38.3/net/dccp/dccp.h
58009 #endif 56437 #endif
58010 56438
58011 extern struct inet_hashinfo dccp_hashinfo; 56439 extern struct inet_hashinfo dccp_hashinfo;
58012diff -urNp linux-2.6.38.3/net/decnet/sysctl_net_decnet.c linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 56440diff -urNp linux-2.6.38.2/net/decnet/sysctl_net_decnet.c linux-2.6.38.2/net/decnet/sysctl_net_decnet.c
58013--- linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 2011-03-14 21:20:32.000000000 -0400 56441--- linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 2011-03-14 21:20:32.000000000 -0400
58014+++ linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 2011-04-17 15:57:33.000000000 -0400 56442+++ linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 2011-03-21 18:31:35.000000000 -0400
58015@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t 56443@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t
58016 56444
58017 if (len > *lenp) len = *lenp; 56445 if (len > *lenp) len = *lenp;
@@ -58030,9 +56458,9 @@ diff -urNp linux-2.6.38.3/net/decnet/sysctl_net_decnet.c linux-2.6.38.3/net/decn
58030 return -EFAULT; 56458 return -EFAULT;
58031 56459
58032 *lenp = len; 56460 *lenp = len;
58033diff -urNp linux-2.6.38.3/net/econet/Kconfig linux-2.6.38.3/net/econet/Kconfig 56461diff -urNp linux-2.6.38.2/net/econet/Kconfig linux-2.6.38.2/net/econet/Kconfig
58034--- linux-2.6.38.3/net/econet/Kconfig 2011-03-14 21:20:32.000000000 -0400 56462--- linux-2.6.38.2/net/econet/Kconfig 2011-03-14 21:20:32.000000000 -0400
58035+++ linux-2.6.38.3/net/econet/Kconfig 2011-04-17 15:57:33.000000000 -0400 56463+++ linux-2.6.38.2/net/econet/Kconfig 2011-03-21 18:31:35.000000000 -0400
58036@@ -4,7 +4,7 @@ 56464@@ -4,7 +4,7 @@
58037 56465
58038 config ECONET 56466 config ECONET
@@ -58042,9 +56470,9 @@ diff -urNp linux-2.6.38.3/net/econet/Kconfig linux-2.6.38.3/net/econet/Kconfig
58042 ---help--- 56470 ---help---
58043 Econet is a fairly old and slow networking protocol mainly used by 56471 Econet is a fairly old and slow networking protocol mainly used by
58044 Acorn computers to access file and print servers. It uses native 56472 Acorn computers to access file and print servers. It uses native
58045diff -urNp linux-2.6.38.3/net/ipv4/inet_diag.c linux-2.6.38.3/net/ipv4/inet_diag.c 56473diff -urNp linux-2.6.38.2/net/ipv4/inet_diag.c linux-2.6.38.2/net/ipv4/inet_diag.c
58046--- linux-2.6.38.3/net/ipv4/inet_diag.c 2011-03-14 21:20:32.000000000 -0400 56474--- linux-2.6.38.2/net/ipv4/inet_diag.c 2011-03-14 21:20:32.000000000 -0400
58047+++ linux-2.6.38.3/net/ipv4/inet_diag.c 2011-04-17 15:57:33.000000000 -0400 56475+++ linux-2.6.38.2/net/ipv4/inet_diag.c 2011-03-21 18:31:35.000000000 -0400
58048@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc 56476@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc
58049 r->idiag_retrans = 0; 56477 r->idiag_retrans = 0;
58050 56478
@@ -58106,9 +56534,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/inet_diag.c linux-2.6.38.3/net/ipv4/inet_diag
58106 56534
58107 tmo = req->expires - jiffies; 56535 tmo = req->expires - jiffies;
58108 if (tmo < 0) 56536 if (tmo < 0)
58109diff -urNp linux-2.6.38.3/net/ipv4/inet_hashtables.c linux-2.6.38.3/net/ipv4/inet_hashtables.c 56537diff -urNp linux-2.6.38.2/net/ipv4/inet_hashtables.c linux-2.6.38.2/net/ipv4/inet_hashtables.c
58110--- linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-03-14 21:20:32.000000000 -0400 56538--- linux-2.6.38.2/net/ipv4/inet_hashtables.c 2011-03-14 21:20:32.000000000 -0400
58111+++ linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-04-17 15:57:33.000000000 -0400 56539+++ linux-2.6.38.2/net/ipv4/inet_hashtables.c 2011-03-21 18:31:35.000000000 -0400
58112@@ -18,11 +18,14 @@ 56540@@ -18,11 +18,14 @@
58113 #include <linux/sched.h> 56541 #include <linux/sched.h>
58114 #include <linux/slab.h> 56542 #include <linux/slab.h>
@@ -58133,9 +56561,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/inet_hashtables.c linux-2.6.38.3/net/ipv4/ine
58133 if (tw) { 56561 if (tw) {
58134 inet_twsk_deschedule(tw, death_row); 56562 inet_twsk_deschedule(tw, death_row);
58135 while (twrefcnt) { 56563 while (twrefcnt) {
58136diff -urNp linux-2.6.38.3/net/ipv4/inetpeer.c linux-2.6.38.3/net/ipv4/inetpeer.c 56564diff -urNp linux-2.6.38.2/net/ipv4/inetpeer.c linux-2.6.38.2/net/ipv4/inetpeer.c
58137--- linux-2.6.38.3/net/ipv4/inetpeer.c 2011-03-14 21:20:32.000000000 -0400 56565--- linux-2.6.38.2/net/ipv4/inetpeer.c 2011-03-14 21:20:32.000000000 -0400
58138+++ linux-2.6.38.3/net/ipv4/inetpeer.c 2011-04-17 15:57:33.000000000 -0400 56566+++ linux-2.6.38.2/net/ipv4/inetpeer.c 2011-03-21 18:31:35.000000000 -0400
58139@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in 56567@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in
58140 if (p) { 56568 if (p) {
58141 p->daddr = *daddr; 56569 p->daddr = *daddr;
@@ -58147,9 +56575,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/inetpeer.c linux-2.6.38.3/net/ipv4/inetpeer.c
58147 p->tcp_ts_stamp = 0; 56575 p->tcp_ts_stamp = 0;
58148 INIT_LIST_HEAD(&p->unused); 56576 INIT_LIST_HEAD(&p->unused);
58149 56577
58150diff -urNp linux-2.6.38.3/net/ipv4/ip_fragment.c linux-2.6.38.3/net/ipv4/ip_fragment.c 56578diff -urNp linux-2.6.38.2/net/ipv4/ip_fragment.c linux-2.6.38.2/net/ipv4/ip_fragment.c
58151--- linux-2.6.38.3/net/ipv4/ip_fragment.c 2011-03-14 21:20:32.000000000 -0400 56579--- linux-2.6.38.2/net/ipv4/ip_fragment.c 2011-03-14 21:20:32.000000000 -0400
58152+++ linux-2.6.38.3/net/ipv4/ip_fragment.c 2011-04-17 15:57:33.000000000 -0400 56580+++ linux-2.6.38.2/net/ipv4/ip_fragment.c 2011-03-21 18:31:35.000000000 -0400
58153@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct 56581@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct
58154 return 0; 56582 return 0;
58155 56583
@@ -58159,9 +56587,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/ip_fragment.c linux-2.6.38.3/net/ipv4/ip_frag
58159 qp->rid = end; 56587 qp->rid = end;
58160 56588
58161 rc = qp->q.fragments && (end - start) > max; 56589 rc = qp->q.fragments && (end - start) > max;
58162diff -urNp linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 56590diff -urNp linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c
58163--- linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-14 21:20:32.000000000 -0400 56591--- linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-14 21:20:32.000000000 -0400
58164+++ linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-04-17 15:57:33.000000000 -0400 56592+++ linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-21 18:31:35.000000000 -0400
58165@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode( 56593@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode(
58166 56594
58167 *len = 0; 56595 *len = 0;
@@ -58171,44 +56599,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.38.3/
58171 if (*octets == NULL) { 56599 if (*octets == NULL) {
58172 if (net_ratelimit()) 56600 if (net_ratelimit())
58173 pr_notice("OOM in bsalg (%d)\n", __LINE__); 56601 pr_notice("OOM in bsalg (%d)\n", __LINE__);
58174diff -urNp linux-2.6.38.3/net/ipv4/raw.c linux-2.6.38.3/net/ipv4/raw.c 56602diff -urNp linux-2.6.38.2/net/ipv4/route.c linux-2.6.38.2/net/ipv4/route.c
58175--- linux-2.6.38.3/net/ipv4/raw.c 2011-03-14 21:20:32.000000000 -0400 56603--- linux-2.6.38.2/net/ipv4/route.c 2011-03-14 21:20:32.000000000 -0400
58176+++ linux-2.6.38.3/net/ipv4/raw.c 2011-04-17 15:57:33.000000000 -0400 56604+++ linux-2.6.38.2/net/ipv4/route.c 2011-03-21 18:31:35.000000000 -0400
58177@@ -724,15 +724,19 @@ static int raw_init(struct sock *sk)
58178
58179 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
58180 {
58181+ struct icmp_filter filter;
58182+
58183 if (optlen > sizeof(struct icmp_filter))
58184 optlen = sizeof(struct icmp_filter);
58185- if (copy_from_user(&raw_sk(sk)->filter, optval, optlen))
58186+ if (copy_from_user(&filter, optval, optlen))
58187 return -EFAULT;
58188+ memcpy(&raw_sk(sk)->filter, &filter, sizeof(filter));
58189 return 0;
58190 }
58191
58192 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen)
58193 {
58194+ struct icmp_filter filter;
58195 int len, ret = -EFAULT;
58196
58197 if (get_user(len, optlen))
58198@@ -743,8 +747,9 @@ static int raw_geticmpfilter(struct sock
58199 if (len > sizeof(struct icmp_filter))
58200 len = sizeof(struct icmp_filter);
58201 ret = -EFAULT;
58202+ memcpy(&filter, &raw_sk(sk)->filter, len);
58203 if (put_user(len, optlen) ||
58204- copy_to_user(optval, &raw_sk(sk)->filter, len))
58205+ copy_to_user(optval, &filter, len))
58206 goto out;
58207 ret = 0;
58208 out: return ret;
58209diff -urNp linux-2.6.38.3/net/ipv4/route.c linux-2.6.38.3/net/ipv4/route.c
58210--- linux-2.6.38.3/net/ipv4/route.c 2011-03-14 21:20:32.000000000 -0400
58211+++ linux-2.6.38.3/net/ipv4/route.c 2011-04-17 15:57:33.000000000 -0400
58212@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net, 56605@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net,
58213 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0; 56606 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0;
58214 if (rt->peer) { 56607 if (rt->peer) {
@@ -58218,9 +56611,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/route.c linux-2.6.38.3/net/ipv4/route.c
58218 if (rt->peer->tcp_ts_stamp) { 56611 if (rt->peer->tcp_ts_stamp) {
58219 ts = rt->peer->tcp_ts; 56612 ts = rt->peer->tcp_ts;
58220 tsage = get_seconds() - rt->peer->tcp_ts_stamp; 56613 tsage = get_seconds() - rt->peer->tcp_ts_stamp;
58221diff -urNp linux-2.6.38.3/net/ipv4/tcp_ipv4.c linux-2.6.38.3/net/ipv4/tcp_ipv4.c 56614diff -urNp linux-2.6.38.2/net/ipv4/tcp_ipv4.c linux-2.6.38.2/net/ipv4/tcp_ipv4.c
58222--- linux-2.6.38.3/net/ipv4/tcp_ipv4.c 2011-03-14 21:20:32.000000000 -0400 56615--- linux-2.6.38.2/net/ipv4/tcp_ipv4.c 2011-03-14 21:20:32.000000000 -0400
58223+++ linux-2.6.38.3/net/ipv4/tcp_ipv4.c 2011-04-17 15:57:33.000000000 -0400 56616+++ linux-2.6.38.2/net/ipv4/tcp_ipv4.c 2011-03-21 18:31:35.000000000 -0400
58224@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly; 56617@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly;
58225 int sysctl_tcp_low_latency __read_mostly; 56618 int sysctl_tcp_low_latency __read_mostly;
58226 EXPORT_SYMBOL(sysctl_tcp_low_latency); 56619 EXPORT_SYMBOL(sysctl_tcp_low_latency);
@@ -58316,9 +56709,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_ipv4.c linux-2.6.38.3/net/ipv4/tcp_ipv4.c
58316 } 56709 }
58317 56710
58318 #define TMPSZ 150 56711 #define TMPSZ 150
58319diff -urNp linux-2.6.38.3/net/ipv4/tcp_minisocks.c linux-2.6.38.3/net/ipv4/tcp_minisocks.c 56712diff -urNp linux-2.6.38.2/net/ipv4/tcp_minisocks.c linux-2.6.38.2/net/ipv4/tcp_minisocks.c
58320--- linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-03-14 21:20:32.000000000 -0400 56713--- linux-2.6.38.2/net/ipv4/tcp_minisocks.c 2011-03-14 21:20:32.000000000 -0400
58321+++ linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-04-17 15:57:33.000000000 -0400 56714+++ linux-2.6.38.2/net/ipv4/tcp_minisocks.c 2011-03-21 18:31:35.000000000 -0400
58322@@ -27,6 +27,10 @@ 56715@@ -27,6 +27,10 @@
58323 #include <net/inet_common.h> 56716 #include <net/inet_common.h>
58324 #include <net/xfrm.h> 56717 #include <net/xfrm.h>
@@ -58341,9 +56734,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_minisocks.c linux-2.6.38.3/net/ipv4/tcp_m
58341 if (!(flg & TCP_FLAG_RST)) 56734 if (!(flg & TCP_FLAG_RST))
58342 req->rsk_ops->send_reset(sk, skb); 56735 req->rsk_ops->send_reset(sk, skb);
58343 56736
58344diff -urNp linux-2.6.38.3/net/ipv4/tcp_probe.c linux-2.6.38.3/net/ipv4/tcp_probe.c 56737diff -urNp linux-2.6.38.2/net/ipv4/tcp_probe.c linux-2.6.38.2/net/ipv4/tcp_probe.c
58345--- linux-2.6.38.3/net/ipv4/tcp_probe.c 2011-03-14 21:20:32.000000000 -0400 56738--- linux-2.6.38.2/net/ipv4/tcp_probe.c 2011-03-14 21:20:32.000000000 -0400
58346+++ linux-2.6.38.3/net/ipv4/tcp_probe.c 2011-04-17 15:57:33.000000000 -0400 56739+++ linux-2.6.38.2/net/ipv4/tcp_probe.c 2011-03-21 18:31:35.000000000 -0400
58347@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file 56740@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file
58348 if (cnt + width >= len) 56741 if (cnt + width >= len)
58349 break; 56742 break;
@@ -58353,9 +56746,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_probe.c linux-2.6.38.3/net/ipv4/tcp_probe
58353 return -EFAULT; 56746 return -EFAULT;
58354 cnt += width; 56747 cnt += width;
58355 } 56748 }
58356diff -urNp linux-2.6.38.3/net/ipv4/tcp_timer.c linux-2.6.38.3/net/ipv4/tcp_timer.c 56749diff -urNp linux-2.6.38.2/net/ipv4/tcp_timer.c linux-2.6.38.2/net/ipv4/tcp_timer.c
58357--- linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-03-14 21:20:32.000000000 -0400 56750--- linux-2.6.38.2/net/ipv4/tcp_timer.c 2011-03-14 21:20:32.000000000 -0400
58358+++ linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-04-17 15:57:33.000000000 -0400 56751+++ linux-2.6.38.2/net/ipv4/tcp_timer.c 2011-03-21 18:31:35.000000000 -0400
58359@@ -22,6 +22,10 @@ 56752@@ -22,6 +22,10 @@
58360 #include <linux/gfp.h> 56753 #include <linux/gfp.h>
58361 #include <net/tcp.h> 56754 #include <net/tcp.h>
@@ -58381,9 +56774,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_timer.c linux-2.6.38.3/net/ipv4/tcp_timer
58381 if (retransmits_timed_out(sk, retry_until, 56774 if (retransmits_timed_out(sk, retry_until,
58382 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) { 56775 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
58383 /* Has it gone just too far? */ 56776 /* Has it gone just too far? */
58384diff -urNp linux-2.6.38.3/net/ipv4/udp.c linux-2.6.38.3/net/ipv4/udp.c 56777diff -urNp linux-2.6.38.2/net/ipv4/udp.c linux-2.6.38.2/net/ipv4/udp.c
58385--- linux-2.6.38.3/net/ipv4/udp.c 2011-03-14 21:20:32.000000000 -0400 56778--- linux-2.6.38.2/net/ipv4/udp.c 2011-03-14 21:20:32.000000000 -0400
58386+++ linux-2.6.38.3/net/ipv4/udp.c 2011-04-17 15:57:33.000000000 -0400 56779+++ linux-2.6.38.2/net/ipv4/udp.c 2011-03-21 18:31:35.000000000 -0400
58387@@ -86,6 +86,7 @@ 56780@@ -86,6 +86,7 @@
58388 #include <linux/types.h> 56781 #include <linux/types.h>
58389 #include <linux/fcntl.h> 56782 #include <linux/fcntl.h>
@@ -58467,9 +56860,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/udp.c linux-2.6.38.3/net/ipv4/udp.c
58467 atomic_read(&sp->sk_drops), len); 56860 atomic_read(&sp->sk_drops), len);
58468 } 56861 }
58469 56862
58470diff -urNp linux-2.6.38.3/net/ipv6/exthdrs.c linux-2.6.38.3/net/ipv6/exthdrs.c 56863diff -urNp linux-2.6.38.2/net/ipv6/exthdrs.c linux-2.6.38.2/net/ipv6/exthdrs.c
58471--- linux-2.6.38.3/net/ipv6/exthdrs.c 2011-03-14 21:20:32.000000000 -0400 56864--- linux-2.6.38.2/net/ipv6/exthdrs.c 2011-03-14 21:20:32.000000000 -0400
58472+++ linux-2.6.38.3/net/ipv6/exthdrs.c 2011-04-17 15:57:33.000000000 -0400 56865+++ linux-2.6.38.2/net/ipv6/exthdrs.c 2011-03-21 18:31:35.000000000 -0400
58473@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt 56866@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt
58474 .type = IPV6_TLV_JUMBO, 56867 .type = IPV6_TLV_JUMBO,
58475 .func = ipv6_hop_jumbo, 56868 .func = ipv6_hop_jumbo,
@@ -58479,9 +56872,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/exthdrs.c linux-2.6.38.3/net/ipv6/exthdrs.c
58479 }; 56872 };
58480 56873
58481 int ipv6_parse_hopopts(struct sk_buff *skb) 56874 int ipv6_parse_hopopts(struct sk_buff *skb)
58482diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c 56875diff -urNp linux-2.6.38.2/net/ipv6/raw.c linux-2.6.38.2/net/ipv6/raw.c
58483--- linux-2.6.38.3/net/ipv6/raw.c 2011-03-14 21:20:32.000000000 -0400 56876--- linux-2.6.38.2/net/ipv6/raw.c 2011-03-14 21:20:32.000000000 -0400
58484+++ linux-2.6.38.3/net/ipv6/raw.c 2011-04-17 15:57:33.000000000 -0400 56877+++ linux-2.6.38.2/net/ipv6/raw.c 2011-03-21 18:31:35.000000000 -0400
58485@@ -602,7 +602,7 @@ out: 56878@@ -602,7 +602,7 @@ out:
58486 return err; 56879 return err;
58487 } 56880 }
@@ -58491,42 +56884,7 @@ diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c
58491 struct flowi *fl, struct dst_entry **dstp, 56884 struct flowi *fl, struct dst_entry **dstp,
58492 unsigned int flags) 56885 unsigned int flags)
58493 { 56886 {
58494@@ -919,12 +919,15 @@ do_confirm: 56887@@ -1262,7 +1262,13 @@ static void raw6_sock_seq_show(struct se
58495 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
58496 char __user *optval, int optlen)
58497 {
58498+ struct icmp6_filter filter;
58499+
58500 switch (optname) {
58501 case ICMPV6_FILTER:
58502 if (optlen > sizeof(struct icmp6_filter))
58503 optlen = sizeof(struct icmp6_filter);
58504- if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen))
58505+ if (copy_from_user(&filter, optval, optlen))
58506 return -EFAULT;
58507+ memcpy(&raw6_sk(sk)->filter, &filter, optlen);
58508 return 0;
58509 default:
58510 return -ENOPROTOOPT;
58511@@ -936,6 +939,7 @@ static int rawv6_seticmpfilter(struct so
58512 static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
58513 char __user *optval, int __user *optlen)
58514 {
58515+ struct icmp6_filter filter;
58516 int len;
58517
58518 switch (optname) {
58519@@ -948,7 +952,8 @@ static int rawv6_geticmpfilter(struct so
58520 len = sizeof(struct icmp6_filter);
58521 if (put_user(len, optlen))
58522 return -EFAULT;
58523- if (copy_to_user(optval, &raw6_sk(sk)->filter, len))
58524+ memcpy(&filter, &raw6_sk(sk)->filter, len);
58525+ if (copy_to_user(optval, &filter, len))
58526 return -EFAULT;
58527 return 0;
58528 default:
58529@@ -1262,7 +1267,13 @@ static void raw6_sock_seq_show(struct se
58530 0, 0L, 0, 56888 0, 0L, 0,
58531 sock_i_uid(sp), 0, 56889 sock_i_uid(sp), 0,
58532 sock_i_ino(sp), 56890 sock_i_ino(sp),
@@ -58541,9 +56899,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c
58541 } 56899 }
58542 56900
58543 static int raw6_seq_show(struct seq_file *seq, void *v) 56901 static int raw6_seq_show(struct seq_file *seq, void *v)
58544diff -urNp linux-2.6.38.3/net/ipv6/tcp_ipv6.c linux-2.6.38.3/net/ipv6/tcp_ipv6.c 56902diff -urNp linux-2.6.38.2/net/ipv6/tcp_ipv6.c linux-2.6.38.2/net/ipv6/tcp_ipv6.c
58545--- linux-2.6.38.3/net/ipv6/tcp_ipv6.c 2011-03-14 21:20:32.000000000 -0400 56903--- linux-2.6.38.2/net/ipv6/tcp_ipv6.c 2011-03-14 21:20:32.000000000 -0400
58546+++ linux-2.6.38.3/net/ipv6/tcp_ipv6.c 2011-04-17 15:57:33.000000000 -0400 56904+++ linux-2.6.38.2/net/ipv6/tcp_ipv6.c 2011-03-21 18:31:35.000000000 -0400
58547@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5 56905@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5
58548 } 56906 }
58549 #endif 56907 #endif
@@ -58643,9 +57001,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/tcp_ipv6.c linux-2.6.38.3/net/ipv6/tcp_ipv6.c
58643 } 57001 }
58644 57002
58645 static int tcp6_seq_show(struct seq_file *seq, void *v) 57003 static int tcp6_seq_show(struct seq_file *seq, void *v)
58646diff -urNp linux-2.6.38.3/net/ipv6/udp.c linux-2.6.38.3/net/ipv6/udp.c 57004diff -urNp linux-2.6.38.2/net/ipv6/udp.c linux-2.6.38.2/net/ipv6/udp.c
58647--- linux-2.6.38.3/net/ipv6/udp.c 2011-03-14 21:20:32.000000000 -0400 57005--- linux-2.6.38.2/net/ipv6/udp.c 2011-03-14 21:20:32.000000000 -0400
58648+++ linux-2.6.38.3/net/ipv6/udp.c 2011-04-17 15:57:33.000000000 -0400 57006+++ linux-2.6.38.2/net/ipv6/udp.c 2011-03-21 18:31:35.000000000 -0400
58649@@ -50,6 +50,10 @@ 57007@@ -50,6 +50,10 @@
58650 #include <linux/seq_file.h> 57008 #include <linux/seq_file.h>
58651 #include "udp_impl.h" 57009 #include "udp_impl.h"
@@ -58681,9 +57039,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/udp.c linux-2.6.38.3/net/ipv6/udp.c
58681 atomic_read(&sp->sk_drops)); 57039 atomic_read(&sp->sk_drops));
58682 } 57040 }
58683 57041
58684diff -urNp linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 57042diff -urNp linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c
58685--- linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 2011-03-14 21:20:32.000000000 -0400 57043--- linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 2011-03-14 21:20:32.000000000 -0400
58686+++ linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 2011-04-17 15:57:33.000000000 -0400 57044+++ linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 2011-03-21 18:31:35.000000000 -0400
58687@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st 57045@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st
58688 add_wait_queue(&self->open_wait, &wait); 57046 add_wait_queue(&self->open_wait, &wait);
58689 57047
@@ -58806,9 +57164,9 @@ diff -urNp linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c linux-2.6.38.3/net/irda/i
58806 seq_printf(m, "Max data size: %d\n", self->max_data_size); 57164 seq_printf(m, "Max data size: %d\n", self->max_data_size);
58807 seq_printf(m, "Max header size: %d\n", self->max_header_size); 57165 seq_printf(m, "Max header size: %d\n", self->max_header_size);
58808 57166
58809diff -urNp linux-2.6.38.3/net/key/af_key.c linux-2.6.38.3/net/key/af_key.c 57167diff -urNp linux-2.6.38.2/net/key/af_key.c linux-2.6.38.2/net/key/af_key.c
58810--- linux-2.6.38.3/net/key/af_key.c 2011-03-14 21:20:32.000000000 -0400 57168--- linux-2.6.38.2/net/key/af_key.c 2011-03-14 21:20:32.000000000 -0400
58811+++ linux-2.6.38.3/net/key/af_key.c 2011-04-17 15:57:33.000000000 -0400 57169+++ linux-2.6.38.2/net/key/af_key.c 2011-03-21 18:31:35.000000000 -0400
58812@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil 57170@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil
58813 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n"); 57171 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n");
58814 else 57172 else
@@ -58821,32 +57179,9 @@ diff -urNp linux-2.6.38.3/net/key/af_key.c linux-2.6.38.3/net/key/af_key.c
58821 atomic_read(&s->sk_refcnt), 57179 atomic_read(&s->sk_refcnt),
58822 sk_rmem_alloc_get(s), 57180 sk_rmem_alloc_get(s),
58823 sk_wmem_alloc_get(s), 57181 sk_wmem_alloc_get(s),
58824diff -urNp linux-2.6.38.3/net/mac80211/cfg.c linux-2.6.38.3/net/mac80211/cfg.c 57182diff -urNp linux-2.6.38.2/net/mac80211/ieee80211_i.h linux-2.6.38.2/net/mac80211/ieee80211_i.h
58825--- linux-2.6.38.3/net/mac80211/cfg.c 2011-03-14 21:20:32.000000000 -0400 57183--- linux-2.6.38.2/net/mac80211/ieee80211_i.h 2011-03-14 21:20:32.000000000 -0400
58826+++ linux-2.6.38.3/net/mac80211/cfg.c 2011-04-17 15:57:33.000000000 -0400 57184+++ linux-2.6.38.2/net/mac80211/ieee80211_i.h 2011-03-21 18:31:35.000000000 -0400
58827@@ -1939,7 +1939,7 @@ static int ieee80211_get_antenna(struct
58828 return drv_get_antenna(local, tx_ant, rx_ant);
58829 }
58830
58831-struct cfg80211_ops mac80211_config_ops = {
58832+const struct cfg80211_ops mac80211_config_ops = {
58833 .add_virtual_intf = ieee80211_add_iface,
58834 .del_virtual_intf = ieee80211_del_iface,
58835 .change_virtual_intf = ieee80211_change_iface,
58836diff -urNp linux-2.6.38.3/net/mac80211/cfg.h linux-2.6.38.3/net/mac80211/cfg.h
58837--- linux-2.6.38.3/net/mac80211/cfg.h 2011-03-14 21:20:32.000000000 -0400
58838+++ linux-2.6.38.3/net/mac80211/cfg.h 2011-04-17 15:57:33.000000000 -0400
58839@@ -4,6 +4,6 @@
58840 #ifndef __CFG_H
58841 #define __CFG_H
58842
58843-extern struct cfg80211_ops mac80211_config_ops;
58844+extern const struct cfg80211_ops mac80211_config_ops;
58845
58846 #endif /* __CFG_H */
58847diff -urNp linux-2.6.38.3/net/mac80211/ieee80211_i.h linux-2.6.38.3/net/mac80211/ieee80211_i.h
58848--- linux-2.6.38.3/net/mac80211/ieee80211_i.h 2011-03-14 21:20:32.000000000 -0400
58849+++ linux-2.6.38.3/net/mac80211/ieee80211_i.h 2011-04-17 15:57:33.000000000 -0400
58850@@ -27,6 +27,7 @@ 57185@@ -27,6 +27,7 @@
58851 #include <net/ieee80211_radiotap.h> 57186 #include <net/ieee80211_radiotap.h>
58852 #include <net/cfg80211.h> 57187 #include <net/cfg80211.h>
@@ -58864,9 +57199,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/ieee80211_i.h linux-2.6.38.3/net/mac80211
58864 int monitors, cooked_mntrs; 57199 int monitors, cooked_mntrs;
58865 /* number of interfaces with corresponding FIF_ flags */ 57200 /* number of interfaces with corresponding FIF_ flags */
58866 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll, 57201 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
58867diff -urNp linux-2.6.38.3/net/mac80211/iface.c linux-2.6.38.3/net/mac80211/iface.c 57202diff -urNp linux-2.6.38.2/net/mac80211/iface.c linux-2.6.38.2/net/mac80211/iface.c
58868--- linux-2.6.38.3/net/mac80211/iface.c 2011-03-14 21:20:32.000000000 -0400 57203--- linux-2.6.38.2/net/mac80211/iface.c 2011-03-14 21:20:32.000000000 -0400
58869+++ linux-2.6.38.3/net/mac80211/iface.c 2011-04-17 15:57:33.000000000 -0400 57204+++ linux-2.6.38.2/net/mac80211/iface.c 2011-03-21 18:31:35.000000000 -0400
58870@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_ 57205@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_
58871 break; 57206 break;
58872 } 57207 }
@@ -58921,9 +57256,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/iface.c linux-2.6.38.3/net/mac80211/iface
58921 if (local->ops->napi_poll) 57256 if (local->ops->napi_poll)
58922 napi_disable(&local->napi); 57257 napi_disable(&local->napi);
58923 ieee80211_clear_tx_pending(local); 57258 ieee80211_clear_tx_pending(local);
58924diff -urNp linux-2.6.38.3/net/mac80211/main.c linux-2.6.38.3/net/mac80211/main.c 57259diff -urNp linux-2.6.38.2/net/mac80211/main.c linux-2.6.38.2/net/mac80211/main.c
58925--- linux-2.6.38.3/net/mac80211/main.c 2011-03-14 21:20:32.000000000 -0400 57260--- linux-2.6.38.2/net/mac80211/main.c 2011-03-14 21:20:32.000000000 -0400
58926+++ linux-2.6.38.3/net/mac80211/main.c 2011-04-17 15:57:33.000000000 -0400 57261+++ linux-2.6.38.2/net/mac80211/main.c 2011-03-21 18:31:35.000000000 -0400
58927@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211 57262@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211
58928 local->hw.conf.power_level = power; 57263 local->hw.conf.power_level = power;
58929 } 57264 }
@@ -58933,9 +57268,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/main.c linux-2.6.38.3/net/mac80211/main.c
58933 ret = drv_config(local, changed); 57268 ret = drv_config(local, changed);
58934 /* 57269 /*
58935 * Goal: 57270 * Goal:
58936diff -urNp linux-2.6.38.3/net/mac80211/pm.c linux-2.6.38.3/net/mac80211/pm.c 57271diff -urNp linux-2.6.38.2/net/mac80211/pm.c linux-2.6.38.2/net/mac80211/pm.c
58937--- linux-2.6.38.3/net/mac80211/pm.c 2011-03-14 21:20:32.000000000 -0400 57272--- linux-2.6.38.2/net/mac80211/pm.c 2011-03-14 21:20:32.000000000 -0400
58938+++ linux-2.6.38.3/net/mac80211/pm.c 2011-04-17 15:57:33.000000000 -0400 57273+++ linux-2.6.38.2/net/mac80211/pm.c 2011-03-21 18:31:35.000000000 -0400
58939@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211 57274@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211
58940 } 57275 }
58941 57276
@@ -58945,9 +57280,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/pm.c linux-2.6.38.3/net/mac80211/pm.c
58945 ieee80211_stop_device(local); 57280 ieee80211_stop_device(local);
58946 57281
58947 local->suspended = true; 57282 local->suspended = true;
58948diff -urNp linux-2.6.38.3/net/mac80211/rate.c linux-2.6.38.3/net/mac80211/rate.c 57283diff -urNp linux-2.6.38.2/net/mac80211/rate.c linux-2.6.38.2/net/mac80211/rate.c
58949--- linux-2.6.38.3/net/mac80211/rate.c 2011-03-14 21:20:32.000000000 -0400 57284--- linux-2.6.38.2/net/mac80211/rate.c 2011-03-14 21:20:32.000000000 -0400
58950+++ linux-2.6.38.3/net/mac80211/rate.c 2011-04-17 15:57:33.000000000 -0400 57285+++ linux-2.6.38.2/net/mac80211/rate.c 2011-03-21 18:31:35.000000000 -0400
58951@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct 57286@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct
58952 57287
58953 ASSERT_RTNL(); 57288 ASSERT_RTNL();
@@ -58957,9 +57292,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/rate.c linux-2.6.38.3/net/mac80211/rate.c
58957 return -EBUSY; 57292 return -EBUSY;
58958 57293
58959 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) { 57294 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) {
58960diff -urNp linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 57295diff -urNp linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c
58961--- linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 2011-03-14 21:20:32.000000000 -0400 57296--- linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 2011-03-14 21:20:32.000000000 -0400
58962+++ linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 2011-04-17 15:57:33.000000000 -0400 57297+++ linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 2011-03-21 18:31:35.000000000 -0400
58963@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r 57298@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r
58964 57299
58965 spin_unlock_irqrestore(&events->lock, status); 57300 spin_unlock_irqrestore(&events->lock, status);
@@ -58969,9 +57304,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.3/net/
58969 return -EFAULT; 57304 return -EFAULT;
58970 57305
58971 return p; 57306 return p;
58972diff -urNp linux-2.6.38.3/net/mac80211/tx.c linux-2.6.38.3/net/mac80211/tx.c 57307diff -urNp linux-2.6.38.2/net/mac80211/tx.c linux-2.6.38.2/net/mac80211/tx.c
58973--- linux-2.6.38.3/net/mac80211/tx.c 2011-03-14 21:20:32.000000000 -0400 57308--- linux-2.6.38.2/net/mac80211/tx.c 2011-03-14 21:20:32.000000000 -0400
58974+++ linux-2.6.38.3/net/mac80211/tx.c 2011-04-17 15:57:33.000000000 -0400 57309+++ linux-2.6.38.2/net/mac80211/tx.c 2011-03-21 18:31:35.000000000 -0400
58975@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct 57310@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct
58976 return cpu_to_le16(dur); 57311 return cpu_to_le16(dur);
58977 } 57312 }
@@ -58981,9 +57316,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/tx.c linux-2.6.38.3/net/mac80211/tx.c
58981 struct net_device *dev) 57316 struct net_device *dev)
58982 { 57317 {
58983 return local == wdev_priv(dev->ieee80211_ptr); 57318 return local == wdev_priv(dev->ieee80211_ptr);
58984diff -urNp linux-2.6.38.3/net/mac80211/util.c linux-2.6.38.3/net/mac80211/util.c 57319diff -urNp linux-2.6.38.2/net/mac80211/util.c linux-2.6.38.2/net/mac80211/util.c
58985--- linux-2.6.38.3/net/mac80211/util.c 2011-03-14 21:20:32.000000000 -0400 57320--- linux-2.6.38.2/net/mac80211/util.c 2011-03-14 21:20:32.000000000 -0400
58986+++ linux-2.6.38.3/net/mac80211/util.c 2011-04-17 15:57:33.000000000 -0400 57321+++ linux-2.6.38.2/net/mac80211/util.c 2011-03-21 18:31:35.000000000 -0400
58987@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_ 57322@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_
58988 local->resuming = true; 57323 local->resuming = true;
58989 57324
@@ -58993,9 +57328,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/util.c linux-2.6.38.3/net/mac80211/util.c
58993 /* 57328 /*
58994 * Upon resume hardware can sometimes be goofy due to 57329 * Upon resume hardware can sometimes be goofy due to
58995 * various platform / driver / bus issues, so restarting 57330 * various platform / driver / bus issues, so restarting
58996diff -urNp linux-2.6.38.3/net/netfilter/Kconfig linux-2.6.38.3/net/netfilter/Kconfig 57331diff -urNp linux-2.6.38.2/net/netfilter/Kconfig linux-2.6.38.2/net/netfilter/Kconfig
58997--- linux-2.6.38.3/net/netfilter/Kconfig 2011-03-14 21:20:32.000000000 -0400 57332--- linux-2.6.38.2/net/netfilter/Kconfig 2011-03-14 21:20:32.000000000 -0400
58998+++ linux-2.6.38.3/net/netfilter/Kconfig 2011-04-17 15:57:33.000000000 -0400 57333+++ linux-2.6.38.2/net/netfilter/Kconfig 2011-03-21 18:31:35.000000000 -0400
58999@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP 57334@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP
59000 57335
59001 To compile it as a module, choose M here. If unsure, say N. 57336 To compile it as a module, choose M here. If unsure, say N.
@@ -59013,9 +57348,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/Kconfig linux-2.6.38.3/net/netfilter/Kco
59013 config NETFILTER_XT_MATCH_HASHLIMIT 57348 config NETFILTER_XT_MATCH_HASHLIMIT
59014 tristate '"hashlimit" match support' 57349 tristate '"hashlimit" match support'
59015 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n) 57350 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
59016diff -urNp linux-2.6.38.3/net/netfilter/Makefile linux-2.6.38.3/net/netfilter/Makefile 57351diff -urNp linux-2.6.38.2/net/netfilter/Makefile linux-2.6.38.2/net/netfilter/Makefile
59017--- linux-2.6.38.3/net/netfilter/Makefile 2011-03-14 21:20:32.000000000 -0400 57352--- linux-2.6.38.2/net/netfilter/Makefile 2011-03-14 21:20:32.000000000 -0400
59018+++ linux-2.6.38.3/net/netfilter/Makefile 2011-04-17 15:57:33.000000000 -0400 57353+++ linux-2.6.38.2/net/netfilter/Makefile 2011-03-21 18:31:35.000000000 -0400
59019@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) += 57354@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) +=
59020 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o 57355 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
59021 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o 57356 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
@@ -59024,9 +57359,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/Makefile linux-2.6.38.3/net/netfilter/Ma
59024 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o 57359 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
59025 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o 57360 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
59026 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o 57361 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
59027diff -urNp linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 57362diff -urNp linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c
59028--- linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 2011-03-14 21:20:32.000000000 -0400 57363--- linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 2011-03-14 21:20:32.000000000 -0400
59029+++ linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 2011-04-17 15:57:33.000000000 -0400 57364+++ linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 2011-03-21 18:31:35.000000000 -0400
59030@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla 57365@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla
59031 static int 57366 static int
59032 ctnetlink_parse_tuple(const struct nlattr * const cda[], 57367 ctnetlink_parse_tuple(const struct nlattr * const cda[],
@@ -59036,9 +57371,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.3/ne
59036 { 57371 {
59037 struct nlattr *tb[CTA_TUPLE_MAX+1]; 57372 struct nlattr *tb[CTA_TUPLE_MAX+1];
59038 int err; 57373 int err;
59039diff -urNp linux-2.6.38.3/net/netfilter/xt_gradm.c linux-2.6.38.3/net/netfilter/xt_gradm.c 57374diff -urNp linux-2.6.38.2/net/netfilter/xt_gradm.c linux-2.6.38.2/net/netfilter/xt_gradm.c
59040--- linux-2.6.38.3/net/netfilter/xt_gradm.c 1969-12-31 19:00:00.000000000 -0500 57375--- linux-2.6.38.2/net/netfilter/xt_gradm.c 1969-12-31 19:00:00.000000000 -0500
59041+++ linux-2.6.38.3/net/netfilter/xt_gradm.c 2011-04-17 15:57:33.000000000 -0400 57376+++ linux-2.6.38.2/net/netfilter/xt_gradm.c 2011-03-21 18:31:35.000000000 -0400
59042@@ -0,0 +1,51 @@ 57377@@ -0,0 +1,51 @@
59043+/* 57378+/*
59044+ * gradm match for netfilter 57379+ * gradm match for netfilter
@@ -59091,9 +57426,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/xt_gradm.c linux-2.6.38.3/net/netfilter/
59091+MODULE_LICENSE("GPL"); 57426+MODULE_LICENSE("GPL");
59092+MODULE_ALIAS("ipt_gradm"); 57427+MODULE_ALIAS("ipt_gradm");
59093+MODULE_ALIAS("ip6t_gradm"); 57428+MODULE_ALIAS("ip6t_gradm");
59094diff -urNp linux-2.6.38.3/net/netlink/af_netlink.c linux-2.6.38.3/net/netlink/af_netlink.c 57429diff -urNp linux-2.6.38.2/net/netlink/af_netlink.c linux-2.6.38.2/net/netlink/af_netlink.c
59095--- linux-2.6.38.3/net/netlink/af_netlink.c 2011-03-14 21:20:32.000000000 -0400 57430--- linux-2.6.38.2/net/netlink/af_netlink.c 2011-03-14 21:20:32.000000000 -0400
59096+++ linux-2.6.38.3/net/netlink/af_netlink.c 2011-04-17 15:57:33.000000000 -0400 57431+++ linux-2.6.38.2/net/netlink/af_netlink.c 2011-03-21 18:31:35.000000000 -0400
59097@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f 57432@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f
59098 struct netlink_sock *nlk = nlk_sk(s); 57433 struct netlink_sock *nlk = nlk_sk(s);
59099 57434
@@ -59116,9 +57451,9 @@ diff -urNp linux-2.6.38.3/net/netlink/af_netlink.c linux-2.6.38.3/net/netlink/af
59116 atomic_read(&s->sk_refcnt), 57451 atomic_read(&s->sk_refcnt),
59117 atomic_read(&s->sk_drops), 57452 atomic_read(&s->sk_drops),
59118 sock_i_ino(s) 57453 sock_i_ino(s)
59119diff -urNp linux-2.6.38.3/net/netrom/af_netrom.c linux-2.6.38.3/net/netrom/af_netrom.c 57454diff -urNp linux-2.6.38.2/net/netrom/af_netrom.c linux-2.6.38.2/net/netrom/af_netrom.c
59120--- linux-2.6.38.3/net/netrom/af_netrom.c 2011-03-14 21:20:32.000000000 -0400 57455--- linux-2.6.38.2/net/netrom/af_netrom.c 2011-03-14 21:20:32.000000000 -0400
59121+++ linux-2.6.38.3/net/netrom/af_netrom.c 2011-04-17 15:57:33.000000000 -0400 57456+++ linux-2.6.38.2/net/netrom/af_netrom.c 2011-03-21 18:31:35.000000000 -0400
59122@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc 57457@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc
59123 struct sock *sk = sock->sk; 57458 struct sock *sk = sock->sk;
59124 struct nr_sock *nr = nr_sk(sk); 57459 struct nr_sock *nr = nr_sk(sk);
@@ -59135,9 +57470,9 @@ diff -urNp linux-2.6.38.3/net/netrom/af_netrom.c linux-2.6.38.3/net/netrom/af_ne
59135 sax->fsa_ax25.sax25_call = nr->source_addr; 57470 sax->fsa_ax25.sax25_call = nr->source_addr;
59136 *uaddr_len = sizeof(struct sockaddr_ax25); 57471 *uaddr_len = sizeof(struct sockaddr_ax25);
59137 } 57472 }
59138diff -urNp linux-2.6.38.3/net/packet/af_packet.c linux-2.6.38.3/net/packet/af_packet.c 57473diff -urNp linux-2.6.38.2/net/packet/af_packet.c linux-2.6.38.2/net/packet/af_packet.c
59139--- linux-2.6.38.3/net/packet/af_packet.c 2011-03-14 21:20:32.000000000 -0400 57474--- linux-2.6.38.2/net/packet/af_packet.c 2011-03-14 21:20:32.000000000 -0400
59140+++ linux-2.6.38.3/net/packet/af_packet.c 2011-04-17 15:57:33.000000000 -0400 57475+++ linux-2.6.38.2/net/packet/af_packet.c 2011-03-21 18:31:35.000000000 -0400
59141@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock 57476@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock
59142 case PACKET_HDRLEN: 57477 case PACKET_HDRLEN:
59143 if (len > sizeof(int)) 57478 if (len > sizeof(int))
@@ -59168,9 +57503,9 @@ diff -urNp linux-2.6.38.3/net/packet/af_packet.c linux-2.6.38.3/net/packet/af_pa
59168 atomic_read(&s->sk_refcnt), 57503 atomic_read(&s->sk_refcnt),
59169 s->sk_type, 57504 s->sk_type,
59170 ntohs(po->num), 57505 ntohs(po->num),
59171diff -urNp linux-2.6.38.3/net/phonet/af_phonet.c linux-2.6.38.3/net/phonet/af_phonet.c 57506diff -urNp linux-2.6.38.2/net/phonet/af_phonet.c linux-2.6.38.2/net/phonet/af_phonet.c
59172--- linux-2.6.38.3/net/phonet/af_phonet.c 2011-03-14 21:20:32.000000000 -0400 57507--- linux-2.6.38.2/net/phonet/af_phonet.c 2011-03-14 21:20:32.000000000 -0400
59173+++ linux-2.6.38.3/net/phonet/af_phonet.c 2011-04-17 15:57:33.000000000 -0400 57508+++ linux-2.6.38.2/net/phonet/af_phonet.c 2011-03-21 18:31:35.000000000 -0400
59174@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr 57509@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr
59175 { 57510 {
59176 struct phonet_protocol *pp; 57511 struct phonet_protocol *pp;
@@ -59189,9 +57524,9 @@ diff -urNp linux-2.6.38.3/net/phonet/af_phonet.c linux-2.6.38.3/net/phonet/af_ph
59189 return -EINVAL; 57524 return -EINVAL;
59190 57525
59191 err = proto_register(pp->prot, 1); 57526 err = proto_register(pp->prot, 1);
59192diff -urNp linux-2.6.38.3/net/phonet/socket.c linux-2.6.38.3/net/phonet/socket.c 57527diff -urNp linux-2.6.38.2/net/phonet/socket.c linux-2.6.38.2/net/phonet/socket.c
59193--- linux-2.6.38.3/net/phonet/socket.c 2011-03-14 21:20:32.000000000 -0400 57528--- linux-2.6.38.2/net/phonet/socket.c 2011-03-14 21:20:32.000000000 -0400
59194+++ linux-2.6.38.3/net/phonet/socket.c 2011-04-17 15:57:33.000000000 -0400 57529+++ linux-2.6.38.2/net/phonet/socket.c 2011-03-21 18:31:35.000000000 -0400
59195@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f 57530@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f
59196 sk->sk_state, 57531 sk->sk_state,
59197 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk), 57532 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk),
@@ -59206,9 +57541,9 @@ diff -urNp linux-2.6.38.3/net/phonet/socket.c linux-2.6.38.3/net/phonet/socket.c
59206 atomic_read(&sk->sk_drops), &len); 57541 atomic_read(&sk->sk_drops), &len);
59207 } 57542 }
59208 seq_printf(seq, "%*s\n", 127 - len, ""); 57543 seq_printf(seq, "%*s\n", 127 - len, "");
59209diff -urNp linux-2.6.38.3/net/sctp/proc.c linux-2.6.38.3/net/sctp/proc.c 57544diff -urNp linux-2.6.38.2/net/sctp/proc.c linux-2.6.38.2/net/sctp/proc.c
59210--- linux-2.6.38.3/net/sctp/proc.c 2011-03-14 21:20:32.000000000 -0400 57545--- linux-2.6.38.2/net/sctp/proc.c 2011-03-14 21:20:32.000000000 -0400
59211+++ linux-2.6.38.3/net/sctp/proc.c 2011-04-17 15:57:33.000000000 -0400 57546+++ linux-2.6.38.2/net/sctp/proc.c 2011-03-21 18:31:35.000000000 -0400
59212@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_ 57547@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_
59213 sctp_for_each_hentry(epb, node, &head->chain) { 57548 sctp_for_each_hentry(epb, node, &head->chain) {
59214 ep = sctp_ep(epb); 57549 ep = sctp_ep(epb);
@@ -59237,9 +57572,9 @@ diff -urNp linux-2.6.38.3/net/sctp/proc.c linux-2.6.38.3/net/sctp/proc.c
59237 assoc->state, hash, 57572 assoc->state, hash,
59238 assoc->assoc_id, 57573 assoc->assoc_id,
59239 assoc->sndbuf_used, 57574 assoc->sndbuf_used,
59240diff -urNp linux-2.6.38.3/net/sctp/socket.c linux-2.6.38.3/net/sctp/socket.c 57575diff -urNp linux-2.6.38.2/net/sctp/socket.c linux-2.6.38.2/net/sctp/socket.c
59241--- linux-2.6.38.3/net/sctp/socket.c 2011-03-14 21:20:32.000000000 -0400 57576--- linux-2.6.38.2/net/sctp/socket.c 2011-03-14 21:20:32.000000000 -0400
59242+++ linux-2.6.38.3/net/sctp/socket.c 2011-04-17 15:57:33.000000000 -0400 57577+++ linux-2.6.38.2/net/sctp/socket.c 2011-03-21 18:31:35.000000000 -0400
59243@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc 57578@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc
59244 struct sctp_sndrcvinfo *sinfo; 57579 struct sctp_sndrcvinfo *sinfo;
59245 struct sctp_initmsg *sinit; 57580 struct sctp_initmsg *sinit;
@@ -59258,9 +57593,9 @@ diff -urNp linux-2.6.38.3/net/sctp/socket.c linux-2.6.38.3/net/sctp/socket.c
59258 return -EFAULT; 57593 return -EFAULT;
59259 to += addrlen; 57594 to += addrlen;
59260 cnt++; 57595 cnt++;
59261diff -urNp linux-2.6.38.3/net/socket.c linux-2.6.38.3/net/socket.c 57596diff -urNp linux-2.6.38.2/net/socket.c linux-2.6.38.2/net/socket.c
59262--- linux-2.6.38.3/net/socket.c 2011-04-18 17:27:16.000000000 -0400 57597--- linux-2.6.38.2/net/socket.c 2011-03-28 17:42:40.000000000 -0400
59263+++ linux-2.6.38.3/net/socket.c 2011-04-17 15:57:33.000000000 -0400 57598+++ linux-2.6.38.2/net/socket.c 2011-03-28 17:42:53.000000000 -0400
59264@@ -88,6 +88,7 @@ 57599@@ -88,6 +88,7 @@
59265 #include <linux/nsproxy.h> 57600 #include <linux/nsproxy.h>
59266 #include <linux/magic.h> 57601 #include <linux/magic.h>
@@ -59411,9 +57746,9 @@ diff -urNp linux-2.6.38.3/net/socket.c linux-2.6.38.3/net/socket.c
59411 err = 57746 err =
59412 security_socket_connect(sock, (struct sockaddr *)&address, addrlen); 57747 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
59413 if (err) 57748 if (err)
59414diff -urNp linux-2.6.38.3/net/sunrpc/sched.c linux-2.6.38.3/net/sunrpc/sched.c 57749diff -urNp linux-2.6.38.2/net/sunrpc/sched.c linux-2.6.38.2/net/sunrpc/sched.c
59415--- linux-2.6.38.3/net/sunrpc/sched.c 2011-04-18 17:27:14.000000000 -0400 57750--- linux-2.6.38.2/net/sunrpc/sched.c 2011-03-23 17:20:08.000000000 -0400
59416+++ linux-2.6.38.3/net/sunrpc/sched.c 2011-04-17 15:57:33.000000000 -0400 57751+++ linux-2.6.38.2/net/sunrpc/sched.c 2011-03-23 17:21:51.000000000 -0400
59417@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w 57752@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w
59418 #ifdef RPC_DEBUG 57753 #ifdef RPC_DEBUG
59419 static void rpc_task_set_debuginfo(struct rpc_task *task) 57754 static void rpc_task_set_debuginfo(struct rpc_task *task)
@@ -59426,9 +57761,9 @@ diff -urNp linux-2.6.38.3/net/sunrpc/sched.c linux-2.6.38.3/net/sunrpc/sched.c
59426 } 57761 }
59427 #else 57762 #else
59428 static inline void rpc_task_set_debuginfo(struct rpc_task *task) 57763 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
59429diff -urNp linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 57764diff -urNp linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c
59430--- linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-14 21:20:32.000000000 -0400 57765--- linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-14 21:20:32.000000000 -0400
59431+++ linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 2011-04-17 15:57:33.000000000 -0400 57766+++ linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-21 18:31:35.000000000 -0400
59432@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta 57767@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta
59433 len -= *ppos; 57768 len -= *ppos;
59434 if (len > *lenp) 57769 if (len > *lenp)
@@ -59438,9 +57773,9 @@ diff -urNp linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.3/net/sunr
59438 return -EFAULT; 57773 return -EFAULT;
59439 *lenp = len; 57774 *lenp = len;
59440 *ppos += len; 57775 *ppos += len;
59441diff -urNp linux-2.6.38.3/net/sysctl_net.c linux-2.6.38.3/net/sysctl_net.c 57776diff -urNp linux-2.6.38.2/net/sysctl_net.c linux-2.6.38.2/net/sysctl_net.c
59442--- linux-2.6.38.3/net/sysctl_net.c 2011-03-14 21:20:32.000000000 -0400 57777--- linux-2.6.38.2/net/sysctl_net.c 2011-03-14 21:20:32.000000000 -0400
59443+++ linux-2.6.38.3/net/sysctl_net.c 2011-04-17 15:57:33.000000000 -0400 57778+++ linux-2.6.38.2/net/sysctl_net.c 2011-03-21 18:31:35.000000000 -0400
59444@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct 57779@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct
59445 struct ctl_table *table) 57780 struct ctl_table *table)
59446 { 57781 {
@@ -59450,9 +57785,9 @@ diff -urNp linux-2.6.38.3/net/sysctl_net.c linux-2.6.38.3/net/sysctl_net.c
59450 int mode = (table->mode >> 6) & 7; 57785 int mode = (table->mode >> 6) & 7;
59451 return (mode << 6) | (mode << 3) | mode; 57786 return (mode << 6) | (mode << 3) | mode;
59452 } 57787 }
59453diff -urNp linux-2.6.38.3/net/tipc/socket.c linux-2.6.38.3/net/tipc/socket.c 57788diff -urNp linux-2.6.38.2/net/tipc/socket.c linux-2.6.38.2/net/tipc/socket.c
59454--- linux-2.6.38.3/net/tipc/socket.c 2011-03-14 21:20:32.000000000 -0400 57789--- linux-2.6.38.2/net/tipc/socket.c 2011-03-14 21:20:32.000000000 -0400
59455+++ linux-2.6.38.3/net/tipc/socket.c 2011-04-17 15:57:33.000000000 -0400 57790+++ linux-2.6.38.2/net/tipc/socket.c 2011-03-21 18:31:35.000000000 -0400
59456@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock, 57791@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock,
59457 } else { 57792 } else {
59458 if (res == 0) 57793 if (res == 0)
@@ -59465,9 +57800,9 @@ diff -urNp linux-2.6.38.3/net/tipc/socket.c linux-2.6.38.3/net/tipc/socket.c
59465 sock->state = SS_DISCONNECTING; 57800 sock->state = SS_DISCONNECTING;
59466 } 57801 }
59467 57802
59468diff -urNp linux-2.6.38.3/net/unix/af_unix.c linux-2.6.38.3/net/unix/af_unix.c 57803diff -urNp linux-2.6.38.2/net/unix/af_unix.c linux-2.6.38.2/net/unix/af_unix.c
59469--- linux-2.6.38.3/net/unix/af_unix.c 2011-03-14 21:20:32.000000000 -0400 57804--- linux-2.6.38.2/net/unix/af_unix.c 2011-03-14 21:20:32.000000000 -0400
59470+++ linux-2.6.38.3/net/unix/af_unix.c 2011-04-17 15:57:33.000000000 -0400 57805+++ linux-2.6.38.2/net/unix/af_unix.c 2011-03-21 18:31:35.000000000 -0400
59471@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru 57806@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru
59472 err = -ECONNREFUSED; 57807 err = -ECONNREFUSED;
59473 if (!S_ISSOCK(inode->i_mode)) 57808 if (!S_ISSOCK(inode->i_mode))
@@ -59538,9 +57873,9 @@ diff -urNp linux-2.6.38.3/net/unix/af_unix.c linux-2.6.38.3/net/unix/af_unix.c
59538 atomic_read(&s->sk_refcnt), 57873 atomic_read(&s->sk_refcnt),
59539 0, 57874 0,
59540 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0, 57875 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0,
59541diff -urNp linux-2.6.38.3/net/wireless/reg.c linux-2.6.38.3/net/wireless/reg.c 57876diff -urNp linux-2.6.38.2/net/wireless/reg.c linux-2.6.38.2/net/wireless/reg.c
59542--- linux-2.6.38.3/net/wireless/reg.c 2011-03-14 21:20:32.000000000 -0400 57877--- linux-2.6.38.2/net/wireless/reg.c 2011-03-14 21:20:32.000000000 -0400
59543+++ linux-2.6.38.3/net/wireless/reg.c 2011-04-17 15:57:33.000000000 -0400 57878+++ linux-2.6.38.2/net/wireless/reg.c 2011-03-21 18:31:35.000000000 -0400
59544@@ -54,7 +54,7 @@ 57879@@ -54,7 +54,7 @@
59545 printk(KERN_DEBUG pr_fmt(format), ##args); \ 57880 printk(KERN_DEBUG pr_fmt(format), ##args); \
59546 } while (0) 57881 } while (0)
@@ -59550,9 +57885,9 @@ diff -urNp linux-2.6.38.3/net/wireless/reg.c linux-2.6.38.3/net/wireless/reg.c
59550 #endif 57885 #endif
59551 57886
59552 /* Receipt of information from last regulatory request */ 57887 /* Receipt of information from last regulatory request */
59553diff -urNp linux-2.6.38.3/net/wireless/wext-core.c linux-2.6.38.3/net/wireless/wext-core.c 57888diff -urNp linux-2.6.38.2/net/wireless/wext-core.c linux-2.6.38.2/net/wireless/wext-core.c
59554--- linux-2.6.38.3/net/wireless/wext-core.c 2011-03-14 21:20:32.000000000 -0400 57889--- linux-2.6.38.2/net/wireless/wext-core.c 2011-03-14 21:20:32.000000000 -0400
59555+++ linux-2.6.38.3/net/wireless/wext-core.c 2011-04-17 15:57:33.000000000 -0400 57890+++ linux-2.6.38.2/net/wireless/wext-core.c 2011-03-21 18:31:35.000000000 -0400
59556@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc 57891@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc
59557 */ 57892 */
59558 57893
@@ -59586,9 +57921,9 @@ diff -urNp linux-2.6.38.3/net/wireless/wext-core.c linux-2.6.38.3/net/wireless/w
59586 err = handler(dev, info, (union iwreq_data *) iwp, extra); 57921 err = handler(dev, info, (union iwreq_data *) iwp, extra);
59587 57922
59588 iwp->length += essid_compat; 57923 iwp->length += essid_compat;
59589diff -urNp linux-2.6.38.3/net/x25/x25_facilities.c linux-2.6.38.3/net/x25/x25_facilities.c 57924diff -urNp linux-2.6.38.2/net/x25/x25_facilities.c linux-2.6.38.2/net/x25/x25_facilities.c
59590--- linux-2.6.38.3/net/x25/x25_facilities.c 2011-03-14 21:20:32.000000000 -0400 57925--- linux-2.6.38.2/net/x25/x25_facilities.c 2011-03-14 21:20:32.000000000 -0400
59591+++ linux-2.6.38.3/net/x25/x25_facilities.c 2011-04-17 15:57:33.000000000 -0400 57926+++ linux-2.6.38.2/net/x25/x25_facilities.c 2011-03-21 18:31:35.000000000 -0400
59592@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff 57927@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff
59593 break; 57928 break;
59594 default: 57929 default:
@@ -59599,9 +57934,9 @@ diff -urNp linux-2.6.38.3/net/x25/x25_facilities.c linux-2.6.38.3/net/x25/x25_fa
59599 break; 57934 break;
59600 } 57935 }
59601 len -= p[1] + 2; 57936 len -= p[1] + 2;
59602diff -urNp linux-2.6.38.3/net/xfrm/xfrm_policy.c linux-2.6.38.3/net/xfrm/xfrm_policy.c 57937diff -urNp linux-2.6.38.2/net/xfrm/xfrm_policy.c linux-2.6.38.2/net/xfrm/xfrm_policy.c
59603--- linux-2.6.38.3/net/xfrm/xfrm_policy.c 2011-03-14 21:20:32.000000000 -0400 57938--- linux-2.6.38.2/net/xfrm/xfrm_policy.c 2011-03-14 21:20:32.000000000 -0400
59604+++ linux-2.6.38.3/net/xfrm/xfrm_policy.c 2011-04-17 15:57:33.000000000 -0400 57939+++ linux-2.6.38.2/net/xfrm/xfrm_policy.c 2011-03-21 18:31:35.000000000 -0400
59605@@ -1507,7 +1507,7 @@ free_dst: 57940@@ -1507,7 +1507,7 @@ free_dst:
59606 goto out; 57941 goto out;
59607 } 57942 }
@@ -59629,9 +57964,9 @@ diff -urNp linux-2.6.38.3/net/xfrm/xfrm_policy.c linux-2.6.38.3/net/xfrm/xfrm_po
59629 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl) 57964 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl)
59630 { 57965 {
59631 #ifdef CONFIG_XFRM_SUB_POLICY 57966 #ifdef CONFIG_XFRM_SUB_POLICY
59632diff -urNp linux-2.6.38.3/scripts/basic/fixdep.c linux-2.6.38.3/scripts/basic/fixdep.c 57967diff -urNp linux-2.6.38.2/scripts/basic/fixdep.c linux-2.6.38.2/scripts/basic/fixdep.c
59633--- linux-2.6.38.3/scripts/basic/fixdep.c 2011-03-14 21:20:32.000000000 -0400 57968--- linux-2.6.38.2/scripts/basic/fixdep.c 2011-03-14 21:20:32.000000000 -0400
59634+++ linux-2.6.38.3/scripts/basic/fixdep.c 2011-04-17 15:57:33.000000000 -0400 57969+++ linux-2.6.38.2/scripts/basic/fixdep.c 2011-03-21 18:31:35.000000000 -0400
59635@@ -235,9 +235,9 @@ static void use_config(const char *m, in 57970@@ -235,9 +235,9 @@ static void use_config(const char *m, in
59636 57971
59637 static void parse_config_file(const char *map, size_t len) 57972 static void parse_config_file(const char *map, size_t len)
@@ -59653,9 +57988,9 @@ diff -urNp linux-2.6.38.3/scripts/basic/fixdep.c linux-2.6.38.3/scripts/basic/fi
59653 57988
59654 if (*p != INT_CONF) { 57989 if (*p != INT_CONF) {
59655 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n", 57990 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n",
59656diff -urNp linux-2.6.38.3/scripts/kallsyms.c linux-2.6.38.3/scripts/kallsyms.c 57991diff -urNp linux-2.6.38.2/scripts/kallsyms.c linux-2.6.38.2/scripts/kallsyms.c
59657--- linux-2.6.38.3/scripts/kallsyms.c 2011-03-14 21:20:32.000000000 -0400 57992--- linux-2.6.38.2/scripts/kallsyms.c 2011-03-14 21:20:32.000000000 -0400
59658+++ linux-2.6.38.3/scripts/kallsyms.c 2011-04-17 15:57:33.000000000 -0400 57993+++ linux-2.6.38.2/scripts/kallsyms.c 2011-03-21 18:31:35.000000000 -0400
59659@@ -43,10 +43,10 @@ struct text_range { 57994@@ -43,10 +43,10 @@ struct text_range {
59660 57995
59661 static unsigned long long _text; 57996 static unsigned long long _text;
@@ -59671,9 +58006,9 @@ diff -urNp linux-2.6.38.3/scripts/kallsyms.c linux-2.6.38.3/scripts/kallsyms.c
59671 }; 58006 };
59672 #define text_range_text (&text_ranges[0]) 58007 #define text_range_text (&text_ranges[0])
59673 #define text_range_inittext (&text_ranges[1]) 58008 #define text_range_inittext (&text_ranges[1])
59674diff -urNp linux-2.6.38.3/scripts/mod/file2alias.c linux-2.6.38.3/scripts/mod/file2alias.c 58009diff -urNp linux-2.6.38.2/scripts/mod/file2alias.c linux-2.6.38.2/scripts/mod/file2alias.c
59675--- linux-2.6.38.3/scripts/mod/file2alias.c 2011-03-14 21:20:32.000000000 -0400 58010--- linux-2.6.38.2/scripts/mod/file2alias.c 2011-03-14 21:20:32.000000000 -0400
59676+++ linux-2.6.38.3/scripts/mod/file2alias.c 2011-04-17 15:57:33.000000000 -0400 58011+++ linux-2.6.38.2/scripts/mod/file2alias.c 2011-03-21 18:31:35.000000000 -0400
59677@@ -72,7 +72,7 @@ static void device_id_check(const char * 58012@@ -72,7 +72,7 @@ static void device_id_check(const char *
59678 unsigned long size, unsigned long id_size, 58013 unsigned long size, unsigned long id_size,
59679 void *symval) 58014 void *symval)
@@ -59728,9 +58063,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/file2alias.c linux-2.6.38.3/scripts/mod/fi
59728 58063
59729 sprintf(alias, "dmi*"); 58064 sprintf(alias, "dmi*");
59730 58065
59731diff -urNp linux-2.6.38.3/scripts/mod/modpost.c linux-2.6.38.3/scripts/mod/modpost.c 58066diff -urNp linux-2.6.38.2/scripts/mod/modpost.c linux-2.6.38.2/scripts/mod/modpost.c
59732--- linux-2.6.38.3/scripts/mod/modpost.c 2011-03-14 21:20:32.000000000 -0400 58067--- linux-2.6.38.2/scripts/mod/modpost.c 2011-03-14 21:20:32.000000000 -0400
59733+++ linux-2.6.38.3/scripts/mod/modpost.c 2011-04-17 15:57:33.000000000 -0400 58068+++ linux-2.6.38.2/scripts/mod/modpost.c 2011-03-21 18:31:35.000000000 -0400
59734@@ -896,6 +896,7 @@ enum mismatch { 58069@@ -896,6 +896,7 @@ enum mismatch {
59735 ANY_INIT_TO_ANY_EXIT, 58070 ANY_INIT_TO_ANY_EXIT,
59736 ANY_EXIT_TO_ANY_INIT, 58071 ANY_EXIT_TO_ANY_INIT,
@@ -59798,9 +58133,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/modpost.c linux-2.6.38.3/scripts/mod/modpo
59798 goto close_write; 58133 goto close_write;
59799 58134
59800 tmp = NOFAIL(malloc(b->pos)); 58135 tmp = NOFAIL(malloc(b->pos));
59801diff -urNp linux-2.6.38.3/scripts/mod/modpost.h linux-2.6.38.3/scripts/mod/modpost.h 58136diff -urNp linux-2.6.38.2/scripts/mod/modpost.h linux-2.6.38.2/scripts/mod/modpost.h
59802--- linux-2.6.38.3/scripts/mod/modpost.h 2011-03-14 21:20:32.000000000 -0400 58137--- linux-2.6.38.2/scripts/mod/modpost.h 2011-03-14 21:20:32.000000000 -0400
59803+++ linux-2.6.38.3/scripts/mod/modpost.h 2011-04-17 15:57:33.000000000 -0400 58138+++ linux-2.6.38.2/scripts/mod/modpost.h 2011-03-21 18:31:35.000000000 -0400
59804@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e 58139@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e
59805 58140
59806 struct buffer { 58141 struct buffer {
@@ -59820,9 +58155,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/modpost.h linux-2.6.38.3/scripts/mod/modpo
59820 58155
59821 struct module { 58156 struct module {
59822 struct module *next; 58157 struct module *next;
59823diff -urNp linux-2.6.38.3/scripts/mod/sumversion.c linux-2.6.38.3/scripts/mod/sumversion.c 58158diff -urNp linux-2.6.38.2/scripts/mod/sumversion.c linux-2.6.38.2/scripts/mod/sumversion.c
59824--- linux-2.6.38.3/scripts/mod/sumversion.c 2011-03-14 21:20:32.000000000 -0400 58159--- linux-2.6.38.2/scripts/mod/sumversion.c 2011-03-14 21:20:32.000000000 -0400
59825+++ linux-2.6.38.3/scripts/mod/sumversion.c 2011-04-17 15:57:33.000000000 -0400 58160+++ linux-2.6.38.2/scripts/mod/sumversion.c 2011-03-21 18:31:35.000000000 -0400
59826@@ -470,7 +470,7 @@ static void write_version(const char *fi 58161@@ -470,7 +470,7 @@ static void write_version(const char *fi
59827 goto out; 58162 goto out;
59828 } 58163 }
@@ -59832,9 +58167,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/sumversion.c linux-2.6.38.3/scripts/mod/su
59832 warn("writing sum in %s failed: %s\n", 58167 warn("writing sum in %s failed: %s\n",
59833 filename, strerror(errno)); 58168 filename, strerror(errno));
59834 goto out; 58169 goto out;
59835diff -urNp linux-2.6.38.3/scripts/pnmtologo.c linux-2.6.38.3/scripts/pnmtologo.c 58170diff -urNp linux-2.6.38.2/scripts/pnmtologo.c linux-2.6.38.2/scripts/pnmtologo.c
59836--- linux-2.6.38.3/scripts/pnmtologo.c 2011-03-14 21:20:32.000000000 -0400 58171--- linux-2.6.38.2/scripts/pnmtologo.c 2011-03-14 21:20:32.000000000 -0400
59837+++ linux-2.6.38.3/scripts/pnmtologo.c 2011-04-17 15:57:33.000000000 -0400 58172+++ linux-2.6.38.2/scripts/pnmtologo.c 2011-03-21 18:31:35.000000000 -0400
59838@@ -237,14 +237,14 @@ static void write_header(void) 58173@@ -237,14 +237,14 @@ static void write_header(void)
59839 fprintf(out, " * Linux logo %s\n", logoname); 58174 fprintf(out, " * Linux logo %s\n", logoname);
59840 fputs(" */\n\n", out); 58175 fputs(" */\n\n", out);
@@ -59861,9 +58196,9 @@ diff -urNp linux-2.6.38.3/scripts/pnmtologo.c linux-2.6.38.3/scripts/pnmtologo.c
59861 logoname); 58196 logoname);
59862 write_hex_cnt = 0; 58197 write_hex_cnt = 0;
59863 for (i = 0; i < logo_clutsize; i++) { 58198 for (i = 0; i < logo_clutsize; i++) {
59864diff -urNp linux-2.6.38.3/security/apparmor/lsm.c linux-2.6.38.3/security/apparmor/lsm.c 58199diff -urNp linux-2.6.38.2/security/apparmor/lsm.c linux-2.6.38.2/security/apparmor/lsm.c
59865--- linux-2.6.38.3/security/apparmor/lsm.c 2011-03-14 21:20:32.000000000 -0400 58200--- linux-2.6.38.2/security/apparmor/lsm.c 2011-03-14 21:20:32.000000000 -0400
59866+++ linux-2.6.38.3/security/apparmor/lsm.c 2011-04-17 15:57:33.000000000 -0400 58201+++ linux-2.6.38.2/security/apparmor/lsm.c 2011-03-21 18:31:35.000000000 -0400
59867@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc 58202@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc
59868 return error; 58203 return error;
59869 } 58204 }
@@ -59873,9 +58208,9 @@ diff -urNp linux-2.6.38.3/security/apparmor/lsm.c linux-2.6.38.3/security/apparm
59873 .name = "apparmor", 58208 .name = "apparmor",
59874 58209
59875 .ptrace_access_check = apparmor_ptrace_access_check, 58210 .ptrace_access_check = apparmor_ptrace_access_check,
59876diff -urNp linux-2.6.38.3/security/commoncap.c linux-2.6.38.3/security/commoncap.c 58211diff -urNp linux-2.6.38.2/security/commoncap.c linux-2.6.38.2/security/commoncap.c
59877--- linux-2.6.38.3/security/commoncap.c 2011-03-14 21:20:32.000000000 -0400 58212--- linux-2.6.38.2/security/commoncap.c 2011-03-14 21:20:32.000000000 -0400
59878+++ linux-2.6.38.3/security/commoncap.c 2011-04-17 15:57:33.000000000 -0400 58213+++ linux-2.6.38.2/security/commoncap.c 2011-03-21 18:31:35.000000000 -0400
59879@@ -27,6 +27,7 @@ 58214@@ -27,6 +27,7 @@
59880 #include <linux/sched.h> 58215 #include <linux/sched.h>
59881 #include <linux/prctl.h> 58216 #include <linux/prctl.h>
@@ -59907,9 +58242,9 @@ diff -urNp linux-2.6.38.3/security/commoncap.c linux-2.6.38.3/security/commoncap
59907 if (cred->uid != 0) { 58242 if (cred->uid != 0) {
59908 if (bprm->cap_effective) 58243 if (bprm->cap_effective)
59909 return 1; 58244 return 1;
59910diff -urNp linux-2.6.38.3/security/integrity/ima/ima_api.c linux-2.6.38.3/security/integrity/ima/ima_api.c 58245diff -urNp linux-2.6.38.2/security/integrity/ima/ima_api.c linux-2.6.38.2/security/integrity/ima/ima_api.c
59911--- linux-2.6.38.3/security/integrity/ima/ima_api.c 2011-03-14 21:20:32.000000000 -0400 58246--- linux-2.6.38.2/security/integrity/ima/ima_api.c 2011-03-14 21:20:32.000000000 -0400
59912+++ linux-2.6.38.3/security/integrity/ima/ima_api.c 2011-04-17 15:57:33.000000000 -0400 58247+++ linux-2.6.38.2/security/integrity/ima/ima_api.c 2011-03-21 18:31:35.000000000 -0400
59913@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino 58248@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino
59914 int result; 58249 int result;
59915 58250
@@ -59919,9 +58254,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima_api.c linux-2.6.38.3/securi
59919 58254
59920 entry = kmalloc(sizeof(*entry), GFP_KERNEL); 58255 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
59921 if (!entry) { 58256 if (!entry) {
59922diff -urNp linux-2.6.38.3/security/integrity/ima/ima_fs.c linux-2.6.38.3/security/integrity/ima/ima_fs.c 58257diff -urNp linux-2.6.38.2/security/integrity/ima/ima_fs.c linux-2.6.38.2/security/integrity/ima/ima_fs.c
59923--- linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-03-14 21:20:32.000000000 -0400 58258--- linux-2.6.38.2/security/integrity/ima/ima_fs.c 2011-03-14 21:20:32.000000000 -0400
59924+++ linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-04-17 15:57:33.000000000 -0400 58259+++ linux-2.6.38.2/security/integrity/ima/ima_fs.c 2011-03-21 18:31:35.000000000 -0400
59925@@ -28,12 +28,12 @@ 58260@@ -28,12 +28,12 @@
59926 static int valid_policy = 1; 58261 static int valid_policy = 1;
59927 #define TMPBUFLEN 12 58262 #define TMPBUFLEN 12
@@ -59937,9 +58272,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima_fs.c linux-2.6.38.3/securit
59937 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len); 58272 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
59938 } 58273 }
59939 58274
59940diff -urNp linux-2.6.38.3/security/integrity/ima/ima.h linux-2.6.38.3/security/integrity/ima/ima.h 58275diff -urNp linux-2.6.38.2/security/integrity/ima/ima.h linux-2.6.38.2/security/integrity/ima/ima.h
59941--- linux-2.6.38.3/security/integrity/ima/ima.h 2011-03-14 21:20:32.000000000 -0400 58276--- linux-2.6.38.2/security/integrity/ima/ima.h 2011-03-14 21:20:32.000000000 -0400
59942+++ linux-2.6.38.3/security/integrity/ima/ima.h 2011-04-17 15:57:33.000000000 -0400 58277+++ linux-2.6.38.2/security/integrity/ima/ima.h 2011-03-21 18:31:35.000000000 -0400
59943@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino 58278@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino
59944 extern spinlock_t ima_queue_lock; 58279 extern spinlock_t ima_queue_lock;
59945 58280
@@ -59951,9 +58286,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima.h linux-2.6.38.3/security/i
59951 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE]; 58286 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
59952 }; 58287 };
59953 extern struct ima_h_table ima_htable; 58288 extern struct ima_h_table ima_htable;
59954diff -urNp linux-2.6.38.3/security/integrity/ima/ima_queue.c linux-2.6.38.3/security/integrity/ima/ima_queue.c 58289diff -urNp linux-2.6.38.2/security/integrity/ima/ima_queue.c linux-2.6.38.2/security/integrity/ima/ima_queue.c
59955--- linux-2.6.38.3/security/integrity/ima/ima_queue.c 2011-03-14 21:20:32.000000000 -0400 58290--- linux-2.6.38.2/security/integrity/ima/ima_queue.c 2011-03-14 21:20:32.000000000 -0400
59956+++ linux-2.6.38.3/security/integrity/ima/ima_queue.c 2011-04-17 15:57:33.000000000 -0400 58291+++ linux-2.6.38.2/security/integrity/ima/ima_queue.c 2011-03-21 18:31:35.000000000 -0400
59957@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i 58292@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i
59958 INIT_LIST_HEAD(&qe->later); 58293 INIT_LIST_HEAD(&qe->later);
59959 list_add_tail_rcu(&qe->later, &ima_measurements); 58294 list_add_tail_rcu(&qe->later, &ima_measurements);
@@ -59963,9 +58298,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima_queue.c linux-2.6.38.3/secu
59963 key = ima_hash_key(entry->digest); 58298 key = ima_hash_key(entry->digest);
59964 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]); 58299 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
59965 return 0; 58300 return 0;
59966diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig 58301diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
59967--- linux-2.6.38.3/security/Kconfig 2011-03-14 21:20:32.000000000 -0400 58302--- linux-2.6.38.2/security/Kconfig 2011-03-14 21:20:32.000000000 -0400
59968+++ linux-2.6.38.3/security/Kconfig 2011-04-17 15:57:33.000000000 -0400 58303+++ linux-2.6.38.2/security/Kconfig 2011-03-21 18:31:35.000000000 -0400
59969@@ -4,6 +4,527 @@ 58304@@ -4,6 +4,527 @@
59970 58305
59971 menu "Security options" 58306 menu "Security options"
@@ -60025,6 +58360,10 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60025+ know about the non-standard use of the ELF header) therefore it 58360+ know about the non-standard use of the ELF header) therefore it
60026+ has been deprecated in favour of PT_PAX_FLAGS support. 58361+ has been deprecated in favour of PT_PAX_FLAGS support.
60027+ 58362+
58363+ If you have applications not marked by the PT_PAX_FLAGS ELF
58364+ program header then you MUST enable this option otherwise they
58365+ will not get any protection.
58366+
60028+ Note that if you enable PT_PAX_FLAGS marking support as well, 58367+ Note that if you enable PT_PAX_FLAGS marking support as well,
60029+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks. 58368+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks.
60030+ 58369+
@@ -60039,8 +58378,9 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60039+ integrated into the toolchain (the binutils patch is available 58378+ integrated into the toolchain (the binutils patch is available
60040+ from http://pax.grsecurity.net). 58379+ from http://pax.grsecurity.net).
60041+ 58380+
60042+ If your toolchain does not support PT_PAX_FLAGS markings, 58381+ If you have applications not marked by the PT_PAX_FLAGS ELF
60043+ you can create one in most cases with 'paxctl -C'. 58382+ program header then you MUST enable the EI_PAX marking support
58383+ otherwise they will not get any protection.
60044+ 58384+
60045+ Note that if you enable the legacy EI_PAX marking support as well, 58385+ Note that if you enable the legacy EI_PAX marking support as well,
60046+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks. 58386+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
@@ -60349,7 +58689,7 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60349+ 58689+
60350+config PAX_RANDKSTACK 58690+config PAX_RANDKSTACK
60351+ bool "Randomize kernel stack base" 58691+ bool "Randomize kernel stack base"
60352+ depends on PAX_ASLR && X86_TSC && X86 58692+ depends on PAX_ASLR && X86_TSC && X86_32
60353+ help 58693+ help
60354+ By saying Y here the kernel will randomize every task's kernel 58694+ By saying Y here the kernel will randomize every task's kernel
60355+ stack on every system call. This will not only force an attacker 58695+ stack on every system call. This will not only force an attacker
@@ -60459,9 +58799,9 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60459+ this feature. 58799+ this feature.
60460+ 58800+
60461+config PAX_USERCOPY 58801+config PAX_USERCOPY
60462+ bool "Harden heap object copies between kernel and userland" 58802+ bool "Bounds check heap object copies between kernel and userland"
60463+ depends on X86 || PPC || SPARC 58803+ depends on X86 || PPC || SPARC
60464+ depends on GRKERNSEC && (SLAB || SLUB) 58804+ depends on GRKERNSEC && (SLAB || SLUB || SLOB)
60465+ help 58805+ help
60466+ By saying Y here the kernel will enforce the size of heap objects 58806+ By saying Y here the kernel will enforce the size of heap objects
60467+ when they are copied in either direction between the kernel and 58807+ when they are copied in either direction between the kernel and
@@ -60472,13 +58812,8 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60472+ object is otherwise fully initialized) and prevents kernel heap 58812+ object is otherwise fully initialized) and prevents kernel heap
60473+ overflows during userland to kernel copies. 58813+ overflows during userland to kernel copies.
60474+ 58814+
60475+ Note that the current implementation provides the strictest bounds 58815+ Note that the current implementation provides the strictest checks
60476+ checks for the SLUB allocator. 58816+ for the SLUB allocator.
60477+
60478+ Enabling this option also enables per-slab cache protection against
60479+ data in a given cache being copied into/out of via userland
60480+ accessors. Though the whitelist of regions will be reduced over
60481+ time, it notably protects important data structures like task structs.
60482+ 58817+
60483+ If frame pointers are enabled on x86, this option will also restrict 58818+ If frame pointers are enabled on x86, this option will also restrict
60484+ copies into and out of the kernel stack to local variables within a 58819+ copies into and out of the kernel stack to local variables within a
@@ -60503,31 +58838,9 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60503 help 58838 help
60504 This is the portion of low virtual memory which should be protected 58839 This is the portion of low virtual memory which should be protected
60505 from userspace allocation. Keeping a user from writing to low pages 58840 from userspace allocation. Keeping a user from writing to low pages
60506diff -urNp linux-2.6.38.3/security/keys/keyring.c linux-2.6.38.3/security/keys/keyring.c 58841diff -urNp linux-2.6.38.2/security/min_addr.c linux-2.6.38.2/security/min_addr.c
60507--- linux-2.6.38.3/security/keys/keyring.c 2011-03-14 21:20:32.000000000 -0400 58842--- linux-2.6.38.2/security/min_addr.c 2011-03-14 21:20:32.000000000 -0400
60508+++ linux-2.6.38.3/security/keys/keyring.c 2011-04-18 22:03:12.000000000 -0400 58843+++ linux-2.6.38.2/security/min_addr.c 2011-03-21 18:31:35.000000000 -0400
60509@@ -213,15 +213,15 @@ static long keyring_read(const struct ke
60510 ret = -EFAULT;
60511
60512 for (loop = 0; loop < klist->nkeys; loop++) {
60513+ key_serial_t serial;
60514 key = klist->keys[loop];
60515+ serial = key->serial;
60516
60517 tmp = sizeof(key_serial_t);
60518 if (tmp > buflen)
60519 tmp = buflen;
60520
60521- if (copy_to_user(buffer,
60522- &key->serial,
60523- tmp) != 0)
60524+ if (copy_to_user(buffer, &serial, tmp))
60525 goto error;
60526
60527 buflen -= tmp;
60528diff -urNp linux-2.6.38.3/security/min_addr.c linux-2.6.38.3/security/min_addr.c
60529--- linux-2.6.38.3/security/min_addr.c 2011-03-14 21:20:32.000000000 -0400
60530+++ linux-2.6.38.3/security/min_addr.c 2011-04-17 15:57:33.000000000 -0400
60531@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG 58844@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG
60532 */ 58845 */
60533 static void update_mmap_min_addr(void) 58846 static void update_mmap_min_addr(void)
@@ -60544,9 +58857,9 @@ diff -urNp linux-2.6.38.3/security/min_addr.c linux-2.6.38.3/security/min_addr.c
60544 } 58857 }
60545 58858
60546 /* 58859 /*
60547diff -urNp linux-2.6.38.3/security/security.c linux-2.6.38.3/security/security.c 58860diff -urNp linux-2.6.38.2/security/security.c linux-2.6.38.2/security/security.c
60548--- linux-2.6.38.3/security/security.c 2011-03-14 21:20:32.000000000 -0400 58861--- linux-2.6.38.2/security/security.c 2011-03-14 21:20:32.000000000 -0400
60549+++ linux-2.6.38.3/security/security.c 2011-04-17 15:57:33.000000000 -0400 58862+++ linux-2.6.38.2/security/security.c 2011-03-21 18:31:35.000000000 -0400
60550@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI 58863@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI
60551 /* things that live in capability.c */ 58864 /* things that live in capability.c */
60552 extern void __init security_fixup_ops(struct security_operations *ops); 58865 extern void __init security_fixup_ops(struct security_operations *ops);
@@ -60568,9 +58881,9 @@ diff -urNp linux-2.6.38.3/security/security.c linux-2.6.38.3/security/security.c
60568 } 58881 }
60569 58882
60570 /* Save user chosen LSM */ 58883 /* Save user chosen LSM */
60571diff -urNp linux-2.6.38.3/security/selinux/hooks.c linux-2.6.38.3/security/selinux/hooks.c 58884diff -urNp linux-2.6.38.2/security/selinux/hooks.c linux-2.6.38.2/security/selinux/hooks.c
60572--- linux-2.6.38.3/security/selinux/hooks.c 2011-03-14 21:20:32.000000000 -0400 58885--- linux-2.6.38.2/security/selinux/hooks.c 2011-03-14 21:20:32.000000000 -0400
60573+++ linux-2.6.38.3/security/selinux/hooks.c 2011-04-17 15:57:33.000000000 -0400 58886+++ linux-2.6.38.2/security/selinux/hooks.c 2011-03-21 18:31:35.000000000 -0400
60574@@ -90,7 +90,6 @@ 58887@@ -90,7 +90,6 @@
60575 #define NUM_SEL_MNT_OPTS 5 58888 #define NUM_SEL_MNT_OPTS 5
60576 58889
@@ -60588,9 +58901,9 @@ diff -urNp linux-2.6.38.3/security/selinux/hooks.c linux-2.6.38.3/security/selin
60588 .name = "selinux", 58901 .name = "selinux",
60589 58902
60590 .ptrace_access_check = selinux_ptrace_access_check, 58903 .ptrace_access_check = selinux_ptrace_access_check,
60591diff -urNp linux-2.6.38.3/security/smack/smack_lsm.c linux-2.6.38.3/security/smack/smack_lsm.c 58904diff -urNp linux-2.6.38.2/security/smack/smack_lsm.c linux-2.6.38.2/security/smack/smack_lsm.c
60592--- linux-2.6.38.3/security/smack/smack_lsm.c 2011-03-14 21:20:32.000000000 -0400 58905--- linux-2.6.38.2/security/smack/smack_lsm.c 2011-03-14 21:20:32.000000000 -0400
60593+++ linux-2.6.38.3/security/smack/smack_lsm.c 2011-04-17 15:57:33.000000000 -0400 58906+++ linux-2.6.38.2/security/smack/smack_lsm.c 2011-03-21 18:31:35.000000000 -0400
60594@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct 58907@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct
60595 return 0; 58908 return 0;
60596 } 58909 }
@@ -60600,9 +58913,9 @@ diff -urNp linux-2.6.38.3/security/smack/smack_lsm.c linux-2.6.38.3/security/sma
60600 .name = "smack", 58913 .name = "smack",
60601 58914
60602 .ptrace_access_check = smack_ptrace_access_check, 58915 .ptrace_access_check = smack_ptrace_access_check,
60603diff -urNp linux-2.6.38.3/security/tomoyo/tomoyo.c linux-2.6.38.3/security/tomoyo/tomoyo.c 58916diff -urNp linux-2.6.38.2/security/tomoyo/tomoyo.c linux-2.6.38.2/security/tomoyo/tomoyo.c
60604--- linux-2.6.38.3/security/tomoyo/tomoyo.c 2011-03-14 21:20:32.000000000 -0400 58917--- linux-2.6.38.2/security/tomoyo/tomoyo.c 2011-03-14 21:20:32.000000000 -0400
60605+++ linux-2.6.38.3/security/tomoyo/tomoyo.c 2011-04-17 15:57:33.000000000 -0400 58918+++ linux-2.6.38.2/security/tomoyo/tomoyo.c 2011-03-21 18:31:35.000000000 -0400
60606@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa 58919@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa
60607 * tomoyo_security_ops is a "struct security_operations" which is used for 58920 * tomoyo_security_ops is a "struct security_operations" which is used for
60608 * registering TOMOYO. 58921 * registering TOMOYO.
@@ -60612,9 +58925,9 @@ diff -urNp linux-2.6.38.3/security/tomoyo/tomoyo.c linux-2.6.38.3/security/tomoy
60612 .name = "tomoyo", 58925 .name = "tomoyo",
60613 .cred_alloc_blank = tomoyo_cred_alloc_blank, 58926 .cred_alloc_blank = tomoyo_cred_alloc_blank,
60614 .cred_prepare = tomoyo_cred_prepare, 58927 .cred_prepare = tomoyo_cred_prepare,
60615diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.c linux-2.6.38.3/sound/aoa/codecs/onyx.c 58928diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.c linux-2.6.38.2/sound/aoa/codecs/onyx.c
60616--- linux-2.6.38.3/sound/aoa/codecs/onyx.c 2011-03-14 21:20:32.000000000 -0400 58929--- linux-2.6.38.2/sound/aoa/codecs/onyx.c 2011-03-14 21:20:32.000000000 -0400
60617+++ linux-2.6.38.3/sound/aoa/codecs/onyx.c 2011-04-17 15:57:33.000000000 -0400 58930+++ linux-2.6.38.2/sound/aoa/codecs/onyx.c 2011-03-21 18:31:35.000000000 -0400
60618@@ -54,7 +54,7 @@ struct onyx { 58931@@ -54,7 +54,7 @@ struct onyx {
60619 spdif_locked:1, 58932 spdif_locked:1,
60620 analog_locked:1, 58933 analog_locked:1,
@@ -60643,9 +58956,9 @@ diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.c linux-2.6.38.3/sound/aoa/codec
60643 onyx->spdif_locked = onyx->analog_locked = 0; 58956 onyx->spdif_locked = onyx->analog_locked = 0;
60644 mutex_unlock(&onyx->mutex); 58957 mutex_unlock(&onyx->mutex);
60645 58958
60646diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.h linux-2.6.38.3/sound/aoa/codecs/onyx.h 58959diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.h linux-2.6.38.2/sound/aoa/codecs/onyx.h
60647--- linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-03-14 21:20:32.000000000 -0400 58960--- linux-2.6.38.2/sound/aoa/codecs/onyx.h 2011-03-14 21:20:32.000000000 -0400
60648+++ linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-04-17 15:57:33.000000000 -0400 58961+++ linux-2.6.38.2/sound/aoa/codecs/onyx.h 2011-03-21 18:31:35.000000000 -0400
60649@@ -11,6 +11,7 @@ 58962@@ -11,6 +11,7 @@
60650 #include <linux/i2c.h> 58963 #include <linux/i2c.h>
60651 #include <asm/pmac_low_i2c.h> 58964 #include <asm/pmac_low_i2c.h>
@@ -60654,9 +58967,9 @@ diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.h linux-2.6.38.3/sound/aoa/codec
60654 58967
60655 /* PCM3052 register definitions */ 58968 /* PCM3052 register definitions */
60656 58969
60657diff -urNp linux-2.6.38.3/sound/core/oss/pcm_oss.c linux-2.6.38.3/sound/core/oss/pcm_oss.c 58970diff -urNp linux-2.6.38.2/sound/core/oss/pcm_oss.c linux-2.6.38.2/sound/core/oss/pcm_oss.c
60658--- linux-2.6.38.3/sound/core/oss/pcm_oss.c 2011-03-14 21:20:32.000000000 -0400 58971--- linux-2.6.38.2/sound/core/oss/pcm_oss.c 2011-03-14 21:20:32.000000000 -0400
60659+++ linux-2.6.38.3/sound/core/oss/pcm_oss.c 2011-04-17 15:57:33.000000000 -0400 58972+++ linux-2.6.38.2/sound/core/oss/pcm_oss.c 2011-03-21 18:31:35.000000000 -0400
60660@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct 58973@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct
60661 } 58974 }
60662 } 58975 }
@@ -60668,9 +58981,9 @@ diff -urNp linux-2.6.38.3/sound/core/oss/pcm_oss.c linux-2.6.38.3/sound/core/oss
60668 #endif /* CONFIG_SND_VERBOSE_PROCFS */ 58981 #endif /* CONFIG_SND_VERBOSE_PROCFS */
60669 58982
60670 /* 58983 /*
60671diff -urNp linux-2.6.38.3/sound/core/seq/seq_lock.h linux-2.6.38.3/sound/core/seq/seq_lock.h 58984diff -urNp linux-2.6.38.2/sound/core/seq/seq_lock.h linux-2.6.38.2/sound/core/seq/seq_lock.h
60672--- linux-2.6.38.3/sound/core/seq/seq_lock.h 2011-03-14 21:20:32.000000000 -0400 58985--- linux-2.6.38.2/sound/core/seq/seq_lock.h 2011-03-14 21:20:32.000000000 -0400
60673+++ linux-2.6.38.3/sound/core/seq/seq_lock.h 2011-04-17 15:57:33.000000000 -0400 58986+++ linux-2.6.38.2/sound/core/seq/seq_lock.h 2011-03-21 18:31:35.000000000 -0400
60674@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo 58987@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo
60675 #else /* SMP || CONFIG_SND_DEBUG */ 58988 #else /* SMP || CONFIG_SND_DEBUG */
60676 58989
@@ -60686,9 +58999,9 @@ diff -urNp linux-2.6.38.3/sound/core/seq/seq_lock.h linux-2.6.38.3/sound/core/se
60686 58999
60687 #endif /* SMP || CONFIG_SND_DEBUG */ 59000 #endif /* SMP || CONFIG_SND_DEBUG */
60688 59001
60689diff -urNp linux-2.6.38.3/sound/drivers/mts64.c linux-2.6.38.3/sound/drivers/mts64.c 59002diff -urNp linux-2.6.38.2/sound/drivers/mts64.c linux-2.6.38.2/sound/drivers/mts64.c
60690--- linux-2.6.38.3/sound/drivers/mts64.c 2011-03-14 21:20:32.000000000 -0400 59003--- linux-2.6.38.2/sound/drivers/mts64.c 2011-03-14 21:20:32.000000000 -0400
60691+++ linux-2.6.38.3/sound/drivers/mts64.c 2011-04-17 15:57:33.000000000 -0400 59004+++ linux-2.6.38.2/sound/drivers/mts64.c 2011-03-21 18:31:35.000000000 -0400
60692@@ -28,6 +28,7 @@ 59005@@ -28,6 +28,7 @@
60693 #include <sound/initval.h> 59006 #include <sound/initval.h>
60694 #include <sound/rawmidi.h> 59007 #include <sound/rawmidi.h>
@@ -60745,9 +59058,9 @@ diff -urNp linux-2.6.38.3/sound/drivers/mts64.c linux-2.6.38.3/sound/drivers/mts
60745 59058
60746 return 0; 59059 return 0;
60747 } 59060 }
60748diff -urNp linux-2.6.38.3/sound/drivers/portman2x4.c linux-2.6.38.3/sound/drivers/portman2x4.c 59061diff -urNp linux-2.6.38.2/sound/drivers/portman2x4.c linux-2.6.38.2/sound/drivers/portman2x4.c
60749--- linux-2.6.38.3/sound/drivers/portman2x4.c 2011-03-14 21:20:32.000000000 -0400 59062--- linux-2.6.38.2/sound/drivers/portman2x4.c 2011-03-14 21:20:32.000000000 -0400
60750+++ linux-2.6.38.3/sound/drivers/portman2x4.c 2011-04-17 15:57:33.000000000 -0400 59063+++ linux-2.6.38.2/sound/drivers/portman2x4.c 2011-03-21 18:31:35.000000000 -0400
60751@@ -47,6 +47,7 @@ 59064@@ -47,6 +47,7 @@
60752 #include <sound/initval.h> 59065 #include <sound/initval.h>
60753 #include <sound/rawmidi.h> 59066 #include <sound/rawmidi.h>
@@ -60765,9 +59078,9 @@ diff -urNp linux-2.6.38.3/sound/drivers/portman2x4.c linux-2.6.38.3/sound/driver
60765 int mode[PORTMAN_NUM_INPUT_PORTS]; 59078 int mode[PORTMAN_NUM_INPUT_PORTS];
60766 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS]; 59079 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
60767 }; 59080 };
60768diff -urNp linux-2.6.38.3/sound/oss/sb_audio.c linux-2.6.38.3/sound/oss/sb_audio.c 59081diff -urNp linux-2.6.38.2/sound/oss/sb_audio.c linux-2.6.38.2/sound/oss/sb_audio.c
60769--- linux-2.6.38.3/sound/oss/sb_audio.c 2011-03-14 21:20:32.000000000 -0400 59082--- linux-2.6.38.2/sound/oss/sb_audio.c 2011-03-14 21:20:32.000000000 -0400
60770+++ linux-2.6.38.3/sound/oss/sb_audio.c 2011-04-17 15:57:33.000000000 -0400 59083+++ linux-2.6.38.2/sound/oss/sb_audio.c 2011-03-21 18:31:35.000000000 -0400
60771@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev, 59084@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev,
60772 buf16 = (signed short *)(localbuf + localoffs); 59085 buf16 = (signed short *)(localbuf + localoffs);
60773 while (c) 59086 while (c)
@@ -60777,9 +59090,9 @@ diff -urNp linux-2.6.38.3/sound/oss/sb_audio.c linux-2.6.38.3/sound/oss/sb_audio
60777 if (copy_from_user(lbuf8, 59090 if (copy_from_user(lbuf8,
60778 userbuf+useroffs + p, 59091 userbuf+useroffs + p,
60779 locallen)) 59092 locallen))
60780diff -urNp linux-2.6.38.3/sound/oss/swarm_cs4297a.c linux-2.6.38.3/sound/oss/swarm_cs4297a.c 59093diff -urNp linux-2.6.38.2/sound/oss/swarm_cs4297a.c linux-2.6.38.2/sound/oss/swarm_cs4297a.c
60781--- linux-2.6.38.3/sound/oss/swarm_cs4297a.c 2011-03-14 21:20:32.000000000 -0400 59094--- linux-2.6.38.2/sound/oss/swarm_cs4297a.c 2011-03-14 21:20:32.000000000 -0400
60782+++ linux-2.6.38.3/sound/oss/swarm_cs4297a.c 2011-04-17 15:57:33.000000000 -0400 59095+++ linux-2.6.38.2/sound/oss/swarm_cs4297a.c 2011-03-21 18:31:35.000000000 -0400
60783@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void) 59096@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void)
60784 { 59097 {
60785 struct cs4297a_state *s; 59098 struct cs4297a_state *s;
@@ -60814,9 +59127,9 @@ diff -urNp linux-2.6.38.3/sound/oss/swarm_cs4297a.c linux-2.6.38.3/sound/oss/swa
60814 59127
60815 list_add(&s->list, &cs4297a_devs); 59128 list_add(&s->list, &cs4297a_devs);
60816 59129
60817diff -urNp linux-2.6.38.3/sound/pci/ac97/ac97_patch.c linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 59130diff -urNp linux-2.6.38.2/sound/pci/ac97/ac97_patch.c linux-2.6.38.2/sound/pci/ac97/ac97_patch.c
60818--- linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 2011-03-14 21:20:32.000000000 -0400 59131--- linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 2011-03-14 21:20:32.000000000 -0400
60819+++ linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 2011-04-17 15:57:33.000000000 -0400 59132+++ linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 2011-03-21 18:31:35.000000000 -0400
60820@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a 59133@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a
60821 { AC97_VIDEO, 0x9f1f }, 59134 { AC97_VIDEO, 0x9f1f },
60822 { AC97_AUX, 0x9f1f }, 59135 { AC97_AUX, 0x9f1f },
@@ -60835,10 +59148,10 @@ diff -urNp linux-2.6.38.3/sound/pci/ac97/ac97_patch.c linux-2.6.38.3/sound/pci/a
60835 }; 59148 };
60836 59149
60837 static int patch_lm4550(struct snd_ac97 *ac97) 59150 static int patch_lm4550(struct snd_ac97 *ac97)
60838diff -urNp linux-2.6.38.3/sound/pci/ens1370.c linux-2.6.38.3/sound/pci/ens1370.c 59151diff -urNp linux-2.6.38.2/sound/pci/ens1370.c linux-2.6.38.2/sound/pci/ens1370.c
60839--- linux-2.6.38.3/sound/pci/ens1370.c 2011-04-18 17:27:18.000000000 -0400 59152--- linux-2.6.38.2/sound/pci/ens1370.c 2011-03-14 21:20:32.000000000 -0400
60840+++ linux-2.6.38.3/sound/pci/ens1370.c 2011-04-17 16:54:08.000000000 -0400 59153+++ linux-2.6.38.2/sound/pci/ens1370.c 2011-03-21 18:31:35.000000000 -0400
60841@@ -453,7 +453,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio 59154@@ -452,7 +452,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio
60842 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */ 59155 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */
60843 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */ 59156 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */
60844 #endif 59157 #endif
@@ -60847,9 +59160,9 @@ diff -urNp linux-2.6.38.3/sound/pci/ens1370.c linux-2.6.38.3/sound/pci/ens1370.c
60847 }; 59160 };
60848 59161
60849 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); 59162 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids);
60850diff -urNp linux-2.6.38.3/sound/pci/hda/patch_hdmi.c linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 59163diff -urNp linux-2.6.38.2/sound/pci/hda/patch_hdmi.c linux-2.6.38.2/sound/pci/hda/patch_hdmi.c
60851--- linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 2011-04-18 17:27:18.000000000 -0400 59164--- linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 2011-03-14 21:20:32.000000000 -0400
60852+++ linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 2011-04-17 16:54:08.000000000 -0400 59165+++ linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 2011-03-21 18:31:35.000000000 -0400
60853@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str 59166@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str
60854 cp_ready); 59167 cp_ready);
60855 59168
@@ -60865,9 +59178,9 @@ diff -urNp linux-2.6.38.3/sound/pci/hda/patch_hdmi.c linux-2.6.38.3/sound/pci/hd
60865 } 59178 }
60866 59179
60867 59180
60868diff -urNp linux-2.6.38.3/sound/pci/intel8x0.c linux-2.6.38.3/sound/pci/intel8x0.c 59181diff -urNp linux-2.6.38.2/sound/pci/intel8x0.c linux-2.6.38.2/sound/pci/intel8x0.c
60869--- linux-2.6.38.3/sound/pci/intel8x0.c 2011-03-14 21:20:32.000000000 -0400 59182--- linux-2.6.38.2/sound/pci/intel8x0.c 2011-03-14 21:20:32.000000000 -0400
60870+++ linux-2.6.38.3/sound/pci/intel8x0.c 2011-04-17 15:57:33.000000000 -0400 59183+++ linux-2.6.38.2/sound/pci/intel8x0.c 2011-03-21 18:31:35.000000000 -0400
60871@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel 59184@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
60872 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 59185 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
60873 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */ 59186 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */
@@ -60886,9 +59199,9 @@ diff -urNp linux-2.6.38.3/sound/pci/intel8x0.c linux-2.6.38.3/sound/pci/intel8x0
60886 }; 59199 };
60887 59200
60888 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, 59201 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock,
60889diff -urNp linux-2.6.38.3/sound/pci/intel8x0m.c linux-2.6.38.3/sound/pci/intel8x0m.c 59202diff -urNp linux-2.6.38.2/sound/pci/intel8x0m.c linux-2.6.38.2/sound/pci/intel8x0m.c
60890--- linux-2.6.38.3/sound/pci/intel8x0m.c 2011-03-14 21:20:32.000000000 -0400 59203--- linux-2.6.38.2/sound/pci/intel8x0m.c 2011-03-14 21:20:32.000000000 -0400
60891+++ linux-2.6.38.3/sound/pci/intel8x0m.c 2011-04-17 15:57:33.000000000 -0400 59204+++ linux-2.6.38.2/sound/pci/intel8x0m.c 2011-03-21 18:31:35.000000000 -0400
60892@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel 59205@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
60893 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 59206 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
60894 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */ 59207 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */
@@ -60907,9 +59220,9 @@ diff -urNp linux-2.6.38.3/sound/pci/intel8x0m.c linux-2.6.38.3/sound/pci/intel8x
60907 }; 59220 };
60908 59221
60909 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, 59222 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci,
60910diff -urNp linux-2.6.38.3/usr/gen_init_cpio.c linux-2.6.38.3/usr/gen_init_cpio.c 59223diff -urNp linux-2.6.38.2/usr/gen_init_cpio.c linux-2.6.38.2/usr/gen_init_cpio.c
60911--- linux-2.6.38.3/usr/gen_init_cpio.c 2011-03-14 21:20:32.000000000 -0400 59224--- linux-2.6.38.2/usr/gen_init_cpio.c 2011-03-14 21:20:32.000000000 -0400
60912+++ linux-2.6.38.3/usr/gen_init_cpio.c 2011-04-17 15:57:33.000000000 -0400 59225+++ linux-2.6.38.2/usr/gen_init_cpio.c 2011-03-21 18:31:35.000000000 -0400
60913@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name, 59226@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name,
60914 int retval; 59227 int retval;
60915 int rc = -1; 59228 int rc = -1;
@@ -60932,9 +59245,9 @@ diff -urNp linux-2.6.38.3/usr/gen_init_cpio.c linux-2.6.38.3/usr/gen_init_cpio.c
60932 } else 59245 } else
60933 break; 59246 break;
60934 } 59247 }
60935diff -urNp linux-2.6.38.3/virt/kvm/kvm_main.c linux-2.6.38.3/virt/kvm/kvm_main.c 59248diff -urNp linux-2.6.38.2/virt/kvm/kvm_main.c linux-2.6.38.2/virt/kvm/kvm_main.c
60936--- linux-2.6.38.3/virt/kvm/kvm_main.c 2011-03-14 21:20:32.000000000 -0400 59249--- linux-2.6.38.2/virt/kvm/kvm_main.c 2011-03-14 21:20:32.000000000 -0400
60937+++ linux-2.6.38.3/virt/kvm/kvm_main.c 2011-04-17 15:57:33.000000000 -0400 59250+++ linux-2.6.38.2/virt/kvm/kvm_main.c 2011-03-21 18:31:35.000000000 -0400
60938@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode 59251@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode
60939 return 0; 59252 return 0;
60940 } 59253 }
diff --git a/main/linux-grsec/kernelconfig.x86 b/main/linux-grsec/kernelconfig.x86
index a010738095..14fbc4d832 100644
--- a/main/linux-grsec/kernelconfig.x86
+++ b/main/linux-grsec/kernelconfig.x86
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux/i386 2.6.38.3 Kernel Configuration 3# Linux/i386 2.6.38.1 Kernel Configuration
4# Mon Apr 18 07:22:38 2011 4# Thu Mar 31 17:56:09 2011
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
@@ -2461,6 +2461,7 @@ CONFIG_CONSOLE_TRANSLATIONS=y
2461CONFIG_VT_CONSOLE=y 2461CONFIG_VT_CONSOLE=y
2462CONFIG_HW_CONSOLE=y 2462CONFIG_HW_CONSOLE=y
2463# CONFIG_VT_HW_CONSOLE_BINDING is not set 2463# CONFIG_VT_HW_CONSOLE_BINDING is not set
2464# CONFIG_DEVKMEM is not set
2464CONFIG_SERIAL_NONSTANDARD=y 2465CONFIG_SERIAL_NONSTANDARD=y
2465CONFIG_COMPUTONE=m 2466CONFIG_COMPUTONE=m
2466CONFIG_ROCKETPORT=m 2467CONFIG_ROCKETPORT=m
@@ -2565,6 +2566,7 @@ CONFIG_TCG_NSC=m
2565CONFIG_TCG_ATMEL=m 2566CONFIG_TCG_ATMEL=m
2566CONFIG_TCG_INFINEON=m 2567CONFIG_TCG_INFINEON=m
2567CONFIG_TELCLOCK=m 2568CONFIG_TELCLOCK=m
2569CONFIG_DEVPORT=y
2568CONFIG_RAMOOPS=m 2570CONFIG_RAMOOPS=m
2569CONFIG_I2C=m 2571CONFIG_I2C=m
2570CONFIG_I2C_BOARDINFO=y 2572CONFIG_I2C_BOARDINFO=y
@@ -4825,7 +4827,6 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
4825# CONFIG_GRKERNSEC_BRUTE is not set 4827# CONFIG_GRKERNSEC_BRUTE is not set
4826# CONFIG_GRKERNSEC_MODHARDEN is not set 4828# CONFIG_GRKERNSEC_MODHARDEN is not set
4827# CONFIG_GRKERNSEC_HIDESYM is not set 4829# CONFIG_GRKERNSEC_HIDESYM is not set
4828# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
4829 4830
4830# 4831#
4831# Role Based Access Control Options 4832# Role Based Access Control Options
diff --git a/main/linux-grsec/kernelconfig.x86_64 b/main/linux-grsec/kernelconfig.x86_64
index 8877618c6a..c830b9cc32 100644
--- a/main/linux-grsec/kernelconfig.x86_64
+++ b/main/linux-grsec/kernelconfig.x86_64
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux/x86_64 2.6.38.3 Kernel Configuration 3# Linux/x86_64 2.6.38.1 Kernel Configuration
4# Mon Apr 18 10:45:51 2011 4# Thu Mar 31 17:56:09 2011
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
@@ -2415,6 +2415,7 @@ CONFIG_CONSOLE_TRANSLATIONS=y
2415CONFIG_VT_CONSOLE=y 2415CONFIG_VT_CONSOLE=y
2416CONFIG_HW_CONSOLE=y 2416CONFIG_HW_CONSOLE=y
2417# CONFIG_VT_HW_CONSOLE_BINDING is not set 2417# CONFIG_VT_HW_CONSOLE_BINDING is not set
2418# CONFIG_DEVKMEM is not set
2418CONFIG_SERIAL_NONSTANDARD=y 2419CONFIG_SERIAL_NONSTANDARD=y
2419CONFIG_COMPUTONE=m 2420CONFIG_COMPUTONE=m
2420CONFIG_ROCKETPORT=m 2421CONFIG_ROCKETPORT=m
@@ -2517,6 +2518,7 @@ CONFIG_TCG_NSC=m
2517CONFIG_TCG_ATMEL=m 2518CONFIG_TCG_ATMEL=m
2518CONFIG_TCG_INFINEON=m 2519CONFIG_TCG_INFINEON=m
2519CONFIG_TELCLOCK=m 2520CONFIG_TELCLOCK=m
2521CONFIG_DEVPORT=y
2520CONFIG_RAMOOPS=m 2522CONFIG_RAMOOPS=m
2521CONFIG_I2C=m 2523CONFIG_I2C=m
2522CONFIG_I2C_BOARDINFO=y 2524CONFIG_I2C_BOARDINFO=y
@@ -4782,7 +4784,6 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
4782# CONFIG_GRKERNSEC_BRUTE is not set 4784# CONFIG_GRKERNSEC_BRUTE is not set
4783# CONFIG_GRKERNSEC_MODHARDEN is not set 4785# CONFIG_GRKERNSEC_MODHARDEN is not set
4784# CONFIG_GRKERNSEC_HIDESYM is not set 4786# CONFIG_GRKERNSEC_HIDESYM is not set
4785# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
4786 4787
4787# 4788#
4788# Role Based Access Control Options 4789# Role Based Access Control Options
@@ -4893,7 +4894,6 @@ CONFIG_PAX_MPROTECT=y
4893# Address Space Layout Randomization 4894# Address Space Layout Randomization
4894# 4895#
4895CONFIG_PAX_ASLR=y 4896CONFIG_PAX_ASLR=y
4896# CONFIG_PAX_RANDKSTACK is not set
4897CONFIG_PAX_RANDUSTACK=y 4897CONFIG_PAX_RANDUSTACK=y
4898CONFIG_PAX_RANDMMAP=y 4898CONFIG_PAX_RANDMMAP=y
4899 4899